<353120C1B6C7F6C1A42DC3B6B5B5BDC3BDBAC5DB20BCD2C7C1C6AEBFFEBEEE20C5D7BDBAC6AE20C4BFB9F6B8AEC1F620C0DAB5BFC8AD20B5B5B1B82E687770>

Similar documents
슬라이드 1

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

<B1D4B0DDBCAD202D20C4DAB5E520B1E2B9DD2E687770>

Journal of Educational Innovation Research 2018, Vol. 28, No. 3, pp DOI: NCS : * A Study on

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

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Nov.; 26(11),

untitled

<30362E20C6EDC1FD2DB0EDBFB5B4EBB4D420BCF6C1A42E687770>

ISO17025.PDF

금오공대 컴퓨터공학전공 강의자료

11¹Ú´ö±Ô

09권오설_ok.hwp

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

C 언어 프로그래밊 과제 풀이

Software Engineering

00내지1번2번

DBPIA-NURIMEDIA

정보기술응용학회 발표

지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., KOSPI200.,. * 지능정보연구제 16 권제 1 호 2010 년 3 월

untitled

Introduction to CTIP

untitled

Infinity(∞) Strategy

2

에너지경제연구 Korean Energy Economic Review Volume 11, Number 2, September 2012 : pp. 1~26 실물옵션을이용한해상풍력실증단지 사업의경제성평가 1

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

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Jun.; 27(6),

PROCES-WP012A-KO-P, 현재의 안전 계측 시스템(SIS)이 최신 표준을 준수하고 있습니까?

감각형 증강현실을 이용한

Frama-C/JESSIS 사용법 소개

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

Journal of Educational Innovation Research 2019, Vol. 29, No. 1, pp DOI: (LiD) - - * Way to

Æ÷Àå½Ã¼³94š

+À¯½Å.PDF

DBPIA-NURIMEDIA

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

278 경찰학연구제 12 권제 3 호 ( 통권제 31 호 )

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

PowerPoint 프레젠테이션

DBPIA-NURIMEDIA

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

DBPIA-NURIMEDIA

IBM Mobile Quality Assurance 소개

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

09오충원(613~623)


<31325FB1E8B0E6BCBA2E687770>

Microsoft Word - KSR2015A100

Software testing

DBPIA-NURIMEDIA

Microsoft Word - 1-차우창.doc

WHO 의새로운국제장애분류 (ICF) 에대한이해와기능적장애개념의필요성 ( 황수경 ) ꌙ 127 노동정책연구 제 4 권제 2 호 pp.127~148 c 한국노동연구원 WHO 의새로운국제장애분류 (ICF) 에대한이해와기능적장애개념의필요성황수경 *, (disabi

untitled

Microsoft PowerPoint - chap01-C언어개요.pptx

12È«±â¼±¿Ü339~370

금오공대 컴퓨터공학전공 강의자료

Microsoft Word - KSR2014A273

Chap 6: Graphs

SchoolNet튜토리얼.PDF

Microsoft PowerPoint - jfeature장범석서재원박동현.pptm

04_이근원_21~27.hwp

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

<32382DC3BBB0A2C0E5BED6C0DA2E687770>

11장 포인터

DBPIA-NURIMEDIA

09È«¼®¿µ 5~152s

Microsoft PowerPoint - chap05-제어문.pptx

30이지은.hwp

45-51 ¹Ú¼ø¸¸

강의지침서 작성 양식

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

DBPIA-NURIMEDIA

PowerPoint 프레젠테이션

10송동수.hwp

DBPIA-NURIMEDIA

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

품질검증분야 Stack 통합 Test 결과보고서 [ The Bug Genie ]

<353420B1C7B9CCB6F52DC1F5B0ADC7F6BDC7C0BB20C0CCBFEBC7D120BEC6B5BFB1B3C0B0C7C1B7CEB1D7B7A52E687770>

#Ȳ¿ë¼®

Microsoft Word - FunctionCall

Microsoft Word - [2017SMA][T8]OOPT_Stage_2040 ver2.docx

6.24-9년 6월

쉽게 풀어쓴 C 프로그래밍

Ver. T3_DWS.UTP-1.0 Unit Testing Plan for Digital Watch System Test Plan Test Design Specification Test Cases Specification Date Team Infor

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

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


< FC1A4BAB8B9FDC7D D325FC3D6C1BEBABB2E687770>

06_ÀÌÀçÈÆ¿Ü0926

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Vol.257 C O N T E N T S M O N T H L Y P U B L I C F I N A N C E F O R U M

½Éº´È¿ Ãâ·Â

Å©·¹Àγ»Áö20p

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

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

에너지경제연구제 16 권제 1 호 Korean Energy Economic Review Volume 16, Number 1, March 2017 : pp. 95~118 학술 탄소은행제의가정용전력수요절감효과 분석 1) 2) 3) * ** *** 95

01이정훈(113~127)ok

Microsoft Word - KSR2016S102

300 구보학보 12집. 1),,.,,, TV,,.,,,,,,..,...,....,... (recall). 2) 1) 양웅, 김충현, 김태원, 광고표현 수사법에 따른 이해와 선호 효과: 브랜드 인지도와 의미고정의 영향을 중심으로, 광고학연구 18권 2호, 2007 여름

Journal of Educational Innovation Research 2018, Vol. 28, No. 4, pp DOI: A Study on Organizi

Transcription:

한국산학기술학회논문지 Vol. 11, No. 11 pp. 4460-4467, 2010 조현정 1*, 황종규 1, 신승권 2, 오석문 3 1 한국철도기술연구원열차제어통신연구실, 2 초고속열차연구실, 3 정책전략연구실 Analysis of S/W Test Coverage Automated Tool & Standard in Railway System Hyun-Jeong Jo 1*, Jong-Gyu Hwang 1, Seung-Kwon Shin and Suk-Mun Oh 3 1 Division of Train Control & Communication Research, Korea Railroad Research Institute 2 Division of Ultra High Speed Rail, Korea Railroad Research Institute 3 Office of Policy & Strategy, Korea Railroad Research Institute 요약최근컴퓨터시스템으로전환되고있는철도시스템에서소프트웨어에의의존성이급격히증가함에따라임베디드화된철도시스템소프트웨어신뢰성과안전성의검증이중요한문제로대두되기시작했다. 이에따라철도소프트웨어관련국제표준에서도각종소프트웨어테스트및검증활동을요구하고있으며, 이에대응하여본논문에서는과개발결과에대해제시하고있다. 본논문에서는철도시스템소프트웨어안전성검증을위한정량적인항목으로매우중요한테스트커버리지를자동으로측정할수있는제어흐름분석도구를개발하였으며, 본도구의결과를실제철도산업현장에서활용하기위해타분야제시기준등을분석하여철도소프트웨어안전무결성레벨 (SWSIL) 에따른판단기준을제시하였다. 개발한도구는기존해외도구에비해서여러테스트커버리지를효과적으로측정할수있는강점이있으며, 실제철도현장에서활용성이높아철도소프트웨어의개발및테스트기술발전을기대할수있다. Abstract Recent advances in computer technology have brought more dependence on software to railway systems and changed to computer systems. Hence, the reliability and safety assurance of the vital software running on the embedded railway system is going to tend toward very critical task. Accordingly, various software test and validation activities are highly recommended in the international standards related railway software. In this paper, we presented an automated analysis tool and standard for software testing coverage in railway system, and presented its result of implementation. We developed the control flow analysis tool estimating test coverage as an important quantitative item for software safety verification in railway software. Also, we proposed judgement standards due to railway S/W Safety Integrity Level(SWSIL) based on analysis of standards in any other field for utilizing developed tool widely at real railway industrial sites. This tool has more advantage of effective measuring various test coverages than other countries, so we can expect railway S/W development and testing technology of real railway industrial sites in Korea. Key Words : Railway systems, Software testing, Test coverage, Safety integrity level(sil) 1. 서론 철도시스템은최근기존의기계적장치로부터컴퓨터 시스템으로전환되고있으며, 소프트웨어에의의존성이급격하게증가하고있다. 컴퓨터기술의발달에따라지능화및자동화를위해소프트웨어가더욱복잡해지게 * 교신저자 : 조현정 (hjjo@krri.re.kr) 접수일 10년 08월 11일 수정일 (1차 10년 09월 27일, 2차 10년 10월 25일 ) 게재확정일 10년 11월 19일 4460

되면서, 철도시스템에서소프트웨어가차지하는비중이더욱증대되고있다. 철도시스템소프트웨어의크기와복잡도는하드웨어의발달속도보다는느리지만, 점차적으로규모가커지며복잡도도증가할것으로예상된다. 이에따라임베디드화된철도시스템소프트웨어의신뢰성과안전성을검증하는것이중요한문제로대두되기시작했다. 철도시스템소프트웨어안전성요구사항들이최근들어 IEC 61508과 IEC 62279에의해국제표준화되었고 [1,2], 또한국내에서도철도안전법이제정되어이러한철도시스템관련국제표준에서요구하는각종소프트웨어테스트및검증활동을요구하는분위기가조성되고있다 [3]. 하지만아직까지소프트웨어검증은개발과정에대한문서에주로의존하고있으며, 극히일부만테스트에의한정량적인분석이이루어지고있다 [4,5]. 또한, 국내에서의국제표준에따른철도시스템소프트웨어테스트및검증을위한기준이나이에부합하는기술에대한연구는이제막시작하는초기단계에불과한실정이다 [6]. 따라서철도시스템소프트웨어관련국제표준에서요구하고있는안전성활동에대한문서검증뿐만아니라소프트웨어테스트를통한분석및검증에대응하기위한구체적인기술개발과확인을위한판단기준이매우필요한상황이다. 특히, 국제표준에서요구하고있는철도소프트웨어검증항목중정량적인결과를도출할수있는제어흐름분석은대부분철도소프트웨어안전무결성레벨 (SIL: Safety Integrity Level) 등급이 3 또는 4로분류되는바이탈 (Vital) 철도시스템소프트웨어검증의경우, 관련국제표준에서 HR : Highly Recommend 조건으로규정되어있다 [1,2]. 철도소프트웨어의제어흐름분석 (Control Flow Analysis) 을통한결과들은코드기반의테스트커버리지 (test coverage) 로활용이가능하며, 항공, 원전등의바이탈한타분야에서도소프트웨어안전성등급에따르는소프트웨어검증을위해적용하고있는코드커버리지를측정할수있게해주는매우중요한항목임을알수있다 [7-11]. 인명과직결되는바이탈한철도시스템은소프트웨어규모가큰임베디드시스템으로서반드시안전성확보를해야만하며, 이를위해철도소프트웨어검증을위한이와같은코드커버리지적용이불가피하다. 이와더불어소프트웨어의복잡도증가에따라점차난해한부분인소프트웨어의확인및검증에대한판단기준확립을위해코드커버리지결과를소프트웨어 SIL 등급에맞춰측정할수있는기준수립도요구된다. 따라서본논문의 2장에서는이러한철도시스템소프트웨어의검증을위한코드기반테스트커버리지측정을자동 적으로수행할수있는도구인제어흐름분석모듈의개발결과를보여주고있으며, 3장에서는실제철도산업현장에서활용할수있는커버리지측정결과에대한판단기준을제시하였다. 2. 철도시스템소프트웨어코드기반테스트커버리지자동화도구의개발 2.1 제어흐름분석모듈의테스트커버리지 제어흐름분석모듈에서는그림 1과같이소스코드의영역및분기, 조건문등의실행여부에따라커버리지를측정하여보고한다. 커버리지는타산업분야에서도정량적으로소프트웨어를검증할수있는대표적인척도로써사용되고있으며, 나아가소프트웨어품질까지도가늠하게해준다. 일반적으로소프트웨어테스트분야에서는여러종류의커버리지를제시하고있는데, 본논문에서개발한철도용소프트웨어제어흐름분석모듈은그중에문장커버리지,, 변경조건 / 결정커버리지를제공한다. IEEE Std. 1008-1997 규격에따르면단위시험단계에서모든소프트웨어는테스트케이스 (Test Case) 에의해검증되어야하며, 테스트케이스에의해모든소프트웨어코드의문장및를만족해야한다고언급되어있다 [7]. 이러한단위시험수행의테스트커버리지를측정하기위해본규격에서는자동화된수단을권고하고있다. 이외에도 IEC Std. 60880-2006 규격에서도소프트웨어구현단계검증을위해서는문장및등의방법들을사용하도록권고하고있고 [10], 실제산업분야에서도이미문장및가널리활용되고있다. 또한, 항공산업표준규격인 RTCA/DO-178B에서는시스템안전성평가를통해확인된사고종류에따라소프트웨어등급을중요도에따라구분해놓았으며, 코드커버리지요건은그등급에따라정의해놓았다 [11]. [11] 에따르면안전성이요구되는중요도가높은등급일수록변경조건 / 결정커버리지를반드시만족하도록규정하고있고, 적용성을입증하는사례들또한제시되고있다 [12,13]. 따라서 SIL 등급이 3 또는 4로분류되는전자연동장치와같은바이탈한철도시스템소프트웨어에서도변경조건 / 결정커버리지를만족해야할것이며, 이에따라본논문에서개발한철도용소프트웨어테스트커버리지자동화도구를구성하고있는제어흐름분석모듈에서는문장커버리지,, 변경조건 / 결정커버리지를모두제공하도록구현하였다. 각각의커버리지에 4461

한국산학기술학회논문지제 11 권제 11 호, 2010 대한구체적인내용은다음과같다. 합이다. 조건1 결정을만족하는상태는 1, 3번이고, 조건 2의상태는참으로고정되어있으며, 이는조건1의참 / 거짓에의해전체조건문이참 / 거짓으로결정되기때문이다. 조건2 결정을만족하는상태는 1, 2번이다. 따라서조건1과조건2의결정조건을만족하는상태는 1, 2, 3이다. 변경조건 / 결정커버리지의경우 1, 2, 3과같은각조건의상태를수행하면, 커버리지는 100% 가된다. 1 2 3 4 5 6 7 8 9 int f (int a, int b) { int c = a +b; if (a > 10 && c > 50) { printf ("c = %d\n", c); } else { printf ("b = %d\n", b); } } [ 그림 2] 변경조건 / 결정커버리지의예제프로그램 [ 표 1] 연산자진리표 [ 그림 1] 제어흐름분석모듈의기능구성도 - 문장커버리지블록은연속적인문장의집합으로분기나반복문이없이순차적으로실행되는영역을의미한다. 분기가발생하면새로운블록이생성된다. 이러한블록을구성하는문장커버리지는테스트대상소스코드에존재하는블록영역내문장대비실제수행된문장을비율로구한것이다. - 는 If 문과같은분기문에의한제어흐름이참인경우, 거짓인경우와같이다양하게수행되었는지를평가한다. 프로그램내에분기문에의해결정조건이 6개있다고가정할경우, 그중 4가지조건이수행되면는 4/6, 66% 가된다. 보통는프로그램의모든결정에서가능한모든결과에대해적어도한번이상수행되어야한다. - 변경조건 / 결정커버리지변경조건 / 결정커버리지는분기문의결정조건뿐만아니라, 분기문을구성하는각조건문에대해서다양하게수행되었는지를평가한다. 그림 2의프로그램코드를보면 3번줄에분기문이존재한다. 분기문의결정조건을진리표로나타내면다음표 1과같다. 변경조건 / 결정커버리지의케이스는각조건이결정조건을만족하는조 상태 조건1 (a>10) 조건2 (c>50) 조건1&& 조건2 1 참 참 참 2 참 거짓 거짓 3 거짓 참 거짓 4 거짓 거짓 거짓 이와같은코드기반테스트커버리지를자동으로측정해주는상용화된해외도구가존재하며, 바이탈한항공분야에서는이도구를활용하고있다 [14]. 하지만, 다른산업분야보다소프트웨어의개발이나테스트하는기술이앞선항공분야임에도불구하고아직까지국내자체적인기술로항공분야에적용하기에적합한테스트커버리지자동화도구를개발하지못했으며, 이에따라실제적용하는데있어서커스터마이징기술지원이불가함은물론이고소프트웨어검증도구에대한전용지침도제정해야하는등산업현장에서활용하는데어려움이많은상황이다. 이외에도해외테스트커버리지자동화도구는상기언급한커버리지들을한꺼번에효과적으로측정해주지못하고, 각각의커버리지측정에적합한도구를따로활용해야하는단점을지내고있다. 따라서본논문에서는철도산업분야에서활용할수있도록소프트웨어분야에서필요로하는검증항목들 ( 코딩룰검사, 메트릭지원, 제어흐름분석, 데이터흐름분석, 경계값분석등 ) 중에테스트커버리지를정량적으로측정해주는주요항목인제어흐름분석모듈을자체 4462

적으로개발하여커스터마이징기술지원이가능하도록하였으며, 다른검증항목들을측정하는도구와도호환성을지닐수있도록제작하였다. 또한무엇보다여러커버리지를본도구만을사용하여한꺼번에효과적으로측정할수있다는강점을갖고있으므로높은실용성을기대할수있다. 2.2 제어흐름분석모듈의설계및구현결과제어흐름분석모듈은소스코드를분석하여제어흐름그래프를생성, 문장커버리지,, 변경조건 / 결정커버리지를만족할수있는테스트케이스를생성, 수행하여오류의존재를찾는모듈이다. 제어흐름분석모듈은프로그램분석, 테스트케이스생성, 테스트케이스수행, 테스트수행결과보고와테스트시나리오를가지며, 프로그램분석정보와테스트결과정보를나타내는자료구조및저장소를가진다. 제어흐름분석모듈은제어흐름그래프생성, 테스트데이터자동생성, 문장커버리지,, 변경조건 / 결정커버리지측정과같은주요기능을갖는다. 다음표 2는주요기능에대한설명을정리한것이다. 이러한기능을지니는제어흐름분석모듈의동작시나리오는크게테스트케이스준비, 수행, 결과보고로진행된다. 제어흐름분석모듈은전과정을자동으로수행하되, 자동으로테스트가되지않는부분에대해서는테스터가개입하여점진적으로테스트를보강하는것이주요사용시나리오이다. 다음그림 3은제어흐름분석모듈의동작시나리오이다. 테스트준비단계는크게테스트대상선정및테스트케이스작성으로구성된다. 우선테스터는컴파일이가능한 C/C++ 소스코드를준비해야한다. 제어흐름분석모듈은소스파일을입력으로받아어떤함수와타입들이정 의되어있는지를분석을한다음, 테스트대상이될함수의목록을테스터에게제공한다. 테스터는테스트대상으로선정한함수를제어흐름분석모듈의테스트데이터자동생성기능을이용하여해당함수에적합한테스트케이스를자동으로추출한다. 테스트수행단계는수행가능한테스트프로그램을만들기위한작업과준비된테스트케이스를이용하여실제수행하는작업으로구성된다. 이는제어흐름분석모듈에서자동으로생성해준다. 기능 프로그램분석및 CFG 생성 Test Cases 생성 테스트수행 제어흐름분석수행결과보고 [ 표 2] 제어흐름분석모듈기능리스트 설명 프로그램에구현되어있는함수와최상위 API 함수의리스트를추출한다. 함수별제어흐름그래프는테스트의기반모델이되며, 테스트과정은최대한많은제어흐름그래프의최대한많은부분을수행하는것을목적으로한다. 각함수간의호출그래프 (Call Graph) 를생성하여테스트스크립트, 테스트데이터를생성하는데활용한다. 분석된내용및 CFG 를저장소에저장한다. Statement, Branch, MC/DC 커버리지를위한테스트케이스생성한다. 생성된테스트케이스를저장소에저장한다. 실제테스트대상소스와테스트를위하여생성된소스코드등을통합해서컴파일하여생성된프로그램을테스트케이스별로수행하여그수행결과를저장소에저장한다. Statement, Branch, MC/DC 커버리지를보고한다. (4) 수행결과분석 (5) 테스트케이스보강 < 테스터 > 소스코드 (6) 테스트케이스수행 (1) 소스코드입력및대상선정 (2) 테스트케이스자동생성 (3) 테스트케이스수행 < 제어흐름커버리지정보 > Control Flow Testing 모듈 [ 그림 3] 제어흐름분석모듈의동작시나리오 4463

한국산학기술학회논문지제 11 권제 11 호, 2010 제어흐름분석모듈은테스트준비단계에서준비한테스트케이스를자동으로수행하며, 수행결과를내부저장소에저장한다. 이과정에서는대부분의작업이제어흐름분석모듈에의해자동화가되며, 테스터가직접적으로개입해야될부분은거의없다. 마지막단계는현재까지수행한테스트결과를분석하여, 테스트가충분한지를평가하는작업이다. 제어흐름분석모듈에서는문장커버리지,, 변경조건 / 결정커버리지수치를기반으로테스트가충분한지를평가한다. 테스터는테스트수행결과목표수치에도달하지않을경우테스트를더해야하며, 목표수치에도달하도록테스트케이스를보강해야한다. 제어흐름분석모듈은수행결과로문장커버리지,, 변경조건 / 결정커버리지수치와입력값에따른실제수행된코드정보를제공한다. 테스터는제어흐름분석모듈에서제공되는정보를기반으로실제수행되지않을문장및분기를확인한다음, 그부분을테스트하기위한테스트케이스를보강할수있다. 개발한테스트커버리지자동화도구프로그램의전체화면은그림 4와같이메뉴1, 프로젝트화면2, 기능별화면3으로구성된다. 기본메뉴는프로젝트생성, 열기, 작업수행, 제품정보와같은기능을수행하기위한메뉴아이템으로구성되어있다. 프로젝트화면에는현재작업중인프로젝트와프로젝트에포함된소스코드함수목록을보여주는화면으로구성된다. 본도구에서는기본메뉴1를이용하여소스코드를분석하게되며, 이과정에서내부적으로제어흐름정보를추출할수있다. 또한소스코드의함수간호출그래프는연관관계가있는함수들을그룹을선정해그룹단위로보여준다. 그림 5에서와같이먼저 Graph 목록1 을선정하면, 해당그룹에속해있는모든함수의호출관계 3을보여준다. 또한현재그룹에포함된함수를 2와같은목록형태로제공한다. main# group2# group3# main func1 func3 func2 func5 func4 1 3 main# main func1 func2 func3 func4 [ 그림 5] 소스프로그램분석 : Call Graph 또한소스코드분석을위한 CFG( 제어흐름그래프 ) 는각함수별로 1개씩존재하며, 노드와수행흐름을표현하는에지가결합하여그림 6의 1과같은그래프형태로표현된다. CFG의노드는분기가없는문장 (statement) 의집합을나타내며에지는문장간에수행순서관계를나타낸다. CFG는호출되는외부함수를특별한형태로표현하며, 이를이용하여다른함수의 CFG를찾아갈수있도록제공한다. 그래프가큰경우전체를개괄적으로보여주고내비게이션을지원하는개략화면3을제공한다. 그림 6의 2는 CFG내의노드목록을보여준다. 소스코드가분석완료된이후, 기본메뉴를이용하여테스트케이스를생성하고수행한다. 이와같은과정을거쳐테스트수행이이루어지고나서확인은다음그림 7과같이커버리지결과로가능하다. 2: block 0: block 1: if_start 3: block 4: return printf 1 3 Func1 0: block 1: if_start 2: block 3: block 4: return 2 2 File Run Window Help 1 Control Flow Graph Call Graph Project1 0: bloc k sample.c func1() 1: if_start func2() Func1 0: block 1: if_start 2: block 3: block 4: return [ 그림 6] 소스프로그램분석 : Control Flow Graph 2 func3() func4() sample1.c func5() func6() func7() func8() 2: block 3: block 4: return printf sample.c void func1(int a) { printf("%d\n", a); } 3 [ 그림 4] 프로그램전체화면 [ 그림 7] 테스트수행및커버리지결과확인 4464

[ 그림 8] 실제제작한철도시스템소프트웨어커버리지자동화도구의테스트실행화면 테스트커버리지결과는크게수치정보와코드의수행여부를제공한다. 코드의수행여부는 CFG를기반으로노드와에지에수행횟수를기록하여제공한다. 0으로기술된부분은수행되지않은부분이므로테스터는이정보를바탕으로테스트케이스를보강할수있다. 또한변경조건 / 결정커버리지의경우수행되어야하는케이스와현재수행된케이스에대해서표형태로제공한다. 이와같은설계개발과정을바탕으로실제제작완료한철도시스템소프트웨어테스트커버리지자동화도구의실행결과화면은그림 8과같다. 3. 철도시스템소프트웨어적용을위한테스트커버리지기준제시 본논문의 2장에서언급한바와같이항공, 원전분야뿐만아니라철도분야와같이바이탈한산업제어시스템의소프트웨어가복잡해지면서소프트웨어의안전성확보를위한확인및검증이어려워지고있다. 이러한어려움을해결하고자타분야에서는이미소프트웨어검증을위해점차테스트커버리지를적용하기시작했으며, 각종관련국제기준에서는정략적기준을제시할수있는코드기반의테스트커버리지를자동으로측정해주는도구들을사용할것을권고하고있다. 본논문에서는철도시스템소프트웨어전용으로활용이가능한테스트커버리지자동화도구를설계및구현하였으며, 구체적인결과는 2장에서확인하였다. 하지만개발한본도구를실제철도산업현장에서바로사용하기위해서는테스트커버리지수행결과를소프트웨어안전성중요도를나타내는소프트웨어안전무 결성레벨 (SWSIL) 등급에따라할당하기위한정량적평가기준을제시해주어야만실제활용도를높일수있을것이다. 이에따라정량적인기준을구체적으로제시하고자타분야의테스트커버리지적용현황조사및관련국제표준들을분석하였고, 이를근거로철도분야의소프트웨어검증을위해산업현장에서활용할수있는판단기준을제시하기위해기술지침 ( 안 ) 형태를작성중에있다. 이와같이개발한도구의실용화를높이기위해서본논문에서는표 3과같은철도시스템소프트웨어테스트커버리지의정량적기준을제시하고자하며, 기술지침 ( 안 ) 에포함시켜운영기관및관련산업체에서도유용하게활용될수있도록추진할계획이다. [ 표 3] 테스트커버리지의정량적평가기준제시 문장커버리지 (Statement Coverage) (Branch Coverage) 변경조건 / 결정커버리지 (MC/DC: Modified Condition/ Decision Coverage) SWSIL 0 1 2 3 4 NIL 100% 만족권고 SWSIL 100% 만족필수 0 1 2 3 4 NIL 100% 만족권고 SWSIL 100% 만족필수 0 1 2 3 4 변경조건 / NIL 결정커버리지 100% 만족권고 4. 결론 변경조건 / 결정커버리지 100% 만족필수 최근들어컴퓨터기술의발달에따라철도시스템들이컴퓨터소프트웨어에의의존성이급격하게증가하고있으며, 이러한기술발전에따라바이탈한철도소프트웨어에높은신뢰성과안전성이요구되고있다. 이에따라철도시스템소프트웨어관련국제표준에서소프트웨어의테스트및검증을의무사항으로요구하고있고, 이러한국 4465

한국산학기술학회논문지제 11 권제 11 호, 2010 제표준에서요구하고있는소프트웨어검증항목중정량적인테스트커버리지결과를도출할수있는제어흐름분석에대한정확한분석을위해본논문에서개발한자동화도구를제시하였다. 이러한제어흐름분석은코드기반의테스트커버리지인문장커버리지,, 변경조건 / 결정커버리지등의결과를도출해주며, 바이탈한항공및원전분야등에서는이미이러한테스트커버리지를소프트웨어안전성등급에따르는소프트웨어검증을위해적용하고있는매우중요한검증항목이다. 먼저개발한철도시스템전용소프트웨어제어흐름분석도구의기능설계에대해설명하였고, 그구현결과를구체적으로보여주었다. 이와같은본논문에서개발한철도용소프트웨어검증을위한테스트커버리지측정을자동으로수행해주는도구인제어흐름분석모듈은소스코드의문장, 분기, 변경조건 / 결정커버리지에대한분석결과를사용자입장에서파악하기쉽도록제어흐름그래프와함수호출그래프로표현하였다. 또한, 각각의측정결과를최종수치상으로도보여줌으로써, 비교분석도쉽게파악가능하도록제작하였다. 이러한철도소프트웨어테스트커버리지자동화도구인제어흐름분석모듈은기본적으로철도운영기관등의수요처에서철도시스템의소프트웨어검증을위해서크게활용될도구이며, 동시에철도관련산업체들의소프트웨어개발과정에서도해당개발품의단위혹은통합테스트단계에서도충분히활용도가높을수있다고본다. 물론최종적으로코드기반테스트커버리지측정결과가사용자가원하는소프트웨어안전무결성레벨 (SWSIL) 등급에맞춰질수있는판단기준을제시해야만비로소실제철도분야산업현장에서의효율성을최대화시킬수있을것이다. 따라서본논문에서는실제철도산업현장에서활용가능하도록커버리지측정결과에대한각각의평가기준을제시하였다. 본도구를소프트웨어검증및개발단계에서널리이용한다면, 이를통해바이탈한철도소프트웨어의오류를미연에방지하여안전성과신뢰성을확보하는데크게기여할수있을것이다. 참고문헌 [4] M. Fewstar, D. Graham, Software Testing Automation: Effective use of test execution tools, ACM Press, Addison Wesley, 1999. [5] J.D. Lawrence, "Software qualification in safety applications", Reliability Engineering & System Safety, Vol. 70, No. 2., pp. 167-184, 2000. [6] 황종규, 조현정, 김형신, 열차제어시스템소프트웨어안전성평가도구의설계, 한국철도학회논문집, 제11 권제2호, pp. 139-144, 2008. 4. [7] IEEE Std. 1008-1997, "Software Unit Testing", 1997. [8] IEEE Std. 829-1998, "Software Test Documentation", 1998. [9] IEEE Std. 1012-2004, "Software Verification and Validation", 2004. [10] IEC std. 60880-2006, "Software aspects for computer-based systems performing category A functions", 2006. [11] RTCA/DO-178B, "Software considerations in airborne systems and equipment certification", 1992. [12] Arnaud Dupuy and Nancy Leveson, "An Empirical Evaluation of the MC/DC Coverage Criterion on the HETE-2 Satellite Software", Proceedings of DASC (Digital Aviation Systems Conference), Phildelphia, 2000. 10. [13] Peter G Bishop, "MC/DC based estimation and detection of residual faults in PLC logic networks", 14th IEEE International Symposium on Software Reliability Engineering(ISSRE), Denver, Colorado, 2003. 11. [14] 박무혁. 항공용 S/W 개발및인증기술동향, 항공우주산업기술동향 5권1호, pp. 15-24, 2007. 조현정 (Hyun-Jeong Jo) [ 정회원 ] 2003 년 2 월 : 한국항공대학교항공전자공학과 ( 공학학사 ) 2005 년 2 월 : 광주과학기술원정보통신공학과 ( 공학석사 ) 2005 년 ~ 현재 : 한국철도기술연구원선임연구원 [1] IEC 61508, "Railway Applications - The specification and demonstration of RAMS", 1998. [2] IEC 62279, "Railway Applications - Software for railway control and protection systems", 2002. [3] 철도안전법 [ 법률 8852호 ], 일부개정 2008. 02. < 관심분야 > 열차제어및정보통신기술, 철도 S/W 테스팅기술 4466

황종규 (Jong-Gyu Hwang) [ 정회원 ] 1996 년 2 월 : 건국대학교일반대학원전기공학과 ( 공학석사 ) 2005 년 2 월 : 한양대학교일반대학원전자통신공학과 ( 공학박사 ) 1995 년 12 월 ~ 현재 : 한국철도기술연구원책임연구원 < 관심분야 > 철도신호제어및정보통신, 임베디드 SW 테스팅 신승권 (Seung-Kwon Shin) [ 정회원 ] 1998년 2월 : 성균관대학교공과대학원전기공학과 ( 공학석사 ) 2001년 8월 : 성균관대학교공과대학원전기전자컴퓨터공학부 ( 공학박사 ) 2001년 8월 ~ 2003년 3월 : 한국원자력연구소 Post-Doc. 2003년 4월 ~ 현재 : 한국철도기술연구원선임연구원 < 관심분야 > 제어공학, 열차제어, 신교통시스템, 자기부상열차 오석문 (Suk-Mun Oh) [ 정회원 ] 1996 년 2 월 : 전북대학교전기공학과 ( 공학석사 ) 2010 년 2 월 : 고려대학교산업공학과 ( 공학박사 ) 1995 년 11 월 ~ 현재 : 한국철도기술연구원선임연구원 < 관심분야 > OR, 철도시스템최적화 4467