Design For Testability |
|
|
|
| Written by Graham Stoney | |
|
Standing on the shoulders of the electrical engineering fraternity, consider testability when designing your software architecture. A regression test suite will be much easier to implement if some thought has been given to system-level testing in the software architecture design. In a GUI application, for instance, separating GUI logic from business logic with a deliberate interface will make testing much, much easier, even if the only purpose of the interface is to provide access for the test harness. A scripting interface using a language like python or perl will allow far quicker testing of the application logic than could be achieved via the GUI, even with automated GUI test tools. GUI's can change rapidly, and GUI-dependent tests often need to be regenerated when this happens. You get better test coverage with an extensive script-based regression test supplemented by some GUI-level tests at software release time than you do by using GUI-level tests alone; but this is only possible if you've designed for it in your software architecture. Designing for testability will help you avoid many of the common problems which make it more difficult than necessary to automate your verification, and save you a lot of pain at release time.
|












