Skip to content

Introduction to Software Testing

Best in textbook rentals since 2012!

ISBN-10: 0521880386

ISBN-13: 9780521880381

Edition: 2008

Authors: Paul Ammann, Jeff Offutt

List price: $100.00
Blue ribbon 30 day, 100% satisfaction guarantee!
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

Description:

Extensively class tested, this text takes an innovative approach to explaining the process of software testing: it defines testing as the process of applying a few well-defined, general-purpose test criteria to a structure or model of the software. The structure of the text directly reflects the pedagogical approach and incorporates the latest innovations in testing, including techniques to test modern types of software such as OO, web applications, and embedded software.
Customers also bought

Book details

List price: $100.00
Copyright year: 2008
Publisher: Cambridge University Press
Publication date: 1/28/2008
Binding: Hardcover
Pages: 346
Size: 7.25" wide x 10.25" long x 1.25" tall
Weight: 1.650
Language: English

Paul Ammann, Ph.D., is an Associate Professor of Software Engineering at George Mason University. He received an outstanding teaching award in 2007 from the Volgenau School of Information Technology and Engineering. Dr Ammann earned an AB degree in Computer Science from Dartmouth College, and M.S. and Ph.D. degrees in computer science from the University of Virginia.

Jeff Offutt, Ph.D., is a Professor of Software Engineering at George Mason University. He is editor-in-chief of the Journal of Software Testing, Verification and Reliability; chair of the steering committee for the IEEE International Conference on Software Testing, Verification, and Validation; and is on the editorial boards for several journals. He received the outstanding teacher award from the Volgenau School of Information Technology and Engineering in 2003. Dr Offutt earned a B.S. degree in Mathematics and Data Processing from Morehead State University, and M.S. and Ph.D. degrees in computer science from the Georgia Institute of Technology.

List of Figures
List of Tables
Preface
Overview
Introduction
Activities of a Test Engineer
Testing Levels Based on Software Activity
Beizer's Testing Levels Based on Test Process Maturity
Automation of Test Activities
Software Testing Limitations and Terminology
Coverage Criteria for Testing
Infeasibility and Subsumption
Characteristics of a Good Coverage Criterion
Older Software Testing Terminology
Bibliographic Notes
Coverage Criteria
Graph Coverage
Overview
Graph Coverage Criteria
Structural Coverage Criteria
Data Flow Criteria
Subsumption Relationships among Graph Coverage Criteria
Graph Coverage for Source Code
Structural Graph Coverage for Source Code
Data Flow Graph Coverage for Source Code
Graph Coverage for Design Elements
Structural Graph Coverage for Design Elements
Data Flow Graph Coverage for Design Elements
Graph Coverage for Specifications
Testing Sequencing Constraints
Testing State Behavior of Software
Graph Coverage for Use Cases
Use Case Scenarios
Representing Graphs Algebraically
Reducing Graphs to Path Expressions
Applications of Path Expressions
Deriving Test Inputs
Counting Paths in a Flow Graph and Determining Max Path Length
Minimum Number of Paths to Reach All Edges
Complementary Operations Analysis
Bibliographic Notes
Logic Coverage
Overview: Logic Predicates and Clauses
Logic Expression Coverage Criteria
Active Clause Coverage
Inactive Clause Coverage
Infeasibility and Subsumption
Making a Clause Determine a Predicate
Finding Satisfying Values
Structural Logic Coverage of Programs
Predicate Transformation Issues
Specification-Based Logic Coverage
Logic Coverage of Finite State Machines
Disjunctive Normal Form Criteria
Bibliographic Notes
Input Space Partitioning
Input Domain Modeling
Interface-Based Input domain Modeling
Functionality-Based Input Domain Modeling
Identifying Characteristics
Choosing Blocks and Values
Using More than One Input Domain Model
Checking the Input Domain Model
Combination Strategies Criteria
Constraints among Partitions
Bibliographic Notes
Syntax-Based Testing
Syntax-Based Coverage Criteria
BNF Coverage Criteria
Mutation Testing
Program-Based Grammars
BNF Grammars for Languages
Program-Based Mutation
Integration and Object-Oriented Testing
BNF Integration Testing
Integration Mutation
Specification-Based Grammars
BNF Grammars
Specification-Based Mutation
Input Space Grammars
BNF Grammars
Mutation for Input Grammars
Bibliographic Notes
Applying Criteria in Practice
Practical Considerations
Regression Testing
Integration and Testing
Stubs and Drivers
Class Integration Test Order
Test Process
Requirements Analysis and Specification
System and Software Design
Intermediate Design
Detailed Design
Implementation
Integration
System Deployment
Operation and Maintenance
Summary
Test Plans
Identifying Correct Outputs
Direct Verification of Outputs
Redundant Computations
Consistency Checks
Data Redundancy
Bibliographic Notes
Engineering Criteria for Technologies
Testing Object-Oriented Software
Unique Issues with Testing OO Software
Types of Object-Oriented Faults
Testing Web Applications and Web Services
Testing Static Hyper Text Web Sites
Testing Dynamic Web Applications
Testing Web Services
Testing Graphical User Interfaces
Testing GUIs
Real-Time Software and Embedded Software
Bibliographic Notes
Building Testing Tools
Instrumentation for Graph and Logical Expression Criteria
Node and Edge Coverage
Data Flow Coverage
Logic Coverage
Building Mutation Testing Tools
The Interpretation Approach
The Separate Compilation Approach
The Schema-Based Approach
Using Java Reflection
Implementing a Modern Mutation System
Bibliographic Notes
Challenges in Testing Software
Testing for Emergent Properties: Safety and Security
Classes of Test Cases for Emergent Properties
Software Testability
Testability for Common Technologies
Test Criteria and the Future of Software Testing
Going Forward with Testing Research
Bibliographic Notes
List of Criteria
Bibliography
Index