节点文献

组合测试技术的研究与应用

Research and Application of Combinatorial Testing

【作者】 崔应霞

【导师】 李龙澍;

【作者基本信息】 安徽大学 , 计算机应用技术, 2011, 博士

【摘要】 软件测试横跨整个软件开发周期,并占据其工作量的40%以上。它是保证软件质量的重要手段。软件测试是为了发现软件错误而执行待测软件的过程,它精心选择不同的测试用例生成技术生成一些测试用例,然后用这些测试用例运行待测软件,并发现错误。在软件测试中,测试用例集规模和检错能力直接决定着软件测试的效果。因此,如何选取一个小规模高检错能力的测试用例集是软件测试的核心任务和关键课题。组合测试技术是一种重要的测试用例生成技术,它根据待测软件系统中各种因素以及各种因素之间的相互作用对系统产生的影响,生成测试用例集。该技术能生成小规模和高检测能力的测试用例集。本文以进一步提高组合测试技术的效果和实用性为目标对组合测试进行研究。首先,对国内外组合测试方法进行深入研究;然后,将各种组合测试方法进行比较权衡后,选取IPOG算法为研究对象进行改进和扩展。论文的主要贡献如下:1)针对现有t维组合测试技术在生成测试用例的过程中,一旦以某种策略选定某个参数值后,就不再改变该值的特性,提出改进。改进后的算法利用测试用例生成过程中反馈的实时信息及时处理测试用例集中冗余值,以获得更优的最终测试用例集。实验证明该算法相对其它t维组合测试算法生成的测试用例集更优。2)针对一些应用软件中,各个输入参数之间往往存在相互依赖关系问题,对改进的组合测试算法进行扩展,并提出一种基于约束的t维组合测试算法。该算法首先计算隐含约束;然后,在每次扩展中,从未被覆盖的参数值组合集中除去约束,并在满足选择标准下,选择不构成约束的参数值填充,直至所有参数扩展完毕。实验证明该算法不仅能够有效处理输入参数之间的相互依赖关系,而且相对其它基于约束的组合测试方法能生成更优的测试用例。3)一些实际的应用软件系统的输入参数之间的关系是非常复杂的,它们之间可能存在约束关系;可能根本没有相互关系;或者存在相互关系,但并不一定刚好是任意t个输入参数之间都存在相互关系。为了能处理更复杂的输入参数之间的关系,我们对基于约束的组合测试算法进一步扩展,并提出基于约束和输入输出关系的变强度组合测试算法。该算法根据输出参数对输入参数进行分类,并在分类的基础上生成测试用例。因测试的最终目的是对错误进行修改,但在修改错误之前,必须要对引起错误的组合进行定位。本文通过将输入输出关系引入基于测试数据补充生成的错误定位方法中对该方法进行改进,并提出一种基于输入输出关系的错误定位方法。基于输入输出关系的错误定位方法并不是生成测试用例所包含的每个模式,而是根据输入参数之间是否存在关系生成错误模式。实验表明,基于输入输出关系的错误定位方法提高了错误定位的准确性。4)本文最后以C++语言编写的程序为待测对象,对基于约束和输入输出关系的变强度组合测试算法进一步扩展。扩展后的算法在生成测试用例的过程中,会考虑部分程序内部结构。因指针类型是C++语言的特征之一,指针指向信息不明确,会导致保守估计IO关系问题,最终会影响测试用例集的优越性,所以在提出基于约束和输入输出关系的变强度组合测试算法之前,提出了一种基于包含约束的指针分析方法。基于包含约束的指针分析方法通过对包含约束语言进行扩展对传统的基于包含约束的指针分析方法进行改进。改进后的指针分析法不仅降低了时间花费,同时也提高了指向信息的精确性。在指针分析的基础上,给出采用灰盒测试技术的组合测试方法。该方法通过考虑程序的部分内部结构不仅优化了测试用例集还提高了错误定位的准确性。

【Abstract】 Software testing run through the entire software development cycle, which takes more than 40% of its workload. It is an important method to guarantee software quality. Software testing is a process that aims to find the error of software and execute software under test(SUT) it chooses different test case generation carefully strategies in order to generate test cases, then uses these test cases to find errors. In software testing process, the scale and the detection error ability of test suite determine the software testing effect directly. Therefore, how to choose a small scale and high error detection ability test suite is the core and key subject to software testing.Combinatorial testing strategy is an important test case generation technology, which impact to the system according to the the interaction among several input parameters of SUT and tests the SUT effectively with smaller test suite. The stragety can generate small-scale and high detection ability test suite.The aim of this thesis is to further improve the effect and practical applicatiable of combinatorial testing. Firstly, we make the futher study of the domestic and international combinatorial testing strategies. Then, we compare various strategeties, and select IPOG as our research object.The main contributions are as follows.1) In all existing combinatorial tesing strategies, once a parameter value was selected, the strategies just take it as the best choice, and no longer change it in the later extention process. On this occasion, we present a new combinatorial testing strategy. The strategy uses real-time feedback information of test case generation process to handle redundancy value timely, and get more optimal test suite. We also prove the validity of the algorithm by experiments.2) In some practical software systems, input parameters depends on each other, so we extend the improved algorithm and present a algorithm based on constrained combainatorial testing. The algorithm computes implied constraints firstly; then, removes constraints from uncovered combination set in each extension, and selects parameter values that not consitute a constraint until all the parameters extension ends. Experiment results demonstrate that this algorithm can not only handle the relationships among input parameters effectively but also generate more optimal test cases than other method based on constrained combinatorial testing.3) In some practical software systems, the interaction of input parameters may be very complicated and the strength of these interactions may be different, it is not always having interactions among any t input parameters; or there may be some interactions among input parameters more than t-way. In order to handle the complicated interactions, we make the further improve of the algorithm based on constrained combinatorial testing and present a variable strength combinatorial testing algorithm based on constraint and input/output (IO) relationship. The algorithm sorts the imput parameters according to the output parameters, and generates the test cases based on the classification.The ultimate goal of testing is to revise the errors, but the first thing is locating the combinations that induce errors before the revision. We improve a test data supplement generated based error localization method, and propose a new error localization method. This method generates error modes according to IO relationship, rather than generating all error modes for each test case. Experiments show that the method improves the efficiency of error location.4) In the end of the thesis, we select programs that are written in c++ language as our research object, and make the further extention of the variable strength combinatorial testing based on constraint and input/output (IO) relationship. Because pointer is one of the characteristics of the C++ language, points-to information unclear leads to conservative estimate of IO relationships, further affects the accuracy of them. So we propose a method to get accurate points-to information. The method improves the inclusion-based pointer analysis method by extending the language of inclusion constraints. Experimental results show that this method can analyzes points-to information accurately at any level. On the basis of pointer analysis, we give a combinatorial testing method that is using gray box testing strategy. The method considers part internal structures of SUT when generates test cases, which optimizes the test suite and also improves the error location ability.

  • 【网络出版投稿人】 安徽大学
  • 【网络出版年期】2012年 03期
节点文献中: 

本文链接的文献网络图示:

本文的引文网络