测试用例篇

唯有热爱,恒常如新

设计测试用例基本是测试面试的必考题

一、测试用例

1. 概念

测试用例:是为了实施测试而向被测试的系统提供的一组集合,这组集合包含有:测试环境、操作步骤、测试数据、预期结果等要素。

设计测试用例原则一:测试用例中一个必需部分是对预期输出或结果进行定义

编写测试用例有两种形式,分别为Excel管理和思维导图管理用例。

笔试时编写测试用例题,需要按照Excel表格的方式来答题(会涉及到测试用例的要素)

面试时回答测试用例题,按照思维导图的方式一一道来即可(不会涉及到测试用例的要素)

2. 案例

现在有一款产品,要求我们对"门锁"设计测试用例,假设你是测试人员,你会怎么设计呢?

能够设计出来的测试用例整体上来说数量是合格的(还不够多),但是说出来的测试用例不够具体,太笼统了,无法作为测试工作的参考依据

工作中,测试用例的设计并不是越多越好,而是能够达到更大的功能覆盖率则是更好的

学习中,测试用例的设计一定是越多越好的!!!考虑大家的思维发散能力如何!


二、常规思考 + 逆向思维 + 发散性思维

设计测试用例的原则二:

1.测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应该根据无效和未预料到的输入情况。

  1. 检查程序是否 "未做其应该做的" 仅是成功的一半,测试的另一半是检查程序是否 "做了其不应该做的" 。(是上一条原则的必然结果)

打开思维后,设计测试用例是想到一条就说一条,如果没有正确的引导,说出来的测试用例一定是有限的且数量不容乐观的

1. 万能公式

接下来介绍一个设计测试用例的万能公式,万能公式就是一个引导的作用,帮助大家按照分类来设计测试用例。

设计测试用例的万能公式:

功能测试 + 界面测试 + 性能测试 + 兼容性测试 + 易用性测试 + 安全测试

功能测试:从产品功能角度出发,验证功能是否是正确的

界面测试:肉眼可以看到的部分都称为界面,界面所有的元素都需要测试

性能测试:通常为一些极端的情况

兼容性测试:不同版本(软件、系统),浏览器的兼容性,不同的浏览器

易用性测试:具备简单易上手的属性(引导教程)

安全测试:是否具备危险材质、气味,接口响应数据也要考虑用户数据的安全性,登录场景也需要将秘密进行加密展示,数据存储用户隐私是否加密,SQL注入,越权等

界面设计到的内容:元素(大小、颜色、形状、材质)


2. 测试案例:水杯测试

除了上述的万能公式外,还有一些特殊的测试场景


3. 弱网测试

弱网测试的目的就是尽可能保证用户体验,关注的关键点包括:

  • 页面响应时间是否可以接受,关注包括热启动、冷启动时间、页面切换、前后台切换、首字时间、首屏时间等。
  • 页面呈现是否完全一致
  • 超时文案是否符合定义,异常信息是否显示正常
  • 是否有超时重连
  • 安全角度:是否会发生dns劫持、登录ip更换频繁、单点登录异常等
  • 大流量时间风险:是否会在弱网下进行更新apk包、下载文件等大流量动作。

如何进行弱网测试?

借助工具来模拟实现弱网测试:抓包工具(fiddler、Charles)


4. 安装卸载测试

针对需要进行部署的软件,除了软件功能外,我们还要关注软件的能够成功安装和卸载

安装:安装包是否可以安装、卸载之后是否可以继续安装、重复安装...软件更新后安装是否成功

卸载:安装完成后卸载,安装一半后卸载,卸载一次后继续安装继续卸载,卸载一半停止后是否还可以继续卸载....


三、基于需求的设计方法

测试和开发工作开展的依据:软件需求

测试人员接到需求之后,要对需求进行分析和验证,从合理的需求中进一步分析细化需求,从细化的需求中找到测试点,根据这些测试点再去设计测试用例。


四、具体的设计方法

1. 等价类

依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。

eg:姓名(必填,6-15位字符)

等价类分类:

  • 有效等价类:对于程序的规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验证程序是否实现了规格说明中所规定的功能和性能
  • 无效等价类:根据需求说明书,不满足需求的集合

根据等价类设计测试用例的方式:

  1. 确定有效等价类和无效等价类
  2. 编写测试用例。设计具体测试数据

有效等价类:6-15位

无效等价类:小于6位、大于15位


2. 边界值

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

边界值包含:边界值 + 次边界值

2.1 有效范围是[6,15]

边界值:6 15(有效)

次边界值:5 16(无效)

2.2 有效范围是(6,15)

边界值:6 15(无效)

次边界值:7 14(有效)

边界值即给定返回的左数据和右数据

选择次边界值的时候需要根据边界值的有效无效情况来界定:

1)若边界值为有效等价类中的数据,则次边界值为无效等价类中的边界

2)若边界值为无效等价类中的数据,则次边界值为有效等价类中的边界


3. 场景法

案例:逛街买衣服


4. 正交表法

正交表的性质:

  • 每一列中,不同的数字出现的次数相等。
  • 任意两列中数字的排列方式齐全并且均衡。

正交表法的目的是为了减少用例数目,用尽量少的用例覆盖输入的两两组合。

步骤:

  1. 根据需求找出因素和水平

  2. 将因素和水平写入到Excel表格中

  3. 在allpairs.exe同级文件夹下创建一个txt文件,将Excel表格中的内容复制到txt文件中

  4. 使用allpairs.exe工具对txt文件生成正交表文件


5. 判定表法

不同的输入条件组合对应不同的输出结果

步骤:

  1. 确认需求中输入条件和输出条件

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

  3. 画判定表

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


6. 错误猜测法

错误猜测法是对被测试软件设计的理解,过往经验以及个人直觉,推测出软件可能存在的缺陷,从而针对性地设计测试用例的方法。

根据个人的测试经验,对被测软件的需求理解以及设计实现的细节把握。

相关推荐
战族狼魂3 小时前
CSGO 皮肤交易平台后端 (Spring Boot) 代码结构与示例
java·spring boot·后端
xyliiiiiL4 小时前
ZGC初步了解
java·jvm·算法
杉之5 小时前
常见前端GET请求以及对应的Spring后端接收接口写法
java·前端·后端·spring·vue
hycccccch5 小时前
Canal+RabbitMQ实现MySQL数据增量同步
java·数据库·后端·rabbitmq
天天向上杰6 小时前
面基JavaEE银行金融业务逻辑层处理金融数据类型BigDecimal
java·bigdecimal
请来次降维打击!!!7 小时前
优选算法系列(5.位运算)
java·前端·c++·算法
用键盘当武器的秋刀鱼7 小时前
springBoot统一响应类型3.5.1版本
java·spring boot·后端
嘤国大力士7 小时前
C++11&QT复习 (七)
java·c++·qt
松树戈7 小时前
Java常用异步方式总结
java·开发语言
weisian1517 小时前
Java常用工具算法-3--加密算法2--非对称加密算法(RSA常用,ECC,DSA)
java·开发语言·算法