【软件工程】测试规格

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.rhkb.cn/news/298858.html

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

相关文章

日志、logback、logback.xml --java学习笔记

什么是日志&#xff1f; 好比生活中的日记&#xff0c;可以记录你生活中的点点滴滴程序中的日志&#xff0c;通常就是一个文件&#xff0c;里面记录的是程序运行过程中的各种信息 之前记录日志的方法都是使用输出语句&#xff1a; 这种方法其实并不适合用来记录日志&#xff…

【c++】初阶模版与STL简单介绍

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 朋友们大家好&#xff0c;本篇文章介绍一下模版和对STL进行简单的介绍&#xff0c;后续我们进入对STL的学习&#xff01; 目录 模版1.泛型编程2.函数模板2.1函数模板的原理2.2模版的实例化…

实验:基于Red Hat Enterprise Linux系统的创建磁盘和磁盘分区(二、三)

目录 一. 实验目的 二. 实验内容 三. 实验设计描述及实验结果 实验二&#xff1a; 1. 为nvme0n2p1设备建立配额属性和文件(EXT) 2. 要求自己名字的用户只能存储不超过200M的文件&#xff0c;总数量不能大于10个 quotacheck [选项] 文件系统 edquota quotaon [选项] 文件系…

某盾滑块拼图验证码增强版

介绍 提示&#xff1a;文章仅供交流学习&#xff0c;严禁用于非法用途&#xff0c;如有不当可联系本人删除 最近某盾新推出了&#xff0c;滑块拼图验证码&#xff0c;如下图所示&#xff0c;这篇文章介绍怎么识别滑块距离相关。 参数attrs 通过GET请求获取的参数attrs, 决…

背包问题---

一、背包模型 有一个体积为V的背包,商店有n个物品,每个物品有一个价值v和体积w,每个物品只能被拿一次,问能够装下物品的最大价值。 这里每一种物品只有两种状态即"拿"或"不拿". 设状态dp[i][j]表示到第i个物品为止,拿的物品总体积为j的情况下的最大价…

Docker:探索容器化技术,重塑云计算时代应用交付与管理

一&#xff0c;引言 在云计算时代&#xff0c;随着开发者逐步将应用迁移至云端以减轻硬件管理负担&#xff0c;软件配置与环境一致性问题日益凸显。Docker的横空出世&#xff0c;恰好为软件开发者带来了全新的解决方案&#xff0c;它革新了软件的打包、分发和管理方式&#xff…

【智能排班系统】基于SpringSecurity实现登录验证、权限验证

文章目录 SpringSecurity介绍sss-security实现依赖工具类Jwt工具JSON响应工具加密工具类 用户上下文用户信息实体类用户上下文 自定义重写自定义无权限的报错自定义密码加密自定义用户类 过滤器登录过滤器权限过滤器 Service登录Service 配置类说明登录验证权限验证IP流量限制 …

C语言第四十弹---预处理(下)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 预处理 1、#和## 1.1 #运算符 1.2、##运算符 2、命名约定 3、#undef 4、命令行定义 5、条件编译 6、头文件的包含 6.1、头文件被包含的方式 6.1.1、本地…

Spark 部署与应用程序交互简单使用说明

文章目录 前言步骤一&#xff1a;下载安装包Spark的目录和文件 步骤二&#xff1a;使用Scala或PySpark Shell本地 shell 运行 步骤3:理解Spark应用中的概念Spark Application and SparkSessionSpark JobsSpark StagesSpark Tasks 转换、立即执行操作和延迟求值窄变换和宽变换 S…

StreamingT2V文本生成视频多模态大模型,即将开源!

1、前言 Picsart人工智能研究所、德克萨斯大学和SHI实验室的研究人员联合推出了StreamingT2V视频模型。通过文本就能直接生成2分钟、1分钟等不同时间&#xff0c;动作一致、连贯、没有卡顿的高质量视频。 虽然StreamingT2V在视频质量、多元化等还无法与Sora媲美&#xff0c;但…

【鹅厂摸鱼日记(一)】(工作篇)认识八大技术架构

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:重生之我在鹅厂摸鱼⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多知识   &#x1f51d;&#x1f51d; 认识八大架构 1. 前言2. 架构简介&…

uniapp:小程序腾讯地图程序文件qqmap-wx-jssdk.js 文件一直找不到无法导入

先看问题&#xff1a; 在使用腾讯地图api时无法导入到qqmap-wx-jssdk.js文件 解决方法&#xff1a;1、打开qqmap-wx-jssdk.js最后一行 然后导入&#xff1a;这里是我的路径位置&#xff0c;可以根据自己的路径位置进行更改导入 最后在生命周期函数中输出&#xff1a; 运行效果…

159 Linux C++ 通讯架构实战14,epoll 函数代码实战

ngx_epoll_init函数的调用 //&#xff08;3.2&#xff09;ngx_epoll_init函数的调用&#xff08;要在子进程中执行&#xff09; //四章&#xff0c;四节 project1.cpp&#xff1a;nginx中创建worker子进程&#xff1b; //nginx中创建worker子进程 //官方nginx ,一个…

为“自研”的KV数据库编写JDBC驱动

一觉醒来&#xff0c;受到梦的启发&#xff0c;自研了一套K/V数据库系统&#xff0c;因为"客户"一直催促我提供数据库的JDBC驱动&#xff0c;无奈之下&#xff0c;只好花费一个上午的时间为用户编写一个。 我们知道&#xff0c;JDBC只定义一系列的接口, 具体的实现需…

python 利用xpath 爬取一周天气

需求&#xff1a; 爬取 中国天气网指定城市一周的天气&#xff0c;以天津为例 实现&#xff1a; 1&#xff0c;先找到一周的数据位置。 divs html.xpath("//div[classhanml]") 2&#xff0c;再遍历每天。 trs div.xpath("./div/div[2]/table//tr[position…

springboot实战---5.最简单最高效的后台管理系统开发

&#x1f388;个人主页&#xff1a;靓仔很忙i &#x1f4bb;B 站主页&#xff1a;&#x1f449;B站&#x1f448; &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;SpringBoot &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&…

JS详解-设计模式

工厂模式&#xff1a; 单例模式&#xff1a; // 1、定义一个类class SingleTon{// 2、添加私有静态属性static #instance// 3、添加静态方法static getInstance(){// 4、判断实例是否存在if(!this.#instance){// 5、实例不存在&#xff0c;创建实例this.#instance new Single…

蓝桥备赛——前缀和

题干 我的 Code(50%样例) 对于上述题目的思路,我的想法是使用两个list存储对应的索引,一个存储头索引,一个存储结束索引。 然后使用全排列,计算所有列表元素之间的索引差,大于等于k的作为符合条件的,使用count计数器加一。 k=int(input()) s,c1,c2=map(str,input()…

FebHost:什么是土耳其.TR域名?

当前互联网高速发展,一个国家的顶级域名已成为其网络形象的重要标识。近期,土耳其国家顶级域名”.TR”引起了广泛关注,成为业界热议的话题。 作为代表土耳其共和国的国家顶级域名(ccTLD),.TR域名于1991年首次引入,由土耳其科技和信息技术部负责管理。除了常见的”.com.tr”、”…

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

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