Contents � Introduction Introduction � � Software Development Processes Software Development Processes � � Project Management Project Management � � Requirements Engineering Requirements Engineering � � Software Construction Software Construction � � Group processes Group processes � � Quality Assurance � What is Quality Assurance? � Testing (Lecture 7) � Planning Quality and Inspections (Lecture 8) � Software Management and Evolution 12/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU Last Time 12/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU Today - Quality Assurance � What is Quality Assurance? � What is Quality? 12/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU 1
What is Quality Assurance? QA is the combination of planned and unplanned activities to ensure the fulfillment of predefined quality standards. � Constructive vs. analytic approaches to QA � Qualitative vs. quantitative quality standards � Measurement � Derive qualitative factors from measurable quantitative factors � Software measures (metrics) 12/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU Some Example Metrics � To measure efficiency � Time behaviour • Transactions per second • Response time • Screen refresh time � Resource behaviour • KBytes of executables • LOC • Number of processors � To measure usability � Training time � Number of help frames 12/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU Some Example Metrics (cont.) � To measure reliability � MTTF (Mean Time To Failure) � Availability � To measure robustness � Time to restart after a failure � Probability of data corruption on failure � To measure portability � Number of target systems � Percentage of target dependent statements � Measurement is necessary 12/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU 2
How To Measure Quality? subjective Efficiency Quality Factor properties depends on Property/ Property/ Property/ Speed Criteria Criteria Criteria Size determined by Response time in s objective Metric Metric Metric LOC measurements ... 12/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU Approaches to QA � Constructive Approaches The usage of methods, languages, and tools that ensure the fulfillment of some quality factors. � Syntax-directed editors � Enforced coding guidelines � Type systems � Standards � … 12/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU Standards � Two types of standards � Product � Process � Standards are important � Based on experience � A framework for implementing the quality assurance process � Assist in continuity 12/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU 3
Standards (cont.) � How to follow them � Involve the software engineers � Review and modify regulary � Provide software tools to support standards � It takes time to develop standards � Base organisational standars on national and international standards • ISO 9000, ... � Documentation standards � Documentation process standards � Document standards � Document interchange standards 12/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU Approaches to QA (cont.) � Software Process Improvement The improvement of development processes to yield better products 12/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU Approaches to QA (cont.) � Analytic approaches The usage of methods, languages, and tools to observe the current quality level. � Inspections � Static analysis tools (e.g. lint) � Testing � ... 12/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU 4
Quality is ... � … I know it when I see it � … it suits the client/user � … it conforms to the specification � … it has some inherent quality � … it depends on the price � … it depends on the delivery date 12/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU And Quality is … Sponsor User Functionality Low costs Efficiency Easy to learn I ncreased productivity Easy to remember Short time of delivery Easy to use Reliability Flexibility Few errors Readable code Good design Good documentation Maintainer/modifier Quality Factors (ISO 9126) Suitability Accuracy Functionality Interoperability Security Maturity Reliability Fault tolerance Recoverability Understandability Usability Learnability Operability Time behavior Efficiency Resource behavior Analyzability Changeability Maintainability Stability Testability Adaptability Installability Portability Conformance Replaceability 5
The Quality Triangle � Different goals for different projects and Lead time organizations (close delivery time) � Medical equipment � ATM � Text editor � ”Good Enough” Software � Quality must be Functionality Quality measured goal- (number of “features”) (absense of errors) oriented 12/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU Error vs. Fault vs. Failure ?! can lead to can lead to human error fault failure � Different types of faults � Different identification techniques � Different testing techniques � Fault prevention and -detection strategies should be based on expected fault profile � Individual differences 12/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU HP’s Fault Classification Fault origin: WHERE? Specification/ Environment/ Documen- Design Code Other requirements support tation Fault type: WHAT? Requirements HW interface (Inter-)Process Logic Test HW or communications specifications SW interface Computation Test SW Data definition Functionality User interface Data handling Integration SW Module design Functional Module Development description Logic interface/ tools description implementation Error checking Standards Standards Missing Unclear Wrong Changed Better way Fault mode: WHY? 6
Fault Profile of a HP Division 6% 11% Data handling Documentation 19% Requirements Hardware 18% Process/ interprocess Logic 5% Computation Other code 4% 5% 32% See [Pfleeger 98]. 12/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU Improving Quality Resources Products Processes � Personnel � Code � Methods � Tools � Design � Management � Budget � Requirements � Accounting � ... � ... � ... Ordinary testing Easy to measure 12/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU The Message Quality is relative Quality covers more than just code Establish a quality culture 12/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU 7
Summary � What is Quality Assurance? � What is Quality? 12/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU Next time � Introduction Introduction � � Software Development Processes Software Development Processes � � Project Management Project Management � � Requirements Engineering Requirements Engineering � � Software Construction Software Construction � � Group processes Group processes � � Quality Assurance � What is Quality Assurance? What is Quality Assurance? � � Testing (Lecture 7) � Planning Quality and Inspections (Lecture 8) � Software Management and Evolution 12/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU 8
Recommend
More recommend