• Orit Hazzan
  • Yael Dubinsky
Part of the Undergraduate Topics in Computer Science book series (UTICS)


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.


Software Development Software Project Acceptance Test Software Development Process Quality Quality 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. Ambler SWAmbler SW (2006) Introduction to test driven development (TDD). Last updated July 28, 2006
  2. Beck KBeck K (2000) Extreme programming explained. Addison-Wesley Reading, MAGoogle Scholar
  3. Beck KBeck K (2003) Test-driven development by example. Addison Wesley, Reading, MAGoogle Scholar
  4. Cockburn ACockburn A (2001) Agile software development. Addison-Wesley, Reading, MAGoogle Scholar
  5. Cohen CFCohen CF, Birkin SJBirkin SJ, Garfield MJGarfield MJ, Webb HWWebb HW (2004) Managing conflict in software testing. Commun ACM 47(1):76–81CrossRefGoogle Scholar
  6. 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, USAGoogle Scholar
  7. Dubinsky Y, Hazzan O (2007) Measured test-driven development: using measures to monitor and control the unit development. J Comput Sci 3(5):335–344CrossRefGoogle Scholar
  8. Feathers MFeathers M (2004) Working effectively with legacy code. Prentice Hall, Englewood CliffsGoogle Scholar
  9. Fowler MFowler M (1999) Refactoring: improving the design of existing code. Addison-Wesley Professional, ReadingGoogle Scholar
  10. 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, FloridaGoogle Scholar
  11. George B, Williams LWilliams L (2004) A structured experiment of test-driven development. Inform Software Tech 46:337–342CrossRefGoogle Scholar
  12. Hamlet DHamlet D, Maybee JMaybee J (2001) The engineering of software. Addison Wesley, Reading, MAGoogle Scholar
  13. Hazzan O, Leron ULeron U (2006) Why do we resist testing? System Design Frontier 3(8):13–17.Google Scholar
  14. 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–185Google Scholar
  15. McCabe TMcCabe T (1976) A complexity measure. IEEE T Software Eng 308–320Google Scholar
  16. Meszaros GMeszaros G, Smith SMSmith SM, Andrea JAndrea J (2003) The test automation manifesto. Proceedings of the XP/agile conference, pp 73–81Google Scholar
  17. Newkirk JWNewkirk JW, Vorontsov AAVorontsov AA (2004) Test-driven development in Microsoft .NET. Microsoft PressGoogle Scholar
  18. Van Vliet HVan Vliet H (2000) Software engineering—principles and practice. Wiley, New YorkGoogle Scholar
  19. Watson AHWatson AH, McCabe TJ (1996) Structured testing: a testing methodology using the cyclomatic complexity metric. NIST Special Publication 500–235Google Scholar

Copyright information

© Springer-Verlag London 2008

Authors and Affiliations

  • Orit Hazzan
    • 1
  • Yael Dubinsky
    • 2
  1. 1.Department of Education in Technology and Science TechnionIsrael Institute of TechnologyHaifaIsrael
  2. 2.Department of Computer Science TechnionIsrael Institute of TechnologyHaifaIsrael

Personalised recommendations