Abstract:
In this thesis we present a regression selection technique for C# programs. C# is
often used within the Microsoft .Net framework to give programmers a solid base to
develop a variety of applications. Regression testing is done after modifying a program.
Regression test selection refers to selecting a suitable subset oftest cases from the
original test suite in order to be retested. It aims to provide confidence that the
modifications are correct and did not affect other unmodified parts of the program. The
technique presented in this thesis extends previous 00 techniques to cover, for the first
time, C#.Net specific features like class library, delegates, COM+ components, calling a
component written in a different language, web services and other relevant .Net elements.
Our technique is based on three phases; the first phase builds an Affected Class Diagram
consisting of classes that are affected by the change in the source code. The second phase builds a C# interclass Graph (CIG) from the affected class diagram based on C# specific
features. Then, we use an algorithm to traverse and compare the original CrG and the
modified one. This algorithm also selects test cases that execute the changed elements of
the CIG. The second phase reduces the number of selected test cases. The third phase
propose a new metric based on C# features for giving weights to selected test cases for
further prioritization of the selected test cases. We have empirically validated the
proposed technique by using case studies. This empirical work shows the usefulness of
the proposed regression testing technique for C#.Net programs.