Introduction to Software Testing(ISBN 978-0-521-88038-1)by Paul Ammann and Jeff Offuttfirst published by Cambridge University Press in 2008.All rights reserved.This reprint edition for the PeopleS Republic of China is published by arrangement with thePress Syndicate of the University of Cambridge,Cambridge,United Kingdom.◎Cambridge University Press&China Machine Press in 2009.This edition is for sale in the mainland of China only,excluding Hong Kong SAR,Macao SARand Taiwan,and may not be bought for export therefrom.《軟件測(cè)試基礎(chǔ)(英文版)》由機(jī)械工業(yè)出版社和劍橋大學(xué)出版社合作出版。
作者簡(jiǎn)介
Paul Ammann,在美國(guó)維吉尼亞大學(xué)獲得計(jì)算機(jī)科學(xué)博士學(xué)位,現(xiàn)為喬治·梅森大學(xué)軟件工程副教授。他于2007年獲得喬治·梅森大學(xué)Volgenau信息技術(shù)與工程學(xué)院的杰出教學(xué)獎(jiǎng)。Jeff Offutt,在喬治亞理工學(xué)院獲得計(jì)算機(jī)博士學(xué)位,現(xiàn)為喬治·梅森大學(xué)軟件工程教授。他是((Journal of Software Testing,Verification and Reliability))的主編,是IEEE軟件測(cè)試、驗(yàn)證和確認(rèn)國(guó)際會(huì)議指導(dǎo)委員會(huì)主席,還是許多期刊的編委。他于2003年獲得喬治·梅森大學(xué)Volgenau信息技術(shù)與工程學(xué)院的優(yōu)秀教師獎(jiǎng)。
圖書目錄
Preface Part1 Overview 1 Introduction 1.1 ActivitiesofaTestEngineer 1.1.1 TestingLevelsBasedonSoftwareActivity 1.1.2 BeizersTestingLevelsBasedonTestProcessMaturity 1.1.3 AutomationofTestActivities 1.2 SoftwareTestingLimitationsandTerminology 1.3 CoverageCriteriaforTesting 1.3.1 InfeasibilityandSubsumption 1.3.2 CharacteristicsofaGoodCoverageCriterion 1.4 OlderSoftwareTestingTerminology 1.5 BibliographicNotes Part2 CoverageCriteria 2 GraphCoverage 2.1 Overview 2.2 GraphCoverageCriteria 2.2.1 StructuralCoverageCriteria 2.2.2 DataFlowCriteria 2.2.3 SubsumptionRelationshipsamongGraphCoverageCriteria 2.3 GraphCoverageforSourceCode 2.3.1 StructuralGraphCoverageforSourceCode 2.3.2 DataFlowGraphCoverageforSourceCode 2.4 GraphCoverageforDesignElements 2.4.1 StructuralGraphCoverageforDesignElements 2.4.2 DataFlowGraphCoverageforDesignElements 2.5 GraphCoverageforSpecifications 2.5.1 TestingSequencingConstraints 2.5.2 TestingStateBehaviorofSoftware 2.6 GraphCoverageforUseCases 2.6.1 UseCaseScenarios 2.7 RepresentingGraphsAlgebraically 2.7.1 ReducingGraphstoPathExpressions 2.7.2 ApplicationsofPathExpressions 2.7.3 DerivingTestInputs 2.7.4 CountingPathsinaFlowGraphandDeterminingMaxPathLength 2.7.5 MinimumNumberofPathstoReachAllEdges 2.7.6 ComplementaryOperationsAnalysis 2.8 BibliographicNotes 3 LogicCoverage 3.1 Overview:LogicPredicatesandClauses 3.2 LogicExpressionCoverageCriteria 3.2.1 ActiveClauseCoverage 3.2.2 InactiveClauseCoverage 3.2.3 InfeasibilityandSubsumption 3.2.4 MakingaClauseDetermineaPredicate 3.2.5 FindingSatisfyingValues 3.3 StructuralLogicCoverageofPrograms 3.3.1 PredicateTransformationIssues 3.4 Specification-BasedLogicCoverage 3.5 LogicCoverageofFiniteStateMachines 3.6 DisjunctiveNormalFormCriteria 3.7 BibliographicNotes 4 InputSpacePartitioning 4.1 InputDomainModeling 4.1.1 Interface-BasedInputDomainModeling 4.1.2 Functionality-BasedInputDomainModeling 4.1.3 IdentifyingCharacteristics 4.1.4 ChoosingBlocksandValues 4.1.5 UsingMorethanOneInputDomainModel 4.1.6 CheckingtheInputDomainModel 4.2 CombinationStrategiesCriteria 4.3 ConstraintsamongPartitions 4.4 BibliographicNotes 5 Syntax-Based Testing 5.1 Syntax.Based Coverage Criteria 5.1.1 BNF Coverage Criteria 5.1.2 Mutation Testing 5.2 Program.Based Grammars 5.2.1 BNF Grammars for Languages 5.2.2 Program.Based Mutation 5.3 Integration and Object-Oriented Testing 5.3.1 BNF Integration Testing 5.3.2 Integration Mutation 5.4 Specification.Based Grammars 5.4.1 BNF Grammars 5.4.2 Specification.Based Mutation 5.5 Input Space Grammars 5.5.1 BNF Grammars 5.5.2 Mutation for Input Grammars 5.6 Bibliographic Notes Part 3 Applying Criteria In Practice 6 PractlcaI COnsIderatIOnS 6.1 Regression Testing 6.2 Integration and Testing 6.2.1 Stubs and Drivers 6.2.2 Class Integration Test Order 6.3 Test Process 6.3.1 Requirements Analysis and Specification 6.3.2 System and Software Design 6.3.3 Intermediate Design 6.3.4 Detailed Design 6.3.5 Implementation 6.3.6 Integration 6.3.7 System Deployment 6.3.8 Operation and Maintenance 6.3.9 Summary 6.4 Test Plans 6.5 Identifying Correct Outputs 6.5.1 Direct Verification of Outputs 6.5.2 Redundant Computations 6.5.3 Consistency Checks 6.5.4 Data Redundancy 6.6 Bibliographic Notes 7 Engineering Criteria for Technologies 7.1 Testing Object.Oriented Software 7.1.1 Unique Issues with Testing OO Software 7.1.2 Types of Obiect-Oriented Faults 7.2 Testing Web Applications and Web Services 7.2.1 Testing Static Hyper Text Web Sites 7.2.2 Testing Dynamic Web Applications 7.2.3 Testing Web Services 7.3 Testing Graphical User Interfaces 7.3.1 Testing GUIs 7.4 Real.Time Software and Embedded Software 7.5 Bibliographic Notes 8 Building Testing Tools 8.1 Instrumentation for Graph and Logical Expression Criteria 8.1.1 Node and Edge Coverage 8.1.2 Data Flow Coverage 8.1.3 Logic Coverage 8.2 Building Mutation Testing Tools 8.2.1 111e Interpretation Approach 8.2.2 T]he Separate Compilation Approach 8.2.3 The Schema.Based Approach 8.2.4 Using Java Refle~ion 8.2.5 Implementing a Modem Mutation System 8.3 Bibliographic Notes 9 Challenges In Testing Software 9.1 Testing for Emergent Properties:Safety and Security 9.1.1 Classes of Test Cases for Emergent Properties 9.2 Software Testability 9.2.1 Testability for Common Technologies 9.3 Test Criteria and the FUture of Software Testing 9.3.1 Going Forward with Testing Research 9.4 Bibliographic Notes Listofcriteria Bibliography Index