Article: The Importance of Testing
This article talks about different levels of testing, their importance and the time to be alloted for testing an embedded project
Each Hardware module in a new board must be tested using Test Software Routines. These routines should test Inputs or Outputs by sending or receiving custom values and then checking for desired operation of the Hardware. These test routines should be independant of Application Software being developed. This ensures that once Hardware passes the tests, subsequent bugs can be attributed to Apllication Software
Software Unit Testing
Each Software module must undergo unit testing. Loops and variables should be tested for boundary conditions. Functions should be tested for specific Input/Output conditions.
Software Integration Testing
When different modules are integrated, Integration Testing must be done. Interaction between any two modules should be tested. Global variables should be checked. Calling functions should maintain their limits.Data exchange formats must be checked.
System Testing should be carried out on the whole system. All requirements should be met. All use cases should be satisfied. It is important that the system not only carry out its operation, but also not perform certain operations when the conditions are wrong.
A firm procedure must be put in place to decide when to repeat which level of testing. Minor changes should necessitate only the level of testing affecting that change. If major changes have occurred, all tests must be repeated.Make sure at least 50% of the time is spent on testing.
BETTER SAFE THAN SORRY !