论文标题
变质测试:一种生成下一个测试用例的新方法
Metamorphic Testing: A New Approach for Generating Next Test Cases
论文作者
论文摘要
在软件测试中,根据一些预定义的选择标准构建了一组测试用例。然后对这些测试用例进行检查。关于当前软件测试的工件,已经进行了三个有趣的观察。首先,涉及错误的测试案例被认为是有用的,而成功的测试案例通常不会进一步研究软件错误。这些成功的测试用例是否仍然包含有用的信息以显示软件错误。其次,无论在开发阶段进行测试的广泛程度,软件中仍可能存在错误[5]。如果未被发现,这些错误最终可能会损害生产系统。文献中很少解决针对生产阶段中软件错误的技术的研究。第三,正如Weyuker在[6]中所示的那样,在大多数情况下,测试牙齿的可用性在务实上是无法实现的。但是,通常在传统的软件测试技术中假设测试甲壳的可用性。在本文中,我们提出了一种新型的测试用例选择技术,该技术从成功的测试案例中获取了新的测试用例。选择旨在揭示在成功的测试用例中未发现的软件错误,这些错误可能会使用某些现有策略生成。因此,提出的技术增强了现有测试选择策略的有效性。该技术还有助于发现生产阶段的软件错误,并且可以在没有测试牙齿的情况下使用。
In software testing, a set of test cases is constructed according to some predefined selection criteria. The software is then examined against these test cases. Three interesting observations have been made on the current artifacts of software testing. Firstly, an error-revealing test case is considered useful while a successful test case which does not reveal software errors is usually not further investigated. Whether these successful test cases still contain useful information for revealing software errors has not been properly studied. Secondly, no matter how extensive the testing has been conducted in the development phase, errors may still exist in the software [5]. These errors, if left undetected, may eventually cause damage to the production system. The study of techniques for uncovering software errors in the production phase is seldom addressed in the literature. Thirdly, as indicated by Weyuker in [6], the availability of test oracles is pragmatically unattainable in most situations. However, the availability of test oracles is generally assumed in conventional software testing techniques. In this paper, we propose a novel test case selection technique that derives new test cases from the successful ones. The selection aims at revealing software errors that are possibly left undetected in successful test cases which may be generated using some existing strategies. As such, the proposed technique augments the effectiveness of existing test selection strategies. The technique also helps uncover software errors in the production phase and can be used in the absence of test oracles.