Agile Methods: mtyh versus essence

[PDF] Agile methods: myths versus essence

Rui F. Aguiar
Master of Software Engineering
Carnegie-Mellon University
Universidade de Coimbra
Abstract—Agile processes and methods have gained increased acceptance and nowadays they are seen as a valuable tool for software development. However, the term ‘Agile’ is still associated with things like lack of documentation, lack of discipline and no care for architecture - perhaps because of the radical ideas initially defended by its proponents. Taking as an example our MSE Studio project, I will demystify those ideas by showing how Agile can be adopted in a balanced way.

New papers on test driven development


 DocumentAuthor(s)DateSource title Citations
1. Development and test of a Stirling engine driven by waste gases for the micro-CHP system Li, T., Tang, D., Li, Z., Du, J., Zhou, T., Jia, Y.2012Applied Thermal Engineering,
33-34 (1) pp. 119-123.
0
2. Integrated language definition testing: Enabling Test-Driven Language Development Kats, L.C.L., Vermaas, R., Visser, E.2011Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA,
pp. 139-153.
0
3. Test-driven development of concurrent programs using concuerror Gotovos, A., Christakis, M., Sagonas, K.2011Erlang'11 - Proceedings of the 2011 ACM SIGPLAN Erlang Workshop,
pp. 51-61.
0
4. Unit test case design metrics in test driven development Shrivastava, D.P., Jain, R.C.20112011 International Conference on Communications, Computing and Control Applications, CCCA 2011,
art. no. 6031205
0
 










Issues Surrounding Moving a Successful Business Oriented Test Driven Development #TDD Process into the Environment of Real-time Embedded Systems

[PDF] Issues Surrounding Moving a Successful Business Oriented Test Driven Development Process into the Environment of Real-time Embedded Systems
M Smith, A Beaudin, J Miller, C Steinback, S Islam…
... Business Oriented Test Driven Development Process ... Two Agile methodolo- gies, test driven
development (TDD) and eXtreme- Programming (XP) were identified as providing ap- propriate
paths to the development of more reliable embedded systems. ...

An approach to test-driven development of conceptual schemas #TDD

Authors: Albert Tort, Antoni Olivéa, Maria-Ribera Sanchoa

Abstract:

Test-Driven Development (TDD) is an extreme programming development method in which a software system is developed in short iterations. In this paper we present the Test-Driven Conceptual Modeling (TDCM) method, which is an application of TDD for conceptual modeling, and we show how to develop a conceptual schema using it. In TDCM, a system's conceptual schema is incrementally obtained by performing three kinds of tasks: (1) Write a test the system should pass; (2) Change the schema to pass the test; and (3) Refactor the schema to improve its qualities. We also describe an integration approach of TDCM into a broad set of software development methodologies, including the Unified Process development methodology, the MDD-based approaches, the storytest-driven agile methods and the goal and scenario-oriented requirements engineering methods. We deal with schemas written in UML/OCL, but the TDCM method could be adapted to the development of schemas in other languages.

Link: http://www.sciencedirect.com/science/article/pii/S0169023X11000978

Bibtex entry:
@article{Tort20111088,
title = "An approach to test-driven development of conceptual schemas",
journal = "Data & Knowledge Engineering",
volume = "70",
number = "12",
pages = "1088 - 1111",
year = "2011",
note = "",
issn = "0169-023X",
doi = "10.1016/j.datak.2011.07.006",
url = "http://www.sciencedirect.com/science/article/pii/S0169023X11000978",
author = "Albert Tort and Antoni Olivé and Maria-Ribera Sancho",
keywords = "Conceptual modeling",
keywords = "Testing",
keywords = "TDD",
keywords = "Requirements validation",
keywords = "UML/OCL"
}

Regression Test Selection Techniques for Test-Driven Development #TDD

Authors: Cibulski, H.;   Yehudai, A.;  

Abstract:

Test-Driven Development (TDD) is characterized by repeated execution of a test suite, enabling developers to change code with confidence. However, running an entire test suite after every small code change is not always cost effective. Therefore, regression test selection (RTS) techniques are important for TDD. Particularly challenging for TDD is the task of selecting a small subset of tests that are most likely to detect a regression fault in a given small and localized code change. We present cost-bounded RTS techniques based on both dynamic program analysis and natural-language analysis. We implemented our techniques in a tool called Test Rank, and evaluated its effectiveness on two open-source projects. We show that using these techniques, developers can accelerate their development cycle, while maintaining a high bug detection rate, whether actually following TDD, or in any methodology that combines testing during development.

Bibtex entry:

@INPROCEEDINGS{5954400,
author={Cibulski, H. and Yehudai, A.},
booktitle={Software Testing, Verification and Validation Workshops (ICSTW), 2011 IEEE Fourth International Conference on}, title={Regression Test Selection Techniques for Test-Driven Development},
year={2011},
month={march},
volume={},
number={},
pages={115 -124},
keywords={bug detection rate;code change;cost-bounded RTS technique;development cycle;dynamic program analysis;natural-language analysis;regression fault;regression test selection;test rank tool;test-driven development;natural language processing;program debugging;program diagnostics;program testing;software fault tolerance;},
doi={10.1109/ICSTW.2011.28},
ISSN={},}

Blavatnik Sch. of Comput. Sci., Tel-Aviv Univ., Tel-Aviv, Israel  This paper appears in: Software Testing, Verification and Validation Workshops (ICSTW), 2011 IEEE Fourth International Conference on
Issue Date: 21-25 March 2011
On page(s): 115 - 124
Location: Berlin
Print ISBN: 978-1-4577-0019-4
References Cited: 35
INSPEC Accession Number: 12120665
Digital Object Identifier: 10.1109/ICSTW.2011.28 
Date of Current Version: 14 July 2011

Unit test case design metrics in test driven development #TDD

Authors:

Divya Prakash Shrivastava;   Jain, R. C.;  
Department of Computer Science, Al Jabal Al Garbi University, Zawia, LIBYA 


Link: http://dx.doi.org/10.1109/CCCA.2011.6031205

Abstract: Testing is a validation process that determines the conformance of the software's implementation to its specification. It is an important phase in unit test case design and is even more important in object-oriented systems.

This paper appears in: Communications, Computing and Control Applications (CCCA), 2011 International Conference on
Issue Date: 3-5 March 2011
On page(s): 1 - 6
Location: Hammamet, Tunisia
Print ISBN: 978-1-4244-9795-9
Digital Object Identifier: 10.1109/CCCA.2011.6031205 
Date of Current Version: 29 September 2011


Note: I haven't read this paper yet. I am not sure this is a good paper. It was published in a conference. And this conference is NOT one of the main conferences dedicated to Agile methods.

A study of the characteristics of behaviour driven development

Authors: Solis, Carlos    Wang, Xiaofeng

Link: http://hdl.handle.net/10344/1256

Abstract: Behaviour Driven Development (BDD) has gained increasing attention as an agile development approach in recent years. However, characteristics that constitute the BDD approach are not clearly defined. In this paper, we present a set of main BDD characteristics identified through an analysis of relevant literature and current BDD toolkits. Our study can provide a basis for understanding BDD, as well as for extending the existing BDD toolkits or developing new ones.

Test-driven development of concurrent programs using concuerror #TDD #Agile

Authors: Alkis Gotovos National Technical University of Athens, Athens, Greece

Maria Christakis National Technical University of Athens, Athens, Greece

Konstantinos Sagonas National Technical University of Athens & Uppsala University, Athens, Greece

Link: http://dl.acm.org/citation.cfm?id=2034664

Abstract:
This paper advocates the test-driven development of concurrent Erlang programs in order to detect early and eliminate the vast majority of concurrency-related errors that may occur in their execution. To facilitate this task we have developed a tool, called Concuerror, that exhaustively explores process interleaving (possibly up to some preemption bound) and presents detailed interleaving information of any errors that occur. We describe in detail the use of Concuerror on a non-trivial concurrent Erlang program that we develop step by step in a test-driven fashion.

Bibtex entry:

@inproceedings{Gotovos:2011:TDC:2034654.2034664, author = {Gotovos, Alkis and Christakis, Maria and Sagonas, Konstantinos}, title = {Test-driven development of concurrent programs using concuerror}, booktitle = {Proceedings of the 10th ACM SIGPLAN workshop on Erlang}, series = {Erlang '11}, year = {2011}, isbn = {978-1-4503-0859-5}, location = {Tokyo, Japan}, pages = {51--61}, numpages = {11}, url = {http://doi.acm.org/10.1145/2034654.2034664}, doi = {http://doi.acm.org/10.1145/2034654.2034664}, acmid = {2034664}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {erlang, test-driven development}, }

Agile methods for open source safety-critical software

Authors:
  1. Kevin Gary1,*,
  2. Andinet Enquobahrie2,
  3. Luis Ibanez2,
  4. Patrick Cheng3,
  5. Ziv Yaniv3,
  6. Kevin Cleary4,
  7. Shylaja Kokoori1,
  8. Benjamin Muffih1,
  9. John Heidenreich1
1Department of Engineering, Arizona State University, Mesa, AZ 85212, U.S.A.
2Kitware Inc., Clifton Park, NY 12065, U.S.A.
3Imaging Science and Information Systems (ISIS) Center, Department of Radiology, Georgetown University Medical Center, Washington, DC 20007, U.S.A.
4The Sheikh Zayed Institute for Pediatric Surgical Innovation, Children's National Medical Center, Washington, DC 20010, U.S.A.

Link: http://onlinelibrary.wiley.com/doi/10.1002/spe.1075/abstract
Journal: Software: Practice and Experience
Special Issue: Focus on Agile Software Development

Volume 41, Issue 9, pages 945–962, August 2011


Keywords:

  • agile methods;
  • software process;
  • open source;
  • safety

Abstract


The introduction of software technology in a life-dependent environment requires the development team to execute a process that ensures a high level of software reliability and correctness. Despite their popularity, agile methods are generally assumed to be inappropriate as a process family in these environments due to their lack of emphasis on documentation, traceability, and other formal techniques. Agile methods, notably Scrum, favor empirical process control, or small constant adjustments in a tight feedback loop. This paper challenges the assumption that agile methods are inappropriate for safety-critical software development. Agile methods are flexible enough to encourage the right amount of ceremony; therefore if safety-critical systems require greater emphasis on activities, such as formal specification and requirements management, then an agile process will include these as necessary activities. Furthermore, agile methods focus more on continuous process management and code-level quality than classic software engineering process models. We present our experiences on the image-guided surgical toolkit (IGSTK) project as a backdrop. IGSTK is an open source software project employing agile practices since 2004. We started with the assumption that a lighter process is better, focused on evolving code, and only adding process elements as the need arose. IGSTK has been adopted by teaching hospitals and research labs, and used for clinical trials. Agile methods have matured since the academic community suggested almost a decade ago that they were not suitable for safety-critical systems; we present our experiences as a case study for renewing the discussion.

Bibtex entry:

@article {SPE:SPE1075,
author = {Gary, Kevin and Enquobahrie, Andinet and Ibanez, Luis and Cheng, Patrick and Yaniv, Ziv and Cleary, Kevin and Kokoori, Shylaja and Muffih, Benjamin and Heidenreich, John},
title = {Agile methods for open source safety-critical software},
journal = {Software: Practice and Experience},
volume = {41},
number = {9},
publisher = {John Wiley & Sons, Ltd.},
issn = {1097-024X},
url = {http://dx.doi.org/10.1002/spe.1075},
doi = {10.1002/spe.1075},
pages = {945--962},
keywords = {agile methods, software process, open source, safety},
year = {2011},
}

Comparing the Defect Reduction Benefits of Code Inspection and Test-Driven Development #TDD

Article Title Comparing the Defect Reduction Benefits of Code Inspection and Test-Driven Development
Publication Title Software Engineering, IEEE Transactions on
AuthorsWilkerson, J.; Nunamaker, Jr., J.; Mercer, R.;

Abstract

This study is a quasi-experiment comparing the software defect rates and implementation costs of two methods of software defect reduction: code inspection and test-driven development. We divided participants, consisting of junior and senior computer science students at a large Southwestern university, into four groups using a two-by-two, between-subjects, factorial design and asked them to complete the same programming assignment using either test-driven development, code inspection, both, or neither. We compared resulting defect counts and implementation costs across groups. We found that code inspection is more effective than test-driven development at reducing defects, but that code inspection is also more expensive. We also found that test-driven development was no more effective at reducing defects than traditional programming methods.

Bibtex:

@ARTICLE{5750007,
author={Wilkerson, J. and Nunamaker, Jr., J. and Mercer, R.},
journal={Software Engineering, IEEE Transactions on}, title={Comparing the Defect Reduction Benefits of Code Inspection and Test-Driven Development},
year={2011},
month={ },
volume={PP},
number={99},
pages={1},
keywords={},
doi={10.1109/TSE.2011.46},
ISSN={0098-5589},}