Embedding Built-in Tests in Hot Spots of an Object-Oriented Framework

객체지향 프레임웍의 Hot Spot에 Built-in Tests를 내장하는 방법

  • Published : 2002.02.01

Abstract

Object-oriented frameworks need to be systematically tested because they are reused in developing many applications software. They also need additional testing whenever they are extended for reuse. Frameworks, however, have properties that make it difficult to control and observe the testing of the parts that were modified and extended. In this paper, we describe the method of embedding test components as BIT(Built-In Test) into the framework's hot spots in order to efficiently detect the faults through testing that occurred while implementing application programs by modifying and extending the framework. The test components embedded into a framework make it easy to control and observe testing the framework, and thereby improve the testability of frameworks. Test components designed by the method proposed in this paper can be dynamically attached and detached to/from hot spots of a framework without changes or intervention to the framework code.

객체지향 프레임웍은 다수의 응용 소프트웨어의 개발에 반복적으로 재사용되므로 철저한 시험이 요구될 뿐만 아니라 재사용 시 확장된 프레임웍에 대해서도 추가적인 시험이 필요하다. 그런데 프레임웍은 개조, 합성된 확장 부위의 시험에 대한 제어와 관찰을 어렵게 하는 성질을 갖고 있다. 본 논문에서는 프레임웍을 개조, 확장하여 응용 프로그램을 구현할 때 발생할 수 있는 오류들이 시험을 통하여 효율적으로 발견될 수 있도록 프레임웍의 가변 부위에 테스터 컴포넌트들을 BIT(Built-in Test)로 내장하는 방법을 기술한다. 프레임웍에 이와 같이 내장된 테스터 컴포넌트들은 프레임웍의 시험 시 제어와 관찰을 용이하게 하여 프레임웍의 시험성을 높여준다. 여기서 제안된 방법으로 설계된 테스터 컴포넌트들은 시험대상 프레임웍의 확장 부위에 프레임웍 코드의 변경이나 간섭 효과가 없게 부착할 수 있고 필요에 따라 동적으로 탈착할 수 있다.

Keywords

References

  1. Fayad, M. E., Schmidt, D.C. and Johnson, R. E. Building Application Frameworks, John Wiley & Sons, Inc., 1999
  2. Fayad, M.E., Schmidt, D.C. and Johnson, R.E. Implementing Application Frameworks, John Wiley & Sons, Inc., 1999
  3. Fayad, M.E. and Johnson, R.E. Domain-Specific Application Frameworks, John Wiley & Sons, Inc., 2000
  4. Gamma, E. et al., Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995
  5. Codenie, W. et al., From Custom Applications to Domain-Specific Frameworks, Comm. ACM, 40(10), Oct. 1997, pp. 71-77 https://doi.org/10.1145/262793.262807
  6. Garlan, D. et al., 'Architectural Mismatch or Why its hard to build systems out of existing parts. Proc. 17th Int'l Conf. Software Engineering, Apr. 1995, pp. 179-185 https://doi.org/10.1145/225014.225031
  7. Kung, D.C., Hsia, P., and Gao, J. (eds.). Testing Object-Oriented Software. IEEE CS Press, 1998
  8. Binder, R.V. Testing Object-Oriented Systems:Models, Patterns, and Tools. Addison-Wesley, 2000
  9. Doong, R. and Frankj, P. The ASTOOT Approach to Testing Object-Oriented Programs. ACM Transactions on Software Engineering and Methodology, 3(2), Apr. 1994, pp. 101-130 https://doi.org/10.1145/192218.192221
  10. Hoffman, D. jand Stroper, P. ClassBench: a Framework for Automated Class Testing. Software Maintenance: Practice and Experience, 27(5), May 1997, pp. 573-597 https://doi.org/10.1002/(SICI)1097-024X(199705)27:5<573::AID-SPE98>3.0.CO;2-3
  11. Harrold, M.J., Mcgrcgor, J.D., and Fitzpatrick, K.J. Incremental Testing of Object-Oriented Class Structures. Proceedings of 14th Int'l Conference on Software Engineering, May 1992, pp. 68-80 https://doi.org/10.1145/143062.143093
  12. Jorgensen, P.C. and Erickson, C. Object-Oriented Integration Testing, Comm. ACM, 37(9), Sept. 1994, pp. 30-38 https://doi.org/10.1145/182987.182989
  13. Sparks, S. et al., Managing Object-Oriented Framework Reuse, IEEE Computer, September 1996, 29(9), pp. 52-61 https://doi.org/10.1109/2.536784
  14. Fayad, M.E., Wang, Y. and King, G., Built-In Test Reuse. Building Application Frameworks, Fayad, M.E., et al., John Wiley & Sons, Inc., 1999, pp. 488-491
  15. Binder, R.V. Design for Testability in ObjectOriented Systems. Comm. ACM, 37(9), Sep. 1994, pp. 87-101 https://doi.org/10.1145/182987.184077
  16. Voas, J.M., Morell, L and Miller, K. Predicting Where Faults Can Hide from Testing. IEEE Software, Mar. 1991, pp. 41-48 https://doi.org/10.1109/52.73748
  17. Voas, J.M. and Miller, K.W. Software Testability: The New Verification. IEEE Software, 12(3), May 1995, pp. 17-28 https://doi.org/10.1109/52.382180
  18. Meyer, B. Applying Design by Contract. Oct. 1992, pp. 40-51 https://doi.org/10.1109/2.161279
  19. Rosenblum, D.S. A Practical Approach to Programming with Assertions. IEEE Transactions on Software Engineering, 21(1), Jan. 1995, pp. 19-31 https://doi.org/10.1109/32.341844
  20. Voas, J. and Kassab, L. Using Asscrtions to Make Untestablc software More Testable, Software Quality Professional Journal, 1(4), Sep. 1999
  21. Pres, W. Design Patterns for Object-Oriented Software Development. Addison-Wesley, 1995
  22. Schmid, H.A. Systematic Framework Design by Generalization. Comm. ACM, 40(10), Oct. 1997, pp. 48-51 https://doi.org/10.1145/262793.262803
  23. Helm, R. et al. Contracts: Specifying Behavioral Compositions in Object-Oriented Systems, Proc. OOPSLA'90, Ottawa, Canada, 1990 https://doi.org/10.1145/97946.97967
  24. Steyaert, P et al. Reuse Contracts: Managing the Evolution of Reusable Assets, Proc. OOPSLA'96, San Jose, CA. USA, Oct. 6-10, 1996 https://doi.org/10.1145/236337.236363