背景技术:
1、本发明涉及计算机系统的测试,尤其涉及一种测试用例基础设施,它可以标识未被测试但应被测试的(多个)隐藏变量、隐藏属性和隐藏属性-值。此外,本发明涉及使用所标识的隐藏变量来改进测试基础设施,例如,通过生成附加测试用例来测试这样的变量,标识必须运用的代码路径等。
2、计算机化的设备控制我们生活的几乎每个方面—从撰写文件、控制交通灯、完成电子商务交易、到控制航天器任务。然而,计算机化设备通常容易出错,因此需要在其中发现并纠正错误的测试阶段。测试阶段被认为是设计计算机化设备中最困难的任务之一。彻底的测试是重要的,因为取决于如何利用计算机化设备,不发现错误的成本可能是巨大的。用于检查软件的覆盖工具提供了在测试期间所评估的软件已经被运用得有多好的测量,并且由此给出软件具有高质量的保证水平。
技术实现思路
1、根据本发明的一个或多个实施例,一种用于在测试被测系统(sut)时检测和定位故障的方法包括:将sut的输入建模为属性-值对的集合,并且生成提供由属性-值对表示的测试空间的完全n元(n-wise)覆盖的初始的一组测试向量。该方法还包括从初始的一组测试向量生成一组测试用例。该方法还包括执行一组测试用例以获得一组执行结果,执行结果是指示测试用例成功或失败的二元(binary)形式,该组测试用例被执行多次。该方法还包括:针对一组测试用例的每次执行,基于执行结果来更新针对每个属性-值对的非二元成功率(sav),属性-值对的非二元成功率基于使用属性-值对的每个测试用例的执行结果。该方法还包括:响应于与包括属性的一组属性-值对对应的一组成功率全部低于预定阈值而选择该属性。生成包括所选择的属性的附加值的第二组测试向量。此外,执行该组测试用例以使用第二组测试向量获得第二组执行结果,该组测试用例被执行至少预定次数。此外,针对该组测试用例的每次执行,基于执行结果记录针对每个属性-值对的第二非二元成功率(sav')。响应于与包括该属性的一组属性-值对对应的一组第二成功率满足预定阈值,向用户通知所检测到的针对属性的附加值。
2、根据本发明的一个或多个实施例,一种系统包括存储器和与存储器耦合的处理器,该处理器执行用于在测试被测系统(sut)时检测和定位故障的方法。该方法包括:将sut的输入建模为属性-值对的集合,以及生成提供由属性-值对表示的测试空间的完全n元覆盖的初始的一组测试向量。该方法还包括从该初始的一组测试向量生成一组测试用例。该方法还包括执行一组测试用例以获得一组执行结果,该执行结果是指示测试用例成功或失败的二元形式,该组测试用例被执行多次。该方法还包括针对该组测试用例的每次执行,基于执行结果更新针对每个属性-值对的非二元成功率(sav),属性-值对的非二元成功率基于使用该属性-值对的每个测试用例的执行结果。该方法还包括响应于与包括属性的一组属性-值对对应的一组成功率全部低于预定阈值而选择该属性。生成包括所选择的属性的附加值的第二组测试向量。此外,使用第二组测试向量执行该组测试用例以获得第二组执行结果,该组测试用例被执行至少预定次数。此外,针对该组测试用例的每次执行,基于执行结果记录针对每个属性-值对的第二非二元成功率(sav')。响应于与包括该属性的一组属性-值对对应的一组第二成功率满足预定阈值,向用户通知所检测到的属性的附加值。
3、根据本发明的一个或多个实施例,一种计算机程序产品包括其上存储有计算机可执行指令的计算机可读存储介质,在由处理器执行时,该计算机可执行指令使该处理器执行用于在测试被测系统(sut)时检测和定位故障的方法。该方法包括:将sut的输入建模为一组属性-值对,以及生成提供由属性-值对表示的测试空间的完全n元覆盖的初始的一组测试向量。该方法还包括从该初始的一组测试向量生成一组测试用例。该方法还包括执行一组测试用例以获得一组执行结果,执行结果是指示测试用例成功或失败的二元形式,该组测试用例被执行多次。该方法还包括针对一组测试用例的每次执行,基于执行结果来更新针对每个属性-值对的非二元成功率(sav),属性-值对的非二元成功率基于使用该属性-值对的每个测试用例的执行结果。该方法还包括响应于与包括属性的一组属性-值对对应的一组成功率全部低于预定阈值而选择该属性。生成包括针对所选择的属性的附加值的第二组测试向量。此外,使用第二组测试向量执行该组测试用例以获得第二组执行结果,该组测试用例被执行至少预定次数。此外,针对测试用例组的每次执行基于执行结果来记录针对每个属性-值对的第二非二元成功率(sav')。响应于与包括该属性的一组属性-值对对应的一组第二成功率满足预定阈值,向用户通知所检测到的针对属性的附加值。
4、通过本发明的技术实现了额外的技术特征和益处。本发明的实施例和方面在本文中详细描述,并且被认为是所要求保护的主题的一部分。为了更好地理解,参考具体实施方式和附图。
1.一种用于在测试被测系统(sut)时检测和定位故障的方法,所述方法包括:
2.根据权利要求1所述的方法,其中所述非二元成功率sav使用伪布尔代数被计算。
3.根据权利要求1所述的方法,还包括:响应于与包括所述属性的所述一组属性-值对对应的所述一组第二成功率不满足所述预定阈值,向所述用户输出使用所述一组属性-值对的一个或多个测试用例的标识,其中所述一个或多个测试用例将被用于诊断与所述sut相关联的软失败。
4.根据权利要求3所述的方法,其中软失败由所述sut的一个或多个操作条件导致。
5.根据权利要求1所述的方法,其中包括所述属性-值对的所有可能组合的笛卡尔积空间至少部分地使用组合测试设计被缩减到经缩减的测试空间。
6.根据权利要求5所述的方法,其中所述笛卡尔积空间基于所述sut的架构限制进一步被缩减。
7.根据权利要求6所述的方法,其中所述架构限制包括以下至少一项:如果第二属性具有特定属性-值则第一属性不能采取一个或多个候选属性-值的要求,如果所述第二属性具有所述特定属性-值则所述第一属性必须采取特定候选属性-值的要求,或者如果所述第二属性具有所述特定属性-值则引入第三属性的要求。
8.一种系统,包括:
9.根据权利要求8所述的系统,其中所述非二元成功率sav使用伪布尔代数被计算。
10.根据权利要求8所述的系统,其中所述方法还包括:响应于与包括所述属性的所述一组属性-值对对应的所述一组第二成功率不满足所述预定阈值,向所述用户输出使用所述一组属性-值对的一个或多个测试用例的标识,其中所述一个或多个测试用例将被用于诊断与所述sut相关联的软失败。
11.根据权利要求10所述的系统,其中软失败由所述sut的一个或多个操作条件导致。
12.根据权利要求8所述的系统,其中包括所述属性-值对的所有可能组合的笛卡尔积空间至少部分地使用组合测试设计被缩减到经缩减的测试空间。
13.根据权利要求12所述的系统,其中所述笛卡尔积空间基于所述sut的架构限制进一步被缩减。
14.根据权利要求13所述的系统,其中所述架构限制包括以下至少一项:如果第二属性具有特定属性-值则第一属性不能采取一个或多个候选属性-值的要求,如果所述第二属性具有所述特定属性-值则所述第一属性必须采取特定候选属性-值的要求,或者如果所述第二属性具有所述特定属性-值则引入第三属性的要求。
15.一种包括计算机可读存储介质的计算机程序产品,所述计算机可读存储介质具有被存储在其上的计算机可执行指令,所述计算机可执行指令在由处理器执行时使所述处理器执行用于在测试被测系统(sut)时检测和定位故障的方法,所述方法包括:
16.根据权利要求15所述的计算机程序产品,其中所述非二元成功率sav使用伪布尔代数被计算。
17.根据权利要求15所述的计算机程序产品,其中所述方法还包括:响应于与包括所述属性的所述一组属性-值对对应的所述一组第二成功率不满足所述预定阈值,向所述用户输出使用所述一组属性-值对的一个或多个测试用例的标识,其中所述一个或多个测试用例将被用于诊断与所述sut相关联的软失败。
18.根据权利要求17所述的计算机程序产品,其中软失败由所述sut的一个或多个操作条件导致。
19.根据权利要求15所述的计算机程序产品,其中包括所述属性-值对的所有可能组合的笛卡尔积空间至少部分地使用组合测试设计被缩减到经缩减的测试空间。
20.根据权利要求19所述的计算机程序产品,其中所述笛卡尔积空间基于所述sut的架构限制进一步被缩减。