Professional Documents
Culture Documents
Introduction To Software Quality Assurance: Based On D. Galin Ch1 - 4, 5 and R. Patton CH 1
Introduction To Software Quality Assurance: Based On D. Galin Ch1 - 4, 5 and R. Patton CH 1
BasedonD.GalinCh14,5andR.PattonCh1
Objectives
WhatisSoftware?
AccordingtotheIEEE Softwareis: Computerprograms,procedures,andpossibly associateddocumentationanddatapertainingto theoperationofacomputersystem.
SoftwareErrors,softwarefaultsand softwarefailures
NineCausesofSoftwareErrors
1.Faultyrequirementsdefinition 2.Clientdevelopercommunicationfailures 3.Deliberatedeviationsfromsoftwarerequirements 4.Logicaldesignerrors 5.Codingerrors 6.Noncompliancewithdocumentationandcodinginstructions 7.Shortcomingsofthetestingprocess 8.Userinterfaceandprocedureerrors 9.Documentationerrors
Majorityofdefectsareintroducedinearlierphases
Phase Requirements Design Code Others Percentage of Effort to fix defects defects 56 82 27 13 7 1 10 4
Developmentprocessrelationto defects
Relativecostoffixingdefects
Phase in which found Requirements Design Coding Unit/Integration testing System/Acceptance testing Production Cost Ratio 1 36 10 15 40 30 70 40 1000
WhatisSoftwareQuality?
Conformancetorequirements Lack of bugs Low defect rate (# of defects/size unit) High reliability (number of failures per n hours of operation)
Measured as Mean Time To Failure (MTTF) probability of failure-free operation in a specified time
WhatisSoftwareQuality?
AccordingtotheIEEE Softwarequalityis: (1) Thedegreetowhichasystem,component,orprocess meetsspecifiedrequirements. (2) Thedegreetowhichasystem,component,orprocess meetscustomeroruserneedsorexpectations.
WhatisSoftwareQuality?
AccordingtoPressman Softwarequalityis: Conformancetoexplicitlystatedfunctionaland performancerequirements,explicitlydocumented developmentstandards,andimplicitcharacteristicsthat areexpectedofallprofessionallydevelopedsoftware
ImportanceofSoftwareQuality
Softwareisamajorcomponentofcomputersystems (about80%ofthecost)usedfor
Softwaredefectsareextremelycostlyintermof
ImportanceofSoftwareQuality
Severalhistoricdisastersattributedtosoftware
1988shootingdownofAirbus320bytheUSSVincennescryptic andmisleadingoutputdisplayedbytrackingsoftware 1991patriotmissilefailureinaccuratecalculationoftimedueto computerarithmeticerrors LondonAmbulanceServiceComputerAidedDispatchSystem severaldeaths OnJune3,1980,theNorthAmericanAerospaceDefenseCommand (NORAD)reportedthattheU.S.wasundermissileattack. Firstoperationallaunchattemptofthespaceshuttle,whoserealtime operatingsoftwareconsistsofabout500,000linesofcode,failed synchronizationproblemamongitsflightcontrolcomputers. 9hourbreakdownofAT&T'slongdistancetelephonenetwork causedbyanuntestedcodepatch
ImportanceofSoftwareQuality
Ariane5crashJune4,1996
ErrorwasnotsupposedtohappenwithAriane4 Noexceptionhandler
ImportanceofSoftwareQuality
MarsClimateOrbiterSeptember23,1999
ImportanceofSoftwareQuality
MarsPolarLanderDecember,1999
defectnotcaughtbytesting independentteamstestedseparateaspects
ImportanceofSoftwareQuality
Internetvirusesandworms
Blasterworm($US525millions) Sobig.F($US500millions1billions)
Exploitwellknownsoftwarevulnerabilities
Usabilityproblems
Monetaryimpactofpoorsoftwarequality(Standishgroup1995) 175,000softwareprojects/yearAverageCostperproject
ImportanceofSoftwareQuality
Largecompanies$US2,322,000 Mediumcompanies$US1,331,000 Smallcompanies$US434,000 cost$81billion
31.1%ofprojectscanceledbeforecompleted
52.7%ofprojectsexceedtheirbudgetcosting189%oforiginalestimates
cost$59billion
TheSoftwareQualityChallenge
Theuniquenessofthesoftwareproduct
onlyopportunityisProductdevelopment
Theenvironmentsinwhichsoftwareisdeveloped
SoftwareQualityFactors
McCall'ssoftwarequalityfactormodel Softwarequalityfactors
Productoperationfactors
Correctness Reliability Efficiency Integrity Usability
Productrevisionfactors
Maintainability Flexibility Testability
Producttransitionfactors
Portability Reusability Interoperability
Correctness
SoftwareQualityFactors
Reliability
Efficiency
Integrity
Usability
SoftwareQualityFactors
Maintainability
efforttoidentifyandfixsoftwarefailures(modularity, documentation,etc)
Flexibility
degreeofadaptability(tonewcustomers,tasks,etc)
Testability
supportfortesting(e.g.logfiles,automaticdiagnostics,etc)
SoftwareQualityFactors
Portability
adaptationtootherenvironments(hardware,software)
Reusability
useofsoftwarecomponentsforotherprojects
Interoperability
abilitytointerfacewithothercomponents/systems
WhatisSoftwareQualityAssurance?
AccordingtotheIEEE Softwarequalityassuranceis: 1. Aplannedandsystematicpatternofallactions necessarytoprovideadequateconfidencethatanitem orproductconformstoestablishedtechnical requirements. 2. Asetofactivitiesdesignedtoevaluatetheprocessby whichtheproductsaredevelopedormanufactured. Contrastwith:qualitycontrol.
WhatisSoftwareQualityAssurance?
AccordingtoD.Galin Softwarequalityassuranceis: Asystematic,plannedsetofactionsnecessarytoprovide adequateconfidencethatthesoftwaredevelopmentprocess orthemaintenanceprocessofasoftwaresystemproduct conformstoestablishedfunctionaltechnicalrequirements aswellaswiththemanagerialrequirementsofkeepingthe scheduleandoperatingwithinthebudgetaryconfines.
ObjectivesofSQAindevelopment
(1) Assuringanacceptablelevelofconfidencethatthesoftware willconformtofunctionaltechnicalrequirements. (2) Assuringanacceptablelevelofconfidencethatthesoftware willconformtomanagerialschedulingandbudgetary requirements. (3) Initiationandmanagementofactivitiesfortheimprovement andgreaterefficiencyofsoftwaredevelopmentandSQA activities.
ObjectivesofSQAinmaintenance
(1) Assuringanacceptablelevelofconfidencethatthesoftware maintenanceactivitieswillconformtothefunctional technicalrequirements. (2) Assuringanacceptablelevelofconfidencethatthesoftware maintenanceactivitieswillconformtomanagerial schedulingandbudgetaryrequirements. (3) Initiateandmanageactivitiestoimproveandincreasethe efficiencyofsoftwaremaintenanceandSQAactivities.
ThreeGeneralPrinciplesofQA
ThreeGeneralPrinciplesofQA
Knowwhatyouaredoing
ThreeGeneralPrinciplesofQA
Knowwhatyoushouldbedoing
havingexplicitrequirementsandspecifications supposeasoftwaredevelopmentprocesswith
ThreeGeneralPrinciplesofQA
Knowhowtomeasurethedifference
SoftwareQualityAssurance
Takesintoaccount:
SQA
SQEincludes
verification
Verification
verification
verification
Validation
verification
SQA
SQAincludes
DefectPrevention
preventsdefectsfromoccurringinthefirstplace
Defectsdetection
Defectsremoval
isolation,correction,verificationoffixes
Activities:faultisolation,faultanalysis,regressiontesting
SQA
TypicalactivitiesofaSQAprocess