Results 1 -
5 of
5
Test-Driven Learning in Early Programming Courses ABSTRACT
"... 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 approa ..."
Abstract
-
Cited by 8 (5 self)
- Add to MetaCart
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 testfirst (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.
A Leveled Examination of Test-Driven Development Acceptance
- Proc. 29th Int’l Conf. Software Eng. (ICSE 07), IEEE CS
, 2007
"... Test-driven development (TDD) has garnered considerable attention in professional settings and has made some inroads into software engineering and computer science education. A series of leveled experiments were conducted with students in beginning undergraduate programming courses through upper-lev ..."
Abstract
-
Cited by 5 (5 self)
- Add to MetaCart
Test-driven development (TDD) has garnered considerable attention in professional settings and has made some inroads into software engineering and computer science education. A series of leveled experiments were conducted with students in beginning undergraduate programming courses through upper-level undergraduate, graduate, and professional training courses. This paper reports that mature programmers who try TDD are more likely to choose TDD over a similar test-last approach. Additionally this research reveals differences in programmer acceptance of TDD between beginning programmers who were reluctant to adopt TDD and more mature programmers who were more willing to adopt TDD. Attention is given to confounding factors, and future studies aimed at resolving these factors are identified. Finally proposals are made to improve early programmer acceptance of TDD. 1
An empirical examination of test-driven development
- SRC Grand Finals Third Place Winner, ACM Digital Library
"... Despite a half century of advances, the software construction industry still shows signs of immaturity [1]. Professional software development organizations continue to struggle to produce reliable software in a predictable and repeatable manner. While a variety of development practices are advocated ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Despite a half century of advances, the software construction industry still shows signs of immaturity [1]. Professional software development organizations continue to struggle to produce reliable software in a predictable and repeatable manner. While a variety of development practices are advocated that might improve the situation, developers are often reluctant to adopt new, potentially better practices based on anecdotal evidence alone. Empirical evidence of a practice’s efficacy are rarely available or conclusive and adopting new practices is time-consuming, expensive, and risky. Test-driven development (TDD) is a new approach that offers the potential to significantly improve the state of software construction. TDD is a disciplined software development practice that focuses on software design by first writing automated unit-tests followed by production code in short,
An Empirical Evaluation of the Impact of Test-driven development on Software Quality
, 2006
"... Test-driven development (TDD) has gained recent attention with the popularity of the Extreme Programming agile software development methodology. Advocates of TDD rely primarily on anecdotal evidence with relatively little empirical evidence of the benefits of the practice. This research is the fir ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Test-driven development (TDD) has gained recent attention with the popularity of the Extreme Programming agile software development methodology. Advocates of TDD rely primarily on anecdotal evidence with relatively little empirical evidence of the benefits of the practice. This research is the first comprehensive evaluation of how TDD affects software architecture and internal design quality. Formal controlled experiments were conducted in undergraduate and graduate academic courses, in a professional training course, and with in-house professional development projects in a Fortune 500 company. The experiments involved over 230 student and professional programmers working on almost five hundred software projects ranging in size from one hundred to over 30,000 lines of code. The research also included a case study of fifteen software projects developed over five years in a Fortune 500 corporation. This research demonstrates that software developers applying a test-first (TDD)
Supporting introductory test-driven labs with WebIDE” Software Engineering Education and Training
- CSEE and T), 2011 24th IEEE-CS Conference on 22–24 May 2011
"... WebIDE is a new web-based development environment for entry-level programmers with two primary goals: minimize tool barriers to writing computer programs and introduce software engineering best practices early in a student’s educational career. Currently, WebIDE focuses on Test-Driven Learning (TDL) ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
WebIDE is a new web-based development environment for entry-level programmers with two primary goals: minimize tool barriers to writing computer programs and introduce software engineering best practices early in a student’s educational career. Currently, WebIDE focuses on Test-Driven Learning (TDL) by using small iterative examples and introducing lock-step labs, which prevent the student from moving forward until they finish the current step. However, WebIDE does not require that labs follow TDL. Instruc tors can write their own labs for WebIDE using any software engineering or pedagogical ap proach. Likewise, instructors can build custom evaluators—written in any language—to support their approach and provide detailed error messages to students. We report on a pilot study in a CS0 course where students were split into two groups, one that used WebIDE and one that didn’t. The WebIDE group showed a significant improvement in performance when writing a simple Android application. Additionally, among students with some programming experience, the WebIDE group was more proficient in writing unit tests. 1

