26 July 2016 Rules of thumb to increase the software quality through testing
Author Affiliations +
The software maintenance typically requires 40-80% of the overall project costs, and this considerable variability mostly depends on the software internal quality: the more the software is designed and implemented to constantly welcome new changes, the lower will be the maintenance costs. The internal quality is typically enforced through testing, which in turn also affects the development and maintenance costs. This is the reason why testing methodologies have become a major concern for any company that builds - or is involved in building - software. Although there is no testing approach that suits all contexts, we infer some general guidelines learned during the Development of the Italian Single-dish COntrol System (DISCOS), which is a project aimed at producing the control software for the three INAF radio telescopes (the Medicina and Noto dishes, and the newly-built SRT). These guidelines concern both the development and the maintenance phases, and their ultimate goal is to maximize the DISCOS software quality through a Behavior-Driven Development (BDD) workflow beside a continuous delivery pipeline. We consider different topics and patterns; they involve the proper apportion of the tests (from end-to-end to low-level tests), the choice between hardware simulators and mockers, why and how to apply TDD and the dependency injection to increase the test coverage, the emerging technologies available for test isolation, bug fixing, how to protect the system from the external resources changes (firmware updating, hardware substitution, etc.) and, eventually, how to accomplish BDD starting from functional tests and going through integration and unit tests. We discuss pros and cons of each solution and point out the motivations of our choices either as a general rule or narrowed in the context of the DISCOS project.
© (2016) COPYRIGHT Society of Photo-Optical Instrumentation Engineers (SPIE). Downloading of the abstract is permitted for personal use only.
M. Buttu, M. Buttu, M. Bartolini, M. Bartolini, C. Migoni, C. Migoni, A. Orlati, A. Orlati, S. Poppi, S. Poppi, S. Righini, S. Righini, "Rules of thumb to increase the software quality through testing", Proc. SPIE 9913, Software and Cyberinfrastructure for Astronomy IV, 99130B (26 July 2016); doi: 10.1117/12.2230626; https://doi.org/10.1117/12.2230626


The control software for the Sardinia Radio Telescope
Proceedings of SPIE (September 23 2012)
Overview of the control system for the Keck interferometer
Proceedings of SPIE (December 12 2002)
A new approach for instrument software at Gemini
Proceedings of SPIE (July 13 2008)
Diving into the Sardinia Radio Telescope minor servo system
Proceedings of SPIE (September 23 2012)
RTC: a distributed real-time control system toolkit
Proceedings of SPIE (December 12 2002)

Back to Top