단위 기반의 단계적 임베디드 소프트웨어 테스트 - 장세헌 (The Graduate School, Ajou University, 2005)
기존 테스트 전략의 테스트 단위는 작은 모듈에서 시작하는 점증적 테스트와 전체 시스템을 테스트하는 빅뱅 테스트가 있다. 한편, 개발 단계에 필요한 테스트는 테스트를 통해 고장 원인을 신속하게 파악할 수 있어서 빠른 개선이 가능한 것이여 한다. 이에 적합한 방법론은 모듈 단위에서 단계적 절차를 밟아 문제 발생 지점을 파악하기 쉬운 점증적 테스트라고 할 수 있다. 그러나 점증적 테스트를 실행 하기 위해서는 하위나 다른 모듈을 대신한 스텁이나 상위 컴포넌트를 대신한 드라이버와 같은 추가적인 프로그래밍이 필요하며 그 개념이 일반적인 정보 시스템에 기반을 두어 임베디드의 특성을 반영하지 못하고 있다. 반면 빅뱅 테스트는 문제 발생 지점을 파악하기 어려운 단점을 가지고 있다. 여기서 제안하는 단위 기반의 단계적 테스트는 이 문제를 해결하기 위해 임베디드 소프트웨어의 동작에서 임베디드 소프트웨어가 가지는 크게 두 가지 흐름을 유추 했다. 초기화 에서 시작하여 종료에 이르는 프로그램 실행흐름과 프로그램 실행 흐름 중 실행 단계에서 발생하는 센서에서 시작하여 엑추에이터 구동에 이르는 작동흐름이다. 각 흐름은 단위에서 단위로 흐르는 단계가 존재하며 앞 단계에서 잘못된 실행은 다음단계로 흐름을 따라 전파되어 최종 동작에서 오류를 발생 시킨다. 이것을 에러 전파라 부른다. 이 전파가 고장이 발생 했을 때 원인을 파악하기 어렵게 만들며, 이 문제를 해결 하기 위해서 임베디드 소프트웨어 작동 흐름의 각 단계를 논리적으로 구분하여야 한다. 그 방법은 에러 전파를 관찰 하는 것이다. 단위 기반의 단계적 테스트에서는 작동흐름을 통한 전파를 관찰하기 위해 작동 흐름에 따라 다른 로직으로 전해지는 값을 파악하고 프로그램 실행 흐름으로 인한 에러 전파를 구별하기 위해서는 각 시점에서 다음 시점으로 이어지는 값에 대한 파악을 통해 기존 테스트 전략의 문제점을 해결하고 있다. 더불어 복잡한 임베디드 시스템을 보다 쉽게 모델링 하는 방법과 그를 이용한 자동화된 기대 값 생성 방법을 개발 하였고 더불어 단위에서 시작하여 메모리 누수 현상까지 테스트 하는 방법을 설명 하였다. 마지막으로 이를 바탕으로 한 실제 테스트 툴 모델을 제시 하였다.
학위논문(석사)--아주대학교 대학원 :산업공학과,2005