设计测试用例(万能思路 + 六种设计用例方法)(详细 + 图解 + 实例)_测试用例设计-程序员宅基地

技术标签: 测试用例  测试  

目录

一、设计测试用例的万能思路

二、设计用例的方法

1. 等价类

2. 边界值

3. 判定表法

4. 正交法

5. 场景设计法

6. 错误猜测法


 

一、设计测试用例的万能思路

        针对某个物品/功能进行测试。

万能思路:功能测设 + 界面测试 + 性能测试 + 兼容性测试 + 易用性测试 + 安全测试

 

 总结:

功能测试:

  水杯:装水、喝水...

  注册场景:注册 + 登录

        想象日常使用中的注册场景有哪些功能。

界面测试:

  非软件:颜色、形状、大小、材质、整体

  软件:

  • 文字/输入框/图片/下拉框 ——> 颜色、大小、形状、布局都要进行测试;
  • 文字是否存在错别字、病句、折叠、重叠...

性能测试:

  水杯:耐热性、耐寒性、耐摔性、抗压性...

  软件:

  • 响应时间
  • 几千万人同时访问...

兼容性测试:

  水杯:水杯可以装液体,针对不同液体。

  软件:

  • 系统:Linux、Windows、Mac;
  • 终端:PC、移动端
  • 浏览器:Chrome、FireFox、Safari...

易用性测试:

  需要具备便捷、简单易上手的属性,用户引导、符合用户使用习惯。

安全测试:

  水杯:

  • 水杯的材质是否安全;
  • 特殊情况下(高温低温)材质是否会释放毒性;
  • 存放特殊的液体会不会导致化学反应,材质是否会释放毒性;

  软件:

  • SQL注入
  • XSS漏洞
  • 越权(垂直越权、水平越权)

二、设计用例的方法

        针对手撕代码、明确额需求、项目来设计测试用例。

1. 等价类

        等价类是分块/分区的概念。将需求的输入划分若干个等价类,从等价类中选出一个测试用例,如果这个测试用例通过,则认为这整个等价类就通过。

        通过等价类可以用较少的测试用例就可以尽可能多的覆盖功能,可以解决穷举法解决不了的问题。

有效等价类:针对需求文档是合理的、有意义的集合。

无效等价类:针对需求文档是没有意义的集合。

使用步骤:

1. 确定有效等价类和无效等价类;

2. 编写测试用例。

假设需求:姓名输入6~200位的字符

有效等价类:输入6~200位的字符

无效等价类:输入小于6位 或 大于200 位的字符

2. 边界值

        可以认为是等价类的补充,在等价类的基础上添加边界值和次边界值的测试用例。

假设需求:姓名输入6~200位的字符。

边界值:输入6位的字符,输入200位的字符;

次边界值:输入5位的字符,输入7位的字符;输入199位字符,输入201位字符。

3. 判定表法

        (因果图法)通过输入条件和输出动作之间的关系,设定判定表,再根据判定表编写测试用例。

使用步骤:

1. 确定输入条件和输出结果;

2. 找出输入条件和输出结果之间的关系;

3. 画判定表;

4. 根据判定表编写测试用例

假设需求: 提交订单,当订单金额大于300或有红包时,是有优惠的。

1. 确定输入条件和输出结果

        输入条件:金额大于300、有红包、提交订单;

        输出结果:有优惠、无优惠;

2. 输入条件和输出结果之间的关系:

        (为了方便书写,这里将金额大于300定为A,有红包定为B,提交订单定为C;有优惠定为1,无优惠定为2)

AC BC ABC A B C AB 非ABC
1 1 1 2 2 2 2

2

3. 画判定表

4. 根据判定表编写测试用例

(1)金额大于300,没有红包,提交了订单,则该订单为有优惠订单;

(2)金额不大于300,有红包,提交了订单,则该订单为有优惠订单;

(3)金额大于300,有红包,提交了订单,则该订单为有优惠订单;

(4)金额大于300,没有红包,没有提交订单,则该订单为无优惠订单;

(5)金额不大于300,有红包,没有提交订单,则该订单为无优惠订单;

(6)金额不大于300,没有红包,提交了订单,则该订单为无优惠订单;

(7)金额大于300,有红包,没有提交订单,则该订单为无优惠订单;

(8)金额不大于300,没有红包,没有提交订单,则该订单为无优惠订单;

注意:

        在因果图法里,也是通过确定输入条件和输出结果来画出因果图(比较复杂难),然后再根据因果图画出判定表。因此这里直接通过输入条件和输出结果的关系确定了判定表,然后再编写测试用例。

4. 正交法

        通过构造正交表编写测试用例。

正交表表达式:L4(2³ )

L:正交表;

4:试验次数(测试用例的个数)

2:因素数(输入条件)

3:水平数(输入条件的可选项)

正交表的特点:

1. 每一列中数字出现的次数是相同的;

2. 任意两表中数字的排序方式齐全且均衡。

使用步骤

1. 找出因素数和水平数;

2. 使用allpairs工具生成正交表;

3. 编写测试用例;

4. 补充测试用例。

使用allpairs工具生成正交表步骤:

(1)在.exe 存在的目录下新建text文档。

 (2)在 Excel 表中先写好每个输入条件及其对应的可选项。然后复制粘贴到新建的text文档中。然后直接保存(ctrl + s)。

 (3)打开cmd命令行窗口(win + r),cd 到allpairs 的目录下启动allpairs(执行.exe文件)allpairs.exe 2023_5_111.txt > 2023_5_111.txt,然后重定向一个新文件2023_5_111.txt,里面就是正交表。 

假设需求: 一个注册页面,输入姓名、电子邮箱、密码、确认密码、验证码进行注册。

1. 找出因素数和水平数

        因素数:姓名、电子邮箱、密码、确认密码、验证码

        水平数:填写、不填写。(这里每个因素数的可选项都一样,都是填写或者不填写)

2. 使用 allpairs工具 生成正交表

3. 编写测试用例

(1)填写姓名、电子邮箱、密码、确认密码、验证码;

(2)填写姓名,不填写电子邮箱、密码、确认密码、验证码;

(3)填写电子邮箱、确认密码,不填写姓名、密码、验证码;

(4)填写密码、验证码,不填写姓名、电子邮箱、确认密码;

(5)填写姓名、电子邮箱、密码,不填写确认密码、验证码;

(6)填写姓名、确认密码、验证码,不填写电子邮箱、密码;

4. 补充测试用例

(7)都不填写。

5. 场景设计法

        包括基本事件流和多个备选事件流。以一个例子来解释什么是基本事件流和备选流。

假设需求:在ATM上取款

编写测试用例:

基本事件流:

        先插卡、输入正确密码、选择取款功能、输入正确金额、取钱、取卡。

备选事件流:

(1)插卡,输入密码错入、第二次输入正确、选择取款.....取卡;

(2)插卡、密码忘记、取卡。

.......

6. 错误猜测法

        通过资深的测试员提出的可能会出现的错误,来编写测试用例。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_60358891/article/details/130608467

智能推荐

CAPL简介-程序员宅基地

文章浏览阅读3.4k次,点赞7次,收藏46次。CAPL,Communication Access Programming Language,即通信访问编程语言类C语言与C语言的区别:1)未定义返回类型,默认为void类型;2)像C++一样允许空的参数列表;3)像C++一样允许函数重载;4)参数检测与C++中一样;5)CAPL提供一些自带的库函数;6)CAPL编译时不对自带的关键字和自带的函数名做区分。_capl

SKlearn学习笔记——神经网络概述_sklearn.neural_network-程序员宅基地

文章浏览阅读1.3w次,点赞15次,收藏98次。SKlearn学习笔记——神经网络概述1 打开深度学习的大门:神经网络概述1.1 打开深度学习的大门1.2 神经网络的基本原理1.3 sklearn中的神经网络2 neural_network.MLPClassifier2.1 隐藏层与神经元:重要参数hidden_layer_sizes2.2 激活函数:重要参数activation2.3 反向传播与梯度下降前言: scikit-learn,又写作sklearn,是一个开源的基于python语言的机器学习工具包。它通过NumPy, SciPy和Matp_sklearn.neural_network

(网页)websocket后台调用Service层_websocket调用service-程序员宅基地

文章浏览阅读1.4k次。百度论坛里面有很多好的方法,借鉴. 重点:因为项目是StringBoot所以我用的是下面的方法很好使:    Service.... service = (Service....) Con..._websocket调用service

Rose双机热备两款软件原理介绍以及共享存储双机热备方案和镜像双机热备方案介绍_rose主备切换-程序员宅基地

文章浏览阅读5.1k次,点赞2次,收藏7次。一. RoseHA的工作原理  RoseHA双机系统的两台服务器(主机)都与磁盘阵列(共享存储)系统直接连接,用户的操作系统、应用软件和RoseHA高可用软件分别安装在两台主机上,数据库等共享数据存放在存储系统上,两台主机之间通过私用心跳网络连接。配置好的系统主机开始工作后,RoseHA软件开始监控系统,通过私用网络传递的心跳信息,每台主机上的RoseHA软件都可监控另一台主机的状态。当工作主机..._rose主备切换

Redis缓存数据库SaaS多租户实现方案-程序员宅基地

文章浏览阅读2.7k次。一、前言上2个章节已经实现了mysql和MongoDB的多租户切实现方案,本章将继续学习Redis的多数据源切换。Redis服务器默认有16个database,我们可以将每个租户的数据放到其中一个database中,也可以部署多台Redis服务器,每个租户使用一个Redis服务器,也可以把两者结合起来,Redis服务器部署多台,先在一台的16个Database上放,放满了16个Database然后再往下一台Redis服务器上放。这种方式需要有一个MySQL数据库表存储每台Redis服务器的Databa

win10触摸键盘TabTip软件特性-程序员宅基地

文章浏览阅读2.3k次。win10触摸键盘通过::SendMessage隐藏方式没有效果HWND hWnd = ::FindWindow(L"OSKMainClass", NULL);if ( hWnd ){::SendMessage(hWnd, WM_SYSCOMMAND, SC_MINIMIZE, 0);} win10触摸键盘无法找到状态窗口状态,isWidowsVisible,GetWindowPlacement,GetWindowLong,状态没有变化 ..._tabtip

随便推点

数学:求欧拉函数算法模板-程序员宅基地

文章浏览阅读499次。数学:求欧拉函数算法模板求欧拉函数求欧拉函数int phi(int x){ int res = x; for (int i = 2; i <= x / i; i ++ ) if (x % i == 0) { res = res / i * (i - 1); while (x % i == 0) x /= i; } if (x > 1) res = res / x * .

matplotlib绘图时横纵坐标和图例的字体大小如何设置_matplotlib绘图横纵坐标设置-程序员宅基地

文章浏览阅读8.8k次,点赞3次,收藏8次。横纵坐标字体大小调节:通过fontsize可以进行调节ax1.set_ylabel("AUC",fontsize=20)ax2.set_ylabel("Logloss",fontsize=20)图例字体大小调节:在plt.legend中加一个prop={"size":18,"weight":"black"}即可_matplotlib绘图横纵坐标设置

HTML5特效按钮_html5 特效按钮-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏19次。作为前端开发者,我们肯定都使用过非常多的jQuery插件,毋庸置疑,jQuery非常流行,尤其是结合HTML5和CSS3以后,让这些jQuery插件有了更多地动画效果,更为绚丽多彩。下面分享了一些超炫酷的jQuery/HTML5应用,一起来看看。1、HTML5/CSS3一组可爱的3D按钮这是一款利用HTML5和CSS3制作而成的按钮组合,这款CSS按钮非常具有个性化。该CSS3按钮_html5 特效按钮

树莓派(Raspberry Pi 4)开启和连接蓝牙_树莓派连接蓝牙耳机并使用麦克风-程序员宅基地

文章浏览阅读1.8w次,点赞4次,收藏43次。参考连接: link.1、查看树莓派蓝牙开启状态_树莓派连接蓝牙耳机并使用麦克风

Python3输入输出与字符串格式化_%s.%d' %()-程序员宅基地

文章浏览阅读3.3k次,点赞3次,收藏12次。介绍了输入(input)、输出(print),及字符串格式化(F-string、format与%)方式_%s.%d' %()

EL表达式比较字符串或是数字格式的数值是否相等,为true,却不执行为true时的代码_el 表达式 判断字符串和数字相等-程序员宅基地

文章浏览阅读9.3k次。问题:EL表达式比较字符串或是数字格式的数值是否相等,为true,却不执行为true时的代码。示例:true原因:有可能是test="${ 1 == 1}(这里多个空格)",即大括号与双引号之间多了空格,这个时候,就不会打印true。去掉多余的空格就可以了_el 表达式 判断字符串和数字相等