A one day course on Verification and Validation (V&V) for managers, team leaders and QA specialists.
Testing is often the last resort for finding mistakes. Done poorly, many faults will still remain in the system. Simply writing more tests won’t make your software better and may result in money ineffectively spent. You must improve your development practices to get better software.
Software development is a collaborative effort. We take considerable pains to analyse, design and implement our system to meet our quality goals. Unfortunately, engineers are not perfect. Under increasing pressure to deliver more features, in less time, and as a consequence not having the luxury of time to learn the problem domain, or examine their solutions.
The solution is to adopt a balanced, multi-technique approach to V&V. Multiple, independent techniques (each playing to their own strengths) is far more effective.
This course takes a high level look at software verification and validation. It covers why testing is needed, where errors creep in during development, risks associated with each type of testing and the consequences of not using them. Test planning is discussed and finally the agile approach is considered.
- To establish the value of verification and validation as part of the design process
- To understand the costs involved with testing techniques
- To reinforce a coherent, multi-layered approach to verification and validation
- To understand the consequences of ineffective or superficial testing
Delegates will learn:
- Testing techniques
- The value of testing
- Integration and planning for it
- The use of metrics
- The Agile Approach
- Test Planning
Who should attend:
- Team leaders
- One day
- Delegate handbook
Although the course has no formal exercises, it is designed to stimulate group discussion.
- what is value?
- how is quality measured?
The value of testing?
- the software V-model
- definitions of Verification and Validation
- the error-fault-failure-hazard chain
- error introduction
- spending money on V&V
- unit testing by developers
- test harnesses
- test doubles:: stubs, mocks, fakes
- lightweight code-based test harnesses versus stand-alone test tools
- ad hoc testing
- systematic techniques
- finding latent faults
- measuring the quality of your testing
- selection of particular metrics
- statement coverage
- branch and condition coverage
- MCC and MCDC
- instrumentation and tools.
- looking for latent faults
- types of SA tool
- SA tools cannot validate code.
- human inspection
- SA tools vs code inspection?
- using humans for validation:
- architectural evaluation – coupling, cohesion, abstraction, encapsulation
- what is integration.
- poor integration and impossible bug fixing.
- integration planning
- integration styles for different systems: top down, bottom up, feature oriented, t-shaped
System level testing
- black box testing at the level of the system’s interfaces.
- system testing in embedded systems
- automating system test
- reducing impact of new features or bug fixes
- automating regression testing
- process metrics give an indication of the
- effectiveness of the testing
- quality of the testing
- effort required to complete.
The Swiss Cheese model
- all testing techniques have flaws / problems
- The ‘swiss cheese’ model:
The Agile approach
- fitness-for-purpose quality
- change management
- requirements validation
- test-driven design and test cases
- continuous integration
- systematic approach to testing
- test plan is influences
- what makes a good test plan