Testing is the formal activity directed to verify the complete implementation in the system (hardware + software) of requirement specifications. It is executed within a test plan drawn up at the beginning of the design, at the same time of requirement specifications.
Test plan is composed of a set of procedures characterized by the following fundamental features:
Presence of precise and clear steps, comprehensible to and executable by people who did not participated in the design.
Presence of method for recording and documenting the results.
We implement testing in the following forms:
Module software testing
During software development, each module is characterized by its input-output function.
Therefore, each module can be verified passing it each possible input and verifying the expected output.
This procedure is executed with software modules designed on purpose. Moreover:
Testing is performed running software on the microcontroller that will be used in the final hardware.
The test module, using microcontroller input-output resources, sends the outputs of the tested module to a PC, where a software tool permits to process and store the data, also for the purpose of certification.
Software integration testing
The whole software or parts of it can be tested with methods similar to the preceding ones.
In this case, over than what was previously described, testing assumes the following features:
Microcontroller runs in the final configuration (memories, access times, etc.).
Part of the final hardware can be used in order to run software in real conditions.
Hardware testing modules can be developed, in order to pass real time inputs to software.
For a full hardware testing, the following solutions are adopted:
Development of hardware testing modules.
Development of software testing tools.
Afterward, these tools can be used during production cycle, for quality testing of boards, groups, etc.
Hardware – software integration testing
In this case, a black-box approach is used: the system is considered as a inseparable entity, whose behavior shall be verified.
For this purpose, reference document is requirement specifications.
Like in the preceding cases, on purpose hardware and software tools can be used in order to pass to the system all the possible inputs and to record the outputs.
Further classifications of testing process, transverse to preceding ones, that can improve efficacy an coverage, are the following: