Home

A Software Development Process for Small-Scale Embedded Systems

Test and Verification (T&V) Phase

While T&V can include the hardware platform, that activity is out of scope from the software development itself and, therefore, is beyond the scope of this article. T&V includes regression testing, performance testing, and alpha and beta field trials.

A regression test is the execution of the test cases generated during the implementation phase. An iteration is not considered complete until the associated test case has been added to the regression test suite and the regression test suite is executed successfully. A communication port on the target is used to facilitate the regression testing. A scripted, automated test suite implemented on a port controller (i.e. PC utility) is preferable. The regression test is critical to product quality throughout the software products lifecycle.

The performance of the code should be measured prior to each software release to make sure the latest code development has not negatively impacted the application. At a minimum, the performance measurements should be:

  • Memory Usage. A minimum of 10 percent of code and data memory for each memory type should be available at all times to enable maintenance programming.
  • Stack usage. Designers should measure the size of worst-case stack allotment. A minimum of 20 percent of stack allocation should be available for maintenance programming.
  • Execution time for each interrupt service routine.
  • Overhead usage. Developers should determine the worst-case total interrupt execution time as a percentage of a real-time clock interval.
  • Buffer Usage. Determine the worstcase “high water” mark for each buffer used in the system to make sure 20 percent is available for maintenance programming.
  • Timer service overruns.