Due to its nature of being safety critical, defence software should be given special consideration while testing. In its core lies the risk management process. Without proper risk identification, risk assessment, and risk mitigation process, software testing efforts cannot be utilised effectively and efficiently. So a risk based testing approach should be in place and adopted to the software development lifecycle. In addition to proper and rigorous functional testing of defence software, the following non-functional attributes must be addressed in the test strategy and/or test plan:
Because of these attributes, such systems are sometimes called RAMS systems.
In maintainability testing, a set of attributes that bear on the effort needed to make specified modifications are tested. Maintainability testing can be further broken down into:
In the above list, testability is an important success factor in test automation. Poor testability causes failures in test automation efforts. Apart from automatability which focuses on tool interaction, testability focuses on human interaction and testing. As said earlier, testability is directly proportional with coding skills of developers and clean code. Some technologies are more testable than others because of tool support and usability. Testability can be increased by adding specific features to support testing.
Security testing assesses a system’s vulnerability to threats by attempting to compromise the defence software’s security policy. Security testing can be further break down into: