测试用例具体的设计方法

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

等价类


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


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


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


例子:


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

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

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

需求: |用户名 | 必填,录入用户名 | 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

相关文章
|
15天前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
33 4
|
2月前
|
测试技术 API 项目管理
API测试方法
【10月更文挑战第18天】API测试方法
57 1
|
2月前
|
安全 测试技术
北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率
【10月更文挑战第1天】北京大学李戈教授团队提出了一种名为“统一生成测试”的创新方法,有效提升了大模型如GPT-2和GPT-3在单一测试中的代码生成覆盖率,分别从56%提升至72%和从61%提升至78%。这种方法结合了模糊测试、变异测试和生成对抗网络等多种技术,克服了传统测试方法的局限性,在大模型测试领域实现了重要突破,有助于提高系统的可靠性和安全性。然而,该方法的实现复杂度较高且实际应用效果仍需进一步验证。论文可从此链接下载:【https://drive.weixin.qq.com/s?k=ACAAewd0AA48Z2kXrJ】
72 1
|
2月前
|
测试技术 UED
软件测试中的“灰盒”方法:一种平衡透明度与效率的策略
在软件开发的复杂世界中,确保产品质量和用户体验至关重要。本文将探讨一种被称为“灰盒测试”的方法,它结合了白盒和黑盒测试的优点,旨在提高测试效率同时保持一定程度的透明度。我们将通过具体案例分析,展示灰盒测试如何在实际工作中发挥作用,并讨论其对现代软件开发流程的影响。
|
3月前
|
人工智能 测试技术 开发者
北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率
【9月更文挑战第27天】北京大学李戈团队在人工智能领域取得重要突破,提出HITS新方法,通过将待测方法分解为多个切片并利用大型语言模型逐个生成测试用例,显著提升代码测试覆盖率,尤其在处理复杂方法时效果显著,为软件开发和测试领域带来新希望。尽管存在一定局限性,HITS仍展示了巨大潜力,未来有望克服限制,推动软件测试领域的创新发展。论文详情见【https://www.arxiv.org/pdf/2408.11324】。
117 6
|
23天前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
29 6
|
26天前
|
JavaScript 安全 编译器
TypeScript 与 Jest 测试框架的结合使用,从 TypeScript 的测试需求出发,介绍了 Jest 的特点及其与 TypeScript 结合的优势,详细讲解了基本测试步骤、常见测试场景及异步操作测试方法
本文深入探讨了 TypeScript 与 Jest 测试框架的结合使用,从 TypeScript 的测试需求出发,介绍了 Jest 的特点及其与 TypeScript 结合的优势,详细讲解了基本测试步骤、常见测试场景及异步操作测试方法,并通过实际案例展示了其在项目中的应用效果,旨在提升代码质量和开发效率。
37 6
|
1月前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
160 2
|
2月前
|
测试技术 Python
自动化测试项目学习笔记(三):Unittest加载测试用例的四种方法
本文介绍了使用Python的unittest框架来加载测试用例的四种方法,包括通过测试用例类、模块、路径和逐条加载测试用例。
93 0
自动化测试项目学习笔记(三):Unittest加载测试用例的四种方法
|
2月前
|
测试技术 Python
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
本文主要介绍了自动化测试中setup、teardown、断言方法的使用,以及unittest框架中setUp、tearDown、setUpClass和tearDownClass的区别和应用。
77 0
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法