等价类测试

(1)划分

使用等价类作为功能性测试的基础有两个动机:我们希望进行完备的测试,同时又希望避免冗余,而边界值测试不能实现这两种希望中的任意一个,存在大量冗余,且有严重漏洞。

划分”的含义是将一个整体分为小块,使得所有事物都在某个小块中,不会遗漏。由于一个划分是一组子集,因此我们常常把单个子集看作是划分的元素。

这个定义的两部分对于测试人员很重要。第一部分保证集合 U 的所有元素都在某个子集中,第二部分保证集合 U 中没有元素同时在两个子集中。

且划分能保证:完备性无冗余性。当研究功能性测试,经常会出现漏洞和冗余性:有些内容没有被测试,而另外一些内容被测试多次。功能性测试的主要困难之一,就是找出合适的划分。


 

(2)等价类
在划分中,由于子集是由等价关系决定的,因此,子集的元素都有一些共同点。所以,等价类测试的思想是通过每个等价类中的一个元素标识测试用例。如果广泛选择等价类,则这样可以大大降低测试用例之间的冗余。

等价类的特点:

1)如果一个等价类中的某个测试可以发现缺陷,那么这个等价类的其他测试也能发现该缺陷。

2)如果一个等价类中的一个测试没有发现缺陷,这个等价类的其他测试也不能发现缺陷。

等价类测试的关键,就是选择确定类的等价关系。但必须区分弱和强等价类。


 

(3)等价类的区分

弱一般等价类测试通过使用一个测试用例中的每个等价类(区间)的一个变量实现。

[a,b]、[b,c]、[c,d] 与 [e,f]、[f,g],从这五个区间来看,用三个用例把每个区间都测试到了。

 

强一般等价类测试基于多缺陷假设,因此,需要等价类笛卡尔积的每个元素对应的测试用例。

 

弱健壮等价类测试也称为“传统等价类测试”。对于有效输入,使用每个有效类的一个值。对于无效输入,测试用例将拥有一个无效值,并保持其余的值都是有效的。

注意四个角外的位置没有测试用例即可理解。

 

强健壮等价类测试从所有等价类笛卡尔积的每个元素中获得测试用例。

 

posted @   HanselHuang  阅读(1915)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示