ISO 26262 대응을위한 SW 동적시험방안 (ISO 26262 Part 6 - SW 단위 / 통합시험 ) MDS 테크놀로지 이수안
CONTENTS Ⅰ ISO 26262 의 SW 동적시험절차 1 2 3 V 모델에서의 SW 동적시험 동적시험개념및일반절차 ISO 26262 의 SW 단위시험일반절차 Ⅱ Ⅲ 4 ISO 26262 의 SW 통합시험일반절차 ISO 26262의동적시험적용사례분석및방안
V 모델에서의 SW 동적시험 ISO 26262 SW 개발프로세스모델 Safety Management Medini Analyze SW Configuration/ Change Management Polarion ALM IBM Synergy/Change dspace HILS Item 통합시험 Specification of SW Safety Requirement DOORS, Polarion ALM SW Safety Req, Verification 특정요구사항에부합하는지를검증하기위해통합된시스템테스트 Modeling tools Rhapsody Matlab/Simulink SW Architectural Design Rhapsody SW 통합시험 SW 단위간의인터페이스와상호연동테스트 Static Analysis Tools QA C/C++ MISRA-C/C++ B SW Unit Design and Implementation CodeSonar SW 단위시험독립적으로테스트가능한 SW 의최소단위테스트 VectorCAST 3
SW 동적시험일반 SW 동적시험 (Dynamic Testing) SW를실제로 ( 또는가상 ) 실행하여결과를얻는시험방법 Coverage 분석을통해 SW의행동을관찰 프로그램이 Target 환경을직접이용하므로정확한동작관찰필요 테스트하려는 SW에영향이최소가되도록주의 충분한입력자료필요 ( 테스트케이스 ) 4
ISO 26262 SW 동적시험절차 ISO 26262 SW 동적시험기본절차 테스트환경분석및개선 크로스컴파일러, Target ( 또는시뮬레이터 ), HW 사양 (CPU, 메모리 ), 인터페이스고려 동적시험에부적합한코드개선 ( 과도한복잡도를가진함수 or 파일 ) 테스트계획설정및테스트코드개발 테스트레벨및방법선택 테스트수준 ( 단위, 통합시험 ), Coverage 기준, 요구사항기반테스트 테스트케이스작성및방법선택 경계값분석, 동등값분할, 임의값입력 (Random Value), 기존테스트케이스활용 동적시험수행및실행결과분석 (Report) 실행결과성공 / 실패분석, Coverage 결과, 예외처리확인 5
CONTENTS Ⅰ Ⅱ ISO 26262 의 SW 동적시험절차 ISO 26262 의동적시험 1 2 3 SW 단위 / 통합시험기법 테스트케이스도출 Coverage Metric Ⅲ 적용사례분석및방안
ISO 26262 에서의 SW 시험 1. SW 시험을하는기법 2. 테스트케이스설계 3. 각레벨별로구조적 Coverage 측정 7
단위 / 통합시험기법 Table 10 (13) Methods for SW Unit/Integration testing Topics ASIL A B C D 1a Requirement based test ++ ++ ++ ++ 1b Interface test ++ ++ ++ ++ 1c Fault injection test + + + ++ 1d Resource usage test + + + ++ 1e Back-to-back test between model and code, if applicable + + ++ ++ 요구사항과테스트케이스사이의추적성 (Traceability) 요구 요구사항분석 테스트설계 / 식별 테스트케이스도출 테스트실행의일관성유지 Requirements Req. 1 Req. 2 Req. 3 Test cases Test 1 Test 2 Test 3 Execution on Host, Simulator Or Target PASS/FAIL PASS/FAIL PASS/FAIL 8
요구사항기반시험 (1/2) 요구사항관리도구와테스트케이스연동을통한추적관리
요구사항기반시험 (2/2) 테스트실행결과와요구사항간매핑 (Mapping) 수행된테스트케이스와 요구사항간매핑작업필요
단위 / 통합시험기법 Table 10 (13) Methods for SW Unit/Integration testing Topics ASIL A B C D 1a Requirement based test ++ ++ ++ ++ 1b Interface test ++ ++ ++ ++ 1c Fault injection test + + + ++ 1d Resource usage test + + + ++ 1e Back-to-back test between model and code, if applicable + + ++ ++ Interface test SW 또는 HW 간의인터페이스의견고성을위한테스트 SW 모듈간의데이터입출력, HW 와의견고성확인 Fault injection test 강제적인오류주입을통한테스트 Resource usage test 시스템리소스의상태확인 (CPU 점유, 메모리사용량등 ) Back to Back Test 모델과코드간의일관성및비교테스트 11
테스트케이스도출 (1/3) Table 11,14 Methods for deriving test cases for SW Unit/Integration testing Topics ASIL A B C D 1a Analysis of requirements ++ ++ ++ ++ 1b Generation and analysis of equivalence classes + ++ ++ ++ 1c Analysis of boundary values + ++ ++ ++ 1d Error guessing + + + + ISO 26262 에서는상기기법을통한테스트케이스도출권고 가능한입력 / 출력의수가많아완벽한테스트케이스도출은현실적으로불가능 요구사항의분석 : 요구사항명세분석을통해테스트케이스도출 선별한단위또는통합 SW 의 Input 에따른예상결과정의 툴을사용할경우실행값과예상값을 비교하여테스트 Unit Integration 통합시험의경우단위와단위간 매개변수의 Type 과값의전달에대해확인 12
테스트케이스도출 (2/3) Table 11,14 Methods for deriving test cases for SW Unit/Integration testing Topics ASIL A B C D 1a Analysis of requirements ++ ++ ++ ++ 1b Generation and analysis of equivalence classes + ++ ++ ++ 1c Analysis of boundary values + ++ ++ ++ 1d Error guessing + + + + Generation and analysis of equivalence classes 여러가능한 Input 에대해동일한결과를갖는값들을동치클래스로구분하고, 각클래스별로 Input 을선택하는테스트 적절한 SW 의 Coverage 를만족하면서테스트케이스의수를감소 조건에 월 ( 月 ) 을입력한다고가정할때, 유효클래스 : 1 ~12 유효하지않은클래스 : <=0, >=13, Non integer, empty : 테스트케이스예 {5, -1, 100, A, ) 13
테스트케이스도출 (3/3) Table 11,14 Methods for deriving test cases for SW Unit/Integration testing Topics ASIL A B C D 1a Analysis of requirements ++ ++ ++ ++ 1b Generation and analysis of equivalence classes + ++ ++ ++ 1c Analysis of boundary values + ++ ++ ++ 1d Error guessing + + + + Analysis of boundary values : 경계값분석 결함은경계값에서많이나타난다는이론에기반 Min-1, Min, Min+1, Normal, Max-1, Max, Max+1 조건에 월 ( 月 ) 을입력한다고가정할때, 1~12 범위내 테스트케이스 {0,1, 2, 5, 11, 12, 13} Error guessing : 에러추측 숙련된테스트엔지니어의경험에기반하여테스트케이스도출 14
SW Coverage Metrics Table 12 Structural coverage metrics at the SW unit level Topics ASIL A B C D 1a Statement coverage ++ ++ + + 1b Branch coverage + ++ ++ ++ 1c MC/DC (Modified condition/decision Coverage) + + + ++ Code Coverage Metrics 단위시험을통한구조기반테스트기법요구 (Code Coverage) SW 시험의충분성 (Enoughness) 을보장하기위한기준 일반적인수행절차 테스트단위의구현내역분석 테스트할경로선정 선택한경로를수행하기위한 Input 선정및 Output 정의 설정된 Input, Output 에대한실제파라미터값설정 테스트수행 예상결과와실제결과를비교하여테스트결과및 Coverage 결과확인 15
ASIL 에따른 Code Coverage 분류 Coverage Level Statement Branch 해당코드가최소 1 번이상실행 ex) if((a b) && c) 만족시키기위한조건 해당코드가분기문에서참, 거짓을 1 번이상실행 ex) if((a b) && c) (T) (F) 1 test case required 2 test case required MC/DC 분기내요소들의독립적인변화가결과에영향을미치는최소한의조합실행 ex) if((a b) && c) a N+1 test cases required A B C R F F T F T F T T b c F T T T F T F F MC/DC 의경우모든조건의조합을최적화하기위한기법 MC/DC 를측정하여테스트케이스를줄이고, SW 의많은알고리즘경로를테스트 16
CONTENTS Ⅰ Ⅱ Ⅲ ISO 26262 의 SW 동적시험절차 ISO 26262 의동적시험 적용사례분석및방안 1 2 3 4 동적시험적용환경이해동적시험적용사례적용문제점및제약사항효율적인동적시험을위한방안
동적시험환경 자동차 SW 임베디드 SW 비교기준일반 SW 개발환경예임베디드 SW 개발환경예 CPU 32bit, 2Ghz CPU Clock 16bit, 16Mhz CPU Clock OS Windows, Linux OSEK, None OS Connection Shared Memory, Debugger, TCP/IP Debugger, Serial, JTAG Resources 1GB 이상메모리 16KB 메모리컴파일러 Visual Studio, GCC CodeWarrior-MPC, TASKING, IAR, GHS 차이점 일반 SW 테스트환경에비해임베디드 SW 테스트환경은리소스가매우제한적 운영체제는매우제한적인기능만제공 시스템상태, 리소스상태, 입출력정보모두테스터에의해서관리 Target 과 Host 간의통신을위한작업필요 18
동적시험환경구성사례 - 1 시험환경 IDE : CodeWarrior 컴파일러 : CodeWarrior P64/P96 Target MCU Chipset : MC9S12P64/96 시험실행환경 : Hi-Wave 시뮬레이터기반 환경구축소요기간 : 10 일 + 10 일 19
동적시험흐름구성도 CodeWarrior IDE Configuration 정보전달 동적시험도구 소스, 라이브러리, Startup file 설정컴파일러, 링커 Command 연결 Define Variable Execution Command. Binary file (*.abs) 테스트결과 /Coverage 측정 테스트케이스 Hi-Wave Target MCU 시뮬레이터 SW 실행 Test & Code Coverage Results
동적시험환경구성사례 - 2 시험환경 IDE : Altium TASKING 컴파일러 : TASKING C166 Target MCU Chipset : XC2387A 시험실행환경 : TRACE32 시뮬레이터기반 환경구축소요기간 : 10 일 + 10 일 21
동적시험흐름구성도 TASKING IDE Configuration 정보전달 동적시험도구 소스, 라이브러리, Startup file 설정컴파일러, 링커 Command 연결 Define Variable Execution Command. Binary file (*.elf) 테스트결과 /Coverage 측정 테스트케이스 TRACE32 Target MCU 시뮬레이터 SW 실행 Test & Code Coverage Results
동적시험환경구성사례 - 3 시험환경 IDE : Multi 컴파일러 : Green Hills Target MCU Chipset : MPC5643L 시험실행환경 : MPC5643L Target 보드기반 환경구축소요기간 : 20 일 + 10 일 23
동적시험흐름구성도 Multi IDE 동적시험도구 [Host] Library files, Startup file setting, Compiler/Linker command, Define variables, Execution Command.. Binary file (*.elf) <Test Result> 다운로드 테스트케이스 Test Result Memory Dump (J-Tag) [Target] <Target Memory 에저장된 Test Result Data> 실행 24
동적시험을어렵게하는요소 (1/3) 환경적요소 임베디드시스템에서의실행 일반 PC 가아닌 Target 또는시뮬레이터필요 임베디드시스템에서의동적시험환경구성자동화 다양한다운로드방식존재 JTAG, Serial, Ethernet, BDM 등 같은다운로드방식인경우에도수많은 Debugger 및터미널프로그램존재 산업별다양한 RTOS 존재 File 시스템의존재유무 File 시스템이없는경우메모리덤프방식만가능, 메모리덤프가능한 Debugger 의존재유무가중요 제한된메모리크기 Test Harness 및 I/O 관련하여시험을위한추가적인메모리공간필요 최소권장사항 : RAM (16KB), ROM (128KB) 25
동적시험을어렵게하는요소 (2/3) 조건적요소 요구사항과구현된 Source Code 사이의 Traceability 부재 요구사항기반의동적시험진행불가 이함수의목적은? 이코드가요구사항대로구현되었다고판단할기준은? 테스트케이스의예상값설정불가 높은복잡도 (Cyclomatic Complexity) 의 Source Code 최대조건중첩도 함수입력파라미터의수 논리연산자의수 Go to 문의수 Run-time Error 로인한동적시험의지연 동적시험중 Run-time Error 가발생할수있음 Run-time Error 를수정후에동적시험진행가능 26
동적시험을어렵게하는요소 (3/3) 경험적요소 ISO 26262 지침에명시된테스트방법에대한준수가필요한상황 SW 안전성과관련하여인정받은도구로테스트가필요 ISO 26262 SW 기능안전에명시된특정테스트방법론수행필요 임베디드특성에따른 Target/ 시뮬레이터환경에서테스트필요 ISO 26262에대한담당자들의이해와경험부족으로잘못된테스트수행이빈번 SW 단위 / 통합시험을위한설계계획서및테스트계획이없거나미흡하여, 요구사항에따른테스트진행이어려움 27
효율적인동적시험을위한방안 차량제어 SW 는시험환경구성및자동화에많은제약 시험환경구성및시험기간에대한사전설정필요 동적시험에대한이해와효과적인테스트케이스개발필요 개발 / 시험명세서작성및테스트와의추적관리필요 정적분석을사전에수행하여코드안정화및시험시간단축 품질에대해모든이해관계자들간공통된문화필요 Quality Culture : 시스템및프로세스구축의시간, 인력, 비용등 28
Thank you MDS 테크놀로지 SES 사업부이수안대리 031-627-3145 / 010-5409-4092 suan@mdstec.com www.mdstec.com 본사 463-400 경기도성남시분당구대왕판교로 644 번길 49 한컴타워 3 층 031-627-3000 연구소 463-400 경기도성남시분당구판교로 228 번길 17 판교 7 벤처밸리 2 단지 1 동 9 층 031-600-5000