An Automated Test Data Generator for Debugging Esterel Programs

에스테렐 프로그램 디버깅을 위한 테스트 데이터 자동 생성

  • Published : 2009.10.15

Abstract

Esterel is an imperative synchronous language that is well-adopted to specify reactive systems. Programmers sometimes want simple validations that can be applied while the system is under development. Since a reactive system reacts to environment changes, a test data is a sequence of input events. Generating proper test data by hand is complex and error-prone. Although several test data generators exist, they are hard to learn and use. Mostly, system designers need test data to reach a specific status of a target program. In this paper, we develop a test data generator to generate test input sequences for debugging Esterel programs. Our tool is focused on easy usage; users can describe test data properties with simple specifications. We show a case study in which the test data generator is used for a practical development process.

에스테렐은 반응형 시스템 설계에 적합하도록 디자인 된 명령형 동기언어이다. 시스템 개발 시에는 디버깅을 위해 다양한 테스트가 필요하다. 반응형 시스템을 테스트 하려면 일련의 입력을 시간의 흐름에 따라 순서대로 나열하여야 한다. 하지만 원하는 목적에 적합한 테스트 데이터를 생성해 주려면 많은 노력이 필요하며, 이 과정에서 오류가 발생하기도 한다. 따라서 디버깅의 특성상 빠르면서 원하는 목적의 테스트 데이터를 쉽게 표현할 수 있는 도구가 필요하다. 본 연구에서는 디버깅에 도움을 줄 수 있는 테스트 데이터 자동 생성기를 개발하였다. 본 연구는 개발자가 원하는 테스트 데이터를 쉽게 표현할 수 있고, 빠르게 테스트 데이터를 만들어내는 것에 초점을 두었다. 또한 사례 연구를 통해 실제 시스템 개발에 우리의 테스트 데이터 생성기를 적용한 예를 보여준다.

Keywords

References

  1. G. Berry, The Constructive Semantics of Pure Esterel, Draft book available at http://www.inria.fr/meije/esterel/esterel-eng.html, 1999
  2. D. Potop-Butucaru, S. A. Edwards, and G. Berry, Compiling Esterel, Springer, 2007
  3. Esterel Technologies, The Esterel v7 Reference Manual Version v7.30. initial IEEE standardization proposal, Esterel Technologies, 679 av. Dr. J. Lefebvre 06270 VilleneuveLoubet, France, November 2005
  4. Esterel Technologies. Success stories, http://www.esterel-technologies.com/technology/success-stories/
  5. E. M. Clarke, Jr. O. Grmberg, and D. A. Peled, Model Checking, MIT Press, Cambridge, MA, 2000
  6. J. Hatcliff and M. Dwyer, using the Bandera Tool Set to Model-check Properties of Concurrent Java Software, Proceedings of CONCUR 2001 (LNCS 2154), 2001
  7. A. Gargantini and C. Heitmeyer, Using Model Checking to Generate Tests from Requirements Specifications, Software Engineering Notes, 24(6) pages 146-162, November 1999 https://doi.org/10.1145/318774.318939
  8. P. E. Ammann and P. E. Black, A Specification-Based Coverage Metric to Evaluate Test Sets, In Proceedings of the 4th IEEE International Symposium on High-Assurance Systems Engineering, November 1999 https://doi.org/10.1109/HASE.1999.809499
  9. H. Hong, S. Cha, I. Lee, O. Sokolsky, and H. Ural, Data Flow Testing as Model Checking, In Proceedings of the International Conference on Software Engineering, May 2003 https://doi.org/10.1109/ICSE.2003.1201203
  10. H. Hong, I. Lee, O. Sokolsky, and H. Ural, A Temporal Logic Based theory of Test coverage and Generation, In Proceedings of the International Conference on Tools and Algorithms for Construction and Analysis of Systems, April 2002
  11. S. Rayadurgam and M. P. E. Heimdahl, Coverage Based Test-case Generation Using Model Checkers, In Proccedings of the 8th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems, pp. 83-91, April 2001 https://doi.org/10.1109/ECBS.2001.922409
  12. Esterel Studio, http://www.esterel-technologies.com/support.php?rub=86
  13. G. Devaraj, M. P. E. Heimdahl, and D. Liang, Coverage-Directed Test Generation with Model Checkers: Challenge and Opportunities, The 29th Annual International Computer Software and Applications Conference, 2005 https://doi.org/10.1109/COMPSAC.2005.66
  14. F. Gaucher, E. Jahier, B. Jeannet, and F. Maraninchi, Automatic state reaching for debugging reactive programs, In Proceedings of 5th International Workshop on Automated Debugging, September 2003
  15. N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud, 'The synchronous data flow programming language Lustre,' Proceedings of the IEEE, vol 79(9), pp.1305-1320, 1991 https://doi.org/10.1109/5.97300
  16. The Esterel v5.92 Compiler, http://www-sop.inria.fr/esterel.org/