什么是域测试?
域测试是一种软件测试过程,在该过程中,通过给出最少数量的输入并评估其适当的输出来测试应用程序。域测试的主要目标是检查软件应用程序是否在可接受的范围内接受输入并交付所需的输出。
它使用最少的输入来测试系统的输出,以确保系统不接受无效和超出范围的输入值。它是最重要的白盒测试方法之一,还验证系统不应接受指定或有效范围之外的输入、条件和索引。
域测试对于每个特定的域都是不同的,因此需要具有特定于域的知识才能测试软件系统。
在本教程中,将了解-
- 更简单的域测试实践
- 域测试策略
- 域测试示例
- 域测试结构
更简单的域测试实践
在域测试中,我们将域划分为子域(等价类),然后使用每个子域的值进行测试。例如,如果一个网站(域)已经被给予测试,我们将把网站分成小部分(子域)以便于测试。
域可能涉及对任何一个输入变量或输入变量组合的测试。
实践通常只研究最简单的域测试案例,而不是其他两个名称,即“边界测试”和“等价类分析”。
边界测试-边界值分析(BVA)基于分区之间边界的测试。我们将测试分区/类中的有效输入值和无效输入值。
等价类测试–此技术背后的思想是划分(即划分)系统应该同等处理它们的集合),从而实现“等价分区”。
该简化形式适用于域测试-
- 仅限于输入变量的测试
- 仅当在系统级别进行测试时
- 仅在一次只测试一个的情况下
- 仅当以非常肤浅的方式进行测试时
可以简化如下:
变量 | 有效的类等价类 | 无效的类等效类 | 边界与特例 | 注意事项 |
---|---|---|---|---|
X | 0-100 | 0 | ||
100 | ||||
<0 | -1 | |||
>100 | 101 |
说明:
- 如果字段接受的范围为0-100,则该字段不应接受-1和101,因为它们是无效条目且超出边界。
- 该字段应接受0、100等值以及介于这两者之间的任意数字。
像这样搭建(在实践中)
- 要随着时间的推移构建等价类分析,将信息放入电子表格。在获取信息时添加有关它们的信息。
- 该表最终应包含所有变量。这意味着所有输入变量、所有输出变量以及可以观察到的任何中间变量。
- 实际上,我看到的大多数表格都是不完整的。看到的最好的列表列出了所有变量,并添加了关键变量的详细信息。
域测试策略
在域测试时,需要考虑以下几点:
- 测试的是什么域?
- 如何将值分组到类中?
- 要测试的类的哪些值?
- 如何判断结果呢?
我们测试的是什么域?
测试的任何域都有一些输入功能和输出功能。将有一些输入变量需要输入,并且必须验证适当的输出。
域测试示例
- 考虑一个单输入测试场景:
c = a+b,其中a和b是输入变量,c是输出变量。
在上面的示例中,不需要对变量进行分类或组合。
- 考虑以下多个输入和适当的输出方案:
以儿童游戏展为例,有6场比赛,门票必须根据年龄和性别输入。票务是奥运会展览整体功能的测试模块之一。
根据场景,我们根据年龄和比赛情况分为六个场景:
- 5岁及10岁以下的男童应参与讲故事。
- 年龄>5岁及<10岁的女孩应参加绘画比赛。
- 年龄>10岁及<15岁的男童应参加测验。
- 年龄>10岁,<15岁,女生应参加论文写作。
- 5岁以下,男孩和女孩都应该参加押韵比赛。
- 年龄>15岁,男孩和女孩都应该参加诗歌比赛。
这里的输入将是年龄和性别,因此将签发比赛门票。在这种情况下,输入分区或简单的值分组进入画面。
如何将值分组到类中?
划分某些值意味着将其拆分成不重叠的子集。
正如我们前面讨论的,有两种类型的分区:
- 等价划分-等价划分是一种软件测试技术,它将软件单元的输入数据划分为可从中派生测试用例的等价数据分区。原则上,测试用例被设计为至少覆盖每个分区一次。
- 边界值分析-边界值分析是一种软件测试技术,其中的测试被设计为在一个范围内包含边界值的代表。这个想法来自于边界。
对于上面的示例,我们将值划分为子集或子集。我们将年龄划分为以下几个类别:
- 第1类:5至10岁儿童
- 第2类:年龄组别在5岁以下的儿童
- 第3类:10至15岁年龄组别的儿童
- 第4类:年龄组大于15岁的儿童。
要测试的类的哪些值?
提取用于测试的值应为边界值:
- 边界是我们从中抽样的等价类的代表。他们比其他类成员更容易暴露错误,所以他们是更好的代表。
- 等价类的最佳代表是介于该范围之间的值。
对于上面的示例,我们有以下要测试的类:
例如,对于场景# 1:
- 第1级:5至10岁儿童(年龄>5岁及<=10岁)
边界值:
- 数值应等于或小于10。因此,10岁应包括在这个类中。
- 值应大于5。因此,5岁不应包括在此类中。
- 数值应等于或小于10。因此,11岁不应包括在此类别中。
- 值应该大于5。因此,6岁应该包括在这个类中。
等价分区值:
当必须只测试每个分区中的一个条件时,引用等价分区。例如,在测试中,
(年龄>5岁且<=10岁)
由于从6到10的值是有效值,因此必须选取6、7、8、9和10之间的值之一。这种划分称为等价划分。
场景 | 要取的边界值 | 等价分割值 |
---|---|---|
男孩-年龄>5岁和<=10岁 | 输入年龄=6 输入年龄=5 输入年龄=11 输入年龄=10 | 输入年龄=8 |
女孩-年龄>5岁和<=10岁 | 输入年龄=6 输入年龄=5 输入年龄=11 输入年龄=10 | 输入年龄=8 |
男孩-年龄>10岁和<=15岁 | 输入年龄=11 输入年龄=10 输入年龄=15 输入年龄=16 | 输入年龄=13 |
女孩-年龄>10岁和<=15岁 | 输入年龄=11 输入年龄=10 输入年龄=15 输入年龄=16 | 输入年龄=13 |
年龄<=5岁 | 输入年龄=4 输入年龄=5 | 输入年龄=3 |
年龄>15岁 | 输入年龄=15 输入年龄=16 | 输入年龄=25 |
我们如何确定程序是否通过测试?
传递功能不仅取决于上述场景的结果。给定的输入和预期的输出将给出结果,这需要领域知识。
确定示例的结果:
因此,如果上面的所有测试用例都通过了,那么比赛中的发票域就通过了。如果不是,该域将失败。
域测试结构
通常,测试人员在域测试中遵循以下步骤。这些可以根据我们的测试需求进行定制/跳过。
- 找出潜在的变量。
- 确定现在可以分析的 variable(s) 并对其排序(从小到大,反之亦然)。
- 如上所述创建并标识边界值和等价类值。
- 确定次要维度,并以经典的方式分析每个维度。(在上面的示例中,性别是次要维度)。
- 确定并测试保存结果的变量(输出变量)。
- 评估程序如何使用此变量的值。
- 确定用于组合测试的其他潜在相关变量。
- 想象一下不一定有对应的风险。
- 确定并列出未分析的变量。收集信息以供以后分析。
- 用风险/等效表总结分析。
总结:
如上所述,域测试需要提供正确输入以实现所需的输出,它只能用于小块代码。