首页> 外文会议>International Workshop on Automation of Software Test >Automatic Test Generation for Mutation Testing on Database Applications
【24h】

Automatic Test Generation for Mutation Testing on Database Applications

机译:数据库应用程序突变测试的自动测试生成

获取原文

摘要

To assure high quality of database applications, testing database applications remains the most popularly used approach. In testing database applications, tests consist of both program inputs and database states. Assessing the adequacy of tests allows targeted generation of new tests for improving their adequacy (e.g., fault-detection capabilities). Comparing to code coverage criteria, mutation testing has been a stronger criterion for assessing the adequacy of tests. Mutation testing would produce a set of mutants (each being the software under test systematically seeded with a small fault) and then measure how high percentage of these mutants are killed (i.e., detected) by the tests under assessment. However, existing test-generation approaches for database applications do not provide sufficient support for killing mutants in database applications (in either program code or its embedded or resulted SQL queries). To address such issues, in this paper, we propose an approach called MutaGen that conducts test generation for mutation testing on database applications. In our approach, we first apply an existing approach that correlates various constraints within a database application through constructing synthesized database interactions and transforming the constraints from SQL queries into normal program code. Based on the transformed code, we generate program-code mutants and SQL-query mutants, and then derive and incorporate query-mutant-killing constraints into the transformed code. Then, we generate tests to satisfy query-mutant-killing constraints. Evaluation results show that MutaGen can effectively kill mutants in database applications, and MutaGen outperforms existing test-generation approaches for database applications in terms of strong mutant killing.
机译:为了确保高质量的数据库应用程序,测试数据库应用程序仍然是最普遍的使用方法。在测试数据库应用程序中,测试包括两个程序输入和数据库状态。评估测试的充分性允许针对提高其充分性(例如,故障检测能力)的目标生成新测试。与代码覆盖标准相比,突变测试是评估测试充分性的更强标准。突变测试将产生一组突变体(每个都是被系统地用小故障播种的软件),然后测量这些突变体的高百分比被评估的测试杀死(即,检测到)。但是,数据库应用程序的现有测试生成方法不提供足够的支持,用于杀死数据库应用程序中的突变体(在程序代码或其嵌入或导致的SQL查询中)。为了解决此类问题,在本文中,我们提出了一种称为诱变的方法,对数据库应用进行突变测试进行测试生成。在我们的方法中,我们首先应用现有方法,通过构造合成的数据库交互并将来自SQL查询的约束转换为正常程序代码,将各种约束与数据库应用程序中的各种约束相关联。基于转换代码,我们生成程序代码突变体和SQL-Query突变体,然后导出并将查询突变杀死约束派生到转换的代码中。然后,我们生成测试以满足查询突变杀戮约束。评价结果表明,诱变诱变可以有效地杀死数据库应用中的突变体,并且在强烈的突变体杀伤方面,Mutagen优于数据库应用的现有测试生成方法。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号