DOI QR코드

DOI QR Code

A Study on the Verification Scheme of SMS Encoding and Decoding Module

SMS 부호화 복호화 모듈 검증 방법에 대한 연구

  • Received : 2010.03.30
  • Accepted : 2010.05.15
  • Published : 2010.06.30

Abstract

This paper proposes a test method for compliance of SMS encoder and decoder modules with 3GPP (3rd Generation Partnership Project) specification on SMS PDU (Protocol Data Unit). The existing tools have focused on providing an SMS gateway and on helping to view and edit a single SMS PDU, which rarely help to resolve the compliance test problem. The proposed compliance test method is based on an automatic generation of SMS PDUs fully compliant with the 3GPP specification by using QuickCheck library written in Haskell. By applying the proposed method to a C-based SMS encoder and decoder in Linux Mobile platform, we have found out several critical bugs such as wrong interpretation of time stamps in BCD format. The automatic SMS PDU generator is reusable in that it only depends on the 3GPP SMS specification. The QuickCheck library is also applicable for testing other network protocol data encoders and decoders, as used in this paper.

본 논문에서는 3GPP(3rd Generation Partnership Project)에서 정의한 SMS PDU (Protocol Data Unit) 포맷을 주어진 SMS 부호화 복호화 모듈에서 정확하게 구현했는지 검증하는 방법을 제안한다. 기존 SMS 관련 도구들은 SMS 게이트웨이를 통해 송수신하거나 또는 SMS PDU 해석을 목적으로 개발되어 3GPP에서 정의한 세부 SMS PDU 규격에 따라 정확히 구현했는지 테스트하는 용도로는 적합하지 않다. 본 논문에서 제안한 방법은 함수형 언어 Haskell로 작성된 QuickCheck 라이브러리를 활용해 3GPP에서 정의한 구조에 맞는 SMS PDU 테스트 데이터를 자동 생성하여 SMS 부호화 복호화 모듈을 테스트한다. C언어로 작성된 리눅스 모바일 플랫폼 SMS 모듈에 적용하여 이 모듈의 부호화 복호화 기능을 테스트한 결과 BCD 포맷 시간 정보를 잘못 해석하는 사례 등 중요한 오류들을 발견할 수 있었다. 제안한 방법은 3GPP에서 정의한 규격에 맞추어 SMS PDU를 생성하기 때문에 일반적인 SMS 모듈들에 모두 적용 가능한 장점을 지닌다. 본 논문에서 사용한 방법과 같이 QuickCheck 라이브러리를 통해 다른 네트워크 프로토콜 데이터 규격에 대한 부호화 복호화 검증에도 응용할 수 있을 것이다.

Keywords

References

  1. "LG 휴대전화 문자 오류 S/W 업그레이드", 동아일보, http://news.donga.com/Economy/New/3/01/20100101/25157647/1&top=1
  2. H.Zhu, P.Hall, and J.May, "Software unit test coverage and adequacy," Computing Surveys, Vol. 29, No. 4, pp366-427, December 1997. https://doi.org/10.1145/267580.267590
  3. Koen Claessen and John Hughes, "QuickCheck: A Lightweight Tool for Random Testing of Haskell Programs," ICFP, pp268-279, ACM SIGPLAN, September 2000.
  4. J.Duran and S.Ntafos, "An evaluation of random testing," Transactions on Software Engineering, Vol. 10, No. 4, pp438-444, July 1984.
  5. D.Hamle, "Random Testing," In J. Marciniak, editor, Encyclopedia of Software Engineering, Wiley, pp970-978, 1994.
  6. R.Hamlet and R.Taylor, "Partition testing does not inspire confidence," Transactions on Software Engineering, Vol. 16, No. 12, pp1402-1411, December 1990. https://doi.org/10.1109/32.62448
  7. "QuickCheck:Automatic testing of Haskell programs", http://www.haskell.org/package/QuickCheck
  8. The 3rd Generation Partnership Project (3GPP), http://www.3gpp.org
  9. 3GPP TS 23.040 V6.7.0, "3rd Generation Partnership Project; Technical Specification Group Core Network and Terminals; Technical Realization of the Short Message Service (SMS) (Release 6)", March 2006.
  10. 3GPP TS 23.038 V7.0.0, "3rd Generation partn ership Project; Technical Specification Group Core Network and Terminals; Alphabets and Language-specific Information (Release 7)", March 2006.
  11. http://hackage.haskell.org/package/GenSmsPdu
  12. Malcolm Wallace and Colin Runciman, "Haskell and XML: Generic Combinators or Type-Based Translation?," ICFP, pp148-159, March 1999.
  13. 권기창, 백덕화, 권기룡, "역추적 결함 시뮬레이션을 이용한 새로운 테스트 생성 알고리즘," 한국컴퓨터정보학회지, 제 2권, 제 1호, 121-129쪽, 1995년. 6월.
  14. 김경우, "무선인터넷의 현황과 미래 전망에 관한 연구," 한국컴퓨터정보학회지, 제 9권, 제 2호, 19-38쪽, 2002년 6월.