【软件工程】测试规格

1. 引言

1.1简介

本次的测试用例是基于核心代码基本开发完毕,在第一代系统基本正常运行后编写的,主要目的是为了后续开发与维护的便利性。

该文档主要受众为该系统后续开发人员,并且在阅读此文档前最后先阅读本系统的需求文档、概要设计文档与详细设计文档。在本文档中,我们将依据需求文档中所描述的功能模块进行黑盒测试并编写其测试用例,依据概要设计文档与详细设计文档进行白盒测试并编写其测试用例。

1.2术语定义

黑盒测试

​ 黑盒测试也称功能性测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。

白盒测试

​ 白盒测试指考虑系统或组件的内部机制的测试形式,也称为结构性测试。白盒测试要求软件测试工程师也需要具有编程能力。白盒测试的方法主要可分为两种:一种是基于逻辑结构的测试(逻辑覆盖测试),另一种则是基于控制流图的测试(控制流图覆盖测试)。

功能性测试

​ 按照系统需求定义中的功能定义部分对系统实行的系统级别的测试。

非功能性测试

​ 按照系统需求定义中的非功能定义部分(如系统的性能指标,安全性能指标等)对系统实行的系统级别的测试。

测试用例

​ 测试人员设计出来的用来测试软件某个功能的一种情形。

2. 系统结构

2.1硬件设计

该系统主要基于软件部分的开发,所以对于硬件部分,只需要满足运行软件这一个需求即可,具体来说即:

  • PC机一台,安装Windows11操作系统

  • CPU:P4 1.8GHz以上

  • 内存:1GB以上

  • 分辨率:推荐1920 × \times × 1080

2.2软件设计

主要的模块组分为两个部分,现将每一部分拆解开来,对于该系统,所包含的主要模块如下图所示:

image-20240404105507306

图1.学生成绩管理系统模块设计图

3.测试用例设计

3.1白盒测试

在白盒测试中,我们对登录模块和注册模块采用条件组合覆盖和基本路径覆盖两种方法进行测试用例的编写。

3.1.1登录模块:

表3-1 登录模块

登录模块
1.1 模块描述:输入用户名,密码与验证码,登录进系统
1.2 功能:接受用户输入的用户名,密码与验证码,并逐一检查验证码,用户名与密码是否正确,如正确则登入,失败则提示。
1.3 性能:能够检查用户名、密码的正确性。
1.4 输入项:用户名,密码与验证码。
1.5 输出项:成功登录、“验证码错误”或“账号或密码错误”。

输入为(用户名与密码, 验证码)

记A为正确的验证码,a为错误的验证码

记B为正确匹配的用户名与密码,b为不匹配的用户名与密码

条件组合覆盖:流程图如下

image-20240404105628982

图2登录模块流程逻辑图

  1. 验证码正确 记作 T1

  2. 验证码错误 记作 T1非

  3. 条件匹配 记作 T2

  4. 条件不匹配 记作 T2非

表3-2:条件组合覆盖基本路径测试用例

测试用例通过路径覆盖条件覆盖组合号
【(A , b),(账号或密码错误)】①②⑤⑥⑦⑧T1、T2非1、4
【(a , B),(验证码错误)】①②③④T1非、T22、3
【(A , B),(登录成功)】①②⑤⑥⑨⑩T1、T21、3

基本路径覆盖:控制流图如下

image-20240404105649165

图3:控制流图

Path1(基线路径) L1:1-2-3-5-6-8

Path2(翻转节点3) L2:1-2-3-4-8

Path3(翻转节点6) L3:1-2-3-5-6-7-8

表3-3:基本路径测试用例

测试用例通过路径
【(A , B),(登录成功)】L1
【(A , b),(账号或密码错误)】L3
【(a , B),(验证码错误)】L2

3.1.2注册模块

表3-4注册模块

注册模块
1.1 模块描述:注册一个新的用户。
1.2 功能:输入用户名等信息,注册一个新的用户。
1.3 性能:能过检查用户名、密码等的正确性。
1.4 输入项:用户名、密码、密保问题及答案。
1.5 输出项:“注册成功”、“请输入用户名”、“用户名不规范”、“请输入密码”、“密码格式不规范”、“密码太简单了哦,加上字母试试吧”、“请选择密保问题”、“请输入密保答案”。

条件组合覆盖:流程图如下

image-20240404105707316

图4注册模块流程逻辑图

  1. 用户名不为空 记作 T1

  2. 用户名为空 记作 T1非

  3. 用户名规范 记作 T2

  4. 用户名不规范 记作 T2非

  5. 密码为空 记作 T3

  6. 密码不为空 记作 T3非

  7. 密码规范 记作 T4

  8. 密码不规范 记作 T4非

  9. 密码复杂度符合要求 记作 T5

  10. 密码复杂度不符合要求 记作 T5非

  11. 已选择密保 记作 T6

  12. 未选择密保 记作 T6非

  13. 已输入密保问题 记作 T7

  14. 未输入密保问题 记作 T7非

  15. 已输入密保答案 记作 T8

  16. 未输入密保答案 记作 T8非

输入为(用户名, 密码, 密保问题,密保答案)

记规范的用户名为A1,不规范的用户名为A2,用户名为空为A3

记规范且复杂度符合要求的密码为B1,规范且复杂度不符合要求的密码为B2,不规范且复杂度符合要求的密码为B3,不规范且复杂度不符合要求的密码为B4

密码为空为B5

记密保问题及答案非空为C1,密保问题及答案为空为C2

记密保答案非空为D1,密保答案为空为D2

表3-5条件组合覆盖路径

测试用例通过路径覆盖条件覆盖组合号
【(A1、B1、C1、D1),(注册成功)】(1、2、5、8、11、14、17、20、23、24)T1、T2、T3、T4、T5、T6、T7、T81、3、5、7、9、11、13、15
【( A3、B5、C2、D2),(请输入用户名)】(1、2、3、4)T1非、T2非、T3非、T4非、T5非、T6非、T7非、T8非2、4、6、8、10、12、14、16

img

图5:基本路径覆盖:控制流图如下

Path1(基线路径)L1:1-2-3-5-7-9-11-13-15-17-18

Path2 (翻转节点3) L2:1-2-3-4-18

Path3 (翻转节点5) L3:1-2-3–5-6-18

Path4 (翻转节点7) L4:1-2-3-5-7-8-18

Path5(翻转节点9) L5:1-2-3-5-7-9-10-18

Path6(翻转节点11) L6:1-2-3-5-7-9-11-12-18

Path7(翻转节点13) L7:1-2-3-5-7-9-11-13-14-18

Path8(翻转节点15) L8:1-2-3-5-7-9-11-13-15-16-18

输入为(用户名, 密码, 密保问题,密保答案)

记规范的用户名为A1,不规范的用户名为A2,用户名为空为A3

记规范且复杂度符合要求的密码为B1,规范且复杂度不符合要求的密码为B2,不规范且复杂度符合要求的密码为B3,不规范且复杂度不符合要求的密码为B4

密码为空为B5

记密保问题及答案非空为C1,密保问题及答案为空为C2

记密保答案非空为D1,密保答案为空为D2

表3-6:注册模块基本路径测试用例

测试用例通过路径
【(A1 , B1 , C1 , D1),(注册成功)】L1
【(A3 , B1 , C1 , D1),(请输入用户名)】L2
【(A2 , B1 , C1 , D1),(用户名不规范)】L3
【(A1 , B5 , C1 , D1),(请输入密码)】L4
【(A1 , B3 , C1 , D1),(密码格式不规范)】L5
【(A1 , B2 , C1 , D1),(密码太简单了哦,加上字母试试吧)】L6
【(A1 , B1 , C2 , D1),(请选择密保问题)】L7
【(A1 , B1 , C1 , D2),(请输入密保答案)】L8

3.2黑盒测试

3.2.1注册功能

功能描述:用户在注册界面按照要求输入用户名、密码、密保问题、密保答案后,点击注册即可注册成功。

等价类划分:

输入参数有效等价类无效等价类
注册的学号1. 9个数字2. 20开头3. 长度<94. 长度>95. 含有非数字其他字符
密码a. 6~20个任意字符b. 长度<6c. 长度>20
密保问题选择A. 从已有问题中选择一个问题
密保答案一. 任意字符

测试用例(基本选择覆盖):

编号输入输出覆盖的等价类
1(202308012 ,123abc. ,你最喜欢的书,111)注册成功1、2、a、A、一(基本测试用例)
2(abcdefg ,123abc. ,你最喜欢的书,111)注册失败3、5、a、A、一
3(202256545585 ,123abc. ,你最喜欢的书,111)注册失败4、a、A、一
4(a到z ,123abc. ,你最喜欢的书,111)注册失败4、5、a、A、一
5(2034565545% ,123abc. ,你最喜欢的书,111)注册失败2、4、5、a、A、一
6(203456745 ,123 ,你最喜欢的书,111)注册失败1、2、b、A、一
7(203456726 ,a到z ,你最喜欢的书,111)注册失败1、2、c、A、一

3.2.2修改学生信息功能

功能描述:在学生信息管理界面点击修改按钮后,在新出现的界面按照要求输入新的学生信息后,点击确定即修改成功。主要修改的信息包括学生姓名,学生性别。

等价类划分:

输入参数有效等价类无效等价类
学生姓名1. 1到10的汉字和·的组合,其中·不能出现在第一位和最后一位2. ·出现在第一位3. ·出现在最后一位4. 含其他字母5. 长度大于10
学生性别a. 男b. 女c. 除了男女之外的所有输入

测试用例:

编号输入输出覆盖的等价类
1(张三,男)修改成功1、a(基本测试用例)
2(张三,女)修改成功1、b
3(张·三,第三性别)修改失败1、c
4(·张三,男)修改失败2、a
5(张三·,女)修改失败3、b
6(张三boy,男)修改失败4、a
7(张三三三三·三三三三三,女)系统异常5、b

3.2.3修改成绩/编辑成绩功能

功能描述:在这修改成绩/编辑成绩界面,按照要求输入成绩后,即会修改成功。

等价类划分:

输入参数有效等价类无效等价类
学生成绩1. 0到100的数字2. 小于03. 大于1004. 非数字字符5. 非0.5的小数

测试用例:

编号输入输出覆盖的等价类
195编辑/修改成绩操作成功1
2-63编辑/修改成绩操作失败2
31000编辑/修改成绩操作失败3
4a26编辑/修改成绩操作失败4
586.3编辑/修改成绩操作失败5

4.测试评估

4.1测试任务评估

本系统测试用时约10周,共计测试了6个功能模块,包括登录模块、网页表象增加模块、申诉成绩模块、编辑成绩模块、修改学生信息模块、添加学生模块。本次测试时间和内容都比较紧张,本组自己认为较为优异的完成了测试的既定目标。

为了让学生成绩管理系统成功完整的运行,在测试过程中,测试组各测试人员分工明确,严格按照实验指导书上的流程进行白盒与黑盒测试,得到了令人满意的结果。

4.2测试对象评估

总体来说,测试对象基本符合测试阶段质量要求。虽然在信息修改模块中出现了一个小错误,但影响较小,且通过后续的修正完成了对程序缺陷的修复,并在重新测试中展现了良好的性能。在系统功能方面,经过测试,本系统逻辑判断完整,系统容错率高,未产生无响应和死锁现象。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/519569.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

海外视频网站推广实战需掌握的10个关键性数据指标-华媒舍

在海外视频网站推广实战中&#xff0c;了解和掌握一些关键性数据指标是非常重要的。这些指标可以帮助我们评估视频网站的推广效果&#xff0c;优化推广策略&#xff0c;提升用户体验。以下是推广人员在实战中应该了解和关注的十个关键性数据指标&#xff1a; 1. 视频创意点击率…

PS入门|规规矩矩的图形怎么抠出来?

前言 上一次讲解到用魔棒工具蒙版可以把需要的区域抠出来&#xff0c;但仅适用于边缘锐利的类型。 但魔棒工具并不适用于边缘区域有过渡色的内容&#xff0c;比如下面这张照片&#xff1a; 如果直接使用魔棒工具进行选择&#xff0c;就会出现下面这种情况&#xff1a; 在边界…

数据挖掘入门项目二手交易车价格预测之建模调参

文章目录 目标步骤1. 调整数据类型&#xff0c;减少数据在内存中占用的空间2. 使用线性回归来简单建模3. 五折交叉验证4. 模拟真实业务情况5. 绘制学习率曲线与验证曲线6. 嵌入式特征选择6. 非线性模型7. 模型调参&#xff08;1&#xff09; 贪心调参&#xff08;2&#xff09;…

内表GROUP BY

内表GROUP BY REPORT z_test_table_lhy. DATA: price TYPE sflight-price. SELECT MIN( price ) AS m,carridINTO DATA(t_temp)FROM sflightGROUP BY carridHAVING MAX( price ) > 10. "Having从句中比较统计结果时&#xff0c;需要将统计函数重写一遍&#xff0c;而不…

Android数据存储技术

一、文件存储 <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:orientation"vertical"android:layout_width"match_parent"android:layout_height"match_parent" ><EditTextandroid:id&qu…

树莓派安装Windows搭建网盘和下载机

0 需求分析 在同一个局域网内&#xff0c;同时有多种设备&#xff08;Windows&#xff0c;Linux&#xff0c;Android&#xff09;需要进行大量的数据共享。另外&#xff0c;还时常需要从百度网盘/夸克网盘等网盘下载文件。不难看出&#xff0c;我的需求很简单&#xff0c;就是…

异常的处理

异常处理概述 在编写程序时&#xff0c;经常要在可能出现错误的地方加上检测的代码&#xff0c;如进行x/y运算时&#xff0c;要检测分母为0&#xff0c;数据为空&#xff0c;输入的不是数据而是字符等。过多的if-else分支会导致程序的代码加长、臃肿&#xff0c;可读性差&…

论文笔记:Large Language Models as Analogical Reasoners

iclr 2024 reviewer打分5558 1 intro 基于CoT prompt的大模型能够更好地解决复杂推理问题 然而传统CoT需要提供相关的例子作为指导&#xff0c;这就增加了人工标注的成本——>Zero-shot CoT避免了人工标注来引导推理 但是对于一些复杂的任务难以完成推理&#xff0c;例如c…

Ubuntu22.04中基于Qt开发Android App

文章目录 前言在Ubuntu22.04中配置开发环境案例测试参考 前言 使用Qt开发手机应用程序是一种高效且灵活的选择。Qt作为一个跨平台的开发框架&#xff0c;为开发者提供了统一的开发体验和丰富的功能库。首先&#xff0c;Qt的跨平台性让开发者可以使用相同的代码库在不同的操作系…

SSM项目实战——哈哈音乐(四)前台模块开发

1、项目准备 ①导入依赖和前端资源 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.x…

路由策略与路由控制之双点双向重发布(OSPF-ISIS)实验

双点双向重发布在路由协议中&#xff0c;特别是在OSPF&#xff08;开放式最短路径优先&#xff09;与IS-IS&#xff08;中间系统到中间系统&#xff09;等协议之间&#xff0c;指的是在两个协议间或者两个进程间进行路由信息共享的机制。这种机制涉及到在两个不同的协议区域使用…

微软推出GPT-4 Turbo优先使用权:Copilot for Microsoft 365商业用户享受无限制对话及增强图像生成能力

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

电脑上音频太多,播放速度又不一致,如何批量调节音频播放速度?

批量调节音频速度是现代音频处理中的一个重要环节&#xff0c;尤其在音乐制作、电影剪辑、有声书制作等领域&#xff0c;它能够帮助制作者快速高效地调整音频的播放速度&#xff0c;从而满足特定的制作需求。本文将详细介绍批量调节音频速度的方法、技巧和注意事项&#xff0c;…

Docker 安装 Linux 系统可视化监控 Netdata

docker 安装 netdata 前提准备Docker 两种方式部署 Netdata1、使用 docker run 命令运行 netdata 服务2、使用 docker compose 运行 netdata 服务 Netdata 服务可视化界面Netdata 汉化处理 前提准备 说明&#xff1a;此处使用 windows11 安装的 docker desktop & wsl2/apli…

【Rust】环境搭建

Rust 支持很多的集成开发环境&#xff08;IDE&#xff09;或开发专用的文本编辑器。 官方网站公布支持的工具如下&#xff08;工具 - Rust 程序设计语言&#xff09; 本课程将使用 Visual Studio Code 作为我们的开发环境&#xff08;Eclipse 有专用于 Rust 开发的版本&#…

政安晨:【Keras机器学习实践要点】(十七)—— 利用 EfficientNet 通过微调进行图像分类

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 本文目标&#xff1a; 使用 EfficientNet 和在图…

比nestjs更优雅的ts控制反转策略-依赖查找

一、Cabloy5.0内测预告 Cabloy5.0采用TS对整个全栈框架进行了脱胎换骨般的大重构&#xff0c;并且提供了更加优雅的ts控制反转策略&#xff0c;让我们的业务开发更加快捷顺畅 1. 新旧技术栈对比&#xff1a; 后端前端旧版js、egg2.0、mysqljs、vue2、framework7新版ts、egg3…

Git 如何去使用

目录 1. Git暂存区的使用 1.1. 暂存区的作用 1.2. 暂存区覆盖工作区&#xff08;注意&#xff1a;完全确认覆盖时使用&#xff09; 1.3. 暂存区移除文件 1.4. 练习 2. Git回退版本 2.1. 概念 2.2. 查看提交历史 2.3. 回退命令 2.4. 注意 3. Git删除文件 3.1. 需求 …

Centos7使用docker安装Jenkins

一、下载Jenkins docker pull jenkins/jenkins:lts 二、启动Jenkins docker run \-u root \--rm \-d \-p 8081:8080 \-p 50000:50000 \-v /root/docker/jenkins/var/jenkins_home:/var/jenkins_home \-v /var/run/docker.sock:/var/run/docker.sock \-v /usr/bin/docker:/usr…

苹果CMSV10整合dplayer播放器增加记忆+P2P播放+自动下一集功能插件详细保姆级教程

1.本站已打包&#xff0c;可以直接下载然后上传到你服务器的苹果CMS网站static/player目录下就可以了&#xff0c;下面是教程 wlm3u8.js代码&#xff1a; MacPlayer.Html <iframe border"0" src"mac<span class"wp_keywordlink"><a hre…