免费试用
项目管理
测试用例的设计方法有哪些?
项目管理

测试用例的设计方法有哪些?

对于软件研发来说,如何以最少的人力、资源投入,在最短的时间内发现软件系统的缺陷,保证软件的优良品质是至关重要的。测试用例就是为了特定的目的而设计的一组由测试输入、执行条件、预期结果构成的文档。测试用例是测试工作的指导,是软件测试必须遵守的准则,更是软件测试质量稳定的根本保障。

 

测试用例的设计方法一般包括等价类划分、边界值、判定表法、正交试验法等,下面我们就来具体了解一下。

 
 

等价类划分法

 

所谓「等价」,就是具有相同属性或者方法的集合,这个集合中某个个体所表现的特征与其他个体完全一致。

 

由此可知,等价类划分就是将所有可能的输入数据,划分成若干个等价类,然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类,可分为有效等价类和无效等价类。

 

例如,规定的用户名长度区间为4~8个字,那么它的有效等价类是用户名长度在[4,8],无效等价类为用户名长度大于8位,或用户名长度小于4位。

 
 

边界值法

 

测试经验告诉我们,测试有时会涉及到大量的数据,遍历所有数据会使测试效率低下,且难以覆盖所有数据。这时更有效率的做法应该是:先划分等价类,再从等价类中选择部分参数测试。边界值是等价类所有可选参数中最容易出问题的地方,所以我们一般会选择边界值作为测试的重点。边界值法的应用步骤如下:

 

1. 先根据等价类法划分有效等价类和无效等价类,确定上点、离点及内点。上点是边界上的点,离点是离上点最近的点,内点则是边界有效范围内的任意一点。同样以用户名长度为4~8位为例,4和8为上点,3和9为离点,6则为内点;

 

2. 设计一个新的测试用例,使其尽可能地覆盖所有尚未覆盖的有效等价类,直到所有有效等价类完全覆盖;

 

3. 设计一个新的测试用例,使其仅覆盖一个无效等价类,直到所有无效等价类都被覆盖。

 
 

判定表法

 

判定表又称策略表、决策表,表示输入条件的组合,以及与每一输入组合对应的动作组合。判定表法适合逻辑判断比较复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,具体又明确地表达复杂的逻辑关系和多种条件组合情况

 

判定表主要由条件桩动作桩两部分组成。条件桩是功能要满足的所有条件,动作桩则是所有可能的操作以及可能会产生的结果。

 

判定表能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。其缺点是判定表的建立过程较烦杂,当条件过多时,需要分析的逻辑组合呈2的倍数增长。测试工程师可根据实际情况与等价类划分法、边界值法结合使用。

 
 

正交试验法

 

正交试验法是研究多因素、多水平组合的一种实验法,它是利用正交表来对试验进行设计,通过少数的试验替代全面试验。正交表中所有参与试验的、影响试验结果的条件称为因子,影响试验因子的取值或输入的称为水平。

 

在设计测试用例时,采用正交试验法能够有效地、合理地减少测试的工作量与和成本。正交试验的一般流程包括以下几个步骤:

 

1)分析测试需求,获取因子和水平;
2)根据因子和水平选择合适的正交表;
3)替换正交表中的因子和水平,获取试验次数;
4)根据经验或者其他因素补充试验次数;
5)细化输出获得测试用例。

 

以上是一些常见的测试用例设计方法,运用测试用例还需配备测试用例管理软件。以研发项目管理工具 ONES 为例:

 

在 ONES 中,点击「导入用例」即可将编写好的测试用例导入系统中,除此之外,您也可以直接在系统中编写测试用例,组织用例库。

 

另外,ONES 支持测试用例与需求、任务关联,测试计划与迭代关联,形成测试流程闭环,对于没有通过的用例,可以快速创建缺陷任务,一键提交 bug,让缺陷任务在测试与研发团队之间高效流转。

 

最后,ONES 还能自动生成测试报告,包括各测试度量值,测试覆盖表和测试通过或不通过的测试用例清单列表,快速反馈版本质量,沉淀问题与经验。

 
 

如果您对 ONES 感兴趣的话,欢迎点击文章右上角的「免费试用」,或直接与我们的解决方案专家沟通,了解和评估 ONES 如何帮助您的团队更进一步。
 

您的邮箱已经申请过了
button-icon
微信咨询
avatar-circle avatar-circle-hover
hi
dot-left
dot-right-top
dot-right-bottom
微信咨询
button-icon
在线客服
button-icon
售前电话
button-icon
预约演示
avatar
添加 ONES 产品顾问
sex
享受一站式客户服务
qrcode
pre-sales-call-icon
售前电话
400-188-1518
wechat-business-card_img
close
号码已复制
back-to-top back-to-top