测试用例全解析:从入门到精通(1)

前言:Hello!!大家早上中午晚上好!!今天来总结一下软件测试最重要的知识点之一:测试用例!下文将介绍到什么是测试用例?测试用例作用?以及如何编写测试用例等。


一、什么是测试用例

1.1 概念
  • 测试用例是为了实施测试向被测试的系统提供的一组集合
1.2 举个例子
  • 测试一个人是好是坏?

如何测试一个人是好是坏?方法有很多种,例如我们可以这样做:

  1. 请这个人去吃饭,看他会不会自觉买单?
  2. 请这个人去看电影,看他会不会在看电影的时候大声说话?
  3. 跟这个人一起过马路,看他会不会扶老奶奶过马路?
  4. 带这个人到自己家里玩,看他会不会跟叔叔阿姨打招呼?
  5. .....

以上所有都是测试用例,你还能想到更多吗?

我们会发现:越到后面能想出来的测试用例越困难,如果此时我们有一样东西可以引导你,你会更容易想到更多的测试用例!


二、测试用例的万能公式

2.1 作用
  • 万能的测试用例公式能够引导我们想出更多的测试用例
2.2 公式
  • 功能测试+性能测试+界面测试+兼容性测试+易用性测试+安全测试
2.3 理解

功能测试:从产品角度出发验证产品功能是否符合用户需求;

性能测试:在一些特殊情况下会不会影响产品的功能;

界面测试:肉眼能看到的一切元素;

兼容性测试:在不同环境不同版本下产品功能是否正常;

易用性测试:检测产品是否具有简单易上手的属性;

安全测试:产品是否保护用户隐私是否会对用户造成伤害,是否存在危险性因素;

2.4 举个例子

对一个水杯进行测试

功能测试**:**
++水杯的主要功能为:喝水、盛水++

对喝水功能测试:

  • 拿起水杯能否喝到水
  • 不拿起水杯能否喝到水
  • 水杯倾斜能否喝到水
  • 水杯水平能否喝到水

对盛水功能测试:

  • 能否盛一点点水
  • 能否盛一半水
  • 能否盛满水杯
  • 盛满水杯会不会溢出

性能测试:

  • 在极寒环境下水杯会不会碎裂
  • 在极热环境下水杯会不会碎裂
  • 在高压强环境下水杯会不会碎裂
  • 在非常低压环境下水杯会不会碎裂
  • 用力摔地上水杯会不会碎裂
  • 在非常晃动的桌子上水杯能否保持不摔倒

易用性测试:

  • 水杯拿起来方不方便
  • 水杯装水方不方便
  • 水杯喝水方不方便
  • 水杯藏起来方不方便

界面测试:

  • 水杯的大小是否符合预期
  • 水杯的形状是否符合预期
  • 水杯的颜色是否符合预期
  • 水杯的材质是否符合预期

兼容性测试:

  • 水杯能否盛果汁
  • 水杯能否盛汽水
  • 水杯能否在家里喝水
  • 水杯能否在广场喝水
  • 水杯能否在办公室喝水

安全性测试:

  • 水杯放入特殊物质会不会发生化学反应产生有害物质
  • 水杯喝水的时候会不会刮到嘴巴
  • 水杯拿起来的时候会不会刮到手
  • ...

以上,利用万能公式能帮助我们想到更多的测试用例!!

那么测试用例是不是越多越好呢?怎样的测试用例才是一个优秀的测试用例?

答案:能够达到更大的测试覆盖率的测试用例是更好的!

三、测试用例的具体设计方法

3.1等价类

什么是等价类?例如: 对一个注册功能设计测试用例,在注册功能中明确要求注册密码为****6~12位数字:

这时我们不可能把<6位数字或>12位数字的所有可能都测试一遍,这样的事情是无法完成且非常低效的,我们只需要在<6位数字的集合中选一个和在>12位数字的集合中选一个进行测试即可,我们认为只要通过一个测试代表集合中的所有用例都通过测试!

在等价类中分为有效等价类和无效等价类:

  • 有效等价类:有意义合理的输入集合
  • 无效等价类:不满足需求的集合

上述的例子中的有效等价类为: 6~15位数字

上述的例子中的无效等价类为: <6位的数字 、>12位的数字

3.2 边界值

边界值的作用: 作为等价类划分的补充

边界值又分为边界值和次边界值:

例如上述的例子中边界值为:6 、12 ; 次边界值为: 5 、 13

3.3 场景法

场景法的说明: 每个需求都存在一个基本的流程(主流程),在主流程里每个阶段都可能发生异常可能(备选流)

例如一个测试一个邮箱注册的功能:

如图:

在每一个环节中都有可能会发生不确定的因素导致当环节进行失败,需要重新进入这个环节,我们设计测试用例的时候可以利用场景法来设计!

3.4 正交法

正交法的作用场景: 用于在设计两两组合的测试用例时数量会非常的多情况时可以使用

例如:

在一个注册功能里需要设计的测试用例:

如上图,如果每一个组合都要设计一个测试用例的话需要设计非常多的用例,这是我们就可以用正交法

正交表的特性:

每一列中不同数字的出现次数相等;

任意两列的数字排列齐全且均衡;

如图:

这是一个正交表,这个正交表的因素数为因子1、 因子2、 因子3, 水平数为 1 、2、 3;

正交法的步骤:

  1. 根据需求找出因素和水平: 例如上面注册功能的因素为:姓名,手机号,邮箱,地址。水平数为:填写/不填写;
  2. 把因素数写到excel表格中:
  3. 利用pairs工具,在pairs下创建txt文件,把excel中内容复制粘贴到txt文件中,直接保存
  4. 在命令行中进入到allpairs.exe所在目录,输入命令让allpairs对刚才的txt文件生成正交表:使用allpairs.exe工具对txt文件生成正交表文件

然后我们就可以根据生成的正交表设计出测试用例:

用例一:姓名填写 手机号填写 邮箱填写 地址填写

用例二:姓名填写 手机号不填写 邮箱填写 地址不填写

用例三:姓名不填写 手机号填写 邮箱不填写 地址填写

用例四:姓名不填写 手机号不填写 邮箱填写 地址不填写

用例五:姓名填写 手机号填写 邮箱填写 地址不填写

用例六:姓名填写 手机号不填写 邮箱填写 地址填写

再加上一个:姓名不填写 手机号不填写 邮箱不填写 地址不填写

如上我们只需要设计7个测试用例即可!

今天的分享就到这里!如果对你有所帮助记得点赞收藏+关注哦!! 谢谢!!!

咱下期见!!!

相关推荐
过尽漉雪千山2 小时前
Flink1.17.0集群的搭建
java·大数据·linux·flink·centos
Python私教2 小时前
Django全栈班v1.04 Python基础语法 20250912 下午
后端·python·django
Bear on Toilet2 小时前
继承类模板:函数未在模板定义上下文中声明,只能通过实例化上下文中参数相关的查找找到
开发语言·javascript·c++·算法·继承
xchenhao2 小时前
Scikit-Learn 对糖尿病数据集(回归任务)进行全面分析
python·机器学习·回归·数据集·scikit-learn·特征·svm
xchenhao2 小时前
Scikit-learn 对加州房价数据集(回归任务)进行全面分析
python·决策树·机器学习·回归·数据集·scikit-learn·knn
这里有鱼汤2 小时前
发现一个高性能回测框架,Python + Rust,比 backtrader 快 250 倍?小团队必备!
后端·python
csdn_aspnet2 小时前
Windows、Linux 系统 nodejs 和 npm 版本更新及错误修复
linux·windows·npm·node.js
☼←安于亥时→❦2 小时前
数据分析之Pandas入门小结
python·pandas
程序员东岸2 小时前
C语言入门指南:字符函数和字符串函数
c语言·笔记·学习·程序人生·算法