OverviewIf done properly, Software V&V activities can have a significant impact on the ability of an organization to deliver high quality, complex software for safety-critical systems and mission-critical applications in a timely and cost-effective manner.
To appreciate why Software V&V is so important, consider the Standish Group’s CHAOS 2009 Report, shown below, shows a decrease in project success rates compared with recent years and a significant increase in project failure rates:
- Successful projects are defined as projects delivered on time, on budget, with required features and functions.
- Challenged projects are defined as late, over budget, and/or with less than the required features and functions.
- Failed projects defined as cancelled prior to completion or delivered and never used.
Some form of Software V&V should be considered for projects where:
- System includes real-time safety-critical software system that must work
- Software produces safety or mission-critical results that cannot be verified easily
- Software provides a life-supporting or life-sustaining functions, as in medical devices
- Software provides safety-critical functions, as in a nuclear power plant or transportation systems
Typical software verification and validation activities include:
- Requirements Analysis
- Document Reviews
- Peer Reviews and Formal Inspections
- Static analysis
- Unit and Integration Testing
- Change Management
- Defect Tracking and Resolution
- Requirements Management
- Validation Testing
- Regression Testing
- Baseline Change Assessment
- Software Reliability Growth Modeling
My book provides an overview of basic Software V&V activities and is written primarily for people who are in the field but have not had any formal software V&V training.
Through a combination of training tailored to an organization's specific needs and consulting, I have helped dozens of clients learn how to improve their Software Development and Software QA processes by incorporating such activities as Peer Reviews, Formal Inspections, Validation Testing, and Software Reliability Growth Modeling, into the product development process. The emphasis is always on improving predictability, profitability, quality, and time to market.