[toc]

1. 测试用例来源概述

测试用例主要来源于:

  1. 等价类划分法
  2. 边界值分析法
  3. 错误推测法
  4. 因果图法
  5. 判定表驱动法
  6. 正交试验法
  7. 功能图法
  8. 场景图法

本次软件测试使用到的软件测试技术总结:

2. 功能测试

本测试选择

  • 等价类分析
  • 边界值分析
  • 随机数生成

初步的等价类划分:

  1. 有效类:
    • 4-26个变量
    • 两种布尔表达式符号!+(+不在正前方)
  2. 无效类:
    • 包含数字,符号的表达式,
    • 0-4个变量的布尔表达式
    • +在最前方的布尔表达式;

考虑到实际情况,生成的卡诺图如果太复杂也应该被视作无效等价类,所以进一步的等价类划分

  1. 有效类:
    • 4-10个变量
    • 两种布尔表达式符号!+(+不在正前方)
  2. 无效类:
    • 11-26个变量的布尔表达式
    • 包含数字,符号的表达式,
    • 0-4个变量的布尔表达式
    • +在最前方的布尔表达式;

边界值分析: - 0,1 - 3,4,5 - 9,10,11 - 25,26 个变量组成的布尔表达式

随机数生成: 在有效等价类区间[4-10]与无效等价类区间[0-4][4-10]各生成1个随机数作为测试用例中布尔表达式中的变量个数

2.1. 测试用例生成

2.1.1. 卡诺图绘制

2.1.1.1. 无效等价类
测试用例编号功能-T1
测试项目卡诺图绘制功能
重要级别
预置条件系统启动
输入
操作步骤1.测试用例生成页面不输入
2.点击提交按钮
3.生成卡诺图
预期输出弹出”输入表达式不为空”的提示框
测试用例编号功能-T1
测试项目卡诺图绘制功能
重要级别
预置条件系统启动
输入
操作步骤1.测试用例生成页面不输入
2.点击提交按钮
3.生成卡诺图
预期输出弹出”输入表达式不为空”的提示框
测试用例编号功能-T2
测试项目卡诺图绘制功能
重要级别
预置条件系统启动
输入a
操作步骤1.测试用例生成页面输入表达式a
2.点击提交按钮
3.生成卡诺图
预期输出
测试用例编号功能-T3
测试项目卡诺图绘制功能
重要级别
预置条件系统启动
输入a+b+c
操作步骤1.测试用例生成缺陷诊断页面输入表达式a+b+c
2.点击提交按钮
3.生成卡诺图
预期输出
测试用例编号功能-T4
测试项目卡诺图绘制功能
重要级别
预置条件系统启动
输入ab+c
操作步骤1.测试用例生成缺陷诊断页面输入表达式ab+c
2.点击提交按钮
3.生成卡诺图
预期输出
测试用例编号功能-T5
测试项目卡诺图绘制功能
重要级别
预置条件系统启动
输入ab+cd+ef+ghijk
操作步骤1.测试用例生成页面输入表达式ab+cd+ef+bqlgq
2.点击提交按钮
3.生成卡诺图
预期输出
测试用例编号功能-T6
测试项目卡诺图绘制功能
重要级别
预置条件系统启动
输入ab+cd+ef+ghijklmnopqrstuvwxyz
操作步骤1.测试用例生成页面输入表达式ab+cd+ef+ghijklmnopqrstuvwxyz
2.点击提交按钮
3.生成卡诺图
预期输出显示出眼花缭乱的效果或弹出”变量太多不予支持”对话框
测试用例编号功能-T7
测试项目卡诺图绘制功能
重要级别
预置条件系统启动
输入ab+cd+ef+ghi+jklmn+opqr+stuv+wxy
操作步骤1.测试用例生成页面输入表达式ab+cd+ef+ghi+jklmn+opqr+stuv+wxy
2.点击提交按钮
3.生成卡诺图
预期输出显示出眼花缭乱的效果或弹出”变量太多不予支持”对话框
测试用例编号功能-T8
测试项目卡诺图绘制功能
重要级别
预置条件系统启动
输入+abcd
操作步骤1.测试用例生成页面输入表达式+abcd
2.点击提交按钮
3.生成卡诺图
预期输出弹出”+不应在布尔表达式首部”
测试用例编号功能-T9
测试项目卡诺图绘制功能
重要级别
预置条件系统启动
输入ab+cd+4
操作步骤1.测试用例生成页面输入表达式ab+cd+4
2.点击提交按钮
3.生成卡诺图
预期输出
测试用例编号功能-T10
测试项目卡诺图绘制功能
重要级别
预置条件系统启动
输入
操作步骤1.测试用例生成页面输入表达式ab*cd
2.点击提交按钮
3.生成卡诺图
预期输出
2.1.1.2. 有效等价类
测试用例编号功能-T11
测试项目卡诺图绘制功能
重要级别
预置条件系统启动
输入ab+cd
操作步骤1.测试用例生成页面输入表达式ab+cd
2.点击提交按钮
3.生成卡诺图
预期输出
测试用例编号功能-T12
测试项目卡诺图绘制功能
重要级别
预置条件系统启动
输入ab+cde
操作步骤1.测试用例生成页面输入表达式ab+cde
2.点击提交按钮
3.生成卡诺图
预期输出
测试用例编号功能-T13
测试项目卡诺图绘制功能
重要级别
预置条件系统启动
输入!abcd
操作步骤1.测试用例生成页面输入表达式!abcd
2.点击提交按钮
3.生成卡诺图
预期输出
测试用例编号功能-T14
测试项目卡诺图绘制功能
重要级别
预置条件系统启动
输入ab+cdef+ghkl
操作步骤1.测试用例生成页面输入表达式ab+cdef+ghkl
2.点击提交按钮
3.生成卡诺图
预期输出正常显示卡诺图
测试用例编号功能-T15
测试项目卡诺图绘制功能
重要级别
预置条件系统启动
输入a+b+c+d+e+d+f+g+h
操作步骤1.测试用例生成页面输入表达式abcde+dfghk
2.点击提交按钮
3.生成卡诺图
预期输出
测试用例编号功能-T16
测试项目卡诺图绘制功能
重要级别
预置条件系统启动
输入ab+cd+e
操作步骤1.测试用例生成页面输入表达式ab+cd+e,
2.点击提交按钮
3.生成卡诺图
预期输出
测试用例编号功能-T17
测试项目卡诺图绘制功能
重要级别
预置条件系统启动
输入!(ab+cd+el+gh+f)
操作步骤1.测试用例生成页面输入表达式!(ab+cd+el+gh+f) ,
2.点击提交按钮
3.生成卡诺图
预期输出
测试用例编号功能-T18
测试项目卡诺图绘制功能
重要级别
预置条件系统启动
输入!(ab+cd+el)+!k+!zzzx
操作步骤1.测试用例生成页面输入表达式!(ab+cd+el)+!k+!zzzx,
2.点击提交按钮
3.生成卡诺图
预期输出

2.2. 缺陷诊断

有效等价类: 原表达式中的单缺陷与双缺陷

无效等价类: 多缺陷和无缺陷类型

2.2.1. 单缺陷诊断

测试用例编号功能-T19
测试项目单缺陷诊断
重要级别
预置条件系统启动
输入/
操作步骤1.缺陷诊断页面输入表达式/
2.点击诊断按钮
预期输出(不会清空上一次的结果不是这个特殊的用例带来的)
测试用例编号功能-T20
测试项目单缺陷诊断
重要级别
预置条件系统启动
输入ab+cd !abc+de
操作步骤1.缺陷诊断页面输入表达式ab+cd !abc+de,
2.点击提交按钮
3.生成卡诺图
预期输出缺陷诊断正常

2.2.2. 双缺陷诊断

测试用例编号功能-T21
测试项目双缺陷诊断
重要级别
预置条件系统启动
输入ab+cd !ab+!cd
操作步骤1.缺陷诊断页面输入表达式ab+cde !ab+!cd+!e
2.点击提交按钮
3.生成卡诺图
预期输出(忽略乱码,不是这次测试用例特殊带来的)
测试用例编号功能-T22
测试项目双缺陷诊断
重要级别
预置条件系统启动
输入ab+cde !ab+!cd+!e
操作步骤1.缺陷诊断页面输入表达式ab+cde !ab+!cd+!e
2.点击提交按钮
3.生成卡诺图
预期输出正常显示双缺陷

2.3. 变体生成

测试用例编号功能-T23
测试项目变体生成—LNF-词取反
重要级别
预置条件系统启动
输入/
操作步骤1.变体生成页面输入表达式空
2.点击提交按钮
3.生成卡诺图
预期输出
测试用例编号功能-T24
测试项目变体生成—LNF-词取反
重要级别
预置条件系统启动
输入!ab+cd
操作步骤1.变体生成页面输入表达式!ab+cd
2.设置单缺陷,LNF‐词取反
3.点击ab+cd的绘制按钮
预期输出

2.4. 层次关系展示

测试用例为沿着导航遍历的各个可行的操作.

测试用例编号功能-T25
测试项目层次关系展示
重要级别
预置条件系统启动
输入各个点击
操作步骤1.打开层次关系展示‐‐>收扩型⋈1收缩型与收扩型⋈1收扩型(1)‐‐2.点击界面中的圆或半圆
预期输出动画的正常展示
测试用例编号功能-T26
测试项目层次关系展示
重要级别
预置条件系统启动
输入各个点击-调整页面为半屏
操作步骤1.打开层次关系展示‐‐>02.扩张型⋈1收扩型与扩张型⋈1收扩型‐‐页面调整为半屏
预期输出动画的正常展示

2.5. 用户管理与历史记录

有效类: 已保存在数据库中的数据 无效类: 数据库中没有的数据

2.5.1. 注册登录修改个人信息

测试用例编号功能-T27
测试项目注册登录
重要级别
预置条件系统启动
输入注册信息
操作步骤注册登录
预期输出正常注册登录
测试用例编号功能-T28
测试项目重新注册登录
重要级别
预置条件系统启动
输入注册信息
操作步骤注册登录
预期输出允许重新注册
测试用例编号功能-T29
测试项目更新个人信息
重要级别
预置条件系统启动
输入注册信息
操作步骤更新个人信息
预期输出允许更新信息并保存
测试用例编号功能-T30
测试项目输入个人信息
重要级别
预置条件系统启动
输入注册信息
操作步骤更新个人信息
预期输出按页面提示操作正常
测试用例编号功能-T31
测试项目找回密码功能
重要级别
预置条件系统启动
输入找回密码步骤
操作步骤1.点击”忘记密码” 2.输入”注册邮箱” 3.填入”验证码” 4.输入新密码
预期输出按页面提示操作正常

2.5.2. 历史记录查询

测试用例编号功能-T29
测试项目历史记录
重要级别
预置条件系统启动
输入/
操作步骤1.登录
2.一些常规操作
3.搜索框输入”e”搜索
4.查看搜索结果
预期输出显示布尔表达式中与”e”匹配的历史的操作与结果
测试用例编号功能-T30
测试项目历史记录
重要级别
预置条件系统启动
输入/
操作步骤1.登录
2.一些常规操作
3.点击历史记录按钮
4.点击页面上显示的历史记录
预期输出显示历史的操作与结果

2.5.3. 历史记录删除

测试用例编号功能-T31
测试项目历史记录
重要级别
预置条件系统启动
输入/
操作步骤1.登录
2.一些常规操作
3.点击历史记录删除按钮
预期输出刷新并删除历史的操作与结果并

3. 配置测试

3.1. 概述

配置测试是在各种硬件和软件平台类型以及不同设置情况下检查软件运行的过程

3.2. 目标

保证系统在不同浏览器及其不同配置下能正常运行

配置测试的检查项

检查项测试人员评价
系统可以运行在不同的操作系统下吗?
系统可以运行在不同的浏览器下吗?
系统可以运行在不同的处理器下吗?
系统运行在不同的RAM下有何影响?

3.3. 生成测试用例

3.3.1. 资源配置

小组共有两台电脑,一台16GMac,一台12GWindows 10,可勉强满足不同的操作系统/浏览器/处理器/RAM要求.

3.3.2. 生成步骤

  1. 考虑前后端软硬件分别:
  • 前端:浏览器类型,屏幕分辨率
  • 后端:CPU,RAM

后端硬件如图: 因为目前可视化系统只能在Windows平台上运行,考虑到重新安装windows虚拟机颇为麻烦,同时之前已经测试过windows32位是可行,故这次测试不将操作系统纳入因子范围。限于设备原因,屏幕分辨率采用自行调节的方式. 实际上浏览器有很多种型号,可以最好采用Selemium这种自动化工具来模拟人为的测试操作,将节省对于环境和切换的大量人力物力. 本次从学习的角度,配置测试从简出发.

  1. 因素状态表
状态/因素A浏览器类型B屏幕分辨率C CPUD RAM
0Chrome1920*1080i5-8275U4G
1Edge1680*1050i5-6700H12G
  1. 将中文转换为字母,便于设计
状态/因素A浏览器类型B屏幕分辨率C CPUD RAM
0A1B1C1D1
1A2B2C2D2
  1. 使用正交组合的方法生成测试用例

参数是4因素,2水平.选择正交表时尽量让其与因素数和水平数吻合,因素数要一致,水平数考虑出现最多的水平数.这里选择: 用字母代替正交矩阵,5,6,7列去掉没有意义

行\列号1234567
1A1B1C1D1
2A1B1C1D2
3A1B2C2D1
4A1B2C2D2
5A2B1C2D1
6A2B1C2D2
7A2B2C1D1
8A2B2C1D2

所以最后生成了以上8组测试用例

3.4. 测试用例

测试用例编号配置-T1
执行人员王艺辉
测试项目内配置测试
重要级别
预置条件Chrome,分辨率1920*1080,CPUi5-6700H,RAM4G
输入/
操作步骤1.打开可视化系统界面,观察是否能正常运行;
2.输入原表达式,观察是否能正常绘制卡诺图;
3.输入待测表达式,观察是否有动画生成
说明输出可以成功运行
测试用例编号配置-T2
执行人员王艺辉
测试项目内配置测试
重要级别
预置条件Chrome,分辨率1920*1080,CPUi5-6700H,RAM12G
输入/
操作步骤1.打开可视化系统界面,观察是否能正常运行;
2.输入原表达式,观察是否能正常绘制卡诺图;
3.输入待测表达式,观察是否有动画生成
说明输出可以成功运行
测试用例编号配置-T3
执行人员王艺辉
测试项目内配置测试
重要级别
预置条件Chrome,分辨率1680*1050,CPUi5-8265U,RAM4G
输入/
操作步骤1.打开可视化系统界面,观察是否能正常运行;
2.输入原表达式,观察是否能正常绘制卡诺图;
3.输入待测表达式,观察是否有动画生成
说明输出可以成功运行
测试用例编号配置-T4
执行人员王艺辉
测试项目内配置测试
重要级别
预置条件Chrome,分辨率1680*1050,CPUi5-8265U,RAM12G
输入/
操作步骤1.打开可视化系统界面,观察是否能正常运行;
2.输入原表达式,观察是否能正常绘制卡诺图;
3.输入待测表达式,观察是否有动画生成
说明输出可以成功运行
测试用例编号配置-T5
执行人员王艺辉
测试项目内配置测试
重要级别
预置条件Edge,分辨率1920*1080,CPUi5-8265U,RAM4G
输入/
操作步骤1.打开可视化系统界面,观察是否能正常运行;
2.输入原表达式,观察是否能正常绘制卡诺图;
3.输入待测表达式,观察是否有动画生成
说明输出可以成功运行
测试用例编号配置-T6
执行人员王艺辉
测试项目内配置测试
重要级别
预置条件Edge,分辨率1920*1080,CPUi5-8265U,RAM12G
输入/
操作步骤1.打开可视化系统界面,观察是否能正常运行;
2.输入原表达式,观察是否能正常绘制卡诺图;
3.输入待测表达式,观察是否有动画生成
说明输出可以成功运行
测试用例编号配置-T7
执行人员王艺辉
测试项目内配置测试
重要级别
预置条件Edge,分辨率1920*1080,CPUi5-6700H,RAM4G
输入/
操作步骤1.打开可视化系统界面,观察是否能正常运行;
2.输入原表达式,观察是否能正常绘制卡诺图;
3.输入待测表达式,观察是否有动画生成
说明输出可以成功运行
测试用例编号配置-T8
执行人员王艺辉
测试项目内配置测试
重要级别
预置条件Edge,分辨率1680*1050,CPUi5-8265U,RAM12G
输入/
操作步骤1.打开可视化系统界面,观察是否能正常运行;
2.输入原表达式,观察是否能正常绘制卡诺图;
3.输入待测表达式,观察是否有动画生成
说明输出可以成功运行

4. 接口测试

相当于组件级测试中的后端测试,包括接口名称、传入参数的个数、类型、顺序等是否与模块接口匹配;以及模块返回值或类型等是否正确.主要是 postman选择GetPost方法,post则输入key-value. 对于接口测试而言,与前端功能测试其实结合紧密,一般前端交互无误,后端接口则无问题;反之,则可从前往后排查.

测试用例编号接口-T1
执行人员王艺辉
测试项目接口测试
重要级别
预置条件系统启动
输入http://127.0.0.1:3000/testcase?value=a
操作步骤1.postman中输入url
2.输入value:a
预期输出前端做校验或者后端返回错误代码
测试用例编号接口-T2
执行人员王艺辉
测试项目接口测试
重要级别
预置条件系统启动
输入http://127.0.0.1:3000/testcase?value={ab+cd}[{“key”:“value”,“value
操作步骤1.postman中输入url
2.输入value:{ab+cd}[{“key”:“value”,“value”
预期输出前端做校验或者后端返回错误代码
测试用例编号接口-T3
执行人员王艺辉
测试项目接口测试
重要级别
预置条件系统启动
输入http://127.0.0.1:3000/testcase?=ab+cd
操作步骤1.postman中输入url
2.输入value:ab+cd
预期输出
测试用例编号接口-T4
执行人员王艺辉
测试项目接口测试
重要级别
预置条件系统启动
输入http://127.0.0.1:3000/testcase?=ab+cd+ef+ghijklmnopqrstuvwxyz
操作步骤1.postman中输入url
2.输入value:ab+cd+ef+ghijklmnopqrstuvwxyz
预期输出前端做校验或者后端返回错误代码
测试用例编号接口-T5
执行人员王艺辉
测试项目接口测试
重要级别
预置条件系统启动
输入http://127.0.0.1:3000/ajaxjs?=ab+cd abcd
操作步骤1.postman中输入url
2.输入value:ab+cd
预期输出
测试用例编号接口-T6
执行人员王艺辉
测试项目接口测试
重要级别
预置条件系统启动
输入http://127.0.0.1:3000/changeJson?=ab+cd%20!ab+cd
操作步骤1.postman中输入url
2.输入key-value:ab+cd !ab+cd
预期输出
测试用例编号接口-T7
执行人员王艺辉
测试项目接口测试
重要级别
预置条件系统启动
输入http://127.0.0.1:3000/changeJson?=ab+cd+ef%20 ab+cde
操作步骤1.postman中输入url
2.输入key-value:ab+cd+ef !ab+cde
预期输出
测试用例编号接口-T6
执行人员王艺辉
测试项目接口测试
重要级别
预置条件系统启动
输入http://127.0.0.1:3000/changeJson?=ab+cd+ef%20 abc+d+ef
操作步骤1.postman中输入url
2.输入key-value:ab+cd+ef !abc+de+ef
预期输出
测试用例编号接口-T8
执行人员王艺辉
测试项目接口测试
重要级别
预置条件系统启动
输入http://127.0.0.1:3000/faultDetect 和其他参数
操作步骤1.postman中输入url
2.分别输入key-value:“express”:{“0”:“ab+cd”},“expressType”:“Single”,“faultExpress”:“null”,“faultType”:{“0”:“LNF”},“opType”:“detect”
预期输出
测试用例编号接口-T9
执行人员王艺辉
测试项目接口测试
重要级别
预置条件系统启动
输入http://localhost:3000/doRegister和其他参数
操作步骤1.postman中输入url
2.输入value:“username”:“yihui”,“password”:“123456”,“rePassword”:“123456”,“email”:“[email protected]
预期输出返回页面的html代码
测试用例编号接口-T10
执行人员王艺辉
测试项目接口测试
重要级别
预置条件系统启动
输入http://localhost:3000/doRegister和其他参数
操作步骤1.postman中输入url
2.输入value:“username”:“yihui”,“password”:“123456”,“rePassword”:“123456”,“email”:“[email protected]
预期输出返回页面的html代码
测试用例编号接口-T11
执行人员王艺辉
测试项目接口测试
重要级别
预置条件系统启动
输入
操作步骤1.
2.点击发送
预期输出404Not Found或返回错误信息
测试用例编号接口-T12
执行人员王艺辉
测试项目接口测试
重要级别
预置条件系统启动
输入http://localhost:3000/doLogin和其他参数
操作步骤1.postman中输入url
2.输入value:“username”:“yihui”,“password”:“123456”
预期输出返回页面的html代码
测试用例编号接口-T13
执行人员王艺辉
测试项目接口测试
重要级别
预置条件系统启动
输入http://localhost:3000/users/verification_code?email=123.com
操作步骤1.postman中输入url
2.输入key-value:email=123.com
预期输出
测试用例编号接口-T14
执行人员王艺辉
测试项目接口测试
重要级别
预置条件系统启动
输入http://localhost:3000/users/updatePassword和其他参数
操作步骤1.postman中输入url
2.输入key-value:“email”:“[email protected]”,“code”:“2020”,“newPassword”:“1234567”
预期输出
测试用例编号接口-T15
执行人员王艺辉
测试项目接口测试
重要级别
预置条件系统启动
输入http://localhost:3000/biantiUsers/getSession
操作步骤1.postman中输入url
2.确定是Get方法
预期输出
测试用例编号接口-T16
执行人员王艺辉
测试项目接口测试
重要级别
预置条件系统启动
输入http://localhost:3000/userInfo/logout
操作步骤1.postman中输入url
2.确定Get方法
预期输出

5. 性能测试

这是一个计划外的测试,主要是在长时间使用过程中发现的问题.

测试用例编号性能-T1
执行人员王艺辉
测试项目性能测试
重要级别
预置条件系统启动
输入10小时连续使用系统
操作步骤打开系统,持续进行近百个测试用例操作
预期输出系统一如初始性能良好

6. 回归测试

回归测试主要是在过程中提交并解决bug后判断修复bug对系统带来的影响,保证不引入新的缺陷. 考虑到测试项目的有限性,全量测试.以下表明没有修复的Bug或者部分修复或者又带来新问题的Bug.

6.1. 功能测试

6.1.1. 功能-B2

完全没有修复

6.1.2. 功能-B4

更改前后动画展示不一样,且动画显示”有效子集”需要多次点击 Honeytucam 2020-06-14 10-00-34

6.1.3. 功能-B6

系统会卡死

6.1.4. 功能-B7

6.1.5. 功能-B8

返回”testcase”,并且没有生成卡洛图

6.1.6. 功能-B9

半屏仍然无法自适应

6.1.7. 功能-B10

修复了提示功能,但是没有清空屏幕

6.1.8. 功能-B12

默认情况下生成的卡诺图不在屏幕里 Honeycam 2020-06-14 10-22-15

6.1.9. 功能-B13

历史记录进入后空白 Honeycam 2020-06-13 21-56-46

6.1.10. 功能B-14

仅修复了可以移动的Bug

6.1.11. 功能-B15

完全没有修改 注册页面除了”返回上一级”和”确认密码”框,其他都不能使用

6.1.12. 功能-B17

没有修改

6.1.13. 功能B-19

历史记录搜索功能仍旧不能使用 Honeycam 2020-06-13 21-55-07

6.2. 接口测试

6.2.1. 接口-B2

双缺陷诊断接口返回不正确

6.2.2. 接口-B3

接口为空时报服务器内部错误且使得后续

6.3. 新增Bug

6.3.1. 功能测试

6.3.1.1. 功能-B18

6.3.2. 接口测试

6.3.2.1. 接口-B5
6.3.2.2. 接口-B6
6.3.2.3. 接口-B8

6.3.3. 配置测试

6.3.3.1. 配置-B1