论文部分内容阅读
随着软件系统日趋复杂化,许多因素都影响着软件系统的正常运行,这些因素可能包括系统的配置、系统的用户输入、内部事件等。众多因素的可能取值之间形成了一个庞大的组合空间,如何从众多的组合测试用例中选择一部分对软件系统进行测试是一项重要的工作。当前组合空间的随机测试得到了广。泛的应用,具有操作简单与算法高效等优点。然而,随机测试的错误检测能力的不足限制了其在组合空间中的应用。为此,如何有效地提高组合空间中的随机测试的错误检测能力就显得十分迫切。当组合测试用例集生成后,由于测试资源的有限性,组合测试用例集中的组合测试用例的执行序列(即组合测试用例集的优先级排序方法)对于提高测试效率发挥着重要作用。为此,寻求有效的组合测试用例集的优先级排序算法就显得尤为重要。组合空间的自适应随机测试把自适应随机测试引入到组合空间领域中。自适应随机测试是提高随机测试错误检测能力的典型方法之一,在保证随机测试的优点的同时也弥补了随机测试在错误检测能力方而的不足。通过借助常用于数据挖掘中的组合数据的相似性度量以及基于覆盖信息的新的组合测试用例的相似性度量,组合空间的自适应随机测试能够从组合空间中选择比随机测试更具有多样性的测试用例。组合空间的自适应随机测试不仅提高了组合空间的随机测试的错误检测能力,也进一步丰富了自适应随机测试的应用范畴。当组合测试用例集生成之后,越早地执行那些能够发现错误的组合测试用例,就能够尽快地进行错误的定位与修复等工作,从而提高整个测试过程的效率。因此,组合测试用例的执行序列(即组合测试集的优先级排序方法)对整个测试过程有着重要的作用。固定力度组合测试用例集作为组合测试用例集的一个重要的子集,在实际测试中特别是组合测试中得到了广泛的研究与应用。如何利用更多的信息来辅助固定力度组合测试用例集的优先级排序方法成为当前的研究重点。通过利用上轮选择的组合测试用例的多重覆盖信息,可以有效地对候选的组合测试用例进行优先级排序,不仅可以提高覆盖信息的覆盖率,也可以提高错误检测效率。可变力度组合测试用例集作为固定力度组合测试用例集的一般形式,切实存在于实际的软件系统中且常应用在组合测试中。可变力度组合测试用例集的特殊性,使得其进行优先级排序的方法可能发生变化。换言之,传统的固定力度组合测试用例集的优先级排序算法对可变力度组合测试用例集可能会失效。因此,研究应用在可变力度组合测试用例集的优先级排序方法显得愈发地迫切。利用可变力度组合测试用例集的“主组合覆盖力度”信息对候选的组合测试用例进行初步筛选排序,以保证“主组合覆盖力度”的覆盖信息能够尽快地被覆盖;接着利用可变力度组合测试用例集的“次组合覆盖力度”信息对剩余的候选组合测试用例进行排序,以保证“次组合覆盖力度”的覆盖信息能够尽快地被覆盖,可有效提高可变力度组合测试用例集优先级排序算法的有效性和合理性。众多的组合测试用例集均以“广义”组合测试用例集的形式存在,可能不是固定力度组合测试用例集或可变力度组合测试用例集。在这样的情况下,当前的固定力度组合测试用例集或可变力度组合测试用例集的优先级排序方法可能面临很大的挑战,甚至可能会失效。为此,如何利用“广义”组合测试用例集的自身特性成为“广义”组合测试用例集优先级排序方法的研究重点之一。利用递增式的组合覆盖力度的覆盖信息来对“广义”组合测试用例集进行优先级排序,不仅不需要考虑组合测试用例集的类型(即具有普遍性),而且能够保证排序的合理性与可行性。