AOP를 이용하여 진화된 프로그램의 회귀테스트 기법
Regression Testing of Software Evolution by AOP
1
조회
0
다운로드
0
인용
0
참고문헌
키워드
초록
관점지향 프로그래밍(AOP)은 횡단 관심사까지 모듈화 하여 소프트웨어의 모듈화를 높여주는 새로운 프로그래밍 패러다임이다. 이를 이용하면 레거시 시스템에 손대지 않고 소프트웨어를 확장시킬 수 있다. 관점지향 프로그래밍 자체 혹은 레거시 시스템만의 테스트 기법은 많이 있으나 확장된 프로그램의 테스트 기법에 대해선 많은 연구가 진행되지 않고 있다. 이 논문에서는 관점지향 프로그래밍을 이용하여 소프트웨어를 확장한 경우의 테스트 기법에 대해 관점지향 프로그래밍의 결함 모델에 맞춰 제시한다. 우선 AOP의 반사기능의 객체를 이용하여 교차점 패턴의 부정확한 강도 및 부정확한 애스펙트의 우선순위를 테스트하고, 증명 규칙을 이용하여 기대하는 사후 조건 성립의 실패에 대해 테스트하였다. 또한 set() 교차점을 이용하여 불변 조건 보존의 실패에 대해 테스트하고, 제어흐름 그래프를 이용하여 제어 의존의 부정확한 변형에 대해 확인하는 방법을 제시한다. 실증을 위하여 셋탑박스의 채널 관리 시스템을 구현하여 제시한 각각의 테스트 기법들에 대해 실험하였다.
Abstract
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.
참고문헌 (18)
- G. Xu, "A novel approach to unit testing: The Aspect-Oriented way", International Symposium on Future Software Technology 2004 (2004)
- N. Belblida, et. al., "AOP extension for security testing of programs", Proc. of IEEE Canadian Conference on Electrical and Computer Engineering (2006)
- J. Zhao, "Data-Flow-Based Unit Testing of Aspect-Oriented Programs", In Proc. 27th Annual IEEE International Computer Software and Applications Conference(COMPSAC'2003), (2003)
- J. Bruel, et al., "Using aspects to develop built-in tests for components", 4th Modeling with UML workshop of 2003 UML conference (2003)
- Towards the systematic testing of aspect-oriented programs, "R. T. Alexander", Colorado State University, ~, pp.CS-4-105 (2004)
- Ramnivas Laddad, "AspectJ in Action: Practical Aspect-Oriented Programming" (2003), Manning Publications
- G. Kiczales, "An Overview of AspectJ", In 15th European Conference on Object-Oriented Programming (2001)
- A State-Based Approach to Testing Aspect-Oriented Programs, "D. Xu", North Dakota State University, ~ (2004)
- Test Generation from Aspect-Oriented State Models, "D. Xu", ~, pp.NDSU-CS-TR-05-XU02 (2005)
- H. Song, "Dynamic aspects weaving in service composition", Proc. of the 6thInternational Conference on Intelligent Systems Design and Applications(ISDA'06), (2006), IEEE
- J. S. Bekken, "A Candidate Fault Model for AspectJ Pointcuts", 17th International Symposium on Software Reliability Engineering (ISSRE'06), (2006)
- System Dependence Graph Construction for Aspect-Oriented Programs, "J. Zhao", ~, pp.MIT LCS Technical Report 891 (2003)
- Michael Mortensen, "Testing During Refactoring Adding Aspects to Legacy Systems", 17th International Symposium on Software Reliability Engineering(ISSRE'06), (2006)
- Otavio Augusto, "Testing Aspect-Oriented Programming Pointcut Descriptors", International Symposium on Software Testing and Analysis Proceedings of the 2nd workshop on Testing aspect-oriented programs (2006)
- P. Anbalagan, "Efficient mutant generation for mutation testing of pointcuts in aspect-oriented programs", In Proc. 2nd Workshop on Mutation Analysis (2006)
- Reza Meimandi Parizi, "A Survey on Aspect-Oriented Testing Approaches", 15th International Conference on Computational Science and Applications, (2007), IEEE
- W. Xu, "ASPECT FLOW GRAPH FOR TESTING ASPECT-ORIENTED PROGRAMS", In Proceeding of the 8th IASTED International Conference on Software Engineering and Applications(SEA 2004), (2004), ACTA Press
- W. Xu, "A model-based approach to test generation for aspect-oriented programs", AOSD 2005 Workshop on Testing Aspect-Oriented programs (2005)
