Testing of one embedded system widely differ from another and while testing is the most common process used to determine the quality and provide security of an embedded system, it is posing a big challenge for software testers around the globe. The test should reflect the distinguished characteristic of an embedded system as these are application specific. Testing becomes even difficult in Real-time systems as they have to meet the challenge of assuring the correct implementation of an application, dependent on the constraint of logical accuracy and timing.
Testing is the most time-consuming process in the development of an embedded system and continuous efforts are required to ensure improved quality and efficiency in the development process. Each embedded system is an application specific and requires a separate tool or code for testing, because of this reason there is no mechanism present in the market which is competent to check a number of embedded systems.
Types of testing
Testing can be performed for a variety of reasons, to determine input, to monitor software state and output. Testing involves two very crucial processes, Verification and validation. Verification is the process of human examination whereas validation is required when there is a need to execute the thing on computers. There are several styles of testing and depending on various situations several types of testing can be conducted on embedded systems.
As per the requirement of the system under test, there is White box testing, the black box testing and the exploratory testing techniques. The various types of testing conducted throughout the life cycle are unit testing, subsystem testing, integration testing, regression testing, acceptance testing and beta testing. An exploratory testing is performed by a human observer, where they exercise the system and search for unexpected results. Such type of testing is done to find those strange behaviours which are not defined in requirements or specification. The defects that are usually missed in standard testing methodologies can be traced in this method. The two main disadvantages of Exploratory testing are the lack of document measurement coverage and that many defects may still remain uncovered.
The black box testing is usually referred for an embedded system testing. It is designed after considering the knowledge of behaviour, when it is done without the knowledge of behaviour it is known as functional testing. The main advantage of black box testing is that it can be written independently of software design.
The white box testing of the structural testing is testing of the internal structure of the program. In white box testing control flow, condition branches and structures are exercised. The advantage of white box testing is that tests are basically designed for maximum coverage. The main disadvantage is that a number of functions remain uncovered.
Selection of right approach
It is a very big question as to how can we decide that a specific approach is appropriate for a specific embedded system. For selecting the correct approach we should map the current organisation, define and prioritise the key selection criteria. Decision matrix selection grid is one of the quality tools, which can be used to evaluate the various approaches. The criteria are uniquely identified and placed across the top of the decision matrix, while various approaches are vertically placed and numbered. After selecting proper testing approach embedded system can be easily tested. Testing of embedded system may be based on software or hardware of embedded system, sometimes it is used to test the individual component of embedded system