본문 바로가기

테스트이론/소프트웨어 테스팅

테스트 적합도

테스팅을 어느 정도 해야 충분한가?

- 실행이 불가능한 답은 주어진 프로그램에서 실행할 수 있는 모든 입력을 다 실행했을 때

하지만, 가능한 입력은 사실상 무한대에 가깝기 때문에 완벽한 테스팅은 불가합니다

이 경우 테스팅은 영영 끝나지 않습니다 

- 모든 결함을 다 잡았을 때

하지만, 결함이 존재하는지 존재하지 않는지, 몇 개가 존재하는지를 미리 알 수 없기 때문에

실질적으로 쓸모없습니다

 

언제 멈춰야 하는지 정확히 알 수 없으므로 

적어도 지금 테스트 입력을 한 개 더 실행하면 얼마만큼의 이득을 얻을 수 있는가

라고 질문할 수 있습니다

이 경우에는 테스트 입력을 한 개 더 실행하기 위해서 

필요한 비용 대비 하나 더 수행했을 때 얻는 이익을 비용을 비교하여 비용이 더 크면 테스트를 멈추면 됩니다

이 질문의 답도 이득을 정확히 측정하는 방법이 어렵습니다

그 이유는 궁극적으로 테스트 케이스를 하나 더 실행함으로써 얻어지는 이득은

결함을 잡을 수 있느냐 없느냐에 연결되어 있는데 

마찬가지로 결함의 존재 여부를 알 수 없기 때문입니다

그래서 이득의 대체물인 Surrogate Value를 측정합니다


Criterion and Adequacy

테스팅을 적절한 시점에 잘 멈출 수 있게 하기 위해 사용할 수 있는 좋은 대체물

좋은  Surrogate Measure 특징

두 개의 테스트 입력, 테스트 케이스가 있을 때 이러한 대체 Surrogate Measure를 가지고 어떤 테스트가 유리한지,

얼마나 더 많은 이익을 가져다줄 수 있는지 판단할 수 있어야 합니다

Surrogate Measure를 이용해서 테스팅을 언제 멈출 수 있는지 정확하게 정의할 수 있어야 합니다

테스트를 실행함으로써 얻을 수 있는 이득을 더 정확히 보기 위해서?

첫 번째, 테스트 기준,

즉 Test Criterion은 테스팅을 통해서 이루고자 하는 구체적인 목표 또는 조건이라고 생각하면 됩니다

하지만 이 목표나 조건은 실현이 가능해야 합니다

따라서 우리가 측정 가능하고 100%를 달성하는 것이 가능한 것을 테스트 기준으로 삼는 것이 좋습니다

두 번째, 주어진 Test Suite,

즉 테스트 입력의 집합에 대해서 어떤 테스트 기준에 대비해서 적절합니다

주어진 Test Suite을 실행했을 경우에 우리가 미리 설정한 테스트 기준을 모두 만족한다는 뜻으로 적정하다는 표현을 사용합니다 (Adequacy)


구조적 커버리지

프로그램의 내부 구조 중에 몇 퍼센트 정도가 테스트 도중에 실행되었는가 측정

결함을 검출할 수 있는 능력이 얼마나 되는지 측정하고 비교할 수 있습니다

 

커버리지를 달성했다고 해서 결함이 없다는 것이 아닙니다

커버리지를 달성함으로써 해당 프로그램 구조에 존재하던 결함을 밝힐 수 있지만

어떤 프로그램에 대해서 특정한 수전의 커버리지를 달성했는데 결함을 찾지 못했다고 해서

결함이 없다는 것을 증명하는 것은 아닙니다

그러므로 구조적 커버리지는 필요조건이지만 충분조건은 아닙니다

커버리지의 이점

테스트하지 않은 곳이 어디인지 나타내 주는 지표

테스팅의 방향을 정할 수 있습니다

'테스트이론 > 소프트웨어 테스팅' 카테고리의 다른 글

구조적 커버리지의 종류  (0) 2021.04.22
조합적 상호작용 테스팅과 제약조건  (0) 2021.03.18
조합적 상호작용 테스팅  (0) 2021.03.10
등가 파티션  (0) 2021.03.08
블랙박스 테스팅  (0) 2021.03.08