디지털계측제어시스템의소프트웨어 테스트커버리지관련규제방향 김형태한국원자력안전기술원 2009. 4.5 ~ 4.6 제 12 회원자력안전기술정보회의
목차 1. 서론 2. 테스트커버리지개요 3. 관련표준들분석 4. 사례연구 : 신고리 1,2 CPCS, KNICS POSAFE-Q 5. 테스트커버리지적용근거 6. 테스트커버리지규제방향 7. 결론 Slide 2
1. 서론 디지털계측제어시스템에적용되는소프트웨어가복잡해지면서테스트케이스의수가증가되고적절한테스트케이스를선택하기어려워짐 소프트웨어에대한확인및검증이어려워지고검증에대한측정할수있는기준을도입필요 이에대한어려움을해결하고소프트웨어검증을위해테스트커버리지를적용하고있음 소프트웨어테스트커버리지를원전에적용하기위하여관련표준들을분석하여적용방안을도출하고규제방향을제시하고자함 Slide 3
1. 서론 Reference Standards IEEE Std 1008-1997, Software Unit Testing IEEE Std 829-1998, Software Test Documentation IEEE Std 1012-2004, Software Verification and Validation IEC Std 60880-2006, Software aspects for computer-based systems performing category A functions RTCA/DO-178B, Software considerations in airborne systems and equipment certification ( 항공산업표준 ) Slide 4
2. 테스트커버리지개요 Test Coverage 주어진테스트케이스에의해수행되는테스트의범위를측정하는척도 요구사항기반의요구사항커버리지 (requirement coverage) 코드기반의코드커버리지 (code coverage) 구조적커버리지분석을통해의도하지않는기능유무및테스트케이스의적절성을판단할수있음 기본코드커버리지종류 Statement Coverage Decision Coverage (Branch Coverage) Modified Condition/Decision Coverage (MC/DC) Slide 5
2. 테스트커버리지개요 Statement Coverage 프로그램에있는모든문장이적어도한번이상수행 기본적인커버리지이지만제어구문에취약 Decision Coverage 분기커버리지 (branch coverage) 라고도하며프로그램의모든결정에서가능한모든결과에대하여적어도한번이상수행되어야함 If (a b) then true false Slide 6
2. 테스트커버리지개요 Modified Condition Decision Coverage (MC/DC) Condition/Decision coverage 을만족하고결정에서각조건들은결정들의결과에독립적이어야함 MC/DC는테스트케이스를적절하게선택할수있게하며일반적으로 n개의입력을가진결정에서최소 n+1개의테스트케이스를필요 If ((a) (b)) then false true false Coverage Decision Condition Condition/ Decision MC/DC Multiple Condition TF TF TT TF TT FF FT FF FT TF aor b FF FT FF Slide 7
2. 테스트커버리지개요 Test Coverage 비교 Slide 8
3. 관련표준들분석 IEEE Std 1008-1997, 단위시험 단위시험들에의해시험될범위및각영역에따른커버리지정도를명시 모든소프트웨어의특징들은테스트케이스 ( 예외상황포함 ) 에의해검증 테스트케이스에의해모든 Instruction들은적어도한번실행이요구 Instruction 은 Statement로해석될수있으며결국 Statement Coverage 를만족 중요도에따라 Instruction Coverage는 Branch Coverage로강화될수있음 단위시험수행의커버리지를측정하기위해자동화된수단이권고 Slide 9
3. 관련표준들분석 IEEE Std 829-1998, 소프트웨어시험문서 Annex A (informative): Examples Since generation of all possible input values is impractical, test set comprehensiveness will be evaluated based upon the following criteria: (1) Requirements coverage. Has each of the requirements been satisfied? (2) Design coverage. Has each of the functional design specifications been satisfied? (3) Domain coverage. Has each of the input constraints (e.g., maximum of one decimal point) been tested? Have representative values been included? Have all error messages been generated? (4) Branch coverage. Has every branch been taken at least once? (5) Statement coverage. Has every statement been executed at least once? Appropriate checklists will be generated to evaluate criteria (1) through (3). Existing code instrumentation tools will be used to evaluate criteria (4) and (5). The test set must satisfy each component of the five criteria specified above at least once 테스트커버리지에대한예 Slide 10
3. 관련표준들분석 IEEE Std 1012-2004, 소프트웨어확인및검증 " 컴포넌트, 통합등시험계획을수립할때테스트커버리지를만족하도록계획을수립해야함 요구사항커버리지만족과테스트의완전성을확인하기위해수행된시험을평가해야함 시험케이스에의해확인된소프트웨어의범위를측정하기위해커버리지를평가를수행해야함 요구사항에대한커버리지는필수요건으로명시됨 코드커버리지에적용종류및확인방법대한내용은구체적으로명시하지않음 Slide 11
3. 관련표준들분석 IEC Std 60880-2006 검증계획 - 시험은소프트웨어를광범위하게실행할수있도록수행 - 시험계획의요건에따라우선적으로테스트커버리지를고려 - 시험의범위를확인할수있는결과물을명시 - Annex E에따라선택한커버리지기준에대하여정당화해야하고문서화해야함 구현검증 - 구현단계검증을위해사용한테스트방법들은 Table E.4.2에따라선택 - 코드커버리지즉 statement, branch coverage 등의방법들을권고 Slide 12
3. 관련표준들분석 RTCA/DO-178B system safety assessment 를통해확인된 failure 종류에따라 S/W Level 을 A,B,C,D,E 로구분 코드커버리지요건은아래와같이 S/W Level 에따라정의 Slide 13
3. 관련표준들분석 RTCA/DO-178B Software Testing Process (Figure 6.1) 요구사항커버리지분석및구조적코드커버리지분석을요구 Slide 14
3. 관련표준들분석 RTCA/DO-178B 검증계획 - 추적성및커버리지분석을포함하는검증방법명시 검증케이스및절차 - 요구된커버리지를달성할수있는시험케이스를생성하고관련절차에따라검증수행 검증결과 - 시험결과 - 검토결과 - 분석결과 ( 커버리지및추적성분석을포함하는분석 ) Slide 15
4. 사례연구 : 신고리 1,2 CPCS, POSAFE-Q 신고리 1,2 CPCS 신고리 1,2 CPCS 소프트웨어는 Statement, Branch coverage 달성계획 관련테스트계획문서와모듈테스트절차서에 Branch coverage를만족함을보이기위해자동화툴사용명시 요구사항커버리지는 RTM을통해입증 툴을사용하여코드커버리지분석을수행하고 Statement, Branch coverage등을만족함을입증함 코드커버리지분석결과 Statement, Branch coverage 등을달성함 Statement and Branch Coverage achieved! Slide 16
4. 사례연구 : 신고리 1,2 CPCS, POSAFE-Q KNICS POSAFE-Q POSAFE-Q의 RTOS인 pcos 소프트웨어는커널컴포넌트를제외한나머지컴포넌트에대하여 Branch Coverage 달성계획 요구사항커버리지는 RTM을통해입증 툴을사용하여코드커버리지분석수행하여 Branch coverage 만족입증 코드커버리지분석결과 - 총 137개함수중116개함수 (21개를제외 ) - Decision 개수 1,370 - 시험된 Decision 개수 1,370개로 100% Decision Coverage 만족확인 Slide 17
5. 코드커버리지적용근거 요구사항커버리지 원전적용필수요건 IEEE Std. 1012등원전표준에서명시하는기본적인커버리지 코드커버리지에우선하는요건 코드커버리지 요구사항커버리지를보완하는추가적인요건 소프트웨어의중요성즉등급에따라적용 Statement, Branch 커버리지는원전표준인 IEEE Std. 1008, IEC Std. 60880 등에근거하여적용 MC/DC 커버리지는미항공표준 DO-178B에서채택하고있고이에대한타당성을입증하는연구에근거하여적용 Slide 18
5. 코드커버리지적용근거 MC/DC 적용근거 미항공표준DO-178B에서가장높은 S/W 등급에서요구 요구되는시험케이스가많지않음 (n개조건에대해 n+1 개시험케이스 ) HETE-2 위성소프트웨어에대한시험결과, 블랙박스시험에대한한계와보다깊은이해와정확한테스팅을요구하는소프트웨어대하여 MC/DC는효과적으로대응하며검출성능이우수함 - An Empirical Evaluation of the MC/DC Coverage Criterion on the HETE-2 Satellite Software, Ar naud Dupuy, Alcatel, France, Nancy Leveson, MIT, USA PLC 프로그램에 MC/DC를적용했을때결함검출에대하여가장우수한성능을보임 - MC/DC based estimation and detection of residual faults in PLC logic networks,peter G Bishop Centre for Software Reliability, London, UK Slide 19
6. 테스트커버리지규제방향 테스트커버리지규제방향개요 소프트웨어등급에따른테스트커버리지요건달성계획 요구사항 / 코드커버리지기반의테스트케이스생성 단위시험및통합시험수행 요구사항커버리지분석 코드커버리지분석 Slide 20
6. 테스트커버리지규제방향 시험계획 소프트웨어등급에따른테스트커버리지요건달성계획수립 - 테스트커버리지달성방법, 시험절차, 분석방법등 시험케이스생성및시험수행 소프트웨어등급에따른테스트커버리지요건을적용하여시험케이스를생성하고시험을수행 요구사항커버리지는필수요건사항이며 S/W 등급에따라코드커버리지적용 코드커버리지는 Statement, Branch, MC/DC 커버리지를적용 - Statement, Branch 커버리지는원전에도이미적용되고있음 -MC/DC 커버리지는항공산업에이미적용되고있고이에대한타당성을입증하는연구들이있으므로요건으로포함하였음 테스트커버리지요건에따라테스트가수행되었음을입증할수있는결과물을제시할수있어야함 예 ) 시험합격 / 불합격결과, 시험로그파일등 Slide 21
6. 테스트커버리지규제방향 테스트커버리지분석수행 시험수행완료후테스트커버리지분석을통하여커버리지요건만족을입증해야함 테스트를수행한결과물을가지고커버리지요건만족여부를분석 - 요구사항커버리지분석예 Requirement Traceability Matrix (RTM) 등 - 코드커버리지분석예 - 시험케이스를나열하고시험결과물확인, 자동화된툴사용방법등 Slide 22
6. 테스트커버리지규제방향 테스트커버리지요건 IEEE 1012 SIL 4 SIL 3 SIL 2 SIL 1 IAEA Safety Important to safety Safety related Not important to safety WH Protection (Safety critical) Important to safety Important to availability General purpose (Non safety) KINS Safety-Critical Safety-Related Non Safety 테스트 커버리지요건 MC/DC Branch Statement 요구사항커버리지 Branch Statement 요구사항커버리지 요구사항커버리지 Slide 23
6. 테스트커버리지규제방향 테스트커버리지관련활동 ( 예 ) 생명주기테스트커버리지관련활동 ( 예 ) 계획단계 요건단계 검증단계 소프트웨어등급에따른테스트커버리지계획 요구사항커버리지계획 코드커버리지계획 테스트커버리지요건에따른시험절차서수립 테스트커버리지검증계획 - 검토, 분석, 시험방법등 시험을고려한요건작성 시험을고려한요구사항식별 요구사항과시험케이스의추적성 테스트커버리지요건의검증 요구사항커버리지분석및평가 - 요구사항과시험케이스의추적성평가 코드커버리지분석및평가 - 코드커버리지만족성평가 Slide 24
7. 결론 요구사항커버리지는기본적으로만족해야함 코드커버리지적용은의견수렴및타당성에대한연구를수행하여적용예정 소프트웨어등급에따른코드커버리지요건개발 테스트커버리지요건검증을위해자동화된코드커버리지툴사용권고 Slide 25
한국원자력안전기술원 Slide 26