Inter-Process Testing of Parallel Programs based on Message Sequence Charts Specifications

MSC 명세에 기반한 병렬 프로그램의 프로세스 간 테스팅

  • Published : 2000.02.15

Abstract

Most of prior works on testing parallel programs have concentrated on how to guarantee the reproducibility by employing event traces exercised during executions of a program. Consequently, little work has been done to generate meaningful event sequences, especially, from specifications. This paper describes techniques for deriving event sequences from Message Sequence Charts(MSCs) which are widely used in telecommunication areas for its simplicity in specifying the behaviors of a program. For deriving event sequences from MSCs, we have to uncover the causality relations among events embedded implicitly in MSCs. In order to attain this goal, we adapt vector time stamping which has been previously used to determine the ordering of events taken place during an execution of interacting processes. Then, valid event sequences, satisfying the causality relations, are generated according to the interleaving rules suggested in this paper. The feasibility of our testing technique was investigated using the phone conversation example. In addition, we discussed on the experimental results gained from the example and how to combine various test criteria into our testing environment.

병렬 프로그램 테스팅을 위한 기존의 연구는 대부분 프로그램 수행 중에 얻어진 이벤트 트레이스(event trace)를 바탕으로 재수행성을 보장하는데 중점을 두고 있다. 반면에 개발과정에서 만들어진 요구/설계 명세로부터 테스팅을 위한 이벤트 시퀀스를 생성하는 방법에 대한 연구는 빈약한 실정이다. 이 논문에서는 통신 소프트웨어 개발 분야에서 광범위하게 사용되는 메시지 순차도(MSC)로부터 병렬 프로그램의 모듈 테스팅을 위한 이벤트 시퀀스를 생성하는 방법을 제시한다. 명세로부터 이벤트 시퀀스를 생성하기 위해서는 명세 내에 묵시적으로 포함되어 있는 이벤트들과 그들 간의 선후관계를 파악해야 한다. 이를 위해서 이 연구에서는 프로그램 수행 중에 이벤트들의 발생 순서를 결정하기 위해 사용해오던 논리시간 벡터(logical time stamp)를 MSC 명세에 적용함으로써 이벤트 간의 선후관계를 추출한다. 또한 이를 바탕으로 이벤트 시퀀스를 자동 생성하는 방법을 제시하고 전화 통화 예제를 사용해서 제시한 방법의 효용성을 보인다.

Keywords

References

  1. 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, January 1991 https://doi.org/10.1109/32.67578
  2. T. J. LeBlanc and J. M. Mellor-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 and R. H. Carver, 'A Specification-Based Methodology for Testing Concurrent Programs,' Proc. of European Software Eng. Conf., pp. 154-172, 1995
  4. D. Rosenblum, 'Specifying Concurrent Systems with TSL,' IEEE Software, pp. 52-61, May 1991 https://doi.org/10.1109/52.88944
  5. ITU-T Recommendation Z.120: Message Sequence Chart (MSC), September 1994
  6. C. Fidge, 'Logical Time in Distributed Computing Systems,' IEEE Computer, 24(8), pp. 28-33, August 1991 https://doi.org/10.1109/2.84874
  7. E. Itoh, Y. Kawaguchi, Z. Furukawa, and K. Ushijima, 'Ordered Sequence Testing Criteria for Concurrent Programs and the Support Tool,' Proc. of Asia Pacific Software Eng. Conf. 1994, pp. 236-245, Tokyo, 1994 https://doi.org/10.1109/APSEC.1994.465256
  8. R. N. Taylor, D. L. Levine, and C. D. Kelly, 'Structural Testing of Concurrent Programs,' IEEE Trans. on Soft. Eng., Vol. 8, no. 3, pp. 206-215, March 1992 https://doi.org/10.1109/32.126769
  9. H. S. Bae, H. S. Kim, Y. R. Kwon, and H. K. Kim, 'Debugging Message-based Parallel Programs using Detect and Reproduce Method,' Journal of KISS(B): Software and Applicaions, 23(2), pp. 146-157, 1996
  10. P. V. Koppol and K. C. Tai, 'An Incremental Approach to Structural Testing of Concurrent Software,' Proc. of Int'l Symp. on Software Testing and Analysis, pp. 14-23, 1996 https://doi.org/10.1145/229000.226298
  11. 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, 1994 https://doi.org/10.1145/186258.187242
  12. J. Grabowski, D. Hogrefe, I. Nussbaumer, and A. Spichiger, 'Test Case Specification Based on MSCs and ASN.1,' Proc. of the Seventh SDL Forum 1995, pp. 307-322, 1995
  13. 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, Tokyo, 1994 https://doi.org/10.1109/APSEC.1994.465255
  14. E. Rudolph, J. Grabowski, and P. Graubmann, 'Tutorial on Message Sequence Charts (MSC'96),' Tutorial of the FORTE/PSTV'96 conf., October 1996
  15. S. Weiss, 'A Formal Framework for the Study of Concurrent Program Testing,' Proc. of 2nd Workshop on Software Testing, Analysis, and Verification, pp. 106-113, July 1988 https://doi.org/10.1109/WST.1988.5362