组合测试是一种重要的软件测试方法,该方法通常采用覆盖表作为测试用例集,适用于检测系统中由特定配置组合引发的故障.覆盖表中的一条引发系统故障的测试用例含有多个配置组合,如何确定其中哪个或哪几个配置组合引发系统故障有助于系统开发人员检测出故障原因并做出改进.目前已有一些研究尝试解决上述问题,然而这些方法都没有对待定元组关系进行深入的研究与分析,因此定位过程代价很大并且定位结果也并不完整.文中构建了一个待定元组关系树(TupleRelationshipTree,TRT)来描述所有待定元组的关系,利用TRT可以减少生成附加测试用例的数量,并且由于TRT给出全部待定元组的清晰视图,可以避免漏掉分析可能的待定元组,特别是有重叠部分的故障元组.基于TRT,我们提出了4种选择策略来辅助故障定位.系统的实验表明;其中的路径方法可以以较高的效率得到一个比已有方法更加完整的故障定位结果.
Combinatorial testing using covering array composed by parameter values as test state, it is good at detecting whether there exist bug caused by interactions among these parameters. A test case in covering array contains many parameter interactions (called tuples), some of them may cause the test case fail, it is an important problem to find which one or some caused this failure. There are some methods proposed in recent years trying to solve this problem. However, in these studies, the relationships among candidate tuple didn't raise enough attention. Furthermore, they are not efficient enough or even completed. In this paper, we constructed a candidate tuple relationship tree (TRT) to describe the relationships among all the candidate tuples. TRT facilitate our localizing progress by reducing additional test cases generated and providing a clear view of all possible candidate tuples so that any fault interaction, such as overlapped interaction, would not be missed. And based on TRT, we proposed four search methods to realize fault- localizing progress. Experiment shows that our method can get a more completed result than existing methods, and also very efficient.