서지주요정보
Quantitative evaluation of software testability for specification in statechart and for source code = 상태차트 기반 소프트웨어 명세서와 소스코드에 대한 소프트웨어 시험성의 정량적 평가
서명 / 저자 Quantitative evaluation of software testability for specification in statechart and for source code = 상태차트 기반 소프트웨어 명세서와 소스코드에 대한 소프트웨어 시험성의 정량적 평가 / Se-Do Sohn.
저자명 Sohn, Se-Do ; 손세도
발행사항 [대전 : 한국과학기술원, 2004].
Online Access 원문보기 원문인쇄

소장정보

등록번호

8015470

소장위치/청구기호

학술문화관(문화관) 보존서고

DNE 04003

휴대폰 전송

도서상태

이용가능

대출가능

반납예정일

초록정보

Software testability for specification in statechart and for source code is suggested in this thesis. The suggested testability for specification in statechart is based on the degree of required efforts for testing, and is based on the number of test cases required for the transformed finite state machine of the statechart. The statechart is transformed into extended finite state machine by flattening the hierarchy and concurrency of the statechart and expanded into finite state machine by splitting the conditional transitions. The proposed testability measure has been applied to the statechart of the low pressurizer pressure trip function of the plant protection system and statechart of the coffee vending machine. The testability of the specification in statechart can be improved either by introducing additional outputs to the statechart or by modeling the statechart to reduce the number of test cases required for the transformed finite state machine. To reduce the number of required test cases, the statechart should be modeled to have minimum concurrency among states and to have minimum conditional transitions. The testability for source code is the likelihood that the testing will detect the fault if the software contains a fault. The proposed testability for source code is based on the fault tree analysis and entropy of the importance of the basic statements. The proposed testability for source code has been applied to the safety software modules of Core Protection Calculator System. By performing test with fault seeded software, it was shown that test cases from branch coverage and random testing detected more faults for the software with higher testability. The proposed testability measure can be used to optimize testing by assigning more efforts for modules with lower testability. Or it can be used to select appropriate output to increase the testability.

원자력발전소의 안전관련 계측제어계통은 과거의 아날로그 시스템에서 디지털 시스템으로 설계가 되고 있다. 디지털 시스템의 소프트웨어 개발은 하드웨어 측면에서는 내 전자기파 환경 시험의 필요성이 증가되고, 각 기능간의 하드웨어, 소프트웨어 공유에 따른 공통유형고장에 대한 대비책이 요구된다. 소프트웨어 개발에 있어서는 개발주기에 따른 개발계획의 수립과 수명주기에 따른 개발, 확인 검증 업무가 요구된다. 소프트웨어 시험은 소프트웨어 개발에 있어서 많은 노력과 기간을 요구하는 중요한 과정이다. 소프트웨어 시험은 요건에 근거한 기능시험과 소스코드 내부 구조에 근거한 구조적 시험으로 구분될 수 있다. 기능시험은 명시된 모든 요건들이 수행되도록 시험자의 판단에 따라 시험사례가 작성되어 수행된다. 이것은 요건의 복잡성, 다른 모듈과의 연계 복잡성 등을 고려하지 않고 작성된다. 모듈시험은 요건명세서, 상세 설계요건서에 근거하여 작성된 프로그램을 모든 분기가 수행되도록 시험사례를 작성하는 B ranch Coverage 기준을 적용하여 수행된다. 소프트웨어 시험은 항상 소프트웨어의 구현이 프로그램으로 완료된 후에 수행되고 고려되었지만, 요건단계의 오류를 조기에 발견하기 위한 노력의 일환으로 정형기법이 도입되었고, 이를 통하여 요건단계에서 요건을 분석 또는 요건의 실행이 가능하게 되었다. 본 논문에서는 요건에 근거한 시험성을 분석하는 방법을 제안하고, 또한 소스코드에 대한 시험성을 분석하는 방법을 제안한다. 상태차트에 기반한 소프트웨어 요건의 시험성을 분석하는 Measure가 제안되었다. 시험성은 시험에 요구되는 시험사례의 개수에 근거하여 제안되었다. 이것은 시험에 요구되는 노력과 비례하므로 하드웨어 회로 시험, 소프트웨어 시험에 모두 적용될 수 있는 일반적인 정의이다. 시험성의 Measure를 간단한 유한상태기계에 대해서 적용하여 분석하였다. 원자력발전소 보호계통의 저 압력 트립 기능에 대해서 상태차트를 작성하고, 변환된 유한상태기계에 근거하여 상태전이 오류와 전이출력 오류를 발견할 수 있는 시험사례를 작성하였다. 동일한 상태차트에 출력변수를 추가하면 시험사례를 줄일 수가 있으며, 출력변수를 추가한 경우에 대해서도 시험사례를 작성하였다. 출력변수를 추가하는 것은 Chow의 W-method에서 시험사례를 작성하는 과정의 일부인 특성집합(Characterization Set)을 작게 하는 효과를 가져온다. 또한 자동커피기에 대한 상태차트에 대해서도 시험사례를 구하고, 시험성을 고려하여 상태차트를 효율적으로 작성하기 위해서는 상태의 동시성, 조건전이를 줄이는 것이 좋다는 것을 알 수 있었다. 소프트웨어 소스코드에 대한 시험성은 소스코드에 포함되어 있는 오류를 시험을 통해서 발견할 가능성에 기반하여 제안되었다. 소프트웨어 오류의 존재와 그것이 최종 출력으로 전달될 확률은 고장수목의 분석을 통하여 수행되었다. 시험성은 소프트웨어에 포함된 오류가 출력으로 나타날 확률과 각 오류가 잘못된 출력으로 나타날 중요도의 엔트로피로부터 계산된다. 소프트웨어의 복잡성과 같은 구조적인 특성과 오류의 전달 특성은 고장수목으로 분석될 수 있다. 제안된 시험성은 원자력발전소의 안전등급 소프트웨어 모듈에 대해서 적용되었다. 시험성 측정방법의 적정성을 확인하기 위하여 해당 모듈에 대해서 분기시험과 랜덤시험을 수행하였다. 오류를 인위적으로 삽입한 소프트웨어에 대하여 분기시험과 랜덤시험을 수행한 결과 시험성이 높을수록 오류를 발견하는 시험 개수가 많았다. 이 결과는 시험성의 정의와 일치한다. 제안된 시험성 측정법은 오류 발견을 증가 시키기 위한 출력 선정에 사용될 수 있고, 발견되지 않은 오류를 내포하기 쉬운 소프트웨어 모듈을 찾기 위해서도 사용될 수 있다. 소프트웨어 각 모듈에 대해서 시험성을 평가하여 시험을 수행하면, 소프트웨어의 복잡성, 오류발견 용이성 등을 고려하여 시험을 보다 많은 오류가 발견될 수 있도록 시험을 보다 효율적으로 수행할 수 있을 것으로 판단된다. 많은 소프트웨어 시험은 입력 구간을 Homogeneous한 특성을 갖는 구간으로 나누어 시험하는 분할 시험 방법에 근거하여 수행된다. 분할 시험의 효율성은 소프트웨어의 분할 구간의 Homogeneity에 달려있다. 제안된 시험성 Measure는 분할 구간의 Homogeneity 평가에도 사용될 수 있을 것으로 판단된다.

서지기타정보

서지기타정보
청구기호 {DNE 04003
형태사항 vii, 107 p. : 삽도 ; 26 cm
언어 영어
일반주기 저자명의 한글표기 : 손세도
지도교수의 영문표기 : Poong-Hyun Seong
지도교수의 한글표기 : 성풍현
수록잡지명 : "Quantitative evaluation of safety critical ssoftware testability based on fault tree analysis and entropy ". Journal of systems and software,(To be published)
학위논문 학위논문(박사) - 한국과학기술원 : 원자력및양자공학과,
서지주기 Reference : p. 100-103
주제 SOFTWARE TESTABILITY
STATECHART SPECIFICATION
SOFTWARE FAULT TREE
ENTROPY
FINITE STATE MACHINE
소프트웨어 시험성
상태차트 명세서
소프트웨어 고장수목
엔트로피
유한상태기계
QR CODE qr code