tailieunhanh - Lecture Software testing and analysis: Chapter 1 - Mauro Pezzè, Michal Young

Before considering individual aspects and techniques of software analysis and testing, it is useful to view the “big picture” of software quality in the context of a software development project and organization. The objective of this chapter is to introduce the range of software verification and validation (V&V) activities and a rationale for selecting and combining them within a software development process. | Software Test and Analysis in a Nutshell (c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 1 Learning objectives • View the “big picture'' of software quality in the context of a software development project and organization: • Introduce the range of software verification and validation activities • Provide a rationale for selecting and combining them within a software development process. (c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 2 Engineering processes • Sophisticated tools – amplify capabilities – but do not remove human error • Engineering disciplines pair – construction activities with – activities that check intermediate and final products • Software engineering is no exception: construction of high quality software requires – construction and – verification activities (c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 3 Verification and design activities • Verification and design activities take various forms – suited to highly repetitive construction of noncritical items for mass markets – highly customized or highly critical products. • Appropriate verification activities depend on – – – – engineering discipline construction process final product quality requirements. (c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 4 Peculiarities of software Software has some characteristics that make V&V particularly difficult: – – – – Many different quality requirements Evolving (and deteriorating) structure Inherent non-linearity Uneven distribution of faults Example If an elevator can safely carry a load of 1000 kg, it can also safely carry any smaller load; If a procedure correctly sorts a set of 256 elements, it may fail on a set of 255 or 53 or 12 elements, as well as on 257 or 1023. (c) 2007 Mauro Pezzè & Michal Young Ch 1, slide .