用策划突变分析评估学生编写的软件测试的质量

Braxton Hall, E. Baniassad
{"title":"用策划突变分析评估学生编写的软件测试的质量","authors":"Braxton Hall, E. Baniassad","doi":"10.1145/3563767.3568132","DOIUrl":null,"url":null,"abstract":"An important learning outcome in software engineering education is the ability to write an effective test suite that rigorously tests a target application. The standard approach for assessing test suites is to check coverage which can be problematic because coverage rewards code invocation, without checking test assertion correctness. Mutation Analysis (injecting a small fault into a clone of a codebase) has been used in both industry and academia to check test suite quality. A mutant is killed if any tests in the test suite fail on the clone. More mutants killed indicates a stronger suite, as it is more sensitive to defects. Mutation Analysis has been limited in an educational setting because of the prohibitive cost in both time and compute power to run the students’ suites over all generated clones. We employed Mutation Analysis to assess test suite quality in our upper-year Software Engineering course at a large research intensive university. This paper makes two contributions: (1) We show that it is feasible and effective to use a small sample of hand-written mutants for grading, and (2) We assess effectiveness for promoting student learning by comparing students graded with coverage to those graded with Mutation Analysis. We found that mutation graded students write more correct tests, check more of the behaviour of invoked code, and more actively seek to understand the project specification.","PeriodicalId":344777,"journal":{"name":"Proceedings of the 2022 ACM SIGPLAN International Symposium on SPLASH-E","volume":"6 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-11-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"Evaluating the Quality of Student-Written Software Tests with Curated Mutation Analysis\",\"authors\":\"Braxton Hall, E. Baniassad\",\"doi\":\"10.1145/3563767.3568132\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"An important learning outcome in software engineering education is the ability to write an effective test suite that rigorously tests a target application. The standard approach for assessing test suites is to check coverage which can be problematic because coverage rewards code invocation, without checking test assertion correctness. Mutation Analysis (injecting a small fault into a clone of a codebase) has been used in both industry and academia to check test suite quality. A mutant is killed if any tests in the test suite fail on the clone. More mutants killed indicates a stronger suite, as it is more sensitive to defects. Mutation Analysis has been limited in an educational setting because of the prohibitive cost in both time and compute power to run the students’ suites over all generated clones. We employed Mutation Analysis to assess test suite quality in our upper-year Software Engineering course at a large research intensive university. This paper makes two contributions: (1) We show that it is feasible and effective to use a small sample of hand-written mutants for grading, and (2) We assess effectiveness for promoting student learning by comparing students graded with coverage to those graded with Mutation Analysis. We found that mutation graded students write more correct tests, check more of the behaviour of invoked code, and more actively seek to understand the project specification.\",\"PeriodicalId\":344777,\"journal\":{\"name\":\"Proceedings of the 2022 ACM SIGPLAN International Symposium on SPLASH-E\",\"volume\":\"6 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2022-11-29\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 2022 ACM SIGPLAN International Symposium on SPLASH-E\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3563767.3568132\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 2022 ACM SIGPLAN International Symposium on SPLASH-E","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3563767.3568132","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

摘要

在软件工程教育中,一个重要的学习成果是编写一个有效的测试套件来严格测试目标应用程序的能力。评估测试套件的标准方法是检查覆盖率,这可能是有问题的,因为覆盖率奖励代码调用,而不检查测试断言的正确性。突变分析(在一个代码库的克隆中注入一个小的错误)已经在工业界和学术界被用来检查测试套件的质量。如果测试套件中的任何测试在克隆上失败,则会杀死突变体。更多的突变体被杀死表明一个更强大的套件,因为它对缺陷更敏感。突变分析在教育环境中受到限制,因为在所有生成的克隆上运行学生套件的时间和计算能力成本都过高。在一所大型研究型大学的高年级软件工程课程中,我们使用突变分析来评估测试套件的质量。本文有两个贡献:(1)我们证明了使用小样本的手写突变体进行评分是可行和有效的;(2)我们通过比较使用覆盖率评分的学生和使用突变分析评分的学生来评估促进学生学习的有效性。我们发现,变异等级的学生编写了更正确的测试,检查了更多被调用代码的行为,并且更积极地寻求理解项目规范。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Evaluating the Quality of Student-Written Software Tests with Curated Mutation Analysis
An important learning outcome in software engineering education is the ability to write an effective test suite that rigorously tests a target application. The standard approach for assessing test suites is to check coverage which can be problematic because coverage rewards code invocation, without checking test assertion correctness. Mutation Analysis (injecting a small fault into a clone of a codebase) has been used in both industry and academia to check test suite quality. A mutant is killed if any tests in the test suite fail on the clone. More mutants killed indicates a stronger suite, as it is more sensitive to defects. Mutation Analysis has been limited in an educational setting because of the prohibitive cost in both time and compute power to run the students’ suites over all generated clones. We employed Mutation Analysis to assess test suite quality in our upper-year Software Engineering course at a large research intensive university. This paper makes two contributions: (1) We show that it is feasible and effective to use a small sample of hand-written mutants for grading, and (2) We assess effectiveness for promoting student learning by comparing students graded with coverage to those graded with Mutation Analysis. We found that mutation graded students write more correct tests, check more of the behaviour of invoked code, and more actively seek to understand the project specification.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信