Skip to main content

Quality

  • Chapter
  • First Online:
Agile Software Engineering

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 29.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 39.95
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 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

    Google Scholar 

  • Beck KBeck K (2003) Test-driven development by example. Addison Wesley, Reading, MA

    Google Scholar 

  • Cockburn ACockburn A (2001) Agile software development. Addison-Wesley, Reading, MA

    Google Scholar 

  • Cohen CFCohen CF , Birkin SJBirkin SJ , Garfield MJGarfield MJ , Webb HWWebb HW (2004) Managing conflict in software testing. Commun ACM 47(1):76–81

    Article  Google Scholar 

  • 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

    Google Scholar 

  • 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

    Article  Google Scholar 

  • Feathers MFeathers M (2004) Working effectively with legacy code. Prentice Hall, Englewood Cliffs

    Google Scholar 

  • Fowler MFowler M (1999) Refactoring: improving the design of existing code. Addison-Wesley Professional, Reading

    Google Scholar 

  • 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

    Google Scholar 

  • George B, Williams LWilliams L (2004) A structured experiment of test-driven development. Inform Software Tech 46:337–342

    Article  Google Scholar 

  • Hamlet DHamlet D , Maybee JMaybee J (2001) The engineering of software. Addison Wesley, Reading, MA

    Google Scholar 

  • Hazzan O, Leron ULeron U (2006) Why do we resist testing? System Design Frontier 3(8):13–17.

    Google Scholar 

  • 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

    Google Scholar 

  • McCabe TMcCabe T (1976) A complexity measure. IEEE T Software Eng 308–320

    Google Scholar 

  • Meszaros GMeszaros G , Smith SMSmith SM , Andrea JAndrea J (2003) The test automation manifesto. Proceedings of the XP/agile conference, pp 73–81

    Google Scholar 

  • Newkirk JWNewkirk JW , Vorontsov AAVorontsov AA (2004) Test-driven development in Microsoft .NET. Microsoft Press

    Google Scholar 

  • Van Vliet HVan Vliet H (2000) Software engineering—principles and practice. Wiley, New York

    Google Scholar 

  • Watson AHWatson AH , McCabe TJ (1996) Structured testing: a testing methodology using the cyclomatic complexity metric. NIST Special Publication 500–235

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics