Deterministic Execution Testing for Concurrent Programs based on Automata

오토마타기반의 병행 프로그램을 위한 결정적 수행 테스팅 기법

  • 정인상 (한성대학교 컴퓨터공학부) ;
  • 김병만 (금오공과대학교 컴퓨터공학부) ;
  • 김현수 (충남대학교 정보통신공학부)
  • Published : 2001.10.01

Abstract

In this paper, we present a new approach to deterministic execution for testing concurrent programs. The proposed approach makes use of the notion of event independence which has been used in the partial-order method in order to resolve the state-explosion problem and constructs and automation which accepts all the sequences semantically equivalent to a given sequence. Consequently, we can allow a program to be executed according to event sequences other then the (possibly infeasible) given sequence if they have the same effects on the program's behavior. One advantage of this method is that it can be applied to situations where a program is not exactly implemented as described in the specification.

이 논문에서는 병행 프로그램을 테스팅하기 위해 오토마타에 기반을 둔 새로운 결정적 수행방법을 제시한다. 이 논문에서는 제안한 방법은 부분 순서 방법에서 상태 폭발 문제를 해결하기 위해 사용되는 이벤트 독립 개념을 사용하여 주어진 이벤트 시퀸스와 의미적으로 동일한 시퀸스들을 받아들이 수 있는 오토마타를 구축한다. 따랏 프로그램이 주어진 시퀀스를 직접적으로 구현하지 않았다 할지라도 그 와 의미적으로 동일한 대안 시퀀스가 존재한다면 프로그램의 실행을 허락한다. 이 방법의 장점을 프로그램이 명세에 기술된 대로 정확하게 구현되어있지 않은 상황에서도 적용할수 있다는 점이다.

Keywords

References

  1. K. C. Tai, 'Testing Concurrent Programs,' 9th Int'l Computer Software and Applications Conference: COMPSAC'85, pp. 310-317, 1985
  2. T. J. LeBlanc and J. M. Meller-Crummey, 'Debugging Parallel Programs with Instant Replay,' IEEE Trans. on Computers, Vol. C-36, No. 4, pp. 471-482, 1987 https://doi.org/10.1109/TC.1987.1676929
  3. K. C. Tai, R. H. Carver and E. E. Obaid, 'Debugging Concurrent Ada Programs by Deterministic Execution,' IEEE Trans. on Soft. Eng., Vol. 17, No. 1, pp. 45-63. 1991 https://doi.org/10.1109/32.67578
  4. G. V. Bochmann and A. Petrenko, 'Protocol Testing: Review of Methods and Relevance for Software Testing,' Proc. of Ini'l Symp. on Software Testing and Analysis, pp. 109-124, 1994 https://doi.org/10.1145/186258.187153
  5. R. H. Carver and K. C. Tai, 'Use of Sequencing Constraints for Specification-Based Testing of Concurrent Programs,' IEEE Trans. on Software Eng., Vol. 24, No.6, pp. 471-490, 1998 https://doi.org/10.1109/32.689403
  6. P. Godefroid, Partial-Order Methods for the Verification of Concurrent Systems-An Approach to the State-Explosion Problem, PhD thesis, Univ. de Liege, 1994
  7. I. S. Chung, H. S. Kim, H. S. Bae, Y. R. Kwon, and B. S. Lee, 'Testing of Concurrent Programs based on Message Sequence Charts,' Proc. of Int'l Symp. on Soft. Eng. for Parallel and Distributed Systems, pp. 72-82, 1999 https://doi.org/10.1109/PDSE.1999.779740
  8. I. S. Chung, H. S. Kim, H. S. Bae, Y. R. Kwon, and D. G. Lee, 'Testing of Concurrent Programs After Specification Changes,' Proc. of Int'l Conf. on Software Maintenance, pp. 199-208, 1999 https://doi.org/10.1109/ICSM.1999.792609
  9. D. Rosenblum, 'Specifying Concurrent Systems with TSL,' IEEE Software. pp, 52-61, 1991 https://doi.org/10.1109/52.88944
  10. H. W. Sohn, D. C. Kung, and P. Hsia, 'State-based Reproducible Testing for CORBA Applications,' Proc. of Int'l Symp. on Soft. Eng. for Parallel and Distributed Systems, pp. 24-35, 1999 https://doi.org/10.1109/PDSE.1999.779736
  11. 정인상, '프로그램 변환을 통한 JAVA 다중 스레드 프로그램의 결정적 테스팅', 한국정보과학회 논문지 B, 27권 6호, pp. 607-617, 2000
  12. A. Mazurkiewicz, 'Trace Theory, In Petri Nets: Applications and Relationships to Other Models of Concurrency,' Advances in Petri Nets, 1986
  13. H. AboEIFotoh, O. Abou-Rabia, and H. Ural, 'A Test Generation Algorithm [or Systems Modelled as Nondeterministic FSMs,' IEE Software Eng. Journal, pp. 184-188, 1993
  14. S. K. Damodaran-Kamal and J. M. Francioni, 'Testing Races in Parallel Programs with an OtOt Strategy,' Proc. of Int'l Symp. on Software Testing and Analysis, pp. 216-227, 1991 https://doi.org/10.1145/186258.187242
  15. G. H. Hwang. K. C. Tai, and T. L. Huang, 'Reachability Testing An Approach to Testing Concurrent Software,' Proc. of Asia Pacific Software Eng. Conf. 1994, pp. 246-255, 1994 https://doi.org/10.1109/APSEC.1994.465255
  16. E. Weyuker and T. J. Ostrand, 'Theories of Program Testing and the Application of Revealing Subdomains,' IEEE Trans. on Soft. Eng., pp. 56-66, May 1980
  17. ITU-T Recommendation Z.120: Message Sequence Chart (MSC), April 1996
  18. 김병만, 김현수, 신윤식, 'MSC로 기술된 소프트웨어 명세의 검증을 위한 전체 상태 전이 그래프 생성', 한국정보과학회 논문지 B, 26권 12호, pp. 1428-1444, 1999
  19. C. Fidge, 'Logical Time in Distributed Computing Systems,' IEEE Computer, Vol. 24, No. 8, pp. 28-33, 1991 https://doi.org/10.1109/2.84874
  20. N. Uchihira, S. Honiden, and T. Seki, 'Hypersequential Programming: A New Way to Develop Concurrent Programs,' IEEE Concurrency, pp. 44-54, 1997 https://doi.org/10.1109/4434.605918
  21. L. K. Dillon and Q. Yu, 'Oracles for Checking Temporal Properties of Concurrent Systems,' Proc. of 2nd ACM SIGSOFT Symp. on Foundations of Software Eng., pp. 140-153, 1994