The firewall concept for regression testing and impact analysis of object-oriented systems
Lee White, Khalil Abdullah Abdullah · 1998
Software maintenance is concerned with providing a systematic process for dealing with change. When the process of software maintenance is applied to implement a change, we must ensure that unmodified functionalities are not inadvertently affected. When such functionalities are affected, this is identified as a regression error. Regression testing is a part of the maintenance process intended to detect regression errors. In 1990, Leung and White introduced the firewall concept in order to deal with regression testing of a procedural system at the integration level. The firewall concept has been demonstrated to be a continuing viable technique for this purpose. Given one or more modules that have been changed, the firewall encloses the set of modules that must be retested. In establishing the firewall it was assumed that both unit an integration testing involved were reliable. The effects of unreliable integration testing on the firewall for procedural systems are established, showing how the firewall construction must subsequently change. It is further shown how unreliable unit testing will lead to no firewall construction being possible. An analysis is performed where the concept of a firewall is applied to object-oriented software with the same objective in mind. The analysis involves an investigation of the type of change of the component; specification change or code change. The effects of that change on the component itself and its interaction with other parts of the system were thoroughly investigated. Then the parts of the system that need to be retested using the firewall concept were identified. Finally, test suites are reused, or a new one designed when needed to reveal the defects present. This analysis also involved solving the problems of polymorphism and dynamic binding in testing for object-oriented systems. Finally the concept of the firewall is used for impact analysis of object-oriented software. Impact analysis is defined as identifying the potential consequences of a change, or estimating what needs to be modified to accomplish that change. Software change impact analysis provides visibility into the potential effects of changes before the changes are implemented. The firewall concept is used to identify the parts of the system that can be affected by a proposed change and it is also utilized to give an indication of system maintainability.