검색 상세

차량용 소프트웨어의 테스팅을 위한 메모리 분할 기반 결함 위치 추정 기법

초록/요약

최근 자동차에서 차량용 ECU(Electronic Control Unit) 및 소프트웨어가 차지하는 비중이 증가하고 있다. 또한 차량용 소프트웨어의 기능적인 복잡도가 증가하면서 소프트웨어의 문제로 인해 결함이 발생할 가능성도 증가하고 있다. 따라서 자동차의 안정성을 보장하기 위해서 ECU에 탑재되는 소프트웨어의 신뢰성을 보장하는 것이 중요하다. 이를 위해 차량용 ECU에 탑재되는 소프트웨어의 고품질을 보장할 수 있는 체계적인 테스트 기법이 요구된다. 그런데 현재 차량용 ECU의 개발 체계에서는 검사자가 HiL(Hardware-in-the-Loop) 시뮬레이터를 이용한 블랙박스 테스팅을 수행하기 때문에 소스 코드 상에서 결함이 발생한 위치를 찾아내는 것이 불가능하다. 이에 따라 개발자는 결함 위치에 관한 어떠한 정보도 없이 디버깅을 수행하기 때문에 디버깅에 많은 비용과 시간을 소모한다. 따라서 본 논문에서는 블랙박스 테스팅 수행 시 개발자에게 디버깅에 도움을 줄 수 있는 결함 위치 정보를 제공하기 위해서 검사자가 테스팅 과정에서 메모리 정보를 활용하여 메모리상의 결함 후보 영역을 축소할 수 있는 기법을 제안한다. 이때 메모리에 저장되는 심볼들의 정보를 대상으로 결함이 발생한 시점의 갱신 여부를 관찰하기 위해, 방대한 크기의 메모리 영역을 메모리 맵과 스택을 활용하여 분할하고 결함 후보 영역을 축소한다. 메모리 맵을 활용하는 방법은 메모리 정보를 세밀하게 분할할 수 있다는 장점을 가지며, 스택을 활용하는 방법은 메모리 맵보다 낮은 축소율을 갖는 반면 메모리 맵을 활용할 수 없는 환경에서도 메모리 정보를 분할할 수 있다는 장점을 가진다. 이렇게 개발한 기법을 편의 제어 시스템을 위한 ECU의 소프트웨어에 HiL 테스트에 적용하여 유효성을 검증하였다. 결과적으로 메모리 맵을 활용하는 방법을 통해 결함 후보 영역의 크기를 갱신이 발생하는 영역의 17%로 축소했으며, 스택을 활용하는 방법을 통해 25%로 축소했다.

more

목차

1. 서론 1

2. 관련연구 7
2.1. 블랙박스 환경에서의 테스팅 및 디버깅 기법 7
2.2. 차량용 전장부품을 위한 테스팅 및 디버깅 기법 8
2.3. 메모리 정보를 활용한 결함 위치 추정 기법 9

3. 결함 위치 추정을 위한 사전 과정 11
3.1. 차량용 소프트웨어의 메모리 사용 11
3.1.1. 메모리 맵 기반 메모리 사용 12
3.1.2. 스택 기반 메모리 사용 13
3.1.3. 메모리 사용 예시 14
3.2. 결함 위치 추정 과정 15
3.3. 메모리 갱신 여부 식별 18

4. 결함 위치 추정 기법 20
4.1. 메모리 맵 기반 메모리 분할 20
4.2. 스택 기반 메모리 분할 21
4.3. 결함 의심도 기반 결함 위치 추정 26

5. 실험 결과 30
5.1. 메모리 맵 기반 방법의 결과 31
5.2. 스택 기반 방법의 결과 33
5.3. 결과 분석 및 검증 35

6. 결론 41

more