测试用例设计方法:正交试验法详解!

01、正交试验法介绍

正交试验法是研究多因素、多水平的一种试验法,它是利用正交表来对试验进行设计,通过少数的试验替代全面试验,根据正交表的正交性从全面试验中挑选适量的、有代表性的点进行试验,这些有代表性的点具备了"均匀分散,整齐可比"的特点。本规范只讨论各因素是相互独立的正交试验法,各因素相互影响的正交试验法在我们设计测试用例的时候用不到,所以不提。

正交表是一种特制的表格,一般用Ln(mk)表示,L代表是正交表,n代表试验次数或正交表的行数,k代表最多可安排影响指标因素的个数或正交表的列数,m表示每个因素水平数,且有n=k*(m-1)+1。

02、使用正交试验法的原因

对于单因素或两因素试验,因其因素少,试验的设计、实施与分析都比较简单。但在实际工作中,常常需要同时考察3个或3个以上的试验因素,若进行全面试验,试验的规模很大,由于时间和成本的限制我们不可能进行全面试验,但是具体挑其中的哪些测试用例进行测试我们心里拿不准,总担心不做不挑选的那些测试用例会遗漏一些严重缺陷。为了有效的、合理地减少测试的工时与费用,我们利用正交试验法来设计测试用例。正交试验法就是安排多因素试验、寻求最优水平组合的一种高效率的试验设计方法。

我们用测试实例来进行说明使用正交试验法设计测试用例的好处:

测试需求:

某所大学通信系共2个班级,刚考完某一门课程,想通过"性别"、"班级"和"成绩"这三个查询条件对通信系这门课程的成绩分布,男女比例或班级比例进行人员查询:

  • 根据"性别"="男,女"进行查询
  • 根据"班级"="1班,2班"查询
  • 根据"成绩"="及格,不及格"查询

按照传统设计------全部测试

分析上述测试需求,有3个被测元素,被测元素我们称为因素,每个因素有两个取值,我们称之为水平值,所以全部测试用例个数是2*2*2=8,参见下表

**利用正交表设计测试用例,**我们得到的测试用例个数是n=3*(2-1)+1=4,对于三因素两水平的刚好有L4(23)的正交表可以套用,于是用正交表试验法得出4个测试用例如下:

根据实际需要可以在用正交试验法设计用例的基础上补充一些测试用例。4个测试用例与8个测试用例相比测试用例个数是减少了。因素数和水平数越大越能体现用正交表的好处。

**例如:**对于一个四因素且每个因素均为三水平的试验,如果按照全面试验需要进行3*3*3*3=81次。但是如果用正交试验法选择L9(34)正交表,n=4*(3-1)+1=9次试验就可以覆盖。从这点可以说明用正交试验法能有效地、合理地减少测试用例和工时,节约测试成本。

扩展的正交表L8(4×24)行数为mn型的正交表中试验次数(行数)=∑(每列水平数-1)+1

**例:**5个3水平因子及一个2水平因子,表示为35*21,试验次数=5*(3-1)+1*(2-1)+1=12,即L12(35*21)

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
云飞云共享云桌面14 小时前
单机建模卡顿运维繁琐!中小型机械制造厂云飞云 3D 云桌面落地
运维·服务器·网络·3d·自动化·电脑·负载均衡
Lucky_55668814 小时前
软件登记测试报告用途与完整办理流程|山东本地第三方测评机构服务
经验分享·功能测试·单元测试
zandy101115 小时前
体验家 XMPlus 批量操作与自动化工作流引擎:让大规模运营从手动执行走向规则驱动
大数据·运维·自动化
2601_9549165915 小时前
ChatGPT 5.6 深度实践:用 AI 重构云成本治理体系,而不是简单“降本”
人工智能·sql·chatgpt·重构·测试用例
杨逢昌工厂6S管理18 小时前
28- 杨逢昌:制造企业仓储6S反复混乱解决方案——四维定置标准化管控体系,让物料混放、通道堵塞等重复性乱象减少90%
大数据·经验分享·笔记·职场和发展·制造·学习方法
想吃火锅100518 小时前
【leetcode】56.合并区间js
算法·leetcode·职场和发展
her_heart19 小时前
ChatGPT 5.6 实战:用 AI 做云成本治理,从账单复盘到 K8s 优化
人工智能·云原生·chatgpt·kubernetes·测试用例
Web4Browser19 小时前
Headless 浏览器自动化适合哪些任务?巡检、截图和提交动作要分级
运维·前端·自动化
大博士.J19 小时前
视频号主体违规与认证上限?正确的解决方式
运维·python·自动化
凌波粒19 小时前
LeetCode--47.全排列 II(回溯算法)
算法·leetcode·职场和发展