For instance, a quality engineer might monitor the testing activities, to verify whether procedures are followed (RQ3) or to detect trends that may hamper future testing or product quality (RQ2, RQ4) (Slaughter et al. But they are equally relevant for the quality engineers inside the development team who need convincing arguments to persuade their colleagues to increase test activities. 2002, p. 39), in which you want to do an initial assessment of the software system in a short period of time, knowing how tightly the testing is interwoven with the normal development process (RQ1 and RQ2) is an indicator for the reliability and effectiveness of the developer tests. For instance during “first-contact” situations (Demeyer et al. Certainly when such quality assessment is performed by external consultants, where a quick analysis using tools is a good way to get an insight into the testing process. These questions are particularly relevant during quality assessments of the developer testing process. Is there a relation between test-writing activity and test coverage? Our research is driven by the following research question: Is it possible to establish the co-evolution process between developer tests and the corresponding production code by mining a version control system (VCS)? In order to answer that question, we refine it into a number of subsidiary research questions:ĭoes co-evolution between test and production code happen synchronously or is it phased?Ĭan an increased test-writing activity be witnessed right before a major release or other event in the project’s lifetime?Ĭan we detect testing strategies, such as test-driven development (Maximilien and Williams 2003)? observed, are common to the field of studying software evolution (Storey et al. Our exploration of these version control systems is aided by the use of lightweight techniques and visualizations, which, as Storey et al. In this paper we retrospectively explore the co-evolution of production and test code by mining a version control system (VCS) such as Subversion (SVN) or the Concurrent Versions System (CVS) (Kagdi et al. Writing test-code that co-evolves gracefully alongside the production code is not an easy task, and software engineers need tools and methods that help to assess the nature of the co-evolution relationship. This leads to the almost paradoxical situation whereby tests are important for the success of the software and its evolution, while they are also a serious burden during evolution, because they need to be maintained as well. concluded that even minor changes in production code can significantly affect test coverage (Elbaum et al. have shown that even while refactorings are behavior preserving, they potentially invalidate tests (Moonen et al. Moreover, when a software system evolves (e.g., through refactoring), developers should run the persistent tests to verify whether the external behavior is preserved (Demeyer et al. Consequently, newly added functionality should be tested as soon as possible in the development process, to provide quick feedback to the developers (Runeson 2006). Indeed, a 2002 report from the NIST indicates that catching defects early during (unit) testing lowers the total development cost significantly (Tassey 2002). One artifact which is of primary importance when developing high-quality software, is the so-called developer test (i.e., a codified unit or integration test written by developers (Meszaros 2007)). A software development process aiming for quality should thus allow these artifacts to co-evolve gracefully alongside their respective dimensions. This multi-dimensionality lies in the fact that to develop high-quality source code, other artifacts are needed, e.g., requirements, documentation, tests, etc. (Mens et al. Software, however, is multi-dimensional, and so is the development process behind it. When evolving software, the source code is the main artefact typically considered, as this concept stands central when thinking of software. Lehman has taught us that a software system must evolve, or it becomes progressively less useful (Lehman 1980).
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |