The article resulting from Research Internship 1 titled "Considering Polymorphism in Change-Based Test Suite Reduction" was accepted in RefTest2014. You can find the abstract below. The full preprint version can be found here. The final publication is available at link.springer.com.
With the increasing popularity of continuous integration, algorithms for selecting the minimal test-suite to cover a given set of changes are in order. This paper reports on how polymorphism can handle false negatives in a previous algorithm which uses method-level changes in the base-code to deduce which tests need to be rerun. We compare the approach with and without olymorphism on two distinct cases —PMD and CruiseControl— and discovered an interesting trade-off: incorporating polymorphism results in more relevant tests to be included in the test suite (hence improves accuracy), however comes at the cost of a larger test suite (hence increases the time to run the minimal test-suite).
The report for the Research Internship 2 titled "Literature Survey on Mutation Testing" can be found here. You can find the abstract below.
Mutation testing is one of the leading methods of testing the test-suites. In this article we review the literature about mutation testing in order to provide a guide for a developer who wants to design a mutation testing framework. We explore the diverse nature of mutation operators as a main ingridient to any mutation testing framework, and also discuss the features of the tools developed in the past decade.
The abstract for the Master's Thesis is provided below.
In order to assess the ability of a test suite to catch bugs, a quality metric is needed which can simulate realistic situations. Mutation analysis provides this metric with a reliable and repeatable approach. However, because of the computationally intensive nature of mutation analysis and the difficulties in applying such a technique to complex systems, it has not been widely adopted in industry. This study aims to determine the feasibility of using this technique on an industrial case, and to find out if the information gathered by this method is worth the performance costs.