View : 928 Download: 0

Interface Based Embedded Software Test for Real-Time Operating System

Title
Interface Based Embedded Software Test for Real-Time Operating System
Other Titles
실시간 운영체제를 위한 인터페이스 기반의 임베디드 소프트웨어 테스트
Authors
성아영
Issue Date
2007
Department/Major
대학원 컴퓨터정보통신공학과
Publisher
이화여자대학교 대학원
Degree
Doctor
Abstract
임베디드 시스템은 휴대 전화기, 디지털 카메라, 전자레인지, 디지털 TV와 같은 가전제품에서부터 자동차, 원자력 발전소, 비행기와 같은 안전에 치명적인 시스템에까지 널리 사용된다. 최근 마이크로프로세서 가격 저하 및 고성능 시스템에 대한 요구에 따라 임베디드 제품의 경쟁력은 하드웨어에서 소프트웨어로 옮겨가는 추세에 있으며, 이에 임베디드 소프트웨어의 품질은 중요한 문제로 대두하고 있다. 많은 임베디드 시스템이 복잡한 기능을 지원하기 위하여 실시간 운영체제를 도입함에 따라, 임베디드 소프트웨어 테스팅의 필요성이 증대하고 있다. 임베디드 소프트웨어 테스팅의 중요성에도 불구하고, 임베디드 소프트웨어 테스팅은 소프트웨어 개발에 비해 미흡한 실정이다. 임베디드 시스템은 하드웨어 계층, 하드웨어 추상화 계층, 운영체제 계층, 어플리케이션 프로그램 계층으로 이루어진 시스템으로, 각 계층에 존재하는 임베디드 소프트웨어는 서로 유기적으로 연결되어 있다. 특히, 테스팅 종료 시점이 언제인지, 오류 판정은 정확한지, 발견된 오류의 위치가 정확히 어디인지를 판단하기 위해서는 하드웨어 장치, 운영체제, 어플리케이션 프로그램을 포함한 임베디드 시스템에 대한 전문적인 지 식과 경험을 필요로 한다. 이러한 이질적인 계층 간 유기성은 임베디드 소프트웨어를 정확히 테스트 하는데 있어 장애물이 된다. 임베디드 소프트웨어 테스팅의 핵심은 계층 간 인터페이스를 정확히 식별하고, 이 인터페이스에서 발생 가능한 오류를 발견하기 위한 테스트 케이스를 생성하는 것이다. 이때, 인터페이스란 임베디드 시스템에서 서로 다른 계층 사이를 통신하는 관문이 된다. 즉, 인터페이스는 서로 다른 계층이 유기적으로 연결된 임베디드 소프트웨어를 테스트 하기 위한 핵심 위치이다. 그러므로, 본 논문에서는 다음과 같이 인터페이스의 위치를 식별하고 인터페이스를 기반으로 한 테스트 커버리지를 제안하였다. 첫째, 모든 계층의 임베디드 소프트웨어는 커널 서비스 혹은 물리적인 하드웨어 장치와 관련성이 있다. 특히 하드웨어 의존적인 소프트웨어 및 커널을 포함한 운영체제는 전체 임베디드 시스템을 테스트하기 위해 필수적으로 테스트 되어야 할 위치이다. 본 논문에서는 임베디드 시스템의 인터페이스 테스트 모델 emITM (embedded system's Interface Test Model)을 커널 인터페이스와 하드웨어 인터페이스의 두 가지 관점으로 제안한다. emITM 에서는 임베디드 소프트웨어를 테스팅 할 때 반드시 테스트 되어야 할 커널 인터페이스와 하드웨어 인터페이스의 구체적인 위치를 정의하였다. 둘째, 본 논문에서는 모든 인터페이스를 적어도 한번 이상 실행 되도록 하는 인터페이스 테스트 커버리지를 제안한다. 인터페이스 테스트 커버리지는 임베디드 소프트웨어를 테스트하기 위한 테스트 케이스를 선정하고 테스팅 종료 시점이 언제인지를 나타낸다. 본 논문에서는 기존의 화이트 박스 테스트 커버이지와의 비교를 통해, 제안한 인터페이스 테스트 커버이지의 효과를 나타내었다. 셋째, 본 논문에서는 사례 연구로써 제안한 인터페이스 테스트 커버리지를 microC/OS 커널 기반의 실시간 운영체제를 탑재한 산업용PLC (Programmable Logic Controller)에 적용하였다. PLC는 이미 원자력 발전소의 디지털 보호계통 시스템, 철도 제어 시스템, 공장의 생산 라인과 같이 실시간 처리가 필요한 시스템에 널리 사용되는 임베디드 시스템이다. 제안한 테스트 커버리지의 중요성과 우수성을 보이기 위하여, 본 논문에서는 인터페이스 테스트 커버리지를 실제 산업용 시스템에 적용하고, 인터페이스에서 발견한 실제 오류를 포함한 테스트 결과를 기술하였다.;Embedded software is widely applied to various systems from electronic home appliances such as, cellular phone, digital camera, microwave oven, and digital TV, to safety critical embedded systems such as automobile, nuclear power plant and airplane. As recent down pricing of micro-processors and high-performance systems has moved the product competitiveness from hardware production to software technology, embedded software testing has become an important issue to assure the quality of product. According as many embedded systems have started adopting a real-time operating system in order to support their various and complex functions, the need for embedded software testing has increased. Despite the importance of embedded software testing, the state of embedded software testing is not as advanced as embedded software development techniques. An embedded system comprises layered architecture with hardware layer, hardware abstraction layer, operating system layer and application program layer. Embedded software at each layer is tightly coupled to each other. In particular, technical knowledge and experience for embedded system including hardware devices, operating system and application programs are necessary in order to determine whether the testing is completed successfully, or whether the determination of revealed faults is correct, or finally where the correct locations for the detected faults are. These technical knowledge and experience for analyzing the inter-relationship between the different layers can be an obstacle to test embedded software exactly. The point of embedded software testing is to correctly identify the interface and to derive proper test cases for detecting faults at the interface. During this process, the term 'interface' means a gateway that is responsible for communicating with different layers in an embedded system. That is, the interface is the focal location for testing embedded software where the heterogeneous layers are tightly coupled. Therefore, this dissertation analyzes the location of interface and proposes the interface test coverage as following: First, embedded software at every layer has a relationship with kernel service or physical hardware devices. In particular, operating system including hardware-dependent software and kernel is the focal location to test the entire embedded system. This dissertation proposes the embedded system's Interface Test Model (emITM) in two respects of kernel interface and hardware interface. The emITM identifies the specific locations of kernel interface and hardware interface to be specially taken into consideration when testing embedded software. Second, this dissertation proposes the interface test coverage that considers every interface to be executed at least once. Our interface test coverage includes a systemic procedure for selecting adequate test cases and determining when the testing has been completed. To show the effectiveness of interface test coverage, this dissertation analyzes the interface test coverage when compared with the conventional white-box test coverage. Third, we apply the interface test coverage to the industrial programmable logic controller (PLC) mounting microC/OS kernel based real-time operating system as a case study. PLC is an embedded system that is broadly used in the industry such as digital reactor protection system of nuclear power plant, railroad control system and production line where the system needs real-time processing. To show the significance and excellence of interface test coverage, we also demonstrate test results including the detected faults at the interface.
Fulltext
Show the fulltext
Appears in Collections:
일반대학원 > 컴퓨터정보통신공학과 > Theses_Ph.D
Files in This Item:
There are no files associated with this item.
Export
RIS (EndNote)
XLS (Excel)
XML


qrcode

BROWSE