测试用例具体的设计方法

简介: 测试用例具体的设计方法

等价类


由于输入的集合是无穷的,不能全部覆盖到,所以通过划分若干个等价类,选出有代表性的达到尽量多的功能覆盖


  • 有效等价类:根据规格说明书是合理的、有意义的输入数据构成的集合
  • 无效等价类:根据需求说明书是不合理,不满足需求的集合。


等价类只考虑输入域的分类,没有考虑输入域的组合,需要其他的设计方法和补充。


例子:


购买的水果有 苹果 香蕉 橘子

有效等价类:苹果 香蕉 橘子...

无效等价类:车厘子 橙子...其他水果

需求: |用户名 | 必填,录入用户名 | 6至15 | 字符类型A-Z,不区分大小写|

针对字符:有效等价类:A-Z,a-z,无效等价类:数字(1,0.1,-1) 特殊字符(@,¥,空格)


针对长度:有效等价类:6到15 无效等价类:小于6 或者 大于15


边界值


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


要注意边界值通常取 等价类划分中的边界,比如 有效边界 和 无效边界


例子:


超市卖水果

边界值:额... 番茄?山芋? maybe...理解就行

需求: |用户名 | 必填,录入用户名 | 6至15 | 字符类型A-Z,不区分大小写|

针对字符:有效边界:a z A Z 无效边界:全角\半角\特殊字符\数字\A+1(ascii码).....

针对长度:有效边界:6 15 无效边界:5 16


判定表法


使用场景较少,工作中很少使用,很多书籍中相似的方法称为 因果图,相比较判定表而言,多了一个画图的步骤,且图很麻烦,场景使用少,现在还没有必要学习因果图。


找出输入条件和输出条件


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


画判定表


根据判定表编写测试用例


案例:淘宝活动 当使用了红包 或者 订单金额大于300元,则该订单是优惠订单,否则不是优惠订单。


输入条件:使用红包(A) 金额大于300(B) 订单提交(C)


输出条件:优惠订单(1) 不是优惠订单(2)


输入条件 和 输出条件之间的关系


image.pngimage.png


画判定表


9a56116aa06a42d79d56cde95e349741.png


编写测试用例


① 有红包,提交订单,为优惠订单


② 金额>300 ,提交订单,为优惠订单


③ 有红包,金额<300 且提交订单,为优惠订单


④ 有红包,金额<300 没提交订单,不是优惠订单


⑤ 无红包,金额>300 已提交订单,不是优惠订单


⑥ 无红包,金额<300 已提交订单,不是优惠订单


⑦ 有红包,金额>300 没提交订单,不是优惠订单


⑧ 无红包,金额<300 没提交订单,不是优惠订单


场景设计法


较少使用,只是一个思路引导,告诉我们不能完全按照需求文档,要对一些意外情况有响应的判断。


  • 基本事件流:按照正确的业务流程实现操作的一条路径
  • 备选事件流:程序出错的操作流程

案例:比如ATM机取款的时候,中间可能出现的意外情况我们都要有判断:



1872bdc0f8964fdfaf6a780a1568a3ea.png


错误猜测法


依赖的是测试人员的 工作经验和积累 。

只是利用直觉和经验猜测出错的可能类型,然后编写测试用例来暴露这些错误。


正交法


(用的比较少 基本不可见) 是指 从大量的实验中,挑选出适量的、有代表性的例子,依据“正交表”从而合理的设计测试用例


正交表 表示L4(2^3),4代表4组实验(测试用例),3代表因素数(输入条件),2代表每个因素数对应的水平数(输入条件的可能结果)。


正交表的特性:

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


根据正交表设计测试用例的步骤:


  1. 找出 因素 和 水平
  2. 生成正交表(使用生成正交表的工具:allparis)
  3. 根据正交表来编写测试用例
  4. 补充可能遗漏但是非常重要的测试用例


例子:登录的案例

  1. 因素:姓名、邮箱、密码、确认密码、验证码

水平:填写、不填写

  1. 使用allparis生成正交表

26a0366e41e8419abdc394471b88c251.png

7.根据正交表编写测试用例


① 填写姓名 填写邮箱 填写密码 填写验证码


② 填写姓名 不填写邮箱 不填写密码 不填写验证码


③ 不填写姓名 填写邮箱 不填写密码 填写验证码


④ 填写/不填写姓名 填写邮箱 填写/不填写密码 不填写验证码


⑤ 填写/不填写姓名 不填写邮箱 填写/不填写密码 填写验证码


如何使用allParis 生成正交表?


  1. 将水平和因素填写到Excel

56690e10e84e4fc7951a54d73f105d48.png


把这个Excel中的内容复制到一个txt文件中


e02b0290cae8414fa76324f3b4fbaba3.png

  1. 使用allParis工具生成正交表


961a9c02ca1b454fbb58bccb03e621b2.png


  1. 打开登录验证jg.txt 文件


cb3e329870a94361aeaa5a785ecc3494.png

相关文章
|
8天前
|
人工智能 测试技术 开发者
北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率
【9月更文挑战第27天】北京大学李戈团队在人工智能领域取得重要突破,提出HITS新方法,通过将待测方法分解为多个切片并利用大型语言模型逐个生成测试用例,显著提升代码测试覆盖率,尤其在处理复杂方法时效果显著,为软件开发和测试领域带来新希望。尽管存在一定局限性,HITS仍展示了巨大潜力,未来有望克服限制,推动软件测试领域的创新发展。论文详情见【https://www.arxiv.org/pdf/2408.11324】。
24 6
|
23天前
|
测试技术
测试用例设计方法之基本路径测试法
基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法,设计出的测试用例要保证在测试中程序的语句覆盖100%,条件覆盖100%
33 7
测试用例设计方法之基本路径测试法
|
23天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
106 7
Jmeter实现WebSocket协议的接口测试方法
|
22天前
|
敏捷开发 数据可视化 Devops
敏捷测试价值观、方法和实践读书笔记(4)
本章节探讨了敏捷测试执行的关键概念与实践。首先介绍了用户故事及其重要性,强调其在敏捷开发中的角色,并阐述了用户故事的 INVEST 原则。接着分析了用户故事生命周期中的测试关注点,包括定义、处理、完成及验收阶段的测试活动。此外,还对比了不同测试术语的差异,并提供了敏捷测试计划的策略与过程。通过看板等工具实现任务管理与跟踪,确保测试活动高效进行。最后,介绍了敏捷测试中的度量指标,帮助团队评估测试效果。
20 5
敏捷测试价值观、方法和实践读书笔记(4)
|
22天前
|
监控 架构师 Devops
敏捷测试价值观、方法和实践读书笔记(3)
本章节介绍敏捷测试转型框架,涵盖模型概览、实施难度与顺序、文化转变、角色技能需求及测试流程。敏捷测试转型模型包括文化、组织、流程与实践等关键要素,并针对各层面提出具体实施建议与障碍解决方案。此外,详细阐述了不同敏捷测试角色的技能需求与职责,以及从Sprint内至跨Sprint的测试流程与交付物。
22 5
敏捷测试价值观、方法和实践读书笔记(3)
|
22天前
|
开发框架 数据可视化 项目管理
敏捷测试价值观、方法和实践读书笔记(1)
敏捷软件开发宣言在身体力行的同时也帮助我们一直在实践中探寻更好的软件开发方法。由此,我们建立了如下价值观:个体和互动 高于 流程和工具工作的软件,高于 详尽的文档客户合作, 高于 合同谈判响应变化,高于 遵循计划。也就是说,尽管右项有其价值,但我们更重视左项的价值。
35 4
敏捷测试价值观、方法和实践读书笔记(1)
|
22天前
|
JavaScript 前端开发 Java
敏捷测试价值观、方法和实践读书笔记(5)
本章节介绍了敏捷功能测试的原则与实践,包括单元测试的概念及其编写步骤,测试驱动开发(TDD)的流程,以及如何通过模拟对象进行测试。详细讲解了单元测试的编写方法,如初始化对象、执行操作及验证结果,并探讨了 TDD 的五个步骤。通过具体案例展示了如何逐步完善储蓄账户的功能测试,包括存款、取款及异常处理。此外,还讨论了代码覆盖率的重要性及其局限性,强调了测试充分性比单纯追求代码覆盖率更为关键。
17 3
敏捷测试价值观、方法和实践读书笔记(5)
|
6天前
|
机器学习/深度学习 人工智能 安全
软件测试中的探索性测试:一种高效发现软件缺陷的方法
本文将深入探讨软件测试中的一种关键方法——探索性测试。探索性测试是一种动态的、探索性的软件测试方法,它依赖于测试人员的直觉和经验,通过实际操作软件来发现潜在的问题和缺陷。与传统的基于预定义用例的测试方法相比,探索性测试更加灵活,能够更全面地覆盖软件的各个方面,从而更有效地发现难以预见的错误和漏洞。
|
8天前
|
小程序 测试技术 程序员
『软件工程12』软件工程实践方法——软件测试
该文章详细阐述了软件测试的重要性和基本原则,并按测试阶段顺序介绍了单元测试、集成测试、确认测试以及系统测试的具体内容和实施步骤。
『软件工程12』软件工程实践方法——软件测试
|
8天前
|
测试技术 程序员 C语言
『软件测试4』耗子尾汁!2021年了,你还不知道这4种白盒测试方法吗?
该文章深入介绍了四种常用的白盒测试方法,包括语句覆盖、判定覆盖、条件覆盖以及路径覆盖,并探讨了这些方法在软件测试中的应用。
『软件测试4』耗子尾汁!2021年了,你还不知道这4种白盒测试方法吗?
下一篇
无影云桌面