Introduction: How to Use This Book
Acknowledgments
Chapter 1. Overview of Software Reliability Engineering
1.1 What Is Software Reliability Engineering and How Does It
Help Development and Testing?
1.2 The Software Reliability Engineering Process
1.3 Fone Follower
1.4 Types of Test
1.5 Systems to Test
1.6 Frequently Asked Questions
1.6.1 Effectiveness and Benefits
1.6.2 Concepts
1.6.3 Relationships with Other Practices
1.6.4 Application
1.7 Background
1.7.1 Software Reliability Concepts
1.7.2 Reliability
1.7.3 Software Reliability and Hardware Reliability
1.7.4 Software Reliability Modeling
1.8 Problems
Chapter 2. Defining Necessary Reliability
2.1 Concepts
2.1.1 Fellure and Fault
2.1.2 Failure Severity Classes
2.1.3 Failure Intensity
2.2 Procedure
2.2.1 Defining Fallure with Severity Classes for Product
2.2.2 Choosing a Common Measure for All Associated Systems
2.2.3 Setting a System Failure Intensity Objective for Each Syetem
to be Tested
2.2.4 Determining the Developed Software Failure Intensity
Objective for the Product and Its Variations
2.2.5 Engineering Strategies to Meet the Developed Software
Failure Intensity Objectives
2.3 Special Situations
2.3.1 Other Failure Groupings
2.3.2 Allocation of Failure Intensity Objective to Components
2.3.3 Software Safety and Ultrareliability
2.4 Frequently Asked Questions
2.4.1 Definition of Failure
2.4.2 Failure Severity Classes
2.4.3 Setting Failure Intensity Objectives
2.4.4 Concepts
2.4.5 Application
2.5 Background
2.5.1 Defining Failure with Severity Classes
2.5.2 Setting System Failure Intensity Objectives
2.5.3 Availability
2.5.4 Reliability Combinatorics
2.6 Problems
Chapter 3. Developing Operational Profiles
3.1 Concepts
3.2 Procedure
3.2.1 Determining Operational Modes
3.2.2 Identifying Operation Initiators
3.2.3 Choosing Tabular or Graphical Representation
3.2.4 Creating an Operations List
3.2.5 Determining Occurrence Rates
3.2.6 Determining Occurrence Probabilities
3.3 Special Situations
3.3.1 Handling the Evolution of the Definition of Operation during System Development
3.3.2 Applying the Module Usage Table
3.4 Frequently Asked Questions
3.4.1 Uses
3.4.2 Concepts
3.4.3 Application
3.5 Background
3.5.1 Determining Operational Modes
3.5.2 Operations and Runs
3.6 Problems
Chapter 4. Preparing for Test
4.1 Concepts
4.2 Procedure
4.2.1 Preparing Test Cases
4.2.2 Preparing Test Procedures
4.3 Frequently Asked Questions
4.4 Background
4.4.1 Test Efficiency
4.4.2 increasing Test Efficiency by Using Run Categories
4.4.3 A Graphical View of Test Selection
4.5 Problems
Chapter 5. Executing Test
5.1 Allocating Test Time
5.2 Invoking Test
5.3 Identifying System Failures
5.3.1 Analyzing Test Output for Deviations
5.3.2 Determining Which Deviations Ars Failures
5.3.3 Establishing When Fallures Occurred
5.4 Special Situations
5.4.1 Establishing When Failures Occurred for Tests on Multiple
Configurations
5.4.2 Uncertainties in Establishing When Failures Occurred
5.4.3 Multiple Versions in the Field
5.5 Frequently Asked Questions
5.5.1 Test Process
5.5.2 Counting Failures
5.5.3 Measuring When Failures Occurred
5.6 Background
5.6.1 Allocating Test Time
5.6.2 Invoking Tests
5.6.3 Counting Failures
5.7 Problems
Chapter 6. Applying Failure Data to Guide Decisions
6.1 Certification Test
6.2 Reliability Growth Test
6.3 Special Situations
6.3.1 Evolving Programs
6.3,2 Unreported Failures
6.3.3 Certification Test at Different Risk Levels and
Discrimination Ratios
6.3.4 Operational Profile Variation
6.4 Frequently Asked Questions
6.4.1 Theory
6.4.2 Application
6.4.3 Special Situations
6.5 Problems
Chapter 7. Deploying Software Reliability Engineering
7.1 Persuasion
7.2 Executing the Deployment
7.3 Using a Consultant
7.3.1 Consultee
7,3.2 Consultant
7.4 Frequently Asked Questions
Chapter 8. Software Reliability Models
8.1 General Characteristics
8.1.1 Random Process
8.1.2 With and Without Fault Removal
8.1.3 Particularization
8.2 Classification
8.3 Comparison
8.3.1 Time Domains
8.3.2 Model Groups
8.4 Recommended Models
8.4.1 Description
8.4.2 Interpretation of Parameters of Logarithmic Poisson Execution Time Model
8.4.3 Derivation of Models
8,4.4 Parameter Prediction
8.4.5 Parameter Estimation
8.5 Frequently Asked Questions
Appendix A. Software Reliability Engineering Process Step by Step
Appendix B. Template for Workshops
B.1 Defining System Workshop (Chap. 1)
B.2 Defining Necessary Reliability Workshop (Chap. 2)
B.3 Developing Operational Profiles Workshop (Chap. 3)
B.4 Preparing for Test Workshop (Chap.4)
B.5 Executing Test Workshop (Chap. 5}
B.6 Applying Failure Data to Guide Decisions Workshop (Chap. 6)
Appendix C. Glossary
Appendix D. Summary of Useful Formulas
Appendix E. Software Reliability Engineering and Testing
Functions Aided by Software Tools
Appendix F. Using CASRE
F.1 Installation
F.2 Creating the Failure Data File for CASRE
F.3 Executing CASRE
F.4 Interpreting CASRE Results
F.5 Problems
Appendix G. Problem Solutions
Appendix H. References to Users of Software Reliability Engineering
Bibliography
Index