컴포넌트 테스트를 위한 래퍼의 자동 생성에 관한 연구

Automated Generation of Wrapper to Test Components

  • 송호진 (한국 NCR 테라데이타) ;
  • 최은만 (동국대학교 컴퓨터멀티미디어공학부)
  • 발행 : 2005.08.01

초록

미리 만들어진 컴포넌트를 조립하여 새로운 소프트웨어를 개발하는 방법은 개발비용과 기간을 획기적으로 줄일 수 있다는 장점으로 전통적인 방법의 대안이 되고 있다. 하지만 컴포넌트를 통합 조립하면서 신뢰도를 확인하고 새 환경에 맞는지 테스트하는 과정이 복잡하고 비용이 많이 소요된다면 효과적인 방법이 될 수 없다. 대규모 시스템에 효율적으로 사용, 조림될 컴포넌트들은 원시코드 형태로 배포되지 않아서 새 환경에 적합한지 시험하고 관찰하는 철저한 테스트가 어렵다. 이러한 문제점을 해결하기 위하여 컴포넌트가 재사용되었을 때 쉽게 검증되도록 미리 테스트 모듈을 내장한 Built-In 테스트 방법이 있지만 컴포넌트의 기능이 다양하고 복잡하게 되면 컴포넌트에 포함된 테스트 모듈의 규모가 커지고 다양하고 융통성 있는 테스트가 어려워진다. 이 논문에서는 컴포넌트의 Built-In 테스트 기능을 대체할만한 컴포넌트 테스트를 위한 래퍼(wrapper)를 제안하고 이를 설계, 구현하여 실용성을 보였다. 래퍼를 자동 생성하여 테스트하면 컴포넌트의 테스트 준비 과정에 드는 노력이 줄어들고 테스트를 다양한 측면에서 테스트해 볼 수 있다.

Assembling new software systems from Prepared components is an attractive alternative to traditional software development method to reduce development cost and schedule dramatically. However, if separately developed components are tested, integrated and verified with unreasonable effort and high cost, it would not be an effective way to software development. Components are not distributed in the shape of white-box source code so that should be hard to validate and test in new application environment. For solving this problem, built-in tester components are suggested to check the contract-compliance of their server components. If components have various and complex function, built-in tester should be heavy and unflexible to test in composition of components. This paper suggests enhancing automated wrapper technique which substitutes with built-in tester components and shows the usability of the wrapper by design and implementation. Component testing in this way reduces the cost and effort associated with preparation of component testing and makes the various test experiments in components assembly.

키워드

참고문헌

  1. J. Vincent, 'Built-In-Test Vade Mecum - Part I A Common BIT Architecture,' IST 1999-20162 Component+ European project, 1999
  2. Y. Wang, G. King, et aI., 'On Built-in Test Reuse on Object-Oriented Framework Design,' ACM Journal of Computing Surveys, Vol. 32, No. 1, March 2000 https://doi.org/10.1145/351936.351943
  3. H. Grob, 'Built-in Contract Testing in Component-based Application Engineering,' COLOGNET Joint Workshop on Component-based Software Development and Implementation Technology for Computational Logic Systems Affiliated with LOPSTR, Madrid, Spain, 2002
  4. Gannon JD, McMullin PR, Hamlet R. Data-avstraction implementation, specification, and Object-Oriented Programming, Nov./Dec. 1995, 8-7: 35-41
  5. E. Martin, C. Toyota, R. Yanagawa, 'Constructing Self-Testable Software Components,' Proceedings of 2001 International Conference on Dependable Software Systems and Networks, Goteborg, pp.151-160, Sweden, July 2001 https://doi.org/10.1109/DSN.2001.941401
  6. A. Bertolino, A. Polini, 'A Framework for Component Deployment Testing,' Proc. ACM/IEEE 25yh International Comference on Software Engineering ICSE 2003, Portland, Oregon, USA, pp.221-231, May 3-10, 2003 https://doi.org/10.1109/ICSE.2003.1201202
  7. Timithy Fraser, 'Hardening COTS Software with Generic Software Wrappers,' In IEEE, Symposium on Security and Privacy, pp.2-16, May, 1999 https://doi.org/10.1109/SECPRI.1999.766713
  8. Stephen G. Edwards, 'A Framework For Practical, Automated Black-box Testing of Component-Based Software,' Proceedings of 1st International Workshop on Automated Program Analysis, Testing and Verification, PP.97-111, June, 2000
  9. Roy Patric Tan, 'An Assertion Checking Wrapper Design for Java,' Specification and Verification of Component-Based Systems Workshop, September, 2003
  10. Kal Ahmed, 'Professional JavaXML,' Wrox, 2002
  11. A. Bertolino. E. Marchetti. and A. Polini, 'Integeration of 'Components' to Test Software Components,' to appear in Proceedings of TACos 2003 Workshop at ETAPS 2003, Warsaw, Poland, April 13, 2003
  12. A. Bertolino. E. Marchetti. and A. Polini, 'WCT: a Wrapper for Component Testing,' in Proceedings of Fidji '2002, Luxembourg, Novermember 28-29, 2002, to appear in LNCS https://doi.org/10.1007/3-540-36520-6_15
  13. R. V. Binder, Testing Object-Oriented System: Models, Patterns, and Tools. Addison-wesley. 2000
  14. J. Cheeman and J. Daniels, UML Component - a Simple Process for Specifying Component-Based Software, Addison-Wesley, 2000
  15. K. Gao, K. Gupta, S. Gupta, and S. Shim, 'On Building Testable Software Components,' in J. Dean and A. Gravel(Eds) Proc. ICCBSS, LNCS 2255, pp.108-121, 2002 https://doi.org/10.1007/3-540-45588-4_11
  16. E. Gamma, and K. Beck, 'JUnit a Cook's Tour' abilible at: http://www.junit.org
  17. Wang, Y., King, G., Court, i., Ross, M. and Staples, G. 'On Built-in Tests in Object-Oriented Reengineering,' Proceedings of 5th ACM Symposium on FSE/6yh European Conference on Software Engineering/workshop on Object-Oriented Reengineering(FSE/ESEC/WOOR'97), pp.361-365, 1997
  18. D. Kung, P. Hsia, and Jerry Gao, 'An Overview of Object-Oriented Software Testing,' Proceeding of 3rd IEEE High-Assurance Systems Engineering Symposium, November 13-14, 1998, Wasingtin, DC https://doi.org/10.1109/HASE.1998.731583
  19. Lionel Briand and Yvan Labiche. A UML-based approch to system testing. In Fourth International Conference o the Unified Modeling Language (UML '01), pp.194-208, Toronto, canada, October 2001