<-Prev Next->

Contents
Acknowledgments
How to use this book

Chapter 1 - Problem, Process, and Product
1.1 Core material
1.1.1 Problem and solution
1.1.1.1 What is the software practitioner’s biggest problem?
1.1.1.2 How does software reliability engineering approach it?
1.1.1.3 What’s been the experience with SRE?

1.1.2 The software reliability engineering process
1.1.3 Defining the product

1.2 Exercises
1.3 Workshop
1.3.1 General instructions for all workshops
1.3.2 Defining the product workshop

1.4 Special situations
1.4.1 Testing acquired software
1.5 Background
1.5.1 Learning reliability concepts
1.5.2 Software reliability and hardware reliability

1.6 Frequently asked questions
1.6.1 Problem and solution
1.6.1.1 What is the software practitioner’s biggest problem?
1.6.1.2 How does software reliability engineering approach it?
1.6.1.3 What’s been the experience with SRE?

1.6.2 The software reliability engineering process
1.6.3 Defining the product

Chapter 2 - Implementing Operational Profiles
2.1 Core material
2.1.1 Developing operational profiles
2.1.1.1 Identifying the initiators of operations
2.1.1.2 Creating the operations list
2.1.1.3 Reviewing the operations list
2.1.1.4 Obtaining occurrence rates
2.1.1.5 Determining occurrence probabilities

2.1.2 Applying operational profiles

2.2 Exercises
2.3 Workshop
2.4 Special situations
2.4.1 Using the graphical representation of the operational profile
2.4.2 Handling the evolution of the definition of “operation”
2.4.3 Applying the module usage table

2.5 Background
2.5.1 Learning operations and run concepts

2.6 Frequently asked questions
2.6.1 Developing operational profiles
2.6.1.1 Identifying the initiators of operations
2.6.1.2 Creating the operations list
2.6.1.3 Reviewing the operations list
2.6.1.4 Obtaining occurrence rates
2.6.1.5 Determining occurrence probabilities

2.6.2 Applying operational profiles

Chapter 3 – Engineering “Just Right” Reliability
3.1 Core material
3.1.1 Defining “failure” for the product
3.1.2 Choosing a common measure for all associated systems
3.1.3 Setting system failure intensity objectives
3.1.3.1 Determining user needs for reliability and availability
3.1.3.2 Determining overall reliability and availability objectives
3.1.3.3 Finding the common failure intensity objective

3.1.4 Determining developed software failure intensity objectives
3.1.5 Engineering software reliability strategies

3.2 Exercises
3.3 Workshop
3.4 Special situations
3.4.1 Using failure severity classes
3.4.2 Using other failure groupings
3.4.3 Allocating the system failure intensity objective to components
3.4.4 Software safety, a subdiscipline of software reliability
3.4.5 Dealing with ultrareliable systems

3.5 Background
3.5.1 Failures, faults, and errors
3.5.1.1 Failures, the users’ measure
3.5.1.2 Faults, the cause of failures
3.5.1.3 Errors, the cause of faults

3.5.2 Availability, a complement to reliability
3.5.3 System and component reliabilities and failure intensities
3.5.4 Predicting basic failure intensity
3.5.4.1 Inherent fault density
3.5.4.2 Fault exposure ratio

3.6 Frequently asked questions
3.6.1 Defining “failure” for the product
3.6.2 Choosing a common measure for all associated systems
3.6.3 Setting system failure intensity objectives
3.6.3.1 Determining user needs for reliability and availability
3.6.3.2 Determining overall reliability and availability objectives
3.6.3.3 Finding the common failure intensity objective

3.6.4 Determining developed software failure intensity objectives
3.6.5 Engineering software reliability strategies

Chapter 4 - Preparing for Test
4.1 Core material
4.1.1 Preparing test cases
4.1.1.1 Planning number of new test cases for current release
4.1.1.2 Allocating new test cases
4.1.1.3 Distributing new test cases among new operations
4.1.1.4 Detailing test cases

4.1.2 Preparing test procedures

4.2 Exercises
4.3 Workshop
4.4 Special situations
4.4.1 Using the graphical representation of the operational profile

4.5 Background
4.5.1 Testing efficiently
4.5.2 Increasing test efficiency by using equivalence classes

4.6 Frequently asked questions
4.6.1 Preparing test cases
4.6.1.1 Planning number of new test cases for current release
4.6.1.2 Allocating new test cases
4.6.1.3 Distributing new test cases among new operations
4.6.1.4 Detailing test cases
4.6.2 Preparing test procedures

Chapter 5 - Executing Test
5.1 Core material
5.1.1 Planning and allocating test time for the current release
5.1.2 Invoking test
5.1.3 Identifying failures
5.1.3.1 Analyzing test output for deviations
5.1.3.2 Determining which deviations are failures
5.1.3.3 Establishing when failures occurred

5.2 Exercises
5.3 Workshop
5.4 Special situations
5.4.1 Testing multiple configurations
5.4.2 Handling uncertainties in establishing when failures occurred
5.4.3 Working with multiple releases in the field

5.5 Background
5.5.1 Invoking test
5.5.2 Counting failures

5.6 Frequently Asked Questions
5.6.1 Planning and allocating test time for the current release
5.6.2 Invoking test
5.6.3 Identifying failures
5.6.3.1 Analyzing test output for deviations
5.6.3.2 Determining which deviations are failures
5.6.3.3 Establishing when failures occurred

Chapter 6 - Guiding Test
6.1 Core material
6.1.1 Tracking reliability growth
6.1.1.1 Estimating failure intensity
6.1.1.2 Using failure intensity patterns to guide test

6.1.2 Certifying reliability

6.2 Exercises
6.3 Workshop
6.4 Special situations
6.4.1 Estimating failure intensity for evolving programs
6.4.2 Handling unreported failures
6.4.3 Certifying with different risk levels and discrimination ratios
6.4.4 Operational profile variation

6.5 Background
6.5.1 Understanding software reliability growth models
6.5.1.1 Selecting models
6.5.1.2 Mathematics of selected models for practitioners

6.6 Frequently asked questions
6.6.1 Tracking reliability growth
6.6.1.1 Estimating failure intensity
6.6.1.2 Using failure intensity patterns to guide test

6.6.2 Certifying reliability

Chapter 7 - Deploying SRE
7.1 Core material
7.1.1 Persuading your boss, your coworkers, and stakeholders
7.1.2 Executing the deployment
7.1.3 Using a consultant
7.1.3.1 Understanding the consultee’s viewpoint
7.1.3.2 Understanding the consultant’s viewpoint

7.2 Exercises
7.3 Workshop
7.4 Special situations - problems and how to handle them
7.5 Background - resources to help you
7.6 Frequently asked questions
7.6.1 Persuading your boss, your coworkers, and stakeholders
7.6.2 Executing the deployment

Appendix A – The SRE Process, Step by Step
Appendix B - Glossary
Appendix C - Summary of Useful Formulas
Appendix D - Using CASRE Software
D.1 Core material
D.1.1 Creating the failure data file for CASRE
D.1.2 Executing CASRE
D.1.3 Executing CASRE with Excel to Obtain FI / FIO Plots
D.1.4 Interpreting CASRE results

D.2 Exercises
D.3 Special situations - troubles
D.4 Frequently asked questions

Appendix E - Exercise Solutions
Appendix F - User Experiences with SRE


References
Index
About the Author

 



s