Validation and Verification of Design Through
Essay by review • February 12, 2011 • Research Paper • 2,797 Words (12 Pages) • 1,522 Views
VALIDATION AND VERIFICATION OF DESIGN THROUGH
AUTOMATION OF TEST CASE GENERATION
Preeti Sharma*, Ravinder Jangir*
Shailesh Giri*
* Post Graduate Student of Software Systems at Birla Institute of Technology and Science, Pilani
Abstract
Software quality is achieved through the application of development techniques and the use of verification procedures throughout the development process Careful consideration of specific quality attributes and validation requirements leads to the selection of a balanced collection of review, analysis, and testing techniques for use throughout the life cycle. This paper describes a methodology for the verification of safety-critical software. The methodology contains techniques for creating requirements-based test cases from scenarios. A major challenge in this area is to automatically generate a relatively small set of test cases that, collectively, guarantees a selected degree of coverage of the behavior space. This model, in the end, describes an expression for test case generation. The algorithm is then tested on safety critical software (Flight Landing Software) design. The automation approach to automate the testing is also discussed in the end.
Introduction
Programming is an exercise in problem solving. As with any problem-solving activity, determination of the validity of the solution is part of the process. This paper discusses testing and analysis techniques that can be used to validate software and to instill confidence in the quality of the programming product. It presents a collection of verification techniques that can be used throughout the development process to facilitate software quality assurance. Programs whose malfunction would have severe consequences justify greater effort in their validation. For example, software used in the control of airplane landings or directing of substantial money transfers requires higher confidence in its proper functioning than does a car pool locator program. For each software project, the validation requirements, as well as the product requirements, should be determined and specified at the initiation of the project. Project size, uniqueness, criticalness, the cost of malfunction, and project budget all influence the validation needs. After the validation requirements have been clearly stated, specific techniques for validation, verification, and testing can be chosen. Verification, validation, and testing are closely tied to software quality. There have been many studies directed toward determining appropriate factors for software quality. A number of attributes have been proposed. The main attributes of software quality include reliability, testability, usability, efficiency, transportability, and maintainability, but in practice, efficiency often conflicts with other attributes.[3]
1. Validation and Verification of Safety Critical systems
A life or safety critical system is a system where human safety is dependent upon the correct operation of the system. A system is a safety critical system if a failure can result in loss of life, injury or illness, serious environmental damage, significant loss of, or damage to, property, failure of an important mission. The basic system safety goal is to eliminate all single-point failures that could lead to unacceptable consequences and minimize the probability of accidents caused by multi-point failures. Safety critical software has been traditionally associated with embedded control systems. As awareness of how systems can impact safety has developed, the scope of safety critical software has expanded into many other types of systems.
An obvious example of a safety critical system is an aircraft fly by wire control system, where the pilot inputs commands to the control computer using a joystick, and the computer manipulates the actual aircraft controls. The lives of hundreds of passengers are totally dependent upon the continued correct operation of such a system.
1.1 Testing of Safety Critical System
Safety critical software must be thoroughly tested by test cases which represent accurately the reality of the operational plant or system. It is often difficult to obtain adequate realistic test cases to represent the real operation of the software because, firstly, safety-critical software is often developed in parallel with the design and implementation of its environment, i.e. in parallel with the equipment the software finally executes in. Therefore, it may be impossible to obtain test cases by recording the real operation of the system. The second difficulty stems from the fact that the malfunctioning of such software could cause a grave danger to human life and property. The software must therefore achieve the required reliability the first time it is put into operation. This gives few chances to test the software in its real operational environment without threat of danger.
Software testing via environment simulation is an approach to overcome such difficulties. The greatest advantage of the method is that software can be tested by highly realistic test cases, but without threat of danger to human life and property. Another attractive feature of the approach is that the software can be tested not only in the normal operation of the environment but also in adverse conditions representing the non-healthy operation of the environment. Thus the robustness and tolerance of the software to unexpected system behavior can be assessed. Such testing could be too hazardous to be carried out in the real environment, and could indeed be impossible because the design of the plant or equipment should have minimized the probability of the occurrence of hazard situations. For example, in nuclear installations it is normal for systems to be designed to protect the plant from very low frequency fault situations that may never occur during the life time of the system. But, for safety-critical software, especially protection software, testing in adverse conditions is essential. Thus, in these cases, simulation of the possible environment is necessary if realistic testing is to be performed. Environment simulators are generally used for high-level testing of a system, such as that performed during software and hardware
...
...