Rules of thumb to increase the software quality through testing
Autor: | Sergio Poppi, M. Buttu, Andrea Orlati, Marco Bartolini, Carlo Migoni, Simona Righini |
---|---|
Rok vydání: | 2016 |
Předmět: |
Computer science
White-box testing Real-time computing Code coverage Continuous delivery 02 engineering and technology 01 natural sciences 010309 optics Software Acceptance testing 0103 physical sciences Software quality analyst Software verification and validation Unit testing business.industry Software development Software maintenance 021001 nanoscience & nanotechnology Software metric Software quality Software construction Software quality management Package development process Software reliability testing 0210 nano-technology Software engineering business System integration testing Software quality control Software project management |
Zdroj: | SPIE Proceedings. |
ISSN: | 0277-786X |
DOI: | 10.1117/12.2230626 |
Popis: | 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. |
Databáze: | OpenAIRE |
Externí odkaz: |