<30312DB8F1C2F72E687770>

Similar documents
example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

ISO17025.PDF

<B1D4B0DDBCAD202D20C4DAB5E520B1E2B9DD2E687770>

SW¹é¼Ł-³¯°³Æ÷ÇÔÇ¥Áö2013

untitled

SchoolNet튜토리얼.PDF

DBPIA-NURIMEDIA

<30362E20C6EDC1FD2DB0EDBFB5B4EBB4D420BCF6C1A42E687770>

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

소프트웨어개발방법론

DBPIA-NURIMEDIA

C# Programming Guide - Types

Orcad Capture 9.x

PowerPoint 프레젠테이션

04-다시_고속철도61~80p

2

<31325FB1E8B0E6BCBA2E687770>

03 장태헌.hwp

03.Agile.key

Validation Plan Template

#Ȳ¿ë¼®

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE. vol. 29, no. 6, Jun Rate). STAP(Space-Time Adaptive Processing)., -

Microsoft PowerPoint - AC3.pptx

정보기술응용학회 발표

methods.hwp

Microsoft Word - 1-차우창.doc

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

2002년 2학기 자료구조

Oracle Apps Day_SEM

歯목차45호.PDF

solution map_....

DBPIA-NURIMEDIA

학습영역의 Taxonomy에 기초한 CD-ROM Title의 효과분석

성능 감성 감성요구곡선 평균사용자가만족하는수준 성능요구곡선 성능보다감성가치에대한니즈가증대 시간 - 1 -

13 Who am I? R&D, Product Development Manager / Smart Worker Visualization SW SW KAIST Software Engineering Computer Engineering 3

에너지경제연구 제13권 제1호

#KM-235(110222)

Main Title

-

보고서(겉표지).PDF

0125_ 워크샵 발표자료_완성.key

2

Software Testing

PowerPoint 프레젠테이션

Bluetooth

2013<C724><B9AC><ACBD><C601><C2E4><CC9C><C0AC><B840><C9D1>(<C6F9><C6A9>).pdf

<353420B1C7B9CCB6F52DC1F5B0ADC7F6BDC7C0BB20C0CCBFEBC7D120BEC6B5BFB1B3C0B0C7C1B7CEB1D7B7A52E687770>

Microsoft Word - KSR2015A100

보험판매와 고객보호의 원칙

14.531~539(08-037).fm

04서종철fig.6(121~131)ok

¼±ÅÃÀû º¹¸®ÈÄ»ýÁ¦µµ.hwp

시안

À±½Â¿í Ãâ·Â

untitled

김기남_ATDC2016_160620_[키노트].key

ecorp-프로젝트제안서작성실무(양식3)

How we create value? 안전경영 조직 및 시스템 강화 위원장 위원 간사 CEO 전략사장, CFO, 인사지원실장, 사업부장, 사업장장 안전환경인프라팀장 삼성SDI는 안전사고의 위험성에 대비하고 안전한 근무환경을 조성하기 위해 전담부서 개 편과 업무 관리범위

ETL_project_best_practice1.ppt


09권오설_ok.hwp

03-최신데이터

Something that can be seen, touched or otherwise sensed

Manufacturing6

878 Yu Kim, Dongjae Kim 지막 용량수준까지도 멈춤 규칙이 만족되지 않아 시행이 종료되지 않는 경우에는 MTD의 추정이 불가 능하다는 단점이 있다. 최근 이 SM방법의 단점을 보완하기 위해 O Quigley 등 (1990)이 제안한 CRM(Continu

06_À̼º»ó_0929

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE. vol. 29, no. 10, Oct ,,. 0.5 %.., cm mm FR4 (ε r =4.4)

Service-Oriented Architecture Copyright Tmax Soft 2005

, Analyst, , 2

3. 클라우드 컴퓨팅 상호 운용성 기반의 서비스 평가 방법론 개발.hwp

<4D F736F F D2028BCF6C1A42920B9DDB5B5C3BC20B8D3BDC5B7AFB4D7202E646F6378>

Journal of Educational Innovation Research 2017, Vol. 27, No. 3, pp DOI: (NCS) Method of Con

슬라이드 1

박선영무선충전-내지

<31302E204D43545F47535FC3D6C1BEBAB8B0EDBCAD2E687770>

강의10

<313920C0CCB1E2BFF82E687770>


1.장인석-ITIL 소개.ppt

<313120C0AFC0FCC0DA5FBECBB0EDB8AEC1F2C0BB5FC0CCBFEBC7D15FB1E8C0BAC5C25FBCF6C1A42E687770>

<C7A5C1F620BEE7BDC4>

2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 Abstract

DE1-SoC Board

15_3oracle

untitled

Voice Portal using Oracle 9i AS Wireless

슬라이드 1

4 CD Construct Special Model VI 2 nd Order Model VI 2 Note: Hands-on 1, 2 RC 1 RLC mass-spring-damper 2 2 ζ ω n (rad/sec) 2 ( ζ < 1), 1 (ζ = 1), ( ) 1

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE May; 27(5),

- 2 -

목 차 요약문 I Ⅰ. 연구개요 1 Ⅱ. 특허검색 DB 및시스템조사 5

05( ) CPLV12-04.hwp


레이아웃 1

Æ÷Àå½Ã¼³94š

Microsoft Word - KSR2015A135

<4D F736F F F696E74202D20BCD2C7C1C6AEBFFEBEEE28B9E8B5CEC8AF204B >

Microsoft PowerPoint - 30.ppt [호환 모드]

06_ÀÌÀçÈÆ¿Ü0926

Transcription:

특집원고 SW 신뢰성향상을위한국제규격현황 MDS 테크놀로지 ( 주 ) 우경일 우준석 1. 서론 SW 신뢰성을 SW가고장또는결함으로부터자유로울수있는정도 라고정의한다면, 이러한정도를측정한다는것이현실적으로쉽지않다는것을쉽게짐작할수있을것이다. 이미 SW 신뢰성에대해서는 1990 년대에미국에서그리고 2000년대에는유럽에서다양한국제규격과논문, 서적들이활발하게발간되었다. 이후 2000년대후반에들어서는연구와적용사례들의발표가다소주춤한상황이다. 근래들어서는목표시스템을설계, 개발, 생산하는과정에서단독으로하기보다는생태계를통해다양한형태의협업이이루어지는것이일반적이다. 더불어시스템의기능들이매우다양화되고지능화되면서그러한시스템의기능들을구현하는데 SW의역할과비중이매우커지게되어이를담당하는 SW는불과 10 년전인 2000년대초반과는비교하지못할정도의복잡도를가지게되었다. 이렇게시스템의복잡도가높아짐에따라 SW의신뢰성도매우중요하게되었다. 이러한시점에서본기고를통해 SW 신뢰성이전통적으로어떻게다루어져왔으며, 이와관련된다양한국제규격들에대해살펴보는것은 SW 신뢰성을향상시키기위한노력들이어떤방향으로추구되고있는지를이해하는데커다란도움이될것으로생각한다. 따라 SW 신뢰성을 0과 1 사이의값으로표현하기도한다. 한편, ISO/IEC 9126에서는 SW 신뢰성을 SW 품질특성 으로나타내며, 성숙성 (Maturity), 장애허용성 (Fault tolerance), 복구성 (Recoverability), 표준적합성 (Compliance) 의품질부특성을가진것으로정의하고있다. 비교적최근에새롭게정의된개념에의하면 SW 신뢰성은 SW가소기의작동환경에서다양한부하에서도정확하고일관된결과들을반복적으로만들어낼수있는가에대한확신할수있는정도 로, SW 테스팅에비중을둔해석이라고할수있다 ( 원문 : Software reliability is defined as a measure of confidence that the software produces accurate and consistent results, which are repeatable under low, normal and peak loads in the intended operational environment. 출처 : Software Safety and Reliability, IEEE Computer Society Press 1999). 2.2 HW 신뢰성과 SW 신뢰성의차이신뢰성은발생되는고장또는결함이잔존하는확률또는가능성과관계가있다. 일반적으로 HW는자체특성으로인하여제품의소모나외부요인에의한고장으로인해그신뢰성이저하되는반면, SW 고장은그원인들이코드내각인자값의잘못된설정또는 2. SW 신뢰성이란 2.1 SW 신뢰성 (SW Reliability) 의정의 SW 신뢰성에대한정의는매우다양하다. IEEE 610. 12-1990에서는 SW 신뢰성을 규정된환경하에서주어진기간동안요구된기능을수행하는시스템또는컴포넌트의수행능력 이라고정의하고있다. ANSI/IEEE STD-729-1991에서는 특정환경에서일정기간동안결함없이작동할확률 이라고정의하고있으며, 이에 ( 출처 : Jiantao Pan, Software Reliability, Carnegie Mellon University, 1999) 그림 1 Bathtub Curve for HW Reliability 72 특집원고 SW 신뢰성향상을위한국제규격현황

3.3 SW 신뢰성에대한연구현황 ( 출처 : Jiantao Pan, Software Reliability, Carnegie Mellon University, 1999) 그림 2 Revised bathtub curve for software reliability Logic이나알고리즘의잘못된구현에서비롯된다. HW 의경우에는비교적외부환경으로부터민감한영향을받으며시간이지나면고장률이급증함에따라신뢰도가떨어지게된다. 한편 SW의경우는양산또는출시후에활발하게사용되면서문제점들이들어나게되어결과적으로고장률이증가한다. 이후개발자의조치 (Upgrade 또는 Patch) 로고장률이낮추지는단계들을수차례거치는데이러한안정화단계를거치게되면시간의흐름과는상관없이일정한고장률을가지게된다. 이렇게 HW 신뢰성과 SW 신뢰성은서로다른양상으로전개되므로, HW 신뢰성을측정하는기준을가지고 SW 신뢰성을측정한다면많은모순들이발생하게된다. 이에따라 SW 신뢰성에영향을미치는요소들을정량화하기위해다양한연구들이진행되었다. ISO/IEC 9126에서정의된바와같이 SW 신뢰성은 SW 품질특성으로나타내며다양한품질부특성을가지고있다고언급하였다. 개발자의입장에서는사용자의요구사항과 SW 품질이서로충돌하는경우가빈번히일어난다. 신뢰성목표가너무높게설정되면인도시점이미뤄지고, 개발비용이증가하게되는반면, 신뢰성목표가너무낮게설정되면사용자는큰불만을가지고, 산업의특성에따라서는심각한인명상의피해또는재산상의손해까지도발생할수있다. SW 신뢰성공학은제품이어떻게사용될지와주요품질요소를정량화함으로써이루어진다. 작동프로파일 (Operational Profile) 을작성함으로써제품이사용자환경에서어떻게사용될지를예측하고, 이를토대로자주사용하거나고객에게심각한영향을미치는기능을분별해내서개발단계에자원 ( 테스트케이스, 검토시간및인원, 시험시간 ) 을합리적으로할당할수있도록한다. 그리고고객이중요하게여기는품질요소 ( 개발기간, 비용, 신뢰성 ) 를정량화함으로써각품질요소의목표치가서로균형을이루게할수있다. 신뢰성예측은신뢰성과관련된유용한척도와측도를통해현재또는미래의신뢰성을결정하며, 요구사항분석부터코딩단계까지의활동과산출물을통해시험이전단계의신뢰성을예측할수있다. 신뢰성추정은시험 / 운영동안에얻어진 Fault/Failure 데이터를기반으로현재의신뢰성을결정하며, 신뢰성목표값과비교하여만족할만한수준에서테스팅을중단하는결정 ( 출처 :The DACS Software Reliability Sourcebook, Data and Analysis Center for Software(Rome LAB), 2001.) 그림 3 SW 개발수명주기에서신뢰성예측과추정 2012. 2 정보과학회지 73

표 1 SW 신뢰성예측모델및추정모델간의차이구분예측모델추정모델현재 SW 개발에들이는참고수치경험적인수치를사용노력을산출하여사용 개발프로세스상에서적용시 기준시점 SW 테스트이전에수행또는개념 (Concept) 설정초기단계에서적용 미래시점에서의신뢰성을예측 개발프로세스후반부분에적용 ( 초기단계에서는적용하지않음 ) 현재또는미래시점에서의신뢰성을추정 ( 출처 : Jiantao Pan, Software Reliability, Carnegie Mellon University, 1999) 을할수있고, 신뢰성목표값을달성하기위해추가적으로수행되어야할테스팅에필요한시간을예측할수있다. 예측모델과추정모델은소프트웨어개발단계에서사용되는시기가다르므로이들모델의입력과출력에도차이가있다. 일반적으로예측모델을활용하면소프트웨어개발환경과경험그리고개발프로세스의활동들로부터수집된데이터를기반으로시험이전단계에서의초기결함밀도와현재의신뢰성을예측할수있다. 그리고추정모델은시험을통해수집된결함데이터를기반으로해서고장률과남아있는결함수를추정하고목표로하는신뢰성을달성하기위해수행되 어야할시험시간, 현재의신뢰성의추정을가능하게한다. 4. 국제규격에서의 SW 신뢰성향상방안 이미위에서언급한바와같이 SW 신뢰성을 특정한환경에서특정한기간동안소프트웨어가오류없이작동할확률 (ANSI/IEEE STD-729-1991) 이라고한다면일반적으로소프트웨어의신뢰성을향상시키는방법은소프트웨어의오류를줄이는것으로, 소프트웨어의 Verification & Validation, 시험등의공학적기법을통해소프트웨어의오류를검출하고제거하는것이라고할수있다 (JiantaoPan, Software Reliability, CMU, 1999). 아래에서는실제로높은신뢰도를요구하고있는산업군들을대상으로공표되어있는국제규격들을살펴보고, 이들규격에서는 SW 신뢰성을향상시키기위해이러한관점이어떻게반영되어있는지살펴보기로한다. 4.1 IEC 61508( 기능안전규격 SW분야 ) 에서의 SW 신뢰성향상방안기능안전규격의모 ( 母 ) 규격이라고불리는 IEC 615 08-3에서는다음과같은 SW 테스팅들을통해 SW 신뢰도향상을꾀하고있다. 표 2 IEC 61508 에서강제되어있는디자인및코딩규칙과모듈화를구현하기위한수행해야할내용 Technique/Measure* Ref. SIL SIL 2 SIL 3 SIL 4 1 Use of coding standard to reduce likelihood of errors C.2.6.2 HR HR HR HR 2 No dynamic objects C.2.6.3 R R HR HR 3a No dynamic variables C.2.6.3 --- R HR HR 3b Online checking of the installation of dynamic variables C.2.6.4 --- R HR HR 4 Limited use of interrupts C.2.6.5 R R HR HR 5 Limited use of pointers C.2.6.6 --- R HR HR 6 Limited use of recursion C.2.6.7 --- R HR HR 7 No unstructured control flow in programs in higher level languages C.2.6.2 R HR HR HR 8 No automatic type conversion C.2.6.2 R HR HR HR Technique/Measure* Ref. SIL SIL 2 SIL 3 SIL 4 1 Software module size limit C.2.9 HR HR HR HR 2 Software complexity control C.5.13 R HR HR 3 Information hiding/encapsulation C.2.8 R HR HR HR 4 Parameter number limit/fixed number of subprogram parameters C.2.9 R R R R 5 One entry/one exit point in subroutines and functions C.2.9 HR HR HR HR 6 Fully defined interface C.2.9 HR HR HR HR 74 특집원고 SW 신뢰성향상을위한국제규격현황

우선 SW 코딩에대한지침을아래와같이만들어각등급별로준수해야하는코딩규칙들을안내하고있다. 위와같은코딩규칙들을준수하더라도 SW 규모가커지면이에따라각함수간또는파일간참조하는것이증가하여복잡도가증가하게된다. SW 신뢰성을향상시키기위해서는이러한코딩규칙을통해결함의발생을예방하는활동과함께잠재적결함을검출하는과정을요구하고있다. IEC 61508에서도정적분석을통해결함을검출하는과정을실행하도록요구하고있으며, 그내용은다음과같다. 이러한활동들을통해코드상에서의결함들을검출하였다면, 코드를실제타겟환경에서작동시켜봄으로써설계문서상에명시된동작을수행하는지여부를검사한다. 이과정을단위시험또는동적시험이라고하며, 관련내용은다음과같다. 상기의표에서도확인할수있듯이, 높은 SW 신뢰성을도달하기위해 IEC 61508에서는 Code Coverage에대한기준을명확하게규정하고있다. 4.2 ISO 26262( 자동차 SW분야 ) 에서의 SW 신뢰성향상방안거론되는규격들중가장최근에공표 (2011년 11월 15일공표 ) 된자동차분야규격인 ISO 26262는자동차산업의특성 (OEM Supplier에의한생태계를통해제작됨 ) 을반영했을뿐아니라, IEC 61508과는달리신뢰성의기준을양자간의계약에의해결정하도록맡겨놓았다. 즉, 높은신뢰도를추구하는것과적기제품출시라는양단사이에서합의점을찾을수있도록한것이다. 하지만, 이를자율에맡겼다기보다는 SW 개발당사자들이스스로책임을지도록함으로써상응하는경쟁력을보유한업체만이살아남을수있게되었다는해석이더욱적절하다는평가를받고있다. 자동차기능안전성개발규격인 ISO 26262에서요구하는 SW 신뢰성향상방안에는여러가지가포함되어있는데우선다음과같은코딩가이드라인을준수하도록하고있다. 이러한코딩가이드라인뿐아니라, 코딩을하면서반 표 3 IEC 61508 에서강제화되어있는정적분석방안 Technique/Measure* Ref. SIL SIL 2 SIL 3 SIL 4 1 Boundary value analysis C.5.4 R R HR HR 2 Checklists B.2.5 R R R R 3 Control flow analysis C.5.9 R HR HR HR 4 Data flow analysis C.5.10 R HR HR HR 5 Error guessing C.5.5 R R R R 6a Formal inspections, including specific criteria C.5.14 R F HR HR 6b Walk-through(software) C.5.15 R R R R 7 Symbolic execution C.5.11 --- --- R R 8 Design review C.5.16 HR HR HR HR 9 Static analysis of run tiome error behaviour B.2.2, C.2.4 R R R HR 10 Worst-case execution time analysis C.5.20 R R R R 표 4 IEC 61508 에서강제화되어있는동적분석및시험항목 Technique/Measure* Ref. SIL SIL 2 SIL 3 SIL 4 1 Test case execution from boundary value analysis C.5.4 R HR HR HR 2 Test case execution from error guessing C.5.5 R R R R 3 Test case execution from error seeding C.5.6 --- R R R 4 Test case execution from model-based test case generation C.5.27 R R HR HR 5 Performance modeling C.5.20 R R R HR 6 Equivalence classes and input partition testing C.5.7 R R R HR 7a Structural test coverage(entry points) 100%** C.5.8 HR HR HR HR 7b Structural test coverage(statements) 100%** C.5.8 R HR HR HR 7c Structural test coverage(branches) 100%** C.5.8 R R HR HR 7d Structural test coverage(conditions, MC/DC) 100%** C.5.8 R R R HR 2012. 2 정보과학회지 75

표 5 ISO 26262 에서요구하는코딩가이드라인 Topics 1a Enforcement of low complexity ++ ++ ++ ++ 1b Use of language subsets ++ ++ ++ ++ 1c Enforcement of strong typing ++ ++ ++ ++ 1d Use of defensive implementation techniques o + ++ ++ 1e Use of established design principles + + + ++ 1f Use of unambiguous graphical representation + ++ ++ ++ 1g Use of style guides + ++ ++ ++ 1h Use of naming conventions ++ ++ ++ ++ 표 6 ISO 26262 에서요구하는코딩규칙 1a One entry and one exit point in subprograms and functions ++ ++ ++ ++ 1b No dynamic objects or variables, or else online test during their creation + ++ ++ ++ 1c Initialization of variables ++ ++ ++ ++ 1d No multiple use of variable names + ++ ++ ++ 1e Avoid global variables or else justify their usage + + ++ ++ 1f Limited use of pointers O + + ++ 1g No implicit type conversions + ++ ++ ++ 1h No hidden data flow or control flow + ++ ++ ++ 1i No unconditional jumps ++ ++ ++ ++ 1j No recursions + + ++ ++ 드시지켜야할코딩규칙도아래와같이명시하고있다. 또한 IEC 61508에서처럼코딩규칙을준수함은물론정적분석을통해의미기반의오류검출과정을거치도록규정하고있다. 특히 ISO 26262에서는앞서살펴봤던 IEC 61508보다더욱많은, 그리고구체적인동적시험을요구하고있으며, 그기준이여타기준들보다자세하게설명되고있다. 우선, 단위시험을통해동적시험을시작하도록되어있으며, 단위시험에대한기법과함께단위시 험에필요한테스트케이스를만들어내는방법도명시를하고있다. 또한, 필요한테스트케이스를얼마만큼만들어야하는지의기준에대해 Structural Coverage Metric을통해그범위를안내하고있다. 4.3 IEC 62279( 철도 SW분야 ) 높은 SW 신뢰성을요구하고있는철도분야에서도위에서언급했던 IEC 61508과 ISO 26262와유사한규정들을포함하고있다. 표 7 ISO 26262 에서요구하는 SW 정적분석의내용 1a Walk-through a ++ + O O 1b Inspection a + ++ ++ ++ 1c Semi-formal verification + + ++ ++ 1d Formal verification O O + + 1e Control flow analysis b,c + + ++ ++ 1f Data flow analysis b,c + + ++ ++ 1g Static code analysis + ++ ++ ++ 1h Semantic code analysis d + + + + 76 특집원고 SW 신뢰성향상을위한국제규격현황

표 8 ISO 26262 에서요구하는동적시험의내용 / 방법 / 기준들 1a Walk-through a ++ + O O 1b Inspection a + ++ ++ ++ 1c Semi-formal verification + + ++ ++ 1d Formal verification O O + + 1e Control flow analysis b,c + + ++ ++ 1f Data flow analysis b,c + + ++ ++ 1g Static code analysis + ++ ++ ++ 1h Semantic code analysis d + + + + 1a Requirements-based test a ++ ++ ++ ++ 1b Interface test ++ ++ ++ ++ 1c Fault injection test b + + + ++ 1d Resource usage test c + + + ++ 1e Back-to-back comparison test between model and code, if applicable d + + ++ ++ 1a Analysis of requirements ++ ++ ++ ++ 1b Generation and analysis of equivalence classes + ++ ++ ++ 1c Analysis of boundary values + ++ ++ ++ 1d Error guessing + + + + 1a Statement coverage ++ ++ + + 1b Branch coverage + ++ ++ ++ 1c MC/DC (Modified Condition/Decision Coverage) + + + ++ 표 9 IEC 62279 에서요구하는코딩규칙 / 오류검출 / 동적시험의내용, 방법, 기준항목 TECHNIQUE/MEASURE Ref SW SIL0 SW SIL1 SW SIL2 SW SIL3 SW SIL4 1. Coding Standard Exists B. 16 HR HR HR HR HR 2. Coding Style Guide B. 16 HR HR HR HR HR 3. No Dynamic Objects B. 16 - R R HR HR 4. No Dynamic Variables B. 16 - R R HR HR 5. Limited Use of Pointers B. 16 - R R R R 6. Limited Use of Recursion B. 16 - R R HR HR 7. No Unconditional Jumps B. 16 - HR HR HR HR TECHNIQUE/MEASURE Ref SWS IL0 SWS IL1 SWS IL2 SWS IL3 SWS IL4 1. Boundary Value Analysis B. 4 - R R HR HR 2. Checklists B. 8 - R R R R 3. Control Flow Analysis B. 9 - HR HR HR HR 4. Data Flow Analysis B. 11 - HR HR HR HR 2012. 2 정보과학회지 77

5. Error Guessing B. 21 - R R R R 6. Fagan Inspections B. 24 - R R HR HR 7. Sneak Circuit Analysis B. 55 - - - R R 8. Symbolic Execution B. 63 - R R HR HR 9. Walkthroughs/Design Reviews B. 66 HR HR HR HR HR TECHNIQUE/MEASURE Ref SWS IL0 SWS IL1 SWS IL2 SWS IL3 SWS IL4 1. Test Case Execution from Cause Consequence Diagrams B. 6 - - - R R 2. Prototyping/Animation B. 49 - - - R R 3. Boundary Value Analysis B. 4 R HR HR HR HR 4. Equivalence Classes and Input Partition Testing B. 19 R HR HR HR HR 5. Process Simulation B. 48 R R R R R TECHNIQUE/MEASURE Ref SWS IL0 SWS IL1 SWS IL2 SWS IL3 SWS IL4 1. Test Case Execution from Boundary Value Analysis B. 4 - HR HR HR HR 2. Test Case Execution from Error Guessing B. 21 R R R R R 3. Test Case Execution from Error Seeding B. 22 - R R R R 4. Performance Modeling B. 45 - R R HR HR 5. Equivalence Classes and Input Partition Testing B. 19 - R R HR HR 6. Structure-Based Testing B. 58 - R R HR HR 5. SW 신뢰성을향상시키는방안 위에서살펴본바와같이대표적으로고신뢰성을요구하는산업에서 SW 신뢰성을향상시키기위해요구하는항목들에는공통적요소가많이있다는것을확인할수있었다. 이번에는관련내용들을좀더구체적으로살펴보기로한다. 5.1 Coding Rule 제정을통한관리위에서언급했듯 SW 신뢰성을저하시키는요인들은외부환경적인요인들이아닌개발자들이코딩하는과정에서대다수실수로만들어내는것이많다. 뿐만아니라, ISO C90/C99 조차도모호한표현들이들어있어, ISO의관련표준에대한교육을수료하지않는대다수개발자들은자신도모르는사이에잘못된표현을사용하게된다. 이러한실수와모호함들을해결하기위해 SW 코딩룰을제정하여코딩초기단계에서부터잠재적결함들을예방하는것이바람직하며, 이를위해 QAC/ QAC++ 와같은도구들의도움을받는것이일반적이다. 5.2 잠재적오류검출활동실제코딩규칙을제정하여개발자들이준수하게함으로써많은실수들을예방하였다고하더라도, 다수의개발자가협업을통해개발하는프로젝트의경우각개발자들의산출물들을통합하는과정에서많은오류 그림 4 QAC 가코딩룰을기반으로한 SW Metrics 와함수 /Call 관계를보여주는화면 78 특집원고 SW 신뢰성향상을위한국제규격현황

들이발생되고있다. 국제규격에서도코딩규칙을제정하여적용함과동시에정적분석활동을수행하도록안내하고있으며, 이를통해잠재적인결함들을최대한검출해내는것이바람직하다. 이는특히결함을일찍발견하여제거할수록작은비용이소요된다는사실을감안하면매우효과적이다. 이러한기술을지원하는도구들은이미산업계에일반화되어사용되고있으며자동차나국방분야의개발자들이많이사용하고있는 CodeSonar와같은도구가이에해당한다. 5.3 S/W Unit Testing 수행이렇게코드를수행하지않고잠재적결함여부들을확인한후에도, 실제의타겟환경에서정확하게수행을하는지설계단계에서도출된테스트케이스를기반으로확인하는테스팅과정이필요하다. 이는동적시험중단위 / 통합시험에해당되며, 본과정을수행하기위해서는반드시설계단계에서의테스트케이스들이요구된다. 단위시험이란, 내가원하는하나의소프트웨어모듈 이정상적으로기능을수행하는지여부를시험하는최소수준의시험을말한다. 일반적으로원시코드를대상으로하며, 단위시험을수행하는데사용하는주된시험방법은화이트박스시험 (White Box Test) 이다. 단위프로그램별로설계서상에정의된기능을제대로수행하는지검증하는것을목적으로한다. 단위시험은해당개발자도수행할수있으나다른개발자또는제 3자에의한시험이권장된다. 5.4 Code Coverage 확보동적시험중가장객관적으로측정이가능한기법중하나가 Code Coverage이다. 대다수국제규격들은 SW 신뢰성을측정함에있어 Code Coverage를기준으로삼고있으며, 고신뢰성을요구하는항목일수록더욱엄밀한 Code Coverage 수준을요구하고있다. Code Coverage의경우단위 / 통합시험과함께동적시험으로분류가되며, 테스트케이스를수행함에따라그결과와함께 Code Coverage를함께측정하는것이일반적이다. 단, 동적시험은실제 Target 환경또는가능 그림 5 CodeSonar 를통해 Data/Control Flow 기법으로 Null 값참조에따른오류를검출한화면 그림 6 Code Coverage 종류에대한설명 2012. 2 정보과학회지 79

그림 7 VectorCAST 를통해실제 Code Coverage 가측정된 Code 의화면과요약 Report 한이와유사한환경 (Emulator, Simulator) 에서수행을해야하며, 실제 Target 환경이아닐경우에는그모사된환경에서생성된환경이실제환경과어떠한차이가발생하는지시험결과서에명시를하고전문그룹으로부터검토를받도록되어있다. 아래의화면은실제 Target 환경에서동적시험관련 3자검증을수행하면서확보한 Code Coverage 화면과고객사에제공되는 VectorCAST 의 Report 화면이다. 근래에는자동차시장과국방시장에서 SW 신뢰성을향상시키기위해동적시험을강도높게강화하고있으며, 그에따라전세계적으로성능이검증된도구로다양한활동들이수행되고있다. 6. 결론 SW 신뢰도를측정하고이를높이기위한다양한연구들은앞으로도계속진행될것이다. 개발비용과시간에대한압박속에서도 SW에대한신뢰성요구는반대로더욱커지고있는상황이다. 이러한상황에대처하기위해 SW 신뢰성공학이적극적으로활용되고있으며 SW 신뢰성에대한다양한예측과추정모델들이개발되고있다. 각산업별로제정되어있는국제규격에서는 SW 신뢰성이오류없이동작할확률이라는정의를 SW 테스팅관점에서해석하여코딩규칙적용, 잠재적오류검출, 동적시험 ( 단위시험, Code Coverage 측정 ) 등을통해해당제품 / 프로젝트에대한 SW 신뢰성을평가할뿐만아니라 System/HW 개발에대한가이드라인도함께제시하고있다. 특히 3~5년간의장기개발기간이소요되며높은신뢰성을요구되는자동차관련규격에서는양산에대한경제적인비용까지고려해야함에도불구하고신뢰성을높이기위해필요한사 항들을폭넓게반영하고있으며더욱엄격히관리하도록요구하고있다. SW 신뢰성에대한관심도는점차높아지고있으며 SW 신뢰성을향상시키기위한활동들은점점그중요성을인정받고있다. 이제는 SW 신뢰성부서의담당자들뿐만아니라, 개발에참여하는모든사람들이 SW 신뢰성을높이기위해적극노력해야한다. 특히각산업별로제정되어있는관련국제규격들에관심을가지고이를내재화하기위한전문성있는신뢰성향상활동이매우필요한시점이다. 참고문헌 [ 1 ] Debra S. Herrmann: Software Safety and Reliability, IEEE Computer Society Press, 1999, ISBN 0-7695- 0299-7, Pages 21, 22, 25, 2 [ 2 ] Ian Sommerville: Software Engineering 8, Addison- Wesley, 2007, ISBN 0-321-31379-8, Several Page [ 3 ] Daniel Sonnick: Reliable Date-Replication Using Grid Computing Tools, 04. Mai 2009, Pages 3,4 [ 4 ] Jiantao Pan: Software Reliability, Carnegie Mellon University, 1999 [ 5 ] Jiantao Pan: Software Testing, Carnegie Mellon University, 1999 [ 6 ] John D. Musa:Introduction to Software Reliability Engineering and Testing, 8th International Symposium on Software Reliability Engineering(Case Studies). November 2-5, 1997. Albuquerque, New Mexico [ 7 ] John D. Musa: Anthony Iannino, and Kazuhira Okumoto, Software Reliability: Measurement, Prediction, Application, McGraw-Hill Book Company, 1987, ISBN 0-07-044093-X 80 특집원고 SW 신뢰성향상을위한국제규격현황

[ 8 ] Musa, J: Operational Profiles in Software-Reliability Engineering, IEEE Software, March 1993 [ 9 ] John D. Musa: More Reliable Software Faster and Cheaper, Software Reliability Engineering and Testing Courses [10] Taewan Gu: Software Reliability Engineering, (taewan. blogspot.com/p/software-engineering.html) [11] IEC 62279 : Railway applications-communications, signalling and processing systems-software for railway control and protection systems [12] ISO 26262-6 : Road vehicles-functional safety-part 6: Product development at the software level [13] IEC 61508-3 Ed. 2.0: Functional safety of electrical/ electronic/programmable electronic safety related systems-part 3: Software requirements [14] Functional Safety, A Straightforward Guide to applying IEC 61508 and Related Standards, Second edition, David J Smith & Kenneth G L Simpson, ISBN 0-7506-6269-7 우경일 1997~2002 유한대학정보통신공학과졸 2005~2007 한국방송통신대학교경영학과학사 2001~2003 오성테크 2003~2005 대신네트웍스 2005~ 현재 MDS 테크놀로지 TC 사업부 TA 사업팀장관심분야 : SW 품질, SW 신뢰성, SW 테스팅, ISO 26262, 모바일 / 국방 / 자동차 / 철도 SW 산업등 E-mail : kyungil@mdstec.com 우준석 1985~1990 서울대학교전자공학과졸 1990~1992 한국과학기술원전기공학과석사 1992~1999 LG 전자 2000~2002 새롬기술 2003~ 현재 MDS 테크놀로지 TC 사업부장 / 상무관심분야 : 모델기반설계, 시험자동화, 시스템엔지니어링, HILS 시뮬레이션, AUTOSAR, ISO26262 E-mail : Joonseok@mdstec.com 2012. 2 정보과학회지 81