DOI QR코드

DOI QR Code

Automatic Generation of DB Images for Testing Enterprise Systems

전사적 응용시스템 테스트를 위한 DB이미지 생성에 관한 연구

  • Kwon, Oh-Seung (School of Business Administration, University of Seoul) ;
  • Hong, Sa-Neung (School of Business Administration, University of Seoul)
  • 권오승 (서울시립대학교 대학원 경영학과) ;
  • 홍사능 (서울시립대학교 대학원 경영학과)
  • Received : 2011.12.12
  • Accepted : 2011.12.24
  • Published : 2011.12.31

Abstract

In general, testing DB applications is much more difficult than testing other types of software. The fact that the DB states as much as the input data influence and determine the procedures and results of program testing is one of the decisive reasons for the difficulties. In order to create and maintain proper DB states for testing, it not only takes a lot of time and efforts, but also requires extensive IT expertise and business knowledge. Despite the difficulties, there are not enough research and tools for the needed help. This article reports the result of research on automatic creation and maintenance of DB states for testing DB applications. As its core, this investigation develops an automation tool which collects relevant information from a variety of sources such as log, schema, tables and messages, combines collected information intelligently, and creates pre- and post-Images of database tables proper for application tests. The proposed procedures and tool are expected to be greatly helpful for overcoming inefficiencies and difficulties in not just unit and integration tests but including regression tests. Practically, the tool and procedures proposed in this research allows developers to improve their productivity by reducing time and effort required for creating and maintaining appropriate DB sates, and enhances the quality of DB applications since they are conducive to a wider variety of test cases and support regression tests. Academically, this research deepens our understanding and introduces new approach to testing enterprise systems by analyzing patterns of SQL usages and defining a grammar to express and process the patterns.

데이터베이스를 사용하는 프로그램을 테스트하는 것은 일반 소프트웨어의 경우보다 훨씬 더 복잡하고 어렵다. 테스트 데이터에 더하여 데이터베이스 상태가 테스트의 절차와 결과에 결정적인 영향을 미치는 것이 주요 원인이다. 테스트에 적합한 데이터베이스 상태를 만들어주려면 많은 시간과 노력이 필요한 것은 물론이거니와 IT와 업무에 대한 상당한 지식이 있어야 한다. 이러한 어려움에도 불구하고 데이터베이스 응용 프로그램의 테스트에 대한 연구와 지원은 매우 부족하다. 이 논문은 테스트에 알맞은 데이터베이스 상태의 생성과 유지에 관한 연구 결과를 보고한다. 연구의 핵심은 프로그램에서 사용하는 SQL을 로그파일에서 추출하여 분석한 결과와 데이터베이스 스키마와 테이블, 로그, 전문 등의 다양한 원천(source)에서 수집한 정보를 결합하여 프로그램의 테스트에 적합한 사전, 사후 상태를 자동으로 만들어주는 테스트 지원도구의 개발이다. 연구에서 제시한 절차와 도구는 단위 테스트와 통합 테스트의 지원과 더불어 회귀 테스트의 수행에 따르는 어려움을 극복하는데 큰 도움이 될 것이다. 실무적으로는 연구의 결과가 데이터베이스 상태의 생성과 유지에 소요되는 시간과 노력을 줄여 개발인력의 생산성을 제고하고, 다양한 케이스의 테스트와 회귀 테스트를 지원하여 대상 프로그램의 품질 향상에 기여할 것으로 기대한다. 학문적으로는 프로그램에서 사용하는 SQL의 패턴을 분석할 수 있는 상태 전이 도형과, 패턴의 표현 및 추론이 가능한 문법을 정의하여 전사적 응용 프로그램 테스트에 대한 폭 넓은 이해와 새로운 접근 방식을 가능하게 하였다.

Keywords

References

  1. 권오승, 홍사능, "Automatic Maintenance of Referential Integrity for Unit Test Data Management", 경영정보학회 추계학술대회(2008), 609-616.
  2. 권오승, 홍사능, "로그 기반 효과적 반복 테스트", 경영정보학회 추계학술대회(2009), 685-690.
  3. Aditya, P. M., Foundations of software Testing, Dorling Kindersley(India) Pvt. Ltd, 2008.
  4. Aho, A. V., R. Sethi, and J. D. Ullman, Compilers : Principles, Techniques, and Tools, Addison Wesley, 1987.
  5. Alessandro, O. and K. Bryan, "Selective Capture and Replay of Program Executions", Proceedings of the third international workshop on dynamic analysis, St. Louis, Missouri (2005), 1-7.
  6. Alessandro, O., A. Taweesup, and J. H. Mary, "Leveraging Field Data for Impact Analysys and Regression Tesing", ACM SIGSOFT Software Engineering Notes, Vol.28, No.5 (2003), 128-137. https://doi.org/10.1145/949952.940089
  7. Barrasa, J., O. Corcho, and A. Gomez-Perez, "Fund Finder : A case study of database-toontology mapping", Workshop on Semantic Integration(2003), 9-15.
  8. Beck, K. and E. Gamma, "Junit Cookbook", http:// junit.sourceforge.net/doc/cookbook/cookboo k.htm, 2011.
  9. Bohner, S. and R. Arnold, "Software Change Impact Analysis", IEEE Computer Society Press, Los Alamitos, CA, USA, 1996.
  10. Brooks, F. P., "No Silver Bullet Essence and Accidents of Software Engineering", IEEE Computer Society, Vol.20, No.4(1987), 10- 19.
  11. Carsten, B., D. Kossmann, and L. Eric, "Towards Automatic Test Database Generation", Data Engineering Bulletin, 2008.
  12. Chan, M. Y. and S. C. Cheung, "Applying white box testing to database applications", Technical Report, HKUST-CS99-01, Dept. of Computer Science, Hong Kong Univ., 1999a.
  13. Chan, M. Y. and S. C. Cheung. "Testing Database Applications with SQL Semantics", Proceedings of 2nd International Symposium on Coorperative Database Systems for Advanced Applications(1999b), 363-374.
  14. Chan, W. K., S. C. Cheung, and T. H. Tse, "Fault- Based Testing of Database Application Programs with Conceptual Data Model", Fifth International Conference on Quality Software, (2005), 187-196.
  15. Charles, C. P., Set Theory, KyungMoon Publishers, 2002.
  16. Chays, D., Y. Deng, P. G. Frankl, S. Dan, F. I. Vokolos, and E. J. Weyuker, "AGENDA : A test generator for relational database applications", Technical Report, TR-CIS-2002- 04, Dept. of Computer Science, Polytechnic Univ, 2002.
  17. Chays, D., Y. Deng, P. G. Frankl, S. Dan, F. I. Vokolos, and E. J. Weyuker, "An AGENDA for testing relational database applications", Journal of Software Testing, Verification, and Reliability, Vol.14(2004), 17-44. https://doi.org/10.1002/stvr.286
  18. Chays, D., "Test Data Generation for Relational Database Applications", Ph.D. diss., Dept. of Computer and Information Science, Polytechnic Univ., 2005.
  19. Cohen, D. M., S. R. Dalal, and M. L. Fredman, and G. C. Patton, "The AETG System : An Approach to Testing Based on Combinatorial Design", IEEE Transactions on Software Engineering, Vol.23(1997), 437-444. https://doi.org/10.1109/32.605761
  20. Coral, C., M. Piattini, and M. Genero, "Empirical validation of referential integiry metrics", Information and Software Technology, Vol. 43(2001), 949-957. https://doi.org/10.1016/S0950-5849(01)00202-6
  21. Date, C. J., "REFERENTIAL INTEGIRITY", The VLDB Journal, Vol.7(1981), 2-12.
  22. Davies, R. A., R. J. Beynon, and B. F. Jones, "Automating the testing of databases", Proceedings of First International Workshop on Automated Program Analysis, Testing and Verification, 2000.
  23. Florian, H., D. Kossmann, and L. Eric, "A framework for efficient regression tests on database applications", The VLDB Journal, Vol.16(2006), 145-164. https://doi.org/10.1007/s00778-006-0028-8
  24. Gerard, M., "Agile Regression Testing Using Record and Playback", Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, Anaheim, ca, USA, (2003), 353-360.
  25. Gupta, N., A. M. Mathur, and M. L. Soffa, "Automated Test Data Generation Using An Iterative Relaxation Method", ACM SIGSOFT Software Engineering Notes, Vol.23, No.6 (1998).
  26. James, R. L., "Whole Program Paths", ACM SIGPLAN Notices, Vol.34, No.5(1995), 259 -269.
  27. James, L. and R. Gragg, "Whole Program Path- Based dynamic impact analysis", Proceedings of the 25th International Conference on Software Engineering, Portland, Oregon, IEEE, (2003), 308-318.
  28. John, S., C. Pravir, and F. Bob, A. Podgurski, "jRapture : A Capture/Replay Tool for Observation- Based Testing", ACM SIGSOFT Software Engineering Notes, Vol.25, No.5 (2000), 158-167. https://doi.org/10.1145/347636.348993
  29. Kanglin, L. and W. Mengqi, EFFECTIVE GUI TEST AUTOMATION : Development an Automated GUI Testing Tool , SYBEX, 2005.
  30. Khalek, S. A., B. Elkarablieh, Y. O. Laleye, and S. Khurshid, "Query-aware Test Generation Using a Relational Constraint Solver", Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering(2008), 238-247.
  31. McCabe, T. J. and C. W. Butler, "Design complexity measurement and testing", Communications of the ACM, Vol.32, No.12(1989).
  32. Mercury Interactive Software, "TestDirector test management and QuickTest test automation software", http://www-svca.mercuryinterac tive.com/products, 2009.
  33. Michael, E., M. Rupak, and S. Koushik, "Dynamic Test Input Generation for Database Applications", Proceedings of the 2007 international symposium on software testing and analysis, (2007), 151-162.
  34. Paul, C. J., SOFTWARE TESTING : A Craftsman's Approach Second Edition, Grand Valley State University : CRC PRESS, 2002.
  35. Royce W., Software Project Management : A Unified Framework, Addison-Wesley Professional, 1998
  36. Sen, K., D. Marinov, and G. Agha, "CUTE:a concolic unit testing engine for C", ACM SIGSOFT Software Engineering Notes, Vol. 30, No.5(2005).
  37. Sriraman, T., G. Rajiv, and Z. Xiangyu, "Extended Whole Program Paths", Parallel Architectures and Compilation Techniques, 14th Internaltional Conferenece, IEEE(2005), 17 -26.
  38. Taweesup, A., O. Alessandro, and J. H. Mary, "Efficient and Precise Dynamic Impact Analysis Using Execute-After Sequences", Software Engineering, Proceedings, 27th International Confernece, IEEE(2005), 432-441.
  39. Theo, H. and R. Joachim, "Access path support for referential integrity in SQL2", The VL DB Journal, Vol.5(1995), 196-214.
  40. Ultimoamore, "Download", http://sourceforge.net/ projects/jsqlparserfiles, 2011.
  41. Yuetang, D., F. Phyllis, and D. Chays, "Testing Database Transaction with AGENDA", Proceedings of the 27th international conference on Software engineering(2005), 238- 252.