简介
在软件测试中,等价类在有效地验证系统行为方面起着至关重要的作用。这些类表示变量的可能值范围的子集,例如输入或输出,在这些变量中,系统期望显示类似的行为。通过从这些等价类中选择具有代表性的值,我们可以系统地减少测试工作,同时仍然获得重要的覆盖率。
在这篇文章中,我们将探讨等价类在用TPT做测试过程中的使用,以及它们如何优化测试过程。等价类将值分类为不同的子集,通过从每个类中选择一个具有代表性的值来简化测试过程。
例如,在我们的例子中,我们定义了光强度的等价类为
同样,开关位置表示为
输出信号,前照灯关闭0和打开1,也是我们的例子的一部分。
等价类测试
等价类测试的目的是通过测试从每个等价类中选择的几个值来验证系统的行为,从而节省大量的测试工作。ISO 26262等安全标准也要求应用等价类测试。尝试测试值范围内的“每个”可能值将导致更高的测试工作量。
虽然这对于整数来说是可行的,但是对于双精度来说,工作量是巨大的。通过系统地从每个等价类中选择一个或多个代表,在保持可测量的覆盖率的同时减少了测试工作。
此外,可以考虑等价类的笛卡尔积,其中每个开关位置都用所有三种光强度进行测试。然而,这种方法会迅速增加测试工作量,特别是当涉及多个输入时。
图1展示了TPT中的覆盖率报告,它提供了为等价类选择的测试用例所获得的覆盖率的视图。它标识了覆盖的等价类的数量,并指出需要额外测试的任何剩余类。
因为它完美地融入了讨论,所以让我们简单地介绍一下边界值测试在软件工程中的重要性。
边界值测试
在软件测试中,等价类测试和边界值测试是密切相关的。等价类测试侧重于从不同等价类中选择有代表性的值来减少测试工作量,而边界值测试则专门针对这些等价类中的最小值和最大值。
边界值测试在软件工程中很重要,原因如下:
就像任何测试技术一样,等价类也有自己的优缺点。下面从高级的角度简要概述一下。
优势
1️⃣ 输入和输出变量的系统划分减少了测试工作。
2️⃣ 适用于从单元测试到集成测试的所有测试阶段。
不利条件
创建等价类可能非常耗时,并且需要基于需求的专业知识。
最佳实践
1️⃣ 根据需求创建功能测试,并相应地派生等价类。
2️⃣ 执行测试并验证覆盖率。对于任何未覆盖的等价类,创建额外的测试用例。
3️⃣ 检查是否指定了或需要指定这些类的行为。
图2:使用TPT进行等价类管理
TPT提供了特殊的等价类管理功能,用户可以方便地创建和管理等价类。该功能分为三个对话框:
因此,覆盖率报告通过显示所覆盖的等价类和任何需要注意的剩余类,为您的测试工作的完整性提供了有价值的洞察。
为了增加灵活性,可以使用数值或参数指定等价类的值范围。可以在声明编辑器中集中定义和管理参数。如果一个参数的特定值需要随着时间的推移而调整,例如移动一个阈值,它将自动反映在等价类中。
另外,TPT通过为等价类和边界值提供自动化的测试用例生成,超越了手工测试用例的创建。利用TPT的自动化功能,您可以在测试用例开发中节省时间和精力,同时确保对您的软件变体进行彻底的测试。
图3自动化测试用例生成:展示了TPT的自动化功能,其中测试用例是基于定义的等价类和边界值自动生成的。这种自动化特性简化了测试过程,消除了手工工作,并确保了关键场景的全面覆盖。
位于图3右上角的配置对话框显示了在生成过程中包含边界(左和右)的选项。因此,每个等价类不仅有一个代表,而且每个等价类有三个值(左边界、代表、右边界)。
在图3的下方窗口中,可以看到在生成等价类的过程中没有生成数值。相反,将创建对等价类的引用。这种方法确保了更改的健壮性。当执行测试运行时,使用具体的数值,这些数值在测试报告中明确地报告。
通过利用TPT的等价类管理和自动化的测试用例生成,您可以简化您的测试过程,提高效率,并且安心地验证您的软件变体的行为。
总结
等价类在有效的软件测试中起着至关重要的作用,允许您系统地划分变量并优化测试工作。TPT为管理等价类、验证它们的覆盖率和自动化测试用例生成提供了强大的支持。
您准备好利用等价类的功能并增强您的测试过程了吗?尝试TPT并亲身体验它如何简化软件变体的管理和测试。欢迎联系北汇信息获取免费试用。
全部0条评论
快来发表一下你的评论吧 !