论文部分内容阅读
测试用例选择是软件测试中的关键问题之一。目前,测试用例选择在并发软件测试方面鲜有涉及,并发软件测试方法往往只针对给定的多线程并发程序和输入数据进行测试,而不关心测试输入的选择问题。这主要是基于并发错误的“数据无关性假设”,即线程调度与输入数据无关。但事实上,并发软件的数据相关性是不可忽视的。 本文以多线程并发程序为研究对象,提出面向并发软件的适应性随机测试方法。该方法通过评价并发测试用例的多样性度量指标,以及基于该指标的两种测试用例选择策略,来优化测试用例选择,提高并发软件测试的效率和错误发现能力。实验结果表明,与随机测试方法相比,提出的方法只需执行更少的测试用例;而在测试的时间开销方面,提出的方法相对于随机测试方法,在一定程度上缩短了完整测试所需的时间。但因为在初始阶段需要对多个候选测试用例提前进行预测,提出的方法有可能会推迟发现第一个错误。 具体而言,本文的主要研究工作及贡献如下: (1)提出并发测试用例的多样性度量指标,即通过比较不同线程调度所能覆盖的线程交错实例来衡量不同并发测试用例之间的差异(或称之为“距离”)。 (2)提出两种并发测试用例的最优选择策略,以均匀地覆盖不同线程调度。 (3)将适应性随机测试引入多线程并发程序,实验结果表明适应性随机测试在并发软件测试方面也可以取得良好效果。而且,通过对比线程交错实例来度量适应性随机测试中并发测试用例的多样性,使被测程序不再仅限于数值程序。