Other/Software
블랙박스 테스트
hyebin Lee
2021. 12. 21. 02:59
소프트웨어 공학의 기본 과정 정리 🤔
요구사항 분석 → 설계 → 구현 → 테스트 → 배포 유지보수
구현과 테스트를 반복을 많이함
테스트는 통합테스트와 인수테스트, 단위테스트 (구현자의 몫)
알고리즘 → 구현 → 단위 테스트 의 반복은 불필요한 코딩도 적지 않다.
일단 해놓고 테스트!? 이 방법 보다는
테스트 대상을 잡고 테스트 코드 작성 → 제품 코드 작성 (구현)
소프트웨어의 구체적이고 귀납적인 특징을 이용하여 구현하면 가장 효율적인 형태가 된다.
이를 테스트 주도 개발이라고 한다.(TDD)
블랙박스 테스트 ⭐⭐⭐⭐⭐
하나의 인자에 대해서 분할을 하면 어떤 값을 취헤도 같은 성질을 가지고 있다. 각각의 대표가 되는 값 하나를 선택해서 테스트 케이스를 넣어 실행했을때 오류가 없으면 나머지도 오류가 없다. 이를 동등 클래스, 동치류 분활이라고 한다.
전체 집합을 A라고 했을 때 각각의 부분집합이 되는 Ai들은 null이 아니고, 모든 Ai는 A의 부분집합이고, 서로 i,j가 다를 때 Ai 와 Aj의 공집합은 없다. 모든 Ai에 유니온 하면 A가 된다. 이런 특징을 갖는 것을 분할이라고 한다.
이와 같이 테스트 케이스를 만들어야한다.
블랙박스 테스트는 명세를 기반으로, 사용자의 요구사항 분석 설계 —> 명세를 가지고 테스트 하는 것이다. 사용자 입장에서 테스트!
개발자는 단위 테스트에 집중해야한다.
1. 동등 클래스 분할 = 동치류 분할
- 입력 영역을 여러개의 동치류로 분할하여 대표 값 선정
- 분할 영역의 동치류 만족 조건
- 각 동치류의 대표 값에 의해서 오류가 있으면 다르값도 오류가 있고 오류가 없으면 다른 값도 오류가 없다! 라는 가설
2. 수행 절차 :
- 명세로부터 입력 인자 (변수) 식별
- 입력 인자를 동치류로 분할 (입력 조건이 특정 범위/ 값의 만족 불만족 범위 분할)
- 각 동치류를 적절한 조합 연산자 이용하여 조합
- 불가능한 조합 점검 및 제거
- 조합된 클래스=이니자별 동치류 의 대표 값 선정, 테스트 케이스에 반영
경계값 분석 : 경계에서 발생하는 문제들이 다수 발생하기 때문에