Functional Testing (항상 100%)
-기능을 이용해서 test
-unit test, integration test, system testing 모든 단계에서 수행
-Category Partitioning Testing(negative test case 만들기에 가장 좋음), Brute Force Testing
Structural Testing
-코드를 보고 CFG/DFG로 바꿔서 coverage testing
-unit test에서만 수행
-Statement < Condition < Decision/Branch < MC/DC
-Jacoco coverage
: Specification - based Testing (Black box testing)
Random testing (Uniform)
: 빠짐없이 모든 경우를 테스트
Systematic testing (Non-Uniform)
: 경험(사전지식,SRS,SDS,PP)에 의거하여 에러가 있을 것 같은 구간만 테스팅
**예상질문) systematic testing, random testing을 VM 테스팅에서 어떻게 이용할 수 있는가? (예시)
Timely : 미리 test case를 fresh 하게 만들 수 있다.
Effective
Widely applicable : V-model의 모든 단계에 적용할 수 있다.
(↔ structural testing은 unit level만 가능)
Economical : 개발자만 수고하면 되고 도구 사용 안해도 된다.
**예상질문) Functional testing VS Structural testing (예시 들어서)
Category Partitioning testing
independently testable feature 찾기 (category)
각 category별 representative value 찾기
Test case Specification (TSL Generator같은 도구 활용) - 조합
Test case > Test Data <I,Env,EO> 만들기
Scaffolding
ex) 다른 dvm이 있다고 가정하고 연동하여 테스트하기 등
Brute Force Testing
Model Testing
** scaffloding을 안 넘겨줬을 때 어떤 식으로 만들어서 테스팅 해야 하는지?