Abstract
High quality assurance is a fundamental element of every engineering process and is considered to be one of the more difficult things to achieve and sustain. Since high quality is also a basic concern of software engineering, there are values and practices that support the assurance of high quality software products and processes. However, these are not sufficient, and in many cases, software products lack the required quality. In this chapter, among other issues, we analyze why this happens. We also describe how quality is perceived using the agile approach, starting withvalues values and practicespractices that support and control the process quality, such as customer collaboration and the planning of a typical agile software development process. We continue with values and practices that support the product quality, for example, refactoring and the feedback gained by exhaustive testing and test automation. Finally, we focus on the test driven development Test Driven Development (TDD)TDD practice, analyze its acceptance by software developers and present a way to measure and control TDD processes.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
The Metrics software, for example, provides a plug-in that automatically calculates McCabe cyclomatic complexity (http://metrics.sourceforge.net/).
References
Ambler SWAmbler SW (2006) Introduction to test driven development (TDD). http://www.agiledata.org/essays/tdd.html. Last updated July 28, 2006
Beck KBeck K (2000) Extreme programming explained. Addison-Wesley Reading, MA
Beck KBeck K (2003) Test-driven development by example. Addison Wesley, Reading, MA
Cockburn ACockburn A (2001) Agile software development. Addison-Wesley, Reading, MA
Cohen CFCohen CF , Birkin SJBirkin SJ , Garfield MJGarfield MJ , Webb HWWebb HW (2004) Managing conflict in software testing. Commun ACM 47(1):76–81
Dubinsky Y, Catarci TCatarci T , Kimani SKimani S (2006) Active data and the digital library shell. Joint conference on digital libraries (JCDL) workshop on digital libraries in the context of users’ broader activities. Chapel Hill, NC, USA
Dubinsky Y, Hazzan O (2007) Measured test-driven development: using measures to monitor and control the unit development. J Comput Sci 3(5):335–344
Feathers MFeathers M (2004) Working effectively with legacy code. Prentice Hall, Englewood Cliffs
Fowler MFowler M (1999) Refactoring: improving the design of existing code. Addison-Wesley Professional, Reading
George BGeorge B , Williams L (2003) An initial investigation of test driven development in industry. Proceedings of the ACM symposium on applied computing, March 9–12, Melbourne, Florida
George B, Williams LWilliams L (2004) A structured experiment of test-driven development. Inform Software Tech 46:337–342
Hamlet DHamlet D , Maybee JMaybee J (2001) The engineering of software. Addison Wesley, Reading, MA
Hazzan O, Leron ULeron U (2006) Why do we resist testing? System Design Frontier 3(8):13–17.
Hazzan O, Dubinsky Y (2007) Teaching agile software development quality assurance. In: Stamelos I, Sfetsos P (eds) The agile software development quality assurance book. Idea Group Inc., Chap. IX:171–185
McCabe TMcCabe T (1976) A complexity measure. IEEE T Software Eng 308–320
Meszaros GMeszaros G , Smith SMSmith SM , Andrea JAndrea J (2003) The test automation manifesto. Proceedings of the XP/agile conference, pp 73–81
Newkirk JWNewkirk JW , Vorontsov AAVorontsov AA (2004) Test-driven development in Microsoft .NET. Microsoft Press
Van Vliet HVan Vliet H (2000) Software engineering—principles and practice. Wiley, New York
Watson AHWatson AH , McCabe TJ (1996) Structured testing: a testing methodology using the cyclomatic complexity metric. NIST Special Publication 500–235
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2008 Springer-Verlag London
About this chapter
Cite this chapter
Hazzan, O., Dubinsky, Y. (2008). Quality. In: Agile Software Engineering. Undergraduate Topics in Computer Science. Springer, London. https://doi.org/10.1007/978-1-84800-198-5_6
Download citation
DOI: https://doi.org/10.1007/978-1-84800-198-5_6
Published:
Publisher Name: Springer, London
Print ISBN: 978-1-84800-198-5
Online ISBN: 978-1-84800-199-2
eBook Packages: Computer ScienceComputer Science (R0)