测试

测试用例设计技术

2021-05-23  本文已影响0人  每天进步一点点变成更好的自己

1.基于规格说明的技术(黑盒)

1.1.术语

边界值分析、决策表测试、等价类划分、状态转换测试、用例测试

1.2.等价类划分

等价类划分方法:是将所有可能的输入数据划分成若干个子集,在每个子集中,如果任意一个输入数据对于揭露程序中潜在错误都具有同等效果,那么这样的子集就构成了一个等价类。


等价类划分

等价类划分可以参考网址:https://zhuanlan.zhihu.com/p/112810758

1.3.边界值分析

边界值分析方法:是选取输入、输出的边界值进行测试。比如正好等于、刚刚大于、刚刚小于边界的值作为测试数据。


边界值取值范围

在各等价类划分的边界通过更可能出现不正确的行为,因此边界就是测试比较可能发现缺陷的区域。

边界值分析参考文章:https://zhuanlan.zhihu.com/p/121133074

1.4.决策表测试

决策表

决策表是一种很好的方法,它可以识别含有逻辑条件的系统需求,还可以将内部系统设计文档化。这种方法可以用来记录一个系统要实施的复杂的业务规则。

决策表测试可以参考网址:https://www.cnblogs.com/by-dream/p/5336918.html

1.5.状态转换测试

根据系统当前的情况或先前的情况(如系统先前的状态),系统可能会产生不同的相应。这种情况下,系统的特征可以通过状态转换图来表示。测试三元可以根据软件的状态,状态间的转换,触发状态变化(转换)的输入或事件以及从状态转换导致的可能的行动来进行测试。被测试系统或对象的状态是独立的、可确认的,并且数量是有限的。
一个状态表描绘了状态和输入之间的关系,并能显示可能的无效状态转换。
设计的测试可以覆盖一个典型的状态序列,或覆盖每个状态,或执行每个状态转换,或执行特定顺序的状态转换或测试无效的状态转换。
状态转换测试方法普遍较多的使用在嵌入式软件行业和自动化行业。但是这个技术同样也适用于特定状态的业务对象的建模或测试具有对话框状态转换流的系统(例如互联网应用或业务场景)

1.6.用例测试

可以通过用例来设计测试。用例描述了参与者(用户或系统)之间的相互作用,并从这些交互产生一个从系统用户或客户的角度所期望和能观察到的结果。通常可以再抽象层(业务用例、不受技术限制、业务流程层面)或系统层(系统功能层面的系统用例)来描述用例。每个用例都有测试的前置条件,这是用例成功执行的必要条件。每个用例结束后都存在后置条件,这是在用例执行完成后能观察到的结果和系统的结束状态。用例通常是有一个主场景(即最有可能发生的场景)和可选场景
用例基于系统最可能使用的情况描述了过程流,因此从用例中得到的测试用例,在真实世界中的系统使用过程流中能最有效的发现系统的缺陷。用例非常有助于设计用户/客户参与的验收测试;也可以帮助发现由于不同组件之间的相互作用和相互影响而产生的集成缺陷,这是在单个的组件测试中无法发现的。从用例中设计测试用例可以和其他基于规格说明的测试技术结合起来使用。

2.基于结构的技术(白盒)

2.1.术语

代码覆盖、判定覆盖、语句覆盖、基于结构的覆盖
背景
基于结构的测试/白盒测试是根据识别软件或系统的结构,可以从以下内容得到进一步的理解:
组件级别:软件组件的结构,比如:语句、判定、分支或每个不同的路径
集成级别:结构可能是调用树(模块调用关系图)
系统级别:结构可能是菜单结构、业务过程或web页面结构。
基于语句、分支和判定,将讨论三种与代码相关的结构化测试设计技术的代码覆盖。对于判定覆盖,可以使用控制流图来形象表示每个判定之间的转换。

2.2.语句覆盖和覆盖率

在组件测试中,语句覆盖是指评价一个测试用例套件中已经执行的可执行语句的百分比。语句测试的测试用例用来执行专门的语句,通常用来增加语句的覆盖率。
语句覆盖率取决于被(设计或执行)测试用例覆盖的可执行语句数量除以被测代码中所有可执行语句数量。

2.3.判定覆盖和覆盖率

判定覆盖,和分支测试相比,是指评价在一个测试用例套件中已经执行的套件(例如if语句的True和False选项)输出的百分比。判定测试的测试用例用来执行专门的判定输出。分支起始于代码中的判定点,并表明了在代码中不同位置的控制转移。
判定覆盖率取决于被(设计或执行)的测试用覆盖的所有判定出口数目除以被测代码中所有可能的判定出口数目。
判定测试是控制流技术的一种方式,它在判定点产生一个专门的控制流。判定覆盖比语句覆盖更全面,100%的判定覆盖可以保证100%的语句覆盖,反之则不行。

2..4.其他的基于结构的技术

除了判定覆盖,还有程度更高的基于结构的覆盖,如条件覆盖和多重条件覆盖。
覆盖的概念也可以用于其他的测试级别(比如集成测试级别等),在一个测试用例套件中被执行的模块、组件、类覆盖的百分比可以分别称为模块覆盖、组件覆盖、类的覆盖。
在进行代码的结构测试中使用工具支持是非常有帮助的。

上一篇 下一篇

猜你喜欢

热点阅读