Results 1 - 10
of
21
On the effectiveness of the test-first approach to programming
- IEEE Transactions on Software Engineering
, 2005
"... Abstract—Test-Driven Development (TDD) is based on formalizing a piece of functionality as a test, implementing the functionality such that the test passes, and iterating the process. This paper describes a controlled experiment for evaluating an important aspect of TDD: In TDD, programmers write fu ..."
Abstract
-
Cited by 49 (2 self)
- Add to MetaCart
Abstract—Test-Driven Development (TDD) is based on formalizing a piece of functionality as a test, implementing the functionality such that the test passes, and iterating the process. This paper describes a controlled experiment for evaluating an important aspect of TDD: In TDD, programmers write functional tests before the corresponding implementation code. The experiment was conducted with undergraduate students. While the experiment group applied a test-first strategy, the control group applied a more conventional development technique, writing tests after the implementation. Both groups followed an incremental process, adding new features one at a time and regression testing them. We found that test-first students on average wrote more tests and, in turn, students who wrote more tests tended to be more productive. We also observed that the minimum quality increased linearly with the number of programmer tests, independent of the development strategy employed. Index Terms—General programming techniques, coding tools and techniques, testing and debugging, testing strategies, productivity,
Experiment about Test-first programming
"... Test-first programming is one of the central techniques of Extreme Programming. Programming test-first means... ..."
Abstract
-
Cited by 49 (6 self)
- Add to MetaCart
Test-first programming is one of the central techniques of Extreme Programming. Programming test-first means...
Software Development Environments for Scientific and Engineering Software: A Series of Case Studies
- In Proceedings of 2007 International Conference on Software Engineering
, 2007
"... The need for high performance computing applications for computational science and engineering projects is growing rapidly, yet there have been few detailed studies of the software engineering process used for these applications. The DARPA High Productivity Computing Systems Program has sponsored a ..."
Abstract
-
Cited by 14 (2 self)
- Add to MetaCart
The need for high performance computing applications for computational science and engineering projects is growing rapidly, yet there have been few detailed studies of the software engineering process used for these applications. The DARPA High Productivity Computing Systems Program has sponsored a series of case studies of representative computational science and engineering projects to identify the steps involved in developing such applications (i.e. the life cycle, the workflows, technical challenges, and organizational challenges). Secondary goals were to characterize tool usage and identify enhancements that would increase the programmers ’ productivity. Finally, these studies were designed to develop a set of lessons learned that can be transferred to the general computational science and engineering community to improve the software engineering process used for their applications. Nine lessons learned from five representative projects are presented, along with their software engineering implications, to provide insight into the software development environments in this domain. 1.
N.: Evaluating the efficacy of test-driven development: industrial case studies
- In: Proceedings of the international symposium on Empirical software engineering (ISESE
, 2006
"... This paper discusses software development using the Test Driven Development (TDD) methodology in two different environments (Windows and MSN divisions) at Microsoft. In both these case studies we measure the various context, product and outcome measures to compare and evaluate the efficacy of TDD. W ..."
Abstract
-
Cited by 13 (0 self)
- Add to MetaCart
This paper discusses software development using the Test Driven Development (TDD) methodology in two different environments (Windows and MSN divisions) at Microsoft. In both these case studies we measure the various context, product and outcome measures to compare and evaluate the efficacy of TDD. We observed a significant increase in quality of the code (greater than two times) for projects developed using TDD compared to similar projects developed in the same organization in a non-TDD fashion. The projects also took at least 15 % extra upfront time for writing the tests. Additionally, the unit tests have served as auto documentation for the code when libraries/APIs had to be used as well as for code maintenance.
extreme programming at universities: an educational perspective
- In Proceedings of the 25th International Conference on Software Engineering
, 2003
"... To address the problems of traditional software development, recent years have shown the introduction of more light-weight or "agile " development processes (eXtreme Programming being the most prominent one). These processes are intended to support early and quick production of working code by struc ..."
Abstract
-
Cited by 9 (0 self)
- Add to MetaCart
To address the problems of traditional software development, recent years have shown the introduction of more light-weight or "agile " development processes (eXtreme Programming being the most prominent one). These processes are intended to support early and quick production of working code by structuring the development into small release cycles and focus on continual interaction between developers and customers. As such software development processes become more popular, there is a growing demand from industry to introduce agile development practices in tertiary education. This is not a straighOCorward task as the corresponding practices may run counter to educational goals or may not be adjusted easily to a learning environment. In this paper, we discuss some of these issues and reflect on the problems of teaching agile processes in tertiary education. 1.
Observational Studies to Accelerate Process Experience in Classroom Studies: An Evaluation
- In Proceedings of 2003 ACMIEEE International Symposium on Empirical Software Engineering (ISESE 03
, 2003
"... Software Engineering studies run in classroom environments can and have made important contributions to empirical software engineering. Because the goal of such studies is to improve the state of the practice in industry, researchers must understand and account for the differences between university ..."
Abstract
-
Cited by 7 (4 self)
- Add to MetaCart
Software Engineering studies run in classroom environments can and have made important contributions to empirical software engineering. Because the goal of such studies is to improve the state of the practice in industry, researchers must understand and account for the differences between university students and industrial professionals. One major difference identified is the amount of training and practice that students and professional may have when learning a new technique. We propose and test a method of allowing university subjects to cost-effectively gain experience to compensate for this difference. The results show that the proposed method for gaining experience provided subjects with enough experience to improve their effectiveness in some but not all cases. There was also an indication from the results that the proposed method allowed the subjects to become more comfortable with a new technique.
The inevitable pain of software development: Why there is no silver bullet
- In RISSEF
, 2004
"... Abstract. A variety of programming accidents, i.e., models, methods, artifacts, and tools, are examined to determine that each has a step that programmers find very painful. Consequently, they habitually avoid or postpone the step. This pain is generally where the programming accident meets requirem ..."
Abstract
-
Cited by 7 (2 self)
- Add to MetaCart
Abstract. A variety of programming accidents, i.e., models, methods, artifacts, and tools, are examined to determine that each has a step that programmers find very painful. Consequently, they habitually avoid or postpone the step. This pain is generally where the programming accident meets requirements, the essence of software, and their relentless volatility. Hence, there is no silver bullet.
XP as a Framework for Practical Software Engineering Experiments
- In Proceedings of the Agile Processes in Software Engineering (XP2002
, 2002
"... We discuss how Extreme Programming (XP) can be used as the base software development method to perform practical experiments in software engineering. We show how the main features of XP can help us to minimize some of the problems and difficulties that appear when trying to perform such experiments ..."
Abstract
-
Cited by 6 (5 self)
- Add to MetaCart
We discuss how Extreme Programming (XP) can be used as the base software development method to perform practical experiments in software engineering. We show how the main features of XP can help us to minimize some of the problems and difficulties that appear when trying to perform such experiments in a university environment. We also discuss the execution and experiences from one experiment studying a new methodology: the Stepwise Feature
Extreme programming in curriculum: Experiences from academia and industry
- In Conference on Extreme Programming and Agile Processes in Software Engineering (XP2004
, 2004
"... Abstract. Since the rise of the light weight software processes, the paradigm on how software should be developed has started to shift. Agile methods strive to supersede the traditional software process with its exhausting requirements elicitation at the beginning of a software development project, ..."
Abstract
-
Cited by 5 (5 self)
- Add to MetaCart
Abstract. Since the rise of the light weight software processes, the paradigm on how software should be developed has started to shift. Agile methods strive to supersede the traditional software process with its exhausting requirements elicitation at the beginning of a software development project, at least for smaller or younger companies. The software engineering group at the Universität Karlsruhe has accounted for this shift and extended their offer of lectures by an Extreme Programming lab course held in cooperation with andrena objects ag.
A survey of evidence for test-driven development in academia
- ACM SIGCSE Bulletin
"... Abstract: University professors traditionally struggle to incorporate software testing into their course curriculum. Worries include doublegrading for correctness of both source and test code and finding time to teach testing as a topic. Testdriven development (TDD) has been suggested as a possible ..."
Abstract
-
Cited by 4 (4 self)
- Add to MetaCart
Abstract: University professors traditionally struggle to incorporate software testing into their course curriculum. Worries include doublegrading for correctness of both source and test code and finding time to teach testing as a topic. Testdriven development (TDD) has been suggested as a possible solution to improve student software testing skills and to realize the benefits of testing. According to most existing studies, TDD improves software quality and student productivity. This paper surveys the current state of TDD experiments conducted exclusively at universities. Similar surveys compare experiments in both the classroom and industry, but none have focused strictly on academia. 1.

