Regression Testing of Software Evolution by AOP

Mi Jin Lee, Eun-Man Choi · The KIPS Transactions PartD · 2008

관점지향 프로그래밍(AOP)은 횡단 관심사까지 모듈화 하여 소프트웨어의 모듈화를 높여주는 새로운 프로그래밍 패러다임이다. 이를 이용하면 레거시 시스템에 손대지 않고 소프트웨어를 확장시킬 수 있다. 관점지향 프로그래밍 자체 혹은 레거시 시스템만의 테스트 기법은 많이 있으나 확장된 프로그램의 테스트 기법에 대해선 많은 연구가 진행되지 않고 있다. 이 논문에서는 관점지향 프로그래밍을 이용하여 소프트웨어를 확장한 경우의 테스트 기법에 대해 관점지향 프로그래밍의 결함 모델에 맞춰 제시한다. 우선 AOP의 반사기능의 객체를 이용하여 교차점 패턴의 부정확한 강도 및 부정확한 애스펙트의 우선순위를 테스트하고, 증명 규칙을 이용하여 기대하는 사후 조건 성립의 실패에 대해 테스트하였다. 또한 set() 교차점을 이용하여 불변 조건 보존의 실패에 대해 테스트하고, 제어흐름 그래프를 이용하여 제어 의존의 부정확한 변형에 대해 확인하는 방법을 제시한다. 실증을 위하여 셋탑박스의 채널 관리 시스템을 구현하여 제시한 각각의 테스트 기법들에 대해 실험하였다. Aspect Oriented Programming(AOP) is a relatively new programming paradigm and has properties that other programming paradigms don't have. This new programming paradigm provides new modularization of software systems by cross-cutting concerns. In this paper, we propose a regression test method for program evolution by AOP. By using JoinPoint, we can catch a pointcut-name which makes it possible to test the incorrect pointcut strength fault and the incorrect aspect precedence fault. Through extending proof rules to aspect, we can recognize failures to establish expected postconditions faults. We can also trace variables using set() and get() pointcut and test failures to preserve state invariant fault. Using control flow graph, we can test incorrect changes in control dependencies faults. In order to show the correctness of our proposed method, channel management system is implemented and tested by using proposed methods.

Read the paper · More papers on PaperTik