DOI QR코드

DOI QR Code

AOP를 이용하여 진화된 프로그램의 회귀테스트 기법

Regression Testing of Software Evolution by AOP

  • 이미진 (동국대학교 대학원 컴퓨터공학과) ;
  • 최은만 (동국대학교 컴퓨터공학과)
  • 발행 : 2008.08.29

초록

관점지향 프로그래밍(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.

키워드

참고문헌

  1. G. Xu, Z. Yang, “A novel approach to unit testing: The Aspect-Oriented way,” International Symposium on Future Software Technology 2004, Xian China, October, 2004
  2. N. Belblida, et. al, “AOP extension for security testing of programs,” Proc. of IEEE Canadian Conference on Electrical and Computer Engineering, Ottawa, May, 2006 https://doi.org/10.1109/CCECE.2006.277318
  3. J. Zhao, “Data-Flow-Based Unit Testing of Aspect-Oriented Programs,” In Proc. 27th Annual IEEE International Computer Software and Applications Conference(COMPSAC'2003), Dallas, Texas, December, 2003
  4. J. Bruel, et al., “Using aspects to develop built-in tests for components,” $4^{th}$ Modeling with UML workshop of 2003 UML conference, San Francisco, Oct., 2003
  5. R. T. Alexander, J. M. Bieman, and A. A. Andrews. “Towards the systematic testing of aspect-oriented programs,” Technical Report, CS-4-105 Department of Computer Science, Colorado State University, March, 2004
  6. Ramnivas Laddad, “AspectJ in Action: Practical Aspect-Oriented Programming”, Manning Publications, 2003
  7. G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold, “An Overview of AspectJ,” In $15^{th}$ European Conference on Object-Oriented Programming, Budapest, Hungry, 2001
  8. D. Xu, W. Xu, and K. Nygard, “A State-Based Approach to Testing Aspect-Oriented Programs,” Technical Report, Department of Computer Science North Dakota State University, September, 2004
  9. D. Xu, “Test Generation from Aspect-Oriented State Models,” Technical Report, NDSU-CS-TR-05-XU02, Sept., 2005
  10. H. Song, Y. Yin, S. Zheng, “Dynamic aspects weaving in service composition,” Proc. of the $6^{th}$ International Conference on Intelligent Systems Design and Applications(ISDA'06), IEEE, 2006 https://doi.org/10.1109/ISDA.2006.137
  11. J. S. Bekken, Roger T. Alexander. “A Candidate Fault Model for AspectJ Pointcuts,” $17^{th}$ International Symposium on Software Reliability Engineering (ISSRE'06), 2006 https://doi.org/10.1109/ISSRE.2006.6
  12. J. Zhao and M. Rinard, “System Dependence Graph Construction for Aspect-Oriented Programs,” MIT LCS Technical Report 891, March, 2003
  13. Michael Mortensen and Sudipto Ghosh, James M. Bieman, “Testing During Refactoring Adding Aspects to Legacy Systems,” $17^{th}$ International Symposium on Software Reliability Engineering(ISSRE'06), 2006 https://doi.org/10.1109/ISSRE.2006.46
  14. Otavio Augusto Lazzarini Lemos and Cristina Videira Lopes “Testing Aspect-Oriented Programming Pointcut Descriptors,” International Symposium on Software Testing and Analysis Proceedings of the $2^{nd}$ workshop on Testing aspect-oriented programs, 2006 https://doi.org/10.1145/1146374.1146380
  15. P. Anbalagan and T. Xie. “Efficient mutant generation for mutation testing of pointcuts in aspect-oriented programs,” In Proc. $2^{nd}$ Workshop on Mutation Analysis, November, 2006 https://doi.org/10.1109/MUTATION.2006.3
  16. Reza Meimandi Parizi, Abdul Azim Ghani, “A Survey on Aspect-Oriented Testing Approaches,” $15^{th}$ International Conference on Computational Science and Applications, IEEE, 2007 https://doi.org/10.1109/ICCSA.2007.67
  17. W. Xu, D. Xu, V.Goel, and K. Nygard, “ASPECT FLOW GRAPH FOR TESTING ASPECT-ORIENTED PROGRAMS,” In Proceeding of the $8^{th}$ IASTED International Conference on Software Engineering and Applications(SEA 2004), ACTA Press, August, 2004
  18. W. Xu and D.Xu, “A model-based approach to test generation for aspect-oriented programs,” AOSD 2005 Workshop on Testing Aspect-Oriented programs, Chicago, March, 2005