ebook img

Fundamentals of Software Testing PDF

374 Pages·2012·6.525 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Fundamentals of Software Testing

FundamentalsofSoftwareTesting Iwouldliketodedicatethisbooktoanumberofpersons: –tothosewhocamebeforemeandopenedthewayinthefieldoftesting,manyofthem arelistedinthebibliography; –tothosewhowillfollowme,hopingthatthisbookwillprovideyouwithagoodstartin thiswonderfulcareer; –tomycolleaguesanddearfriendswhoreadthedraftandproposedsuggestions; – to my spouse and children who have to suffer a husband and father who is too frequentlyawayandquitedemanding. Fundamentals of Software Testing Bernard Homès Firstpublished2012inGreatBritainandtheUnitedStatesbyISTELtdandJohnWiley&Sons,Inc. Apart from any fair dealing for the purposes of research or private study, or criticism or review, as permittedundertheCopyright,DesignsandPatentsAct1988,thispublicationmayonlybereproduced, storedortransmitted,inanyformorbyanymeans,withthepriorpermissioninwritingofthepublishers, or in the case of reprographic reproduction in accordance with the terms and licenses issued by the CLA. Enquiries concerning reproduction outside these terms should be sent to the publishers at the undermentionedaddress: ISTELtd JohnWiley&Sons,Inc. 27-37StGeorge’sRoad 111RiverStreet LondonSW194EU Hoboken,NJ07030 UK USA www.iste.co.uk www.wiley.com ©ISTELtd2012 TherightsofBernardHomèstobeidentifiedastheauthorofthisworkhavebeenassertedbyhimin accordancewiththeCopyright,DesignsandPatentsAct1988. ____________________________________________________________________________________ LibraryofCongressCataloging-in-PublicationData Homès,Bernard. Fundamentalsofsoftwaretesting/BernardHomès. p.cm. Includesbibliographicalreferencesandindex. ISBN978-1-84821-324-1 1. Computersoftware--Testing. I.Title. QA76.76.T48H6742012 005.1--dc23 2011040335 BritishLibraryCataloguing-in-PublicationData ACIPrecordforthisbookisavailablefromtheBritishLibrary ISBN:978-1-84821-324-1 PrintedandboundinGreatBritainbyCPIGroup(UK)Ltd.,Croydon,SurreyCR04YY Table of Contents Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Chapter1.FundamentalsofTesting . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.Whyistestingnecessary?(FL1.1). . . . . . . . . . . . . . . . . . . . . . 1 1.1.1.Softwaresystemscontext . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.2.Causesofsoftwaredefects . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.3.Roleoftestinginsoftwaredevelopment, maintenanceandoperations . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.1.4.Testandquality. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.1.5.Terminology. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2.Whatistesting?(FL1.2). . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.1.Originofdefects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.2.Commongoalsoftesting . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2.3.Examplesofobjectivesfortesting. . . . . . . . . . . . . . . . . . . . 9 1.2.4.Testanddebugging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3.Paradoxesandmainprinciples(FL1.3). . . . . . . . . . . . . . . . . . . 11 1.3.1.Testingidentifiesthepresenceofdefects. . . . . . . . . . . . . . . . 11 1.3.2.Exhaustivetestingisimpossible . . . . . . . . . . . . . . . . . . . . . 11 1.3.3.Earlytesting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.3.4.Defectclustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.3.5.Pesticideparadox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.3.6.Testingiscontextdependent . . . . . . . . . . . . . . . . . . . . . . . 13 1.3.7.Absenceoferrorsfallacy . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.4.Fundamentaltestprocess(FL1.4) . . . . . . . . . . . . . . . . . . . . . . 14 1.4.1.Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.4.2.Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 vi FundamentalsofSoftwareTesting 1.4.3.Testanalysisanddesign. . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.4.4.Testimplementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.4.5.Testexecution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.4.6.Analysisofexitcriteria . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.4.7.Reporting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.4.8.Testclosureactivities . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.5.Psychologyoftesting(FL1.5) . . . . . . . . . . . . . . . . . . . . . . . . 22 1.5.1.Levelsofindependence . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.5.2.Adaptationtogoals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.5.3.Destructiveorconstructive? . . . . . . . . . . . . . . . . . . . . . . . 25 1.5.4.Relationalskills. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.5.5.Changeofperspective . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 1.6.Testersandcodeofethics(FL1.6). . . . . . . . . . . . . . . . . . . . . . 27 1.6.1.Public. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 1.6.2.Customerandemployer . . . . . . . . . . . . . . . . . . . . . . . . . . 28 1.6.3.Product. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 1.6.4.Judgment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 1.6.5.Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 1.6.6.Profession . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 1.6.7.Colleagues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 1.6.8.Self . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 1.7.Synopsisofthischapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 1.8.Sampleexamquestions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Chapter2.TestingThroughouttheSoftwareLifeCycle. . . . . . . . . . . . 43 2.1.Softwaredevelopmentmodels(FL2.1) . . . . . . . . . . . . . . . . . . . 43 2.1.1.Sequentialmodels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.1.2.Iterativemodels(FL2.1.2) . . . . . . . . . . . . . . . . . . . . . . . . 47 2.1.3.Incrementalmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 2.1.4.RAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.1.5.Agilemodels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 2.1.6.Selectionofadevelopmentmodel. . . . . . . . . . . . . . . . . . . . 56 2.1.7.Positioningtests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 2.2.Testlevels(FL2.2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 2.2.1.Componentleveltestingorcomponenttests. . . . . . . . . . . . . . 59 2.2.2.IntegrationleveltestingorIntegrationtests . . . . . . . . . . . . . . 60 2.2.3.Systemtests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 2.2.4.Acceptancetests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 2.2.5.Otherlevels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 2.3.Typesoftests(FL2.3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 2.3.1.Functionaltests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 2.3.2.Non-functionaltests . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 TableofContents vii 2.3.3.Testsbasedonthestructureorarchitectureofthesoftware. . . . . 71 2.3.4.Testsassociatedwithchanges . . . . . . . . . . . . . . . . . . . . . . 72 2.3.5.Comparisonsandexamples. . . . . . . . . . . . . . . . . . . . . . . . 73 2.4.Testandmaintenance(FL2.4) . . . . . . . . . . . . . . . . . . . . . . . . 74 2.4.1.Maintenancecontext. . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 2.4.2.Evolutivemaintenance. . . . . . . . . . . . . . . . . . . . . . . . . . . 76 2.4.3.Correctivemaintenance . . . . . . . . . . . . . . . . . . . . . . . . . . 76 2.4.4.Retirementandreplacement . . . . . . . . . . . . . . . . . . . . . . . 77 2.4.5.Regressiontestpolicies . . . . . . . . . . . . . . . . . . . . . . . . . . 78 2.4.6.SLAvalidationandacceptance. . . . . . . . . . . . . . . . . . . . . . 81 2.5.Oracles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 2.5.1.Problemswithoracles . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 2.5.2.Sourcesoforacles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 2.5.3.Oracleusage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 2.6.Specificcases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 2.6.1.Performancetests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 2.6.2.Maintainabilitytests . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 2.7.Synopsisofthischapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 2.8.Sampleexamquestions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Chapter3.StaticTechniques(FL3.0) . . . . . . . . . . . . . . . . . . . . . . . 91 3.1.Statictechniquesandthetestprocess(FL3.1). . . . . . . . . . . . . . . 91 3.2.Reviewprocess(FL3.2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 3.2.1.Typesofreviews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 3.2.2.Rolesandresponsibilitiesduringreviews . . . . . . . . . . . . . . . 100 3.2.3.Phasesofreviews. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 3.2.4.Successfactorsforreviews . . . . . . . . . . . . . . . . . . . . . . . . 116 3.2.5.Comparisonofthetypesofreviews. . . . . . . . . . . . . . . . . . . 117 3.3.Staticanalysisbytools(FL3.3). . . . . . . . . . . . . . . . . . . . . . . . 119 3.3.1.Typesofstaticanalysis . . . . . . . . . . . . . . . . . . . . . . . . . . 120 3.3.2.Typesofdefectsthatcanbeidentified . . . . . . . . . . . . . . . . . 125 3.3.3.Dataflowanalysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 3.4.Addedvalueofstaticactivities . . . . . . . . . . . . . . . . . . . . . . . . 130 3.5.Synopsisofthischapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 3.6.Sampleexamquestions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Chapter4.TestDesignTechniques(FL4.0). . . . . . . . . . . . . . . . . . . . 137 4.1.Thetestdevelopmentprocess(FL4.1). . . . . . . . . . . . . . . . . . . . 139 4.1.1.Terminology. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 4.1.2.Traceability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 4.2.Categoriesoftestdesigntechniques(FL4.2). . . . . . . . . . . . . . . . 143 4.2.1.Blackbox,whitebox,orgraybox. . . . . . . . . . . . . . . . . . . . 143 viii FundamentalsofSoftwareTesting 4.2.2.Experience-basedtechniques. . . . . . . . . . . . . . . . . . . . . . . 145 4.2.3.Testcharacteristics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 4.2.4.Limitationsandassumptions . . . . . . . . . . . . . . . . . . . . . . . 146 4.3.Black-boxtechniques(FL4.3) . . . . . . . . . . . . . . . . . . . . . . . . 147 4.3.1.Equivalencepartitioning(FL4.3.1) . . . . . . . . . . . . . . . . . . . 148 4.3.2.Boundaryvalueanalysis(FL4.3.2) . . . . . . . . . . . . . . . . . . . 155 4.3.3.Decisiontables(FL4.3.3). . . . . . . . . . . . . . . . . . . . . . . . . 158 4.3.4.Othercombinationaltechniques . . . . . . . . . . . . . . . . . . . . . 162 4.3.5.Statetransitiontesting(FL4.3.4) . . . . . . . . . . . . . . . . . . . . 163 4.3.6.Usecasetesting(FL4.3.5) . . . . . . . . . . . . . . . . . . . . . . . . 170 4.3.7.Limitationsandassumptions . . . . . . . . . . . . . . . . . . . . . . . 172 4.4.Structure-basedtechniques(FL4.4) . . . . . . . . . . . . . . . . . . . . . 172 4.4.1.Statementtestingandcoverage(FL4.4.1) . . . . . . . . . . . . . . . 174 4.4.2.Decisiontestingandcoverage(FL4.4.2). . . . . . . . . . . . . . . . 180 4.4.3.Otherstructure-basedtechniques(FL4.4.3). . . . . . . . . . . . . . 183 4.4.4.MC/DCcoverage(FL4.4.3) . . . . . . . . . . . . . . . . . . . . . . . 185 4.4.5.Limitationsandassumptionsofstructure-basedtesting . . . . . . . 186 4.4.6.Coveragelevelandexitcriteria. . . . . . . . . . . . . . . . . . . . . . 187 4.5.Experience-basedtechniques(FL4.5). . . . . . . . . . . . . . . . . . . . 187 4.5.1.Attacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 4.5.2.Defecttaxonomies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 4.5.3.Errorguessingandadhoctesting . . . . . . . . . . . . . . . . . . . . 190 4.5.4.Exploratorytesting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 4.5.5.Limitationsandassumptions . . . . . . . . . . . . . . . . . . . . . . . 192 4.6.Choosingtesttechniques(FL4.6) . . . . . . . . . . . . . . . . . . . . . . 193 4.7.Synopsisofthischapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 4.8.Sampleexamquestions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Chapter5.TestManagement(FL5.0) . . . . . . . . . . . . . . . . . . . . . . . 209 5.1.Testorganization(FL5.1) . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 5.1.1.Independencelevels . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 5.1.2.Rolesandresponsibilities . . . . . . . . . . . . . . . . . . . . . . . . . 212 5.1.3.Humanandcontractaspects . . . . . . . . . . . . . . . . . . . . . . . 214 5.2.Testplanningandestimation(FL5.2). . . . . . . . . . . . . . . . . . . . 215 5.2.1.Planningandevaluationactivities . . . . . . . . . . . . . . . . . . . . 218 5.2.2.Testplanningactivities . . . . . . . . . . . . . . . . . . . . . . . . . . 228 5.2.3.Testdocumentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 5.2.4.Entryandexitcriteriafortestactivities. . . . . . . . . . . . . . . . . 235 5.3.Testprogressmonitoringandcontrol(FL5.3) . . . . . . . . . . . . . . . 239 5.4.Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 5.4.1.Whattoreport,towhom,andhow?. . . . . . . . . . . . . . . . . . . 242 5.4.2.Statisticsandgraphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.