ITIL and Software Testing
ITIL (The IT Infrastructure Library®) is a set of best practices in IT Service Management from the Office of Government Commerce (OGC). Although it is produced and maintained by the UK Government it is widely used outside the public sector as well as in it, and is also used extensively outside the UK.
Publications on ITIL cover the OGC Core reference material and a range of derived products. There is also training and accredited professional qualifications to help those get to grips with the ITIL methodology.
ITIL processes and methods are supported by the British Standards Institution’s (BSI) standard for IT Service Management (BS15000) and later ISO 20,000.
ITIL Version 3 includes a set of testing guidelines and best practices applicable to software testing, end to end testing and user acceptance testing. These do not dictate the testing methodology that a project should use or the Software Development Life-Cycle (SDLC) approach. They apply equally well to incremental or iterative testing methods (for example, agile testing) as they do to traditional waterfall testing methods (such as implementing the V model).
One of the main objectives of Service Testing and Validation is to provide QA (Quality Assurance) and establish that the delivered product is fit for its intended purpose. It also stresses the need to reduce risk early in the project lifecycle and provides several practices to how to do this. Both these goals are compatible with risk-based testing. In fact, risk-based testing provides an explicit framework for linking risk management, project management, test management and QA within the ITIL structure.
Test processes are included, in the main, within the Service Transition portion of the ITIL lifecycle covering the management of change, risk and quality assurance. In the area of software testing these processes cover:
- Validating and managing testing and software testing resources
- Planning and designing testing activities
- Verifying the software test plan and software testing design
- Preparing the test environment(s)
- Performing software testing
- Evaluating exit criteria and reporting software testing results
- Clean up and close of testing