ABSTRACT
Test-first development and peer review have been studied independently in computing courses, but their combination has not. We report on an experiment in which students in two courses conducted peer review of test suites while assignments were in progress. We find strong correlation between review ratings and staff-assessed work quality, as well as evidence that test suites improved during the review process. Student feedback suggests that reviewing had some causal impact on these improvements. We describe several lessons learned about administering and assessing peer-review within test-first development.
- K. Beck. Test-driven development by example. Pearson Education, 2003. Google ScholarDigital Library
- K. Buffardi and S. H. Edwards. Effective and ineffective software testing behaviors by novice programmers. In International Computing Education Research Conference, 2013. Google ScholarDigital Library
- N. Clark. Peer testing in software engineering projects. In Australasian Computing Education Conference, 2004. Google ScholarDigital Library
- S. H. Edwards, Z. Shams, M. Cogswell, and R. C. Senkbeil. Running students' software tests against each others' code: new life for an old "gimmick". In SIGCSE Technical Symposium on Computer Science Education, 2012. Google ScholarDigital Library
- A. Gaspar, S. Langevin, N. Boyer, and R. Tindell. A preliminary review of undergraduate programming students' perspectives on writing tests, working with others, & using peer testing. In ACM Conference on Information Technology Education, 2013. Google ScholarDigital Library
- J. Hamer, C. Kell, and F. Spence. Peer assessment using Aropä. In Australasian Computing Education Conference, 2007. Google ScholarDigital Library
- C. D. Hundhausen, A. Agrawal, and P. Agarwal. Talking about code: Integrating pedagogical code reviews into early computing courses. ACM Transactions on Computing Education, 13(3), Aug. 2013. Google ScholarDigital Library
- A. J. Ko and B. A. Myers. A framework and methodology for studying the causes of software errors in programming systems. Journal of Visual Languages and Computing, 16(1-2):41--84, 2005. Google ScholarDigital Library
- C. Kulkarni, S. P. Dow, and S. R. Klemmer. Early and repeated exposure to examples improves creative work. In Cognitive Science, 2012.Google Scholar
- C. Kulkarni, K. P. Wei, H. Le, D. Chia, K. Papadopoulos, J. Cheng, D. Koller, and S. R. Klemmer. Peer and self assessment in massive online classes. ACM Transactions on Computer-Human Interaction, 2013. Google ScholarDigital Library
- M. M. Nelson and C. D. Schunn. The nature of feedback: How different types of peer feedback affect writing performance. Instructional Science, 27(4):375--401, 2009.Google ScholarCross Ref
- B. Pettichord and B. Marick. Agile acceptance testing. Extreme Programming and Agile Methods, 2418, 2002. Google ScholarDigital Library
- J. G. Politz, D. Patterson, S. Krishnamurthi, and K. Fisler. CaptainTeach: Multi-stage, in-flow peer review for programming assignments. In ACM SIGCSE Conference on Innovation and Technology in Computer Science Education, 2014. Google ScholarDigital Library
- L. Ramachandran and E. F. Gehringer. Reusable learning objects through peer review: The Expertiza approach. In Innovate: Journal of Online Education, 2007.Google Scholar
- K. Reily, P. L. Finnerty, and L. Terveen. Two peers are better than one: Aggregating peer reviews for computing assignments is surprisingly accurate. In ACM International Conference on Supporting Group Work, 2009. Google ScholarDigital Library
- J. Smith, J. Tessler, E. Kramer, and C. Lin. Using peer review to teach software testing. In International Computing Education Research Conference, 2012. Google ScholarDigital Library
- H. Søndergaard. Learning from and with peers: The different roles of student peer reviewing. In ACM SIGCSE Conference on Innovation and Technology in Computer Science Education, pages 31--35, 2009. Google ScholarDigital Library
Index Terms
- In-flow peer-review of tests in test-first programming
Recommendations
UI-driven test-first development of interactive systems
EICS '11: Proceedings of the 3rd ACM SIGCHI symposium on Engineering interactive computing systemsTest-driven development (TDD) is a software development approach, which has grown out of the Extreme Programming and Agile movements, whereby tests are written prior to the implementation code which is then developed and refactored so that it passes the ...
Driving Software Quality: How Test-Driven Development Impacts Software Quality
Recently, software development teams using agile processes have started widely adopting test-driven development. But does TDD really improve software quality?
A multi-case study of agile requirements engineering and the use of test cases as requirements
ContextIt is an enigma that agile projects can succeed 'without requirements' when weak requirements engineering is a known cause for project failures. While agile development projects often manage well without extensive requirements test cases are ...
Comments