当前位置: 首页 > news >正文

【软件工程】测试规格

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

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

相关文章:

【软件工程】测试规格

1. 引言 1.1简介 本次的测试用例是基于核心代码基本开发完毕&#xff0c;在第一代系统基本正常运行后编写的&#xff0c;主要目的是为了后续开发与维护的便利性。 该文档主要受众为该系统后续开发人员&#xff0c;并且在阅读此文档前最后先阅读本系统的需求文档、概要设计文…...

Nginx中间件服务:负载均衡(调度算法)

文章目录 引言I 原理1.1 后端服务器在负载均衡调度中的状态1.2 调度算法II upstreamd的应用2.1 加权负载均衡的服务器列表2.2 AB测试中使用upstream切分流量2.3 基于URL的HASH2.4 IP_HASHsee also引言 作用 转发功能:按照一定的调度算法(轮询、权重)将客户端发来的请求转发…...

dm8数据迁移工具DTS

dm8数据迁移工具DTS DTS工具介绍 DM数据迁移工具提供了主流大型数据库迁移到DM、DM到DM、文件迁移到DM以及DM迁移到文件的功能。DM数据迁移工具采用向导方式引导用户通过简单的步骤完成需要的操作。 DM数据迁移工具支持&#xff1a; ◆ 主流大型数据库Oracle、SQLServer、MyS…...

【QT教程】QML与C++的交互

主页 软件开发 QT6 QML高级编程补天云火鸟自动化创作平台您能够创建大约3000 个短视频一天可以轻松创建多达 100 个视频 QML与C的交互 使用AI技术辅助生成 【QT免费公开课】您可以到这里观看大量的QT视频课程 【QT付费视频课程】QT QML C 高级扩展开发 目录 1 QML与C的交互…...

idea maven 打包 内存溢出 报 GC overhead limit exceeded -> [Help 1]

idea 使用maven打包 报GC overhead limit exceeded -> [Help 1] 解决方法&#xff1a; 打开settings -> 点开如同所示 将 vm Options 参数 设为 -Xmx8g...

wordpress全站开发指南-面向开发者及深度用户(全中文实操)--创建新主题

前言 你可以在wordpress里面下载使用人家打包好的主题&#xff0c;但可能不是很好用&#xff0c;接下来就自己做一个自己的主题。你需要先找到xampp文件夹–htdocs–wordpress(我给更名为wplocal)–wp-content–themes 进入该文件夹之后你可以看到你之前下载导入的所有主题文件…...

docker从入门到熟悉

一、什么是docker&#xff1f; Docker是一个用于开发&#xff0c;交付和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分开&#xff0c;从而可以快速交付软件。借助Docker&#xff0c;您可以以与管理应用程序相同的方式来管理基础架构。通过利用Docker的快速交付…...

国家开放大学《消费者权益保护法》形考任务答案

答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 消费者田女士买回一盒饼干价格20元&#xff0c;准备给小孩吃…...

element-ui card 组件源码分享

今日简单分享 card 组件源码&#xff0c;主要从以下两个方面&#xff1a; 一、card 组件页面结构 二、card 组件属性 2.1 header 属性&#xff0c;设置 header&#xff0c;也可以通过 slot#header 传入 DOM&#xff0c;类型 string&#xff0c;无默认值。 组件使用部分&#…...

MPLS基本转发过程,隧道特性、对TTL的处理、BGP路由黑洞

MPLS基本转发过程&#xff0c;隧道特性 标签操作类型包括标签压入&#xff08;Push&#xff09;、标签交换&#xff08;Swap&#xff09;和标签弹出&#xff08;Pop&#xff09;&#xff0c;它们是标签转发的基本动作。 倒数第二跳弹出特性PHP&#xff08;Penultimate Hop Popp…...

ubuntu16.04安装vscode那些事

1)安装deb包。 用ftp传输到ubuntu后&#xff0c;进入ftp的目录下&#xff0c; sudo dpkg -i code_1.32.3-1552606978_amd64.deb 安装完成后&#xff0c;进入/usr/share/applications/&#xff0c;找到vscode的图标&#xff0c;右键&#xff0c; copy to &#xff0c;选择deskt…...

分类预测 | Matlab实现TCN-BiGRU-Mutilhead-Attention时间卷积双向门控循环单元多头注意力机制多特征分类预测/故障识别

分类预测 | Matlab实现TCN-BiGRU-Mutilhead-Attention时间卷积双向门控循环单元多头注意力机制多特征分类预测/故障识别 目录 分类预测 | Matlab实现TCN-BiGRU-Mutilhead-Attention时间卷积双向门控循环单元多头注意力机制多特征分类预测/故障识别分类效果基本介绍模型描述程序…...

不重复数字

map就感觉很舒服 题目描述 给定 n 个数&#xff0c;要求把其中重复的去掉&#xff0c;只保留第一次出现的数。 输入格式 本题有多组数据。 第一行一个整数 T&#xff0c;表示数据组数。 对于每组数据&#xff1a; 第一行一个整数 n。 第二行 n 个数&#xff0c;表示给定的数。…...

C# 访问修饰符 默认

命名空间下的元素&#xff1a;类&#xff08;Class&#xff09;中的成员&#xff1a;结构&#xff08;Struct&#xff09;中的成员&#xff1a;接口&#xff08;Interface&#xff09;中的成员&#xff1a;接口&#xff08;Interface&#xff09;本身&#xff1a;枚举&#xff…...

使用向量检索和rerank 在RAG数据集上实验评估hit_rate和mrr

文章目录 背景简介代码实现自定义检索器向量检索实验向量检索和rerank 实验 代码开源 背景 在前面部分 大模型生成RAG评估数据集并计算hit_rate 和 mrr 介绍了使用大模型生成RAG评估数据集与评估&#xff1b; 在 上文 使用到了BM25 关键词检索器。接下来&#xff0c;想利用向…...

Java栈和队列的实现

目录 一.栈(Stack) 1.1栈的概念 1.2栈的实现及模拟 二.队列(Queue) 2.1队列的概念 2.2队列的实现及模拟 2.3循环队列 2.4双端队列&#xff08;Deque&#xff09; 一.栈(Stack) 1.1栈的概念 栈:一种特殊的线性表&#xff0c;其 只允许在固定的一端进行插入和删除元素操作…...

我的C++奇迹之旅:内联函数和auto关键推导和指针空值

文章目录 &#x1f4dd;内联函数&#x1f320; 查看内联函数inline方式&#x1f309;内联函数特性&#x1f309;面试题 &#x1f320;auto关键字(C11)&#x1f320; auto的使用细则&#x1f309;auto不能推导的场景 &#x1f320;基于范围的for循环(C11)&#x1f320;范围for的…...

Redis主从集群-主从复制(通俗易懂)

为什么要搭建主从集群&#xff1f; 单节点Redis的并发能力是有上限的&#xff0c;要进一步提高Redis的并发能力&#xff0c;可以搭建主从集群&#xff0c;实现读写分离。一般都是一主多从&#xff0c;主节点负责写数据&#xff0c;从节点负责读数据&#xff0c;主节点写入数据…...

【C++算法竞赛 · 图论】图论基础

前言 图论基础 图的相关概念 图的定义 图的分类 按数量分类&#xff1a; 按边的类型分类&#xff1a; 边权 简单图 度 路径 连通 无向图 有向图 图的存储 方法概述 代码 复杂度 前言 图论&#xff08;Graph theory&#xff09;&#xff0c;是 OI 中的一样很大…...

Java解析实体类的属性和属性注释

前言 获取某个类的属性&#xff08;字段&#xff09;是我们经常都会碰到的&#xff0c;通常我们是通过反射来获取的。 但是有些特殊情况下&#xff0c;我们不仅要获取类的属性&#xff0c;还需要获取属性注释。这种情况下&#xff0c;我们只能通过注解去获取注释。可以自己定…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代&#xff0c;海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构&#xff0c;在处理大规模数据抓取任务时展现出强大的能力。然而&#xff0c;随着业务规模的不断扩大和数据抓取需求的日益复杂&#xff0c;传统…...

Vue ③-生命周期 || 脚手架

生命周期 思考&#xff1a;什么时候可以发送初始化渲染请求&#xff1f;&#xff08;越早越好&#xff09; 什么时候可以开始操作dom&#xff1f;&#xff08;至少dom得渲染出来&#xff09; Vue生命周期&#xff1a; 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...

ui框架-文件列表展示

ui框架-文件列表展示 介绍 UI框架的文件列表展示组件&#xff0c;可以展示文件夹&#xff0c;支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项&#xff0c;适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...

高端性能封装正在突破性能壁垒,其芯片集成技术助力人工智能革命。

2024 年&#xff0c;高端封装市场规模为 80 亿美元&#xff0c;预计到 2030 年将超过 280 亿美元&#xff0c;2024-2030 年复合年增长率为 23%。 细分到各个终端市场&#xff0c;最大的高端性能封装市场是“电信和基础设施”&#xff0c;2024 年该市场创造了超过 67% 的收入。…...