1 |
No testing performed. Ideas have been translated into software development. Examples might include studies of development languages, prototype, or diagram of interface. Requirements have not been verified, and there is no formal test mechanism in place. |
2 |
Software application formulated and unit testing performed. Software application compiles, and executes with known inputs. For example, a prototype application where there is no testing or validation to support the software, but only testing to demonstrate a prototype. Requirements may not be finalized yet, or overall testability of the software determined. |
3 |
Testing includes testing for error conditions and handling of unknown input. Software applications have been „white box‟ tested. This includes both known and unexpected inputs to the application. This level of testing has been incorporated into the build and/or deployment mechanism. |
4 |
Software application demonstrated in a laboratory context. Following successful testing of inputs and outputs, the testing has integrated an application to establish that the “pieces” will work together to achieve concept-enabling levels. This validation has been devised to support the concept that was formulated earlier, and is consistent with the requirements of potential system applications. The validation is relatively “low-fidelity” compared to the eventual system – it could be composed of ad hoc discrete components in a laboratory; for example, an application tested with simulated inputs. |
5 |
Software application tested and validated in a laboratory context. The fidelity of the software application testing has not been demonstrated. The software application must be integrated with reasonably realistic supporting elements so that the total application (component level, sub-system level, or system level) can be tested in a “simulated” or somewhat relevant context. At this level, issues such as scalability, load testing, and security are addressed when applicable. |
6 |
Software application demonstrated in a relevant context. The fidelity of the software application testing has not been demonstrated. The software application must be integrated with existing elements and interfaces so that the total application (component level, sub-system level, or system level) can be tested and validated in a relevant context. At this level, issues such as number of users and operational scenarios, as well as load testing and security are addressed if applicable. |
7 |
Software application tested and validated in a relevant context. The software application testing meets the requirements of the application that apply to the software when it is to be delivered or installed. The software application has been tested in the lab so that the application can be validated as if the software were delivered for use in another context. At this level, all issues have been resolved regarding security and operational scenarios. |
8 |
Software application “qualified” through test and demonstration (meets requirements) and successfully delivered. The software has passed testing and meets all requirements of the software, with the additional testing of the software delivery and installation for various applications. |
9 |
Actual software application tested and validated through successful use of application output. Demonstrable that for any application of the software, testing shows the software meets all defined requirements. |