본문 바로가기

Verification and Valdiation

Test Coverage에 대한 오해

[Safety 분야서 소프트웨어 커버리지를 포함하는 Standard 표준]

l In Avionics equipment, DO-178B에서 사용 (FAA - Federal Aviation Administration)

l IEC 61508 - E/E/E/EPES - Structured based testing (SIL 3, SIL 4)

l ISO 26262 - E/E Safety-related systems for automotive

[**소프트웨어** 테스트 커버리지의 개념]

프로그램의 소스코드가 테스트 된 정도(degree)를 판단하는 기준

얼마나 많이 테스트 되었는가?

White box testing방법으로 코드가 검사 됨

코드 커버리지는 systematic software testing을 위해 고안되었으며, 1960년대 Miller and Maloney in Communication of the ACM에 발표 되었음

Requirement based test를 보완하는 방식이며

è 코드가 수행되면서, 요구사항에 나타나지 않는 동작들을 확인하는 과정

[Structure Coverage]

Method and Measures

ASIL

A

B

C

D

1

Statement Coverage

HR

HR

R

R

2

Decision Coverage

R

R

HR

HR

3

MC/DC, Conditions affecting the decision

R

R

R

HR

4

Model Coverage

R

R

HR

HR

l Statement Coverage : 100% source code coverage required, 그러나 실제는 redundancy code 및 error handing code들은 100%를 만족하기 어렵다

l Model Coverage : analogous model coverage

l In short circuit operators (e.g. in "C" language), MC/DC and Condition + Decision coverage are equivalent

[Test Coverage 적용 문제점]

Coverage의 정량적인 숫자는 물론 테스트에 대한 confidence 및 품질을 향상시키는 효과가 있을수 있으나, 커버리지를 달성하기위해 소스 및 설계구조를 바꾸는 경우는, 민감한 경로 및 기능의 redundancy의 왜곡을 가져오는 경우가 많이 발생할 수 있다. 또한 커버리지를 향상시키기 위한 활동이 개발비용을 상당 및 시간을 상당히 증가시키는 문제가 있다.

When prompt testing with coverage tool (but tool별로 performance의 문제는 있지만) ASIL Level 4수준의 시스템을 구현하는 코드의 Statement Coverage가 about 80%, branch coverage about 70%이다. .

[Test Coverage 구현을 위한 단위 테스트이 문제점]

Unit testing for satisfying coverage measure, 17.5% of the total software development effort in civil aircraft industry

n all phase of testing : approximately 50% of software development effort

n structural unit testing phase : approximately 50% of testing effort

n Unit testing review and formal execution : 9% of unit testing effort

n Unit testing management/support : 21% of testing effort

n Automated generation of the input test-data may reduce project costs by around 3%~4%