【24h】

Time to Clean Your Test Objectives

机译:是时候清洁测试目标了

获取原文

摘要

Testing is the primary approach for detecting software defects. A major challenge faced by testers lies in crafting efficient test suites, able to detect a maximum number of bugs with manageable effort. To do so, they rely on coverage criteria, which define some precise test objectives to be covered. However, many common criteria specify a significant number of objectives that occur to be infeasible or redundant in practice, like covering dead code or semantically equal mutants. Such objectives are well-known to be harmful to the design of test suites, impacting both the efficiency and precision of the tester's effort. This work introduces a sound and scalable technique to prune out a significant part of the infeasible and redundant objectives produced by a panel of white-box criteria. In a nutshell, we reduce this task to proving the validity of logical assertions in the code under test. The technique is implemented in a tool that relies on weakest-precondition calculus and SMT solving for proving the assertions. The tool is built on top of the Frama-C verification platform, which we carefully tune for our specific scalability needs. The experiments reveal that the pruning capabilities of the tool can reduce the number of targeted test objectives in a program by up to 27% and scale to real programs of 200K lines, making it possible to automate a painstaking part of their current testing process.
机译:测试是用于检测软件缺陷的主要途径。在制定有效的测试套件所面临测试的谎言面临的主要挑战,能够检测与管理工作的错误的最大数量。要做到这一点,他们依靠覆盖标准,它定义被覆盖了一些精确的测试目标。然而,许多常用的条件中指定的发生是不可行或冗余实际上,象覆盖死代码或语义上等于突变体目标的一个显著数。这些目标是众所周知的有害于测试套件的设计,既影响工作效率和测试人员的努力的精度。这项工作引入了一个声音和可扩展的技术修剪出由白盒的标准面板产生的不可行和冗余目标的一个显著一部分。简单地说,我们这个任务减少测试证明逻辑断言的有效性的代码。该技术是依赖于最弱的,前提演算和SMT求解证明断言的工具来实现。该工具是建立在邮资-C验证平台之上,这是我们精心调为我们具体的可扩展性的需求。实验表明,该工具的修剪功能,可以最多减少的有针对性的测试目标的数量在程序中27 %和规模的200K行实际的程序,使其能够自动化其当前的测试过程的艰苦一部分。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号