Written by JS970
on
on
소프트웨어시스템설계 2023-05-01 수업정리
Flow
- Review - SDLC
- Review - White Box Testing
- Black Box Testing
Review - SDLC
- 어느 정도의 규모가 있는 조직에서는 implementation을 담당하는 개발자, 설계를 검토하는 설계자, PM이 모두 따로 존재한다.
- 각각의 단계에 대해서 테스트를 담당하는 사람 역시 따로 존재한다.
- 일반적으로 unit test 단계까지는 코드를 설계한 프로그래머가 담당한다.
Review - White Box Testing
- 소스코드를 이용하여 code coverage를 측정하여 testing한다.
- code coverage는 아래와 같이 분류된다.
- Statement Coverage
- Branch Coverage
- Condition Coverage
- Decision/Condition Coverage
- MCDC
- Multiple Condition Coverage
Black Box Testing
- 소스코드를 모르는 상황에서 실행한다.
- 물론 소스코드를 아는 상황에서도 Black Box Testing을 실행할 수 있다.
- 다양한 입력값의 조합을 통해 프로그램 내부의 branch를 최대한 실행시키는 것이 목적이다.
- 입력값이 편중되지 않도록 주의해야 한다.
Problem of Exhaustive Testing
- 이론적으로 모든 경우에 대한 Exhaustive Testing은 불가능하다.
- 32비트 워드 두 개를 input으로 받는 컴퓨터가 100ns당 한 번의 testgin이 가능하다고 해도 Exhaustive Testing을 수행에는 58000년 이상이 소모된다.
- Equivalence Partitioning Testing
- input case에 대해서 partitioning하여 testing한다.
- 이때 partition들은 equivalent해야 한다.
- equivalent에 대해서는 "같은 역할을 하는" set 으로 생각할 수 있다.
- 이 set의 값들은 결함이 발생할 가능성이 같다고 가정한다. 즉 이 값들 중 하나만 선택해도 된다.
- positive testing(valid value testing), negative testing(invalid value testing)이 있다.
Black Box Testing 방법
- Boundary-value Analysis Testing
- VEC 또는 IEC의 경계값에 대한 testing을 조사한다.
- 각 경계값에서 값을 선택하는 개수에 따라 2-value, 3-value boundary value test가 있다.
- Equivalance Partitioning Testing에 비해서는 비용이 증가한다.
- testing 효과가 늘어나는 것이 결함을 많이 찾아낸다는 것은 아님을 유념하자.
- Combinational Testing
- Dicision Table/Cause Effect Graphing
- State-based Testing
- Use case Testing