首页> 外文OA文献 >Regression Testing of Object-Oriented Software based on Program Slicing
【2h】

Regression Testing of Object-Oriented Software based on Program Slicing

机译:基于程序切片的面向对象软件回归测试

摘要

As software undergoes evolution through a series of changes, it is necessary to validate these changes through regression testing. Regression testing becomes convenient if we can identify the program parts that are likely to be affected by the changes made to the programs as part of maintenance activity. We propose a change impact analysis mechanism as an application of slicing. A new slicing method is proposed to decompose a Java program into affected packages, classes, methods and statements identified with respect to the modification made in the program. The decomposition is based on the hierarchical characteristic of Java programs. We have proposed a suitable intermediate representation for Java programs that shows all the possible dependences among the program parts. This intermediate representation is used to perform the necessary change impact analysis using our proposed slicing technique and identify the program parts that are possibly affected by the change made to the program. The packages, classes, methods, and statements thus affected are identified by traversing the intermediate graph, first in the forward direction and then in the backward direction. Based on the change impact analysis results, we propose a regression test selection approach to select a subset of the existing test suite. The proposed approach maps the decomposed slice (comprising of the affected program parts) with the coverage information of the existing test suite to select the appropriate test cases for regression testing. All the selected test cases in the new test suite are better suited for regression testing of the modified program as they execute the affected program parts and thus have a high probability of revealing the associated faults. The regression test case selection approach promises to reduce the size of regression test suite. However, sometimes the selected test suite can still appear enormous, and strict timing constraints can hinder execution of all the test cases in the reduced test suite. Hence, it is essential to minimize the test suite. In a scenario of constrained time and budget, it is difficult for the testers to know how many minimum test cases to choose and still ensure acceptable software quality. So, we introduce novel approaches to minimize the test suite as an integer linear programming problem with optimal results. Existing research on software metrics have proven cohesion metrics as good indicator of fault-proneness. But, none of these proposed metrics are based on change impact analysis. We propose a changebased cohesion measure to compute the cohesiveness of the affected program parts. These cohesion values form the minimization criteria for minimizing the test suite. We formulate an integer linear programming model based on the cohesion values to optimize the test suite and get optimal results. Software testers always face the dilemma of enhancing the possibility of fault detection. Regression test case prioritization promises to detect the faults early in the retesting process. Thus, finding an optimal order of execution of the selected regression test cases will maximize the error detection rates at less time and cost. We propose a novel approach to identify a prioritized order of test cases in a given regression selected test suite that has a high chance of fault exposing capability. It is very likely that some test cases execute some program parts that are more prone to errors and have a greater possibility of detecting more errors early during the testing process. We identify the fault-proneness of the affected program parts by finding their coupling values. We propose to compute a new coupling metric for the affected program parts, named affected change coupling, based on which the test cases are prioritized. Our analysis shows that the test cases executing the affected program parts with high affected change coupling have a higher potential of revealing faults early than other test cases in the test suite. Testing becomes convenient if we identify the changes that require rigorous retesting instead of laying equal focus to retest all the changes. Thus, next we propose an approach to save the effort and cost of retesting by identifying and quantifying the impact of crosscutting changes on other parts of the program. We propose some metrics in this regard that are useful to the testers to take early decision on what to test more and what to test less.
机译:随着软件通过一系列更改而发展,有必要通过回归测试来验证这些更改。如果我们可以识别可能会由于维护活动而对程序所做的更改影响的程序部分,则回归测试将变得很方便。我们提出了一种变更影响分析机制作为切片的应用。提出了一种新的切片方法,可以将Java程序分解为受影响的程序包,类,方法和针对程序中所做的修改而标识的语句。分解基于Java程序的分层特性。我们为Java程序提出了一个合适的中间表示形式,该中间表示形式表示了程序各部分之间的所有可能依赖性。此中间表示用于使用我们建议的切片技术执行必要的变更影响分析,并识别可能受程序更改影响的程序部分。受影响的包,类,方法和语句是通过先在正向然后在后向遍历中间图来标识的。基于变更影响分析结果,我们提出了一种回归测试选择方法来选择现有测试套件的子集。所提出的方法将分解的切片(包含受影响的程序部分)与现有测试套件的覆盖率信息进行映射,以选择适当的测试用例进行回归测试。新测试套件中的所有选定测试用例都更适合于修改后的程序的回归测试,因为它们执行受影响的程序部分,因此很有可能揭示相关的故障。回归测试用例选择方法有望减小回归测试套件的大小。但是,有时所选的测试套件仍会显得庞大,并且严格的时序约束可能会阻碍简化测试套件中所有测试用例的执行。因此,最小化测试套件至关重要。在时间和预算有限的情况下,测试人员很难知道要选择多少个最小测试用例,同时仍要保证可接受的软件质量。因此,我们引入了新颖的方法来最小化作为最佳结果的整数线性规划问题的测试套件。现有的关于软件指标的研究已经证明,内聚指标可以作为故障倾向性的良好指标。但是,这些建议的度量标准都不是基于变更影响分析的。我们提出了一个基于变更的内聚度量来计算受影响程序部分的内聚性。这些内聚值构成了用于最小化测试套件的最小化标准。我们基于内聚值制定了整数线性规划模型,以优化测试套件并获得最佳结果。软件测试人员始终面临增加故障检测可能性的难题。回归测试用例的优先级排序有望在重新测试过程中尽早发现故障。因此,找到所选回归测试用例的最佳执行顺序将以更少的时间和成本最大化错误检测率。我们提出了一种新颖的方法来在给定的回归选择的测试套件中确定测试案例的优先顺序,该测试套件具有较高的故障暴露能力。某些测试用例很有可能执行某些程序部分,这些部分更容易出错,并且更有可能在测试过程中及早发现更多错误。我们通过找到它们的耦合值来确定受影响程序部分的易错性。我们建议为受影响的程序部分计算一个新的耦合度量,称为受影响的更改耦合,在此基础上确定测试用例的优先级。我们的分析表明,与受影响的测试套件中的其他测试用例相比,以较高的受影响的更改耦合执行受影响的程序部分的测试用例更有可能及早发现故障。如果我们确定需要严格重新测试的变更,而不是全神贯注地重新测试所有变更,则测试将变得很方便。因此,接下来,我们提出一种方法,该方法通过识别和量化横切更改对程序其他部分的影响来节省重新测试的工作量和成本。在这方面,我们提出了一些度量标准,这些度量标准对于测试人员可以早日做出决定要测试哪些内容,哪些测试较少的内容很有用。

著录项

  • 作者

    Panda Subhrakanta;

  • 作者单位
  • 年度 2016
  • 总页数
  • 原文格式 PDF
  • 正文语种
  • 中图分类

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号