首页> 外文学位 >Testing with state variable data-flow criteria for aspect-oriented programs.
【24h】

Testing with state variable data-flow criteria for aspect-oriented programs.

机译:使用面向方面的程序的状态变量数据流标准进行测试。

获取原文
获取原文并翻译 | 示例

摘要

Data-flow testing approaches have been used for procedural and object-oriented (OO) programs, and empirically shown to be effective in detecting faults. However, few such approaches have been proposed for aspect-oriented (AO) programs. In an AO program, data-flow interactions can occur between the base classes and aspects, which can affect the behavior of both. Faults resulting from such interactions are hard to detect unless the interactions are specifically targeted during testing.;In this research, we propose a data-flow testing approach for AO programs. In an AO program, an aspect and a base class interact either through parameters passed from advised methods in the base class to the advice, or by the direct reading and writing of the base class state variables in the advice. We identify a group of def-use associations (DUAs) that are based on the base class state variables and propose a set of data-flow test criteria that require executing these DUAs. We identify fault types that result from incorrect data-flow interactions in AO programs and extend an existing AO fault model to include these faults. We implemented our approach in a tool that identifies the targeted DUAs by the proposed criteria, runs a test suite, and computes the coverage results.;We conducted an empirical study that compares the cost and effectiveness of the proposed criteria with two control-flow criteria. The empirical study is performed using four subject programs. We seeded faults in the programs using three mutation tools, AjMutator, Proteum/AJ, and muJava. We used a test generation tool, called RANDOOP, to generate a pool of random test cases. To produce a test suite that satisfies a criterion, we randomly selected test cases from the test pool until required coverage for a criterion is reached.;We evaluated three dimensions of the cost of a test criterion. The first dimension is the size of a test suite that satisfies a test criterion, which we measured by the number of test cases in the test suite. The second cost dimension is the density of a test case which we measured by the number of test cases in the test suite divided by the number of test requirements. The third cost dimension is the time needed to randomly obtain a test suite that satisfies a criterion, which we measured by (1) the number of iterations required by the test suites generator for randomly selecting test cases from a pool of test cases until a test criterion is satisfied, and (2) the number of the iterations per test requirement. Effectiveness is measured by the mutation scores of the test suites that satisfy a criterion. We evaluated effectiveness for all faults and for each fault type.;Our results show that the test suites that cover all the DUAs of state variables are more effective in revealing faults than the control-flow criteria. However, they cost more in terms of test suite size and effort. The results also show that the test suites that cover state variable DUAs in advised classes are suitable for detecting most of the fault types in the revised AO fault model.;Finally, we evaluated the cost-effectiveness of the test suites that cover all state variables DUAs for three coverage levels: 100%, 90%, and 80%. The results show that the test suites that cover 90% of the state variables DUAs are the most cost-effective.
机译:数据流测试方法已用于过程和面向对象(OO)程序,并根据经验显示可有效检测故障。但是,很少有人针对面向方面(AO)的程序提出这种方法。在AO程序中,基类和方面之间可能发生数据流交互,这可能会影响两者的行为。除非在测试期间专门针对这些交互,否则很难检测到由此类交互导致的错误。在本研究中,我们提出了一种用于AO程序的数据流测试方法。在AO程序中,方面和基类可以通过从基类中的建议方法传递给建议的参数进行交互,也可以通过直接读取和写入建议中的基类状态变量来进行交互。我们确定了一组基于基类状态变量的def-use关联(DUA),并提出了一组需要执行这些DUA的数据流测试标准。我们识别出由于AO程序中数据流交互不正确而导致的故障类型,并扩展了现有AO故障模型以包括这些故障。我们在一种工具中实施了我们的方法,该工具可以根据拟议的标准识别目标DUA,运行测试套件并计算覆盖率结果;我们进行了一项实证研究,将拟议标准的成本和有效性与两个控制流标准进行了比较。实证研究使用四个主题程序进行。我们使用三个突变工具AjMutator,Proteum / AJ和muJava在程序中植入错误。我们使用了一个称为RANDOOP的测试生成工具来生成一个随机测试用例池。为了产生一个满足标准的测试套件,我们从测试池中随机选择测试用例,直到达到标准的要求范围为止。我们评估了测试标准成本的三个方面。第一维是满足测试标准的测试套件的大小,我们通过测试套件中测试用例的数量来衡量。第二个成本维度是测试用例的密度,我们用测试套件中测试用例的数量除以测试需求的数量来衡量。第三个成本维度是随机获得满足条件的测试套件所需的时间,我们用以下公式度量:(1)测试套件生成器从测试用例池中随机选择测试用例直到进行测试所需的迭代次数。满足标准,以及(2)每个测试要求的迭代次数。有效性通过满足条件的测试套件的突变评分来衡量。我们评估了所有故障和每种故障类型的有效性。我们的结果表明,涵盖所有状态变量的DUA的测试套件比控制流准则更有效地揭示故障。但是,就测试套件的大小和工作量而言,它们的成本更高。结果还表明,涵盖建议类中的状态变量DUA的测试套件适用于检测修订的AO故障模型中的大多数故障类型。最后,我们评估了涵盖所有状态变量的测试套件的成本效益三个覆盖级别的DUA:100%,90%和80%。结果表明,覆盖90%状态变量DUA的测试套件是最具成本效益的。

著录项

  • 作者

    Wedyan, Fadi.;

  • 作者单位

    Colorado State University.;

  • 授予单位 Colorado State University.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2011
  • 页码 197 p.
  • 总页数 197
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号