Studying Co-evolution of Production & Test Code Using Association Rule Mining
نویسندگان
چکیده
Unit tests are generally acknowledged as an important aid to produce high quality code, as they provide quick feedback to developers on the correctness of their code. In order to achieve high quality, well-maintained tests are needed. Ideally, tests co-evolve with the production code to test changes as soon as possible. In this paper, we explore an approach to determine whether production and test code co-evolve synchronously. Our approach is based on applying association rule mining to the change history of product and test code classes. Based on these co-evolution rules, we introduce a number of measures to assess the co-evolution of product and test code classes. Through two case studies, one with an open source and another one with an industrial software system, we show that association rule mining and our set of measures allows one to assess the co-evolution of product and test code in a software project and, moreover, to uncover the distribution of programmer effort over pure coding, pure testing, or a more test-driven-like practice.
منابع مشابه
Studying Co-evolution of Production and Test Code Using Association Rule Mining
Unit testing is generally accepted as an aid to produce high quality code, and can provide quick feedback to developers on the quality of the software. To have a high quality and well maintained test suite requires the production and test code to synchronously co-evolve, as added or changed production code should be tested as soon as possible. Traditionally the quality of a test suite is measur...
متن کاملUsing association rules to study the co-evolution of production & test code
Unit tests are generally acknowledged as an important aid to produce high quality code, as they provide quick feedback to developers on the correctness of their code. In order to achieve high quality, well-maintained tests are needed. Ideally, tests co-evolve with the production code to test changes as soon as possible. In this paper, we explore an approach based on association rule mining to d...
متن کاملMining Software Repositories to Study Co-Evolution of Production & Test Code
Engineering software systems is a multidisciplinary activity, whereby a number of artifacts must be created — and maintained — synchronously. In this paper we investigate whether production code and the accompanying tests coevolve by exploring a project’s versioning system, code coverage reports and size-metrics. Our main aim for studying this co-evolution is to create awareness with developers...
متن کاملData-mining in Support of Detecting Class Co-evolution
In an evolving system maintained over a long time period, there exist many non-trivial relationships among system classes, such as class co-evolutions, which usually are not easily perceivable in the source code. However, unfortunately, the continuing evolution of large, long-lived systems leads to lost information about these hidden relationships. In this paper, we propose a method for recover...
متن کاملUnderstanding the Evolution and Co-evolution of Classes in Object-oriented Systems
As software systems evolve over a long time, non-trivial and often unintended relationships among system classes arise, which cannot be easily perceived through source-code reading. As a result, the developers’ understanding of continuously evolving, large, long-lived systems deteriorates steadily. A most interesting such relationship is class co-evolution: because of implicit design dependenci...
متن کامل