Sunday, March 3, 2013

automated software testing

Medical or really any other software should be built with automated testing from the ground up. Unit tests are small test for each unit/class of software. Writing unit test from the beginning of a software project forces the developers to make code more modular and loosely coupled because the unit test runs one class of code in isolation. The unit test also acts as "living" documentation. The unit test shows an example of  how to use the class, and if the unit test works then we know the "living" document is up to date. When developers document source code they often go back and change the source code but not the document leaving a misleading document.

Unit tests are only the first layer of automated testing. Automated tests of the classes working together are needed. These automated tests are more difficult to write but a necessary addition to manual testing.

A manual tester has to run the test the first time to discover the potential problem and then test automation engineers are needed to automate the test because every test has to be reran frequently during development because source code changes can break code that was working before. If we rely only on manual testing we would keep adding and adding new manual tests and we would have to keep adding manual testers who would quickly get bored of rerunning the old tests. Without automated testing the old tests probably just don't get reran because it's too time consuming and dull.

As software developers we really can't say we cannot automate software tests because software development is is all about automation of processes and with medical software it actually could be for brain surgery.

No comments:

Post a Comment