首页> 外文会议>IEEE International Conference on Software Testing, Verification and Validation >An Empirical Analysis of Test Oracle Strategies for Model-based Testing
【24h】

An Empirical Analysis of Test Oracle Strategies for Model-based Testing

机译:基于模型测试的测试oracle策略的实证分析

获取原文

摘要

Model-based testing is a technique to design abstract tests from models that partially describe the system's behavior. Abstract tests are transformed into concrete tests, which include test input values, expected outputs, and test oracles. Although test oracles require significant investment and are crucial to the success of the testing, we have few empirical results about how to write them. With the same test inputs, test oracles that check more of the program state have the potential to reveal more failures, but may also cost more to design and create. This research defines six new test oracle strategies that check different parts of the program state different numbers of times. The experiment compared the six test oracle strategies with two baseline test oracle strategies. The null test oracle strategy just checks whether the program crashes and the state invariant test oracle strategy checks the state invariants in the model. The paper presents five main findings. (1) Testers should check more of the program state than just runtime exceptions. (2) Test oracle strategies that check more program states do not always reveal more failures than strategies that check fewer states. (3) Test oracle strategies that check program states multiple times are slightly more effective than strategies that check the same states just once. (4) Edge-pair coverage did not detect more failures than edge coverage with the same test oracle strategy. (5) If state machine diagrams are used to generate tests, checking state invariants is a reasonably effective low cost approach. In summary, the state invariant test oracle strategy is recommended for testers who do not have enough time. Otherwise, testers should check state invariants, outputs, and parameter objects.
机译:基于模型的测试是一种从部分描述系统行为的模型设计抽象测试的技术。摘要测试转换为具体测试,包括测试输入值,预期输出和测试oracles。虽然测试令人讨厌需要大量投资,并且对测试成功至关重要,但我们有很少有关于如何写作的实证结果。通过相同的测试输入,检查更多程序状态的测试oracelles有可能揭示更大的失败,但也可能需要花费更多的设计和创建。本研究定义了六种新的测试Oracle策略,检查程序状态不同的不同部分不同的次数。实验比较了六个测试Oracle策略,两个基线测试oracle策略。 null测试Oracle策略只需检查程序崩溃和状态不变测试Oracle策略检查模型中的状态不变。本文提出了五个主要研究结果。 (1)测试人员应检查更多程序状态,而不是运行时异常。 (2)测试oracle策略,检查更多程序状态并不总能透露比检查更少状态的策略更具失败。 (3)测试Oracle策略,检查计划状态多次比检查同一州的策略稍微有效。 (4)边缘覆盖率未检测到更多的故障,而不是使用相同的测试Oracle策略。 (5)如果使用状态机图来生成测试,则检查状态不变性是一种合理有效的低成本方法。总之,对于没有足够时间的测试人员,建议州不变测试Oracle策略。否则,测试仪应检查状态不变,输出和参数对象。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号