In my company we develop medical data-acquisition systems. The main functions of each application are:
- Interface with data-sampling hardware;
- Save/load collected data to/from files on disk;
- Perform mathematical analyses (DSP, image processing) to collected data;
- Display/plot the information using a graphics-heavy UI;
As far as I know, these are exactely the application areas that most textbooks on unit testing recommend "not to test", or at least that should be left as thin as possible (GUI typically) so that you can test the "true" functionality that has been put elsewhere (say, at the model layers).
I am genuinely commited to raise the quality standards of our software projects, but the nature of our applications, and these counter-indications found on texts about the subject, make me think if that is even possible, and if so, how could I circumvent these limitations.