밍경송의 E.B
<9> VV and Test (White-box test) 본문
이 글은 기말고사가 16시간 남은 학부생이 기말고사 암기를 위해 작성한 내용입니다... 내용은 지현박교수님의 강의자료를 참고하였음을 밝힙니다......🎄☃️
☃️ White-box test ☃️
= Structural test = Path test
- SW code의 구조에 기반하여 test
🎄code-coverage based test
1) All-path : 모든 경로를 실행하는 test (불가능)
2) All-node(statement coverage, node coverage)
: 프로그램 문장을 적어도 한 번 실행하는 테스트 (가장 단순)
*coverage는 100프로를 만족해도, 결함을 찾지 못할 수 있음.
3) All-edge(branch coverage, decision coverage)
: 프로그램의 모든 분기 조건들을 적어도 1번 수행되게 하는 테스트
*조건문의 decision의 T,F가 모두 수행되도록 하는 테스트
ex) if ((a!=2) && (b==0) || (c>10) <- if문 전체가 참 또는 전체가 거짓이 되는 TC 생성
*Branch coverage는 Statement coverage를 포함함
4) Condition coverage
: 조건문의 decision을 구성하는 각 항목(condition)의 T,F가 수행되도록 하는 테스트
*Condition coverage와 branch coverage는 포함관계가 없다
5) Decision/Condition coverage
: 조건문의 decision과 condition의 T,F가 모두 수행되도록 하는 테스트
*조건문 전체와 각 항목(조건) 둘 다
6) MC/DC coverage
: 전체 decision에 영향을주는 condition만을 가지고 테스트
7) Multiple-condition coverage
: 조건문의 모든 condition의 조합의 T,F가 모두 수행되도록 하는 테스트
*Decision, Condition, Decision/Condition coverage를 포함
*모든 실행 경로를 포함하진 않음
🎄Data-flow based test
: 실행 경로와 함께 변수들의 데이터 흐름을 참고하는 기법
1) C-use : 변수에 값이 정의된 후 그 변수값을 조건문을 제외한 프로그램 문장에서 사용되도록 하는 프로그램 경로가 적어도 한 번은 실행되게 하는 테스트
2) P-use : 변수에 값이 정의된 후 그 변수 값을 조건문 문장에서 사용되도록 하는 프로그램 경로가 적어도 한 번은 실행되게 하는 테스트
3) All-use : C + P
🎄Mutation test (Fault injection)
뮤턴트 : 테스트 대상 프로그램 P에 fault가 삽입된 프로그램 (M)
- P와 M의 결과값을 다르게 하는 입력을 T data로 선정 -> M(d) != P(d) 면 M kill 함 (동일한 결과가 나오면 Kill하지 않음)
Coupling effect : 단순한 오류를 발견할 수 있도록 하는 T data는 더 복잡한 실제 오류를 발견할 수 있게 해줌
EX)
⚠️Mutant score 구하기
뮤턴트 중에 killed 된 뮤턴트(p와 다른 결과를 낸 뮤턴트)의 비율을 구하는 것이군...
'CSE > 소프트웨어공학' 카테고리의 다른 글
<9> VV and Test (black-box test + etc) (0) | 2023.12.11 |
---|---|
<9> VV and Test (Static test) (0) | 2023.12.10 |
<9> Verification, Validation, and Test (0) | 2023.12.10 |
<7> OO Development Processing using UML (0) | 2023.12.09 |
<6> SWModel_UML 2, Package diagram, Sequence diagram, State chart diagram, Compo (0) | 2023.12.09 |