Abstract
In an embedded system, modules exchange data by interacting among themselves. Exchanging erroneous resource data among modules may lead to execution errors. The interacting resources produce dependencies between the two modules where any change of the resources by one module affects the functionality of another module. Several investigations of the embedded systems show that interaction faults between the modules are one of the major cause of critical software failure. Therefore, interaction testing is an essential phase for reducing the interaction faults and minimizing the risk. The direct and indirect interactions between the modules generate interaction faults. The direct interaction is the explicit call relation between the modules, and the indirect interaction is the remaining relation that is made underneath the interface that possesses data dependence relationship with resources. In this paper, we investigate the errors that are based on the indirect interaction between modules and introduce a new test criterion for identifying the errors that are undetectable by existing approaches at the integration level. We propose a novel approach for generating the interaction model using the indirect interaction pattern and design test criteria that are based on different interaction errors to generate test cases. Finally, we use the fault injection technique to evaluate the feasibility and effectiveness of our approach.
임베디드 시스템에서는 모듈간의 상호작용으로 데이터를 주고 받는다. 이때 오류가 포함된 리소스 데이터를 전달하면 시스템의 실행 오류를 유발할 수 있다. 상호작용에 활용되는 리소스들은 모듈간의 의존관계를 만들며 의존관계에 있는 모듈의 변화가 다른 모듈의 기능에 영향을 미치게 된다. 몇몇 임베디드 시스템 조사 자료에 따르면 모듈간의 상호작용 오류가 심각한 소프트웨어 실패의 원인이 되기도 한다. 상호작용 테스팅 단계에서는 이러한 상호작용 오류를 검출하여 시스템 실패의 위험을 낮추고자 한다. 모듈간의 상호작용은 직접 또는 간접적으로 일어난다. 직접적인 상호작용은 모듈의 직접 호출을 통해 이루어지며, 간접 상호작용은 직접호출 이외에 리소스 데이터의 의존성을 통해 나타난다. 이 연구에서는 직접 상호작용에 의한 오류 검출 방식에서는 발견되지 않는 간접 상호작용과 연관된 오류를 검출하고자 한다. 먼저 상호작용 패턴을 분석하여 상호작용 모델을 생성하고 이를 기반으로 상호작용 오류를 검출하는 테스트 케이스 디자인 방법을 제안한다. 마지막으로 결함 주입 기법을 이용하여 제안된 방법의 효용성 및 실효성을 분석한다.