【软件工程】测试规格

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测试对象评估

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷歌推出多模态视频模型,自动生成丰富动作视频

谷歌的研究人员推出了一款多模态扩散模型——VLOGGER。 用户只需要向VLOGGER输入图像、语音&#xff0c;就能生成带语音、丰富动作的人物视频。VLOGGER基于扩散模型开发而成&#xff0c;并提出了一种全新的架构&#xff0c;将文本生成图像模型与空间、时间控制相结合&#xff…

使用Python转换图片中的颜色

说明&#xff1a;最近在看梵高的画册&#xff0c;我手上的这本画册&#xff08;《文森特梵高》杨建飞 主编&#xff09;书中说&#xff0c;梵高用的颜料里有不耐久的合成颜料&#xff0c;原本的紫色褪成了我们现在所看到的灰蓝色。于是我想&#xff0c;能不能用程序将画中的颜色…

单链表的排序

目录 题目来源&#xff1a; 题目描述&#xff1a; 初始代码&#xff1a; 思路&#xff1a; 具体做法&#xff1a; 我的代码&#xff1a; 优化代码&#xff1a; 对比&#xff1a; 复习&#xff1a;List 基本介绍 常用方法 遍历方式 题目来源&#xff1a; 单链表的排…

MySQL常见锁探究

MySQL常见锁探究 1. 各种锁类型1.1 全局锁1.2 表级锁1.2.1 表锁1.2.2 元数据锁&#xff08;MDL&#xff09;1.2.3 意向锁1.2.4 AUTO-INC 锁 1.3 行级锁1.3.1 Record Lock1.3.2 Gap Lock1.3.3 Next-Key Lock 2. MySQL是如何加锁的&#xff1f;2.1 什么 SQL 语句会加行级锁&#…

Win10 下 Vision Mamba(Vim-main)的环境配置(libcuda.so文件无法找到,windows系统运行失败)

目录 1、下载NVIDIA 驱动程序、cuda11.8、cudnn8.6.0 2、在Anaconda中创建环境并激活 3、下载gpu版本的torch 4、配置环境所需要的包 5、安装causal_conv1d和mamba-1p1p1 安装causal_conv1d 安装mamba-1p1p1 6、运行main.py失败 请直接拉到最后查看运行失败的原因&am…

Pandas:sort_index、sort_values方法的使用

sort_index和sort_values既是Series类型数据自带的方法&#xff0c;也是DataFrame数据自带的方法。本篇博客以DataFrame为例进行讲述。 1 概览 sort_index和sort_values可以将DataFrame中的数据按照索引及值的大小进行排序。这两个方法所包含的参数及其作用都基本一致。如下表…

重读Java设计模式: 桥接模式详解

引言 在软件开发中&#xff0c;经常会遇到需要在抽象与实现之间建立连接的情况。当系统需要支持多个维度的变化时&#xff0c;使用传统的继承方式往往会导致类爆炸和耦合度增加的问题。为了解决这一问题&#xff0c;我们可以使用桥接模式。桥接模式是一种结构型设计模式&#…

【windows】--- nginx 超详细安装并配置教程

目录 一、下载 nginx二、安装三、查看是否安装成功四、配置五、关闭 nginx六 负载均衡七 配置静态资源1. 根目录下的子目录(root)2.完全匹配(alias) 刷新配置&#xff08;不必重启nginx&#xff09;八、后端鉴权 一、下载 nginx 打开 nginx 的官网&#xff1a;nginx.org/ &…

2024.4.3-[作业记录]-day08-CSS 盒子模型(溢出显示、伪元素)

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; 文章目录 作业 2024.4.3-学习笔记css溢出显示单行文本溢出显示省略号多行文本溢出显示省…

Linux基础篇:Linux网络yum源——以配置阿里云yum源为例

Linux网络yum源——以阿里云为例 一、网络yum源介绍 Linux中的YUM&#xff08;Yellowdog Updater, Modified&#xff09;源是一个软件包管理器&#xff0c;它可以自动处理依赖关系并安装、更新、卸载软件包。YUM源是一个包含软件包的远程仓库&#xff0c;它可以让用户轻松地安…

苹果cmsV10 MXProV4.5自适应PC手机影视站主题模板苹果cms模板mxone pro

演示站&#xff1a;http://a.88531.cn:8016 MXPro 模板主题(又名&#xff1a;mxonepro)是一款基于苹果 cms程序的一款全新的简洁好看 UI 的影视站模板类似于西瓜视频&#xff0c;不过同对比 MxoneV10 魔改模板来说功能没有那么多,也没有那么大气&#xff0c;但是比较且可视化功…

服务器硬件构成与性能要点:CPU、内存、硬盘、RAID、网络接口卡等关键组件的基础知识总结

文章目录 服务器硬件基础知识CPU&#xff08;中央处理器&#xff09;内存&#xff08;RAM&#xff09;硬盘RAID&#xff08;磁盘阵列&#xff09;网络接口卡&#xff08;NIC&#xff09;电源散热器主板显卡光驱 服务器硬件基础知识 服务器是一种高性能计算机&#xff0c;用于在…

thinkphp6入门(21)-- 如何删除图片、文件

假设文件的位置在 /*** 删除文件* $file_name avatar/20240208/d71d108bc1086b498df5191f9f925db3.jpg*/ function deleteFile($file_name) {// 要删除的文件路径$file app()->getRootPath() . public/uploads/ . $file_name; $result [];if (is_file($file)) {if (unlin…

论文笔记:Large Language Models as Analogical Reasoners

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

Type-c转USBA3.0芯片 USBA3.0转Type-c芯片(USB3.1GEN2 多路切换Switch芯片) VL162

VL162具有CC功能的USB Type-C数据开关USB 3.1 Gen2 (10Gbps) VL162 带CC功能的USB Type-C数据开关 支持最高10Gbps 2差分通道&#xff0c;2:1 MUX/DeMUX 兼容10Gbps USB3.1 Gen2 低功耗&#xff0c;6mW在设备模式下有效 高直流共模电压&#xff0c;支持2.0V 28针QFN 3.5 x 4.5m…

人工智能数据分析Python常用库 04 matplotlib库

文章目录 一、matplotlib库的作用与环境配置1、环境配置示例2、改变绘图风格3、保存图片 二、绘制二维图形1、折线图&#xff08;1&#xff09;示例&#xff08;2&#xff09;调整线条颜色&#xff1a;&#xff08;3&#xff09;调整线条风格&#xff08;4&#xff09;调整线宽…

【C语言】_文件内容操作:随机读写

目录 1. fseek 1.1 随机读文件 1.2 随机写文件 2. ftell 3. rewind 当以读方式打开一个存在且存有内容的文件时&#xff0c;文件指针会默认指向第一个元素。以在test4.txt文件中存储abcdef为例&#xff1a; int main() {//打开文件FILE* pf fopen("E:\\C_文件操作…

关系型数据库与非关系型数据库、Redis数据库

相比于其他的内存/缓存数据库&#xff0c;redis可以方便的实现持久化的功能&#xff08;保存至磁盘中&#xff09; 一、关系数据库与非关系型数据库 1.1 关系型数据库 一个结构化的数据库&#xff0c;创建在关系模型基础上一般面向于记录 SQL语句 (标准数据查询语言) 就是一种…

LNMP环境:揭秘负载均衡与高可用性设计

lb1: 192.168.8.5 lb2: 192.168.8.6 web1:192.168.8.7 web2:192.168.8.8 php-fpm: 192.168.8.9 mysql: 192.168.8.10 nfs:192.168.8.11 分别插入镜像 8.5-8.8 分别安装nginx,并设置启动 8.9 安装php 8.10 安装mysql 先配置一台web服务器然后同步 设置网站根目录 cp -…

【00】【solidity最新教程】-简介

Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C&#xff0c;Python 和 Javascript 语言的影响&#xff0c;设计的目的是能在以太坊虚拟机&#xff08;EVM&#xff09;上运行。 Solidity 是静态类型语言&#xff0c;支持继承、库和复杂的用…