Coercing new programmers to adopt disciplined development practices such as thorough unit testing is a challenging endeavor. Test-driven development (TDD) has been proposed as a solution to improve both software design and testing. Test-driven learning (TDL) has been proposed as a pedagogical approach for teaching TDD without imposing significant additional instruction time.
This research evaluates the effects of students using a test-first (TDD) versus test-last approach in early programming courses, and considers the use of TDL on a limited basis in CS1 and CS2. Software testing, programmer productivity, programmer performance, and programmer opinions are compared between test-first and test-last programming groups. Results from this research indicate that a test-first approach can increase student testing and programmer performance, but that early programmers are very reluctant to adopt a test-first approach, even after having positive experiences using TDD. Further, this research demonstrates that TDL can be applied in CS1/2, but suggests that a more pervasive implementation of TDL may be necessary to motivate and establish disciplined testing practice among early programmers.
强迫新程序员采用严格的开发实践,例如彻底的单元测试,是一项艰巨的任务。已经提出将测试驱动开发(TDD)作为改善软件设计和测试的解决方案。已经提出了以测试驱动学习(TDL)作为教学方法来进行TDD的教学,而又不增加额外的教学时间。 P>
该研究评估了在早期编程课程中使用测试优先(TDD)与测试最后方法的学生的效果,并考虑在CS1和CS2中有限地使用TDL。在测试优先和测试后的编程组之间比较软件测试,程序员的生产力,程序员的性能和程序员的观点。这项研究的结果表明,“测试优先”方法可以提高学生的测试和程序员的表现,但是即使在拥有使用TDD的积极经验之后,早期的程序员也不愿意采用“测试优先”方法。此外,这项研究表明TDL可以在CS1 / 2中应用,但表明可能需要更普遍地使用TDL来激发和建立早期程序员之间的纪律性测试实践。 P>
机译:早期编程课程中的测试驱动学习
机译:使用测试驱动开发方法的Java编程学习助手系统
机译:电子学习中的学习动机促进了计算机编程课程
机译:一种结合测试驱动开发和测试标准的策略来提高编程技巧学习
机译:缩小软件检查和测试驱动开发之间的缺陷减少差距:将变异分析应用于迭代的,测试优先的编程
机译:测试驱动学习与自我评估学习的功效比较
机译:早期编程课程中的测试驱动学习