본문 바로가기
소프트웨어공학

[소프트웨어공학] L9 - Verification, Validation, and Test: White-box Test

by Lizardee 2023. 11. 20.
Test Methods
Non-execution-based test (Static test)
  • Rely on human: Review
  • Rely on tool: Static anaylsis

 

Execution-based test (Dynamic test)

▶ Black-box test

▶ White-box test (--> structure based)

  • Code-coverage based test
  • Data-flow based test
  • Mutation test

 

White-box Test
White-box test (structural test, path test)

: SW code의 구조에 기반하여 테스트한다.

 

--> 테스트 기법 (test coverage matric):

▶ Code-coverage based test

: 코드가 얼마만큼 실행되었는가?

  1. All-path
  2. Statement coverage (all-node)
  3. Branch coverage (all-edge) (= Decision coverage)
  4. Condition coverage
  5. Multiple condition coverage
  6. Decision/Condition coverage --> MC/DC(Modified Condition/Decision Coverage)

▶ Data-flow based test

▶ Mutation test

 

 

Code-coverage based test
1) All-path

1) All-path

 

2) All-node (statement coverage, node coverage)

2) All-node

 

3) Branch coverage (decision coverage, edge coverage)

3) Decision coverage

: 모든 조건문의 결과(decision)에 대한 coverage

 

4) Condition coverage

4) Condition coverage

: 모든 조건문의 세부 항목(condition)에 대한 coverage

 

5) Multiple-Condition coverage

5) Multiple-Condition coverage

: 모든 condition에 대한 coverage

--> 조건문 1에 대해: T/T, T/F, F/T, F/F

--> 조건문 2에 대해: T/T, T/F, F/T, F/F

  • 모든 condition에 대해 커버하기는 하지만, 조건문1과 조건문2를 어떻게 조합하여 4개의 테스트 케이스를 만드느냐에 따라, 모든 실행경로를 포함하지 않을 수 있다.

 

6) Condition/Decision coverage --> MC/DC (Modified Condition/Decision coverage)

6) Decision/Condition coverage
MC/DC

: 조건문의 모든 decision과 그 안의 모든 condition에 대해 T/F가 모두 수행되도록 하는 테스트

--> Decision, Condition 모두에 대해 보장함

 

▶ MC/DC: Decision/Condition coverage의 방법!

  • AND: 어떤 하나가 T이면, 나머지 하나가 결과값을 결정한다.
  • OR: 어떤 하나가 F이면, 나머지 하나가 결과값을 결정한다.

 

 

Logic Coverage Summary

Logic Coverage Summary

▷ Condition 개수 1개: Decision T/F는 Condition T/F에 의해 결정된다.

  • Decision coverage: 모든 decision에 대해 T/F

Condition 개수 2 or 3개: Decision T/F는 Condition T/F의 조합에 의해 결정된다.

  • Multiple-Condition coverage: 모든 condition에 대해 T/F (모든 경로에 대한 검증을 보장하지 않음)
  • Condition/Decision coverage: 모든 condition에 대해 T/F, 모든 decision에 대해 T/F

▷ Condition 개수 그 이상: Decision의 T/F를 결정짓는 Condition의 조건이 너무 복잡해진다.

  • MC/DC: Major condition이 decision에 영향을 주도록 하여, 모든 decision에 대해 T/F

 

 

 

 

 

출처: 이화여자대학교 박지현교수님 소프트웨어공학