首页> 外文会议>Proceedings of the 43rd ACM technical symposium on computer science education. >Running Students' Software Tests Against Each Others' Code: New Life for an Old 'Gimmick'
【24h】

Running Students' Software Tests Against Each Others' Code: New Life for an Old 'Gimmick'

机译:运行学生的软件测试以互相反对的代码:旧的“ mm头”的新生活

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

摘要

At SIGCSE 2002, Michael Goldwasser suggested a strategy for adding software testing practices to programming courses by requiring students to turn in tests along with their solutions, and then running every student's tests against every other student's program. This approach provides a much more robust environment for assessing the quality of student-written tests, and also provides more thorough testing of student solutions. Although software testing is included as a regular part of many more programming courses today, the all-pairs model of executing tests is still a rarity. This is because student-written tests, such as JUnit tests written for Java programs, are now more commonly written in the form of program code themselves, and they may depend on virtually any aspect of their author's own solution. These dependencies may keep one student's tests from even compiling against another student's program. This paper discusses the problem and presents a novel solution for Java that uses bytecode rewriting to transform a student's tests into a form that uses reflection to run against any other solution, regardless of any compile-time dependencies that may have been present in the original tests. Results of applying this technique to two assignments, encompassing 147 student programs and 240,158 individual test case runs, shows the feasibility of the approach and provides some insight into the quality of both student tests and student programs. An analysis of these results is presented.
机译:在SIGCSE 2002上,Michael Goldwasser提出了一种策略,要求学生上交测试及其解决方案,然后针对每个其他学生的程序运行每个学生的测试,从而将软件测试实践添加到编程课程中。这种方法为评估学生笔试的质量提供了更为强大的环境,并且还为学生解决方案提供了更全面的测试。尽管如今在许多其他编程课程中,软件测试已作为常规部分包括在内,但执行测试的全模型仍然很少见。这是因为学生编写的测试(例如为Java程序编写的JUnit测试)现在更通常以程序代码本身的形式编写,并且它们实际上可能取决于作者自己解决方案的任何方面。这些依赖性可能使一个学生的测试甚至无法针对另一个学生的程序进行编译。本文讨论了这个问题,并提出了一种新颖的Java解决方案,该解决方案使用字节码重写将学生的测试转换为一种形式,该形式使用反射来与任何其他解决方案进行对比,而与原始测试中可能存在的编译时相关性无关。将该技术应用于两项任务的结果,包括147个学生程序和240,158个单独的测试用例运行,显示了该方法的可行性,并为学生测试和学生程序的质量提供了一些见识。提出了对这些结果的分析。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号