Stoerzer, Maximilian & Ryder, Barbara G. & Ren, Xiaoxia & Tip, Frank. Change classification and its applications to program development and testing. Retrieved from https://doi.org/doi:10.7282/t3-da7s-1011
AbstractDuring program development, testing and code editing are interleaved activities. When tests unexpectedly fail, the changes that caused the failure are not always easy to find. We present several analyses that automatically classify changes as Red, Yellow, or Green, indicating the likelihood that they contributed to a test’s failure. We implemented these techniques as an extension of the JUnit testing framework, and evaluated their effectiveness in two case studies. Our results indicate that change classification can effectively focus programmer attention on failure-inducing changes, improving on current manual searching/debugging techniques. Change classification can also determine untested changes, to inform programmers that additional tests are needed. Furthermore, change classification can determine those changes that can be committed safely to a version control repository without breaking any tests, even if a developer’s local workspace contains failing tests. Early adoption of edited code avoids inefficient parallel implementations of the same functionality and possible conflicts when merging independent changes later in the development process.
RightsThis Item is protected by copyright and/or related rights.You are free to use this Item in any way that is permitted by the copyright and related rights legislation that applies to your use.For other uses you need to obtain permission from the rights-holder(s).