ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
AspectJ in Action: Practical Aspect-Oriented Programming
AspectJ in Action: Practical Aspect-Oriented Programming
Selective capture and replay of program executions
WODA '05 Proceedings of the third international workshop on Dynamic analysis
Automatic test factoring for java
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Carving and Replaying Differential Unit Test Cases from System Test Cases
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
The functional specification of software systems is often given in form of use cases. The compliance of a system implementation to a use case specification is validated by system tests, which can nowadays be automated. Unfortunately, system tests run slowly and assume that all needed external systems such as databases and authentication servers are accessible and run correctly. For these reasons, software developers rather rely on module tests, which test the functionality of individual modules. Module tests, however, have the disadvantage of being defined independently of the customer's system specification. In this paper, we describe an approach to combine the advantages of system and module tests. The core technique is (i) to record the complete information flow between modules during the execution of system tests and (ii) to generate, based on this data, corresponding module tests afterwards. The resulting module tests are fast, they are independent of external systems, and they reflect test scenarios defined in use cases. Our approach is heavily based on aspect-oriented programming (AOP) and implemented by the open-source framework jautomock.