Software Change validation using Class Diagram and SRS

Author(s): Rajat Swapnil, Aprna Tripathi, Dharmender Singh Kushwaha
Venue: IEEE International Advance Computing Conference
Date: 2013

Type of Experiement: Case Study
Class/Experience Level: Professional
Participant Selection: self-study
Data Collection Method: Observation, Code Metric, Project Artifact(s)


This paper addresses the excessive cost of maintenance on software after it has been developed; often, it consumes 40-70% of the overall development costs. Part of this cost is incurred from regression testing the entire system suit on the entire software - it would be greatly beneficial if users could reduce the size of the test suites that they run for regression testing without losing the safety that they provide. Several previous techniques (both code- and model-based) are based on the idea of smaller, dynamically generated, test suites, and this paper provides expansion on that idea.

In this approach, developers use XML representations of class diagrams to produce a dependency matrix for the old design (an SRS); from there, they apply the same technique to a new design (another new SRS). Using these, they find the changes from the old by comparing the differences in dependencies and class diagrams, and mapped the changes. Once these changes have been validated, a list of tests can be generated based only on the changes. Using this technique, regression test run-time should be reduced immensely, since only a small fraction of the tests need to be run (depending on the scale of the changes, of course). This was all applied to a self-developed application.

In the case study, the researchers used their method to develop a Shipment Retail Management System in Java; the primary feature behind this system is to compute the shipping cost of an item of given dimensions. After the initial release, they incorporated different calculations: additional charges based on box contents, destination, and urgency. In total, this added about two classes, and a variety of dependencies to the system, which produced a much smaller number of tests for as a regression suite.