Dr.John d.McGregor is a senior partner in Dorson-McGregor and an associate Professor of computer scienence at clemson University.Dr.McGregor is coauthor ,with David A.Sykes,of Object-Oriented Sofware Development:Engineering Sftware for Reuse Published by Van Nostrand Reinhold.He writes a column on testing and quality for the Journal of Object-Oriented Programming (JOOP)published by SIGS/101communications Publishing .Currently he serves on the editirial board of two journal:Journal for Software Testing Professional(JSTP)and the Interantional Journal of Computer and Informantion Sciences(IJCIS).Dr.David A.Sykes is and assistant professor of computer science at Furman University .He is an associate of Korson-McGregor and has tautht courses in object-oriented analysis,design,and testing .he has worked in the development and testing of systems and application software since 1975.軟件測試是確保軟件產(chǎn)品質(zhì)量的必需過程和手段。在開發(fā)面向?qū)ο筌浖突诮M件的軟件時,同樣必須設(shè)計(jì)并實(shí)施有效的測試。本書明確指出了面向?qū)ο筌浖兔嫦蜻^程軟件測試任務(wù)的不同之處,論述了面向?qū)ο筌浖y試所面臨的機(jī)遇和挑戰(zhàn)。書中介紹了如何將測試工作整合進(jìn)軟件開發(fā)的各個階段,以及各階段的具體測試內(nèi)容是什么。本書注重結(jié)合實(shí)例來講解對象軟件測試的過程和技巧,因而具有很強(qiáng)的實(shí)踐性和指導(dǎo)意義。本書內(nèi)容完整,結(jié)果合理,適合軟件開發(fā)測試領(lǐng)域的技術(shù)人員和項(xiàng)目管理人員閱讀,也可作為軟件學(xué)院的教材。
作者簡介
Dr.John d.McGregor is a senior partner in Dorson-McGregor and an associate Professor of computer scienence at clemson University.Dr.McGregor is coauthor ,with David A.Sykes,of Object-Oriented Sofware Development:Engineering Sftware for Reuse Published by Van Nostrand Reinhold.He writes a column on testing and quality for the Journal of Object-Oriented Programming (JOOP)published by SIGS/101communications Publishing .Currently he serves on the editirial board of two journal:Journal for Software Testing Professional(JSTP)and the Interantional Journal of Computer and Informantion Sciences(IJCIS).Dr.David A.Sykes is and assistant professor of computer science at Furman University .He is an associate of Korson-McGregor and has tautht courses in object-oriented analysis,design,and testing .he has worked in the development and testing of systems and application software since 1975.TOP目錄 PrefaceChapter 1 IntroductionWho Should Read This Book?What Software Testing Is:and Isn'tWhat Is Different about Testing Object-Oriented Software?Overview of Our Testing ApproachThe Testing PerspectiveOrganization of This BookConventions Used in This BookA Continuing Example:BricklesChapter 2 The Testing PerspectiveTesting PerspectiveObject-Oriented ConceptsDevelopment ProductsSummaryChapter 3 Planning for TestingA Development Process OverviewA Testing Process OverviewRisk Analysis:A Tool for TestingA Testing ProcessRoles in the Testing ProcessA Detailed Set of Test ActivitiesPlanning ActivitiesSummaryChapter 4 Testing Analysis and Design ModelsAn OverviewPlace in the Development Process The Basics of Guided Inspection Organization of the Guided Inspection ActivityPreparing for the InspectionTesting Specific Types of ModelsTesting Models for Additional QualitiesSummaryAddendum:A Process Definition for Guided InspectionChapter 5 Class Testing BasicsClass TestingConstructing Test CasesConstructing a Test DriverSummaryChapter 6 Testing InteractionsObject InteractionsTesting Object InteractionsSampling Test CasesTesting Off-the-Shelf ComponentsProtocol TestingTest PatternsTesting ExceptionsSummaryChapter 7 Testing Class HierarchiesInheritance in Object-Oriented DevelopmentSubclass Test RequirementsOrganizing Testing SoftwareTesting Abstract ClassesSummaryChapter 8 Testing Distributed ObjectBasic ConceptsComputational ModelsBasic DifferencesThreadsPath Testing in Distributed SystemsLife-Cycle TestingModels of DistributionA Generic Distributed-Component ModelSpecifying Distributed ObjectsTemporal LogicA Test EnvironmentTest CasesThe Ultimate Distributed System:The InternetSummaryChapter 9 Testing SystemsDefining the System Test Plan Complementary StrategiesUse Cases as Sources of Test Cases Testing Incremental ProjectsTesting Multiple RepresentationsWhat Needs to Be Tested?Types of TestingTesting Different Types of SystemsMeasuring Test CoverageSummaryChapter 10 Components,F(xiàn)rameworks,and Product LinesComponent ModelsFrameworksProduct LinesSummaryChapter 11 ConclusionSuggestionsBricklesFinallyBibliographyIndex TOP 其它信息 裝幀:平裝頁數(shù):393 版次:1版開本:16正文語種:中文
圖書目錄
Preface xi Chapter I Introduction 1 Who Should Read This Books 2 What Software Testing Is--and Isn't 3 What Is Different about Testing Object-Oriented Softwares 5 Overview of Our Testing Approach 6 Test Early 7 Test Often 7 Test Enough 8 The Testing Perspective 8 Organization of This Book 8 Conventions Used in This Book 9 A ContinuingExample-Brickles 10 Basic Brickles Components 11 Brickles Physics 11 Game Environment 14 Chapter 2 The Testing Perspective 15 Testing Perspective 15 Object-Oriented Concepts 17 Object 18 Message 20 Interface 21 Class 22 Inheritance 31 Polymorphism 32 Development Products 39 Analysis Models 40 Design Models 56 Source Code 59 Summary 62 Chapter 3 Planning for Testing 65 A Development Process Overview 66 A Testing Process Overview 68 Risk Analysis--A Tool for Testing 74 Risks 74 Risk Analysis 74 A Testing Process 78 Planning Issues 78 Dimensions of Software Testing 78 Who Performs Testing? 80 Which Pieces Are Tested? 81 When Is Testing Performed? 82 How Is Testing Performed? 83 How Much Testing Is Adequate? 84 Roles in the Testing Process 86 Class Tester 86 Integration Tester 87 System Tester 87 Test Manager 87 A Detailed Set of Test Activities 87 Planning Activities 91 Scheduling Testing Activities 91 Estimation 91 A Process for Testing Brickles 93 Document Templates 94 Test Metrics 106 Summary 107 Chapter 4 Testing Analysis and Design Models 109 An Overview 110 Place in the Development Process 115 The Basics of Guided Inspection 116 Evaluation Criteria 118 Organization of the Guided Inspection Activity 120 Basic Roles 120 Individual Inspection 121 Preparing for the Inspection 121 Specifying the Inspection 121 Realistic Models 121 Selecting Test Cases for the Inspection 123 Creating Test Cases 127 Completing Checklists 128 The Interactive Inspection Session 128 Testing Specific Types of Models 131 Requirements Model 131 Analysis Models 138 Design Models 141 Testing Again 151 Testing Models for Additional Qualities 151 Summary 154 Model-Testing Checklist 155 Addendum: A Process Definition for Guided Inspection 157 Steps in the Process 157 Detailed Step Descriptions 157 Roles in the Process 161 Chapter 5 Class Testing Basics 163 Class Testing 164 Ways to Test a Class 164 Dimensions of Class Testing 166 Constructing Test Cases 1'68 Adequacy of Test Suites for a Class 179 Constructing a Test Driver 183 Test Driver Requirements 186 Tester Class Design 188 Summary 210 Chapter 6 Testing Interactions 213 Object Interactions 214 Identifying Interactions 215 Specifying Interactions 221 Testing Object Interactions 222 Testing Collection Classes 222 Testing Collaborator Classes 223 The Interaction between Testing and Design Approach 224 Sampling Test Cases 225 Orthogonal Array Testing 228 Adequacy Criteria for OATS 234 Another Example 235 Another Application of OATS 237 Testing Off-the-Shelf Components 237 A Case Study in Component Acceptance Testing 238 Protocol Testing 241 Test Patterns 242 Listener Test Pattern 242 Specific Example 244 Testing Exceptions 245 Testing Interactions at the System Level 247 Summary 248 Chapter 7 Testing Class Hierarchies 249 Inheritance in Object-Oriented Development 250 Subclass Test Requirements 250 Refinement Possibilities 251 Hierarchical, Incremental Testing 253 Organizing Testing Software 262 Testing Abstract Classes 263 Summary 266 Chapter 8 Testing Distributed Objects 269 Basic Concepts 270 Computational Models 271 Concurrent 271 Parallel 271 Networked 272 Distributed 272 Basic Differences 272 Nondeterminism 272. Additional Infrastructure 273 Partial Failures 273 Time-Outs 274 Dynamic Nature of the Structure 274 Threads 274 Synchronization 274 Path Testing in Distributed Systems 275 Thread Models 278 Life-Cycle Testing 280 Models of Distribution 281 Basic Client/Server Model 281 Standard Models of Distribution 282 Comparisons and Implications 284 A Generic Distributed-Component Model 284 Basic Architecture 285 Local and Remote Interfaces 287 Specifying Distributed Objects 287 Interface Definition Language 287 Traditional Pre- and Postconditions and Invariants 288 Temporal Logic 288 Temporal Test Patterns 291 Eventually(p) 291 Until(p,q) 292 Always(p) 293 A Test Environment 293 Class Testing 293 Interaction Testing 295 Test Cases 295 Model-specific Tests 296 Testing Every Assumption 297 Infrastructure Tests 300 Logic-Specific Test Cases 301 The Ultimate Distributed System--The Internet 303 Web Servers 304 Life-Cycle Testing of Internet Applications 305 What Haven't We Said? 306 Summary 306 Chapter 9 Testing Systems 309 Defining the System Test Plan 311 Features Tested and Not Tested 311 Test Suspension Criteria and Resumption Requirements 311 Complementary Strategies for Selecting Test Cases 313 Use Profile 313 ODC 314 Use Cases as Sources of Test Cases 315 Constructing Use Profiles 316 Using Scenarios to Construct Test Cases 317 The Expected Results Section of a Test Case 319 Brickles 320 Testing Incremental Projects 323 Legacy Projects 323 Testing Multiple Representations 324 What Needs to Be Tested? 326 Testing against Functional Requirements 326 Testing for Qualitative System Attributes 326 Testing the System Deployment 327 Testing after Deployment 328 Testing Environment Interactions 328 Test System Security 330 Types of Testing 331 Stress Testing 331 Life-Cycle Testing 331 Performance Testing 333 Testing Different Types of Systems 334 Reactive Systems 334 Embedded Systems 335 Multitiered Systems 336 Distributed Systems 338 Measuring Test Coverage 338 What Is to Be Covered? 338 When Is Coverage Measured? 339 When Is Coverage Used? 339 ODC--Defect Impacts 339 More Examples 341 Summary 341 Chapter 10 Components, Frameworks, and Product Lines 343 Component Models 344 Enterprise JavaBeans Component Model 345 Testing Components versus Objects 346 Component Test Processes 348 Test Cases Based on Interfaces 349 Case Study--A GameBoard Component 351 Frameworks 359 Basic Issues 359 Framework Testing Processes 360 Inspecting a Framework 360 Structuring Test Cases to Support a Framework 361 Product Lines 362 Testing at the Organizational Management Level 362 Testing at the Technical Management Level 363 Testing at the Software Engineering Level 363 Testing in a Product Line Project 363 Future 364 Summary 364 Chapter 11 Conclusion 367 Suggestions 367 Organization and Process 367 Data 368 Standards 368 Software Infrastructure 370 Techniques 370 Risks 371 Brickles 371 Finally 373 Bibliography 375 Index 381