SW Science for QA/How to do Test

White box and Black box

일해라폴폴 2016. 3. 27. 18:05
반응형

개인적인...

처음 QA 업무를 시작 할때는 white box, black box이라는 용어도 모르고 test를 진행 했다. Test 업무에서 이 용어를 모르는 분들은 반드시 알고 가야 본인이 무슨 일을 하고 있는지 어떻게 일을 해야 하는지 파악하기 쉬울 것이다.


White Box Test

  • 모듈의 원시 코드를 오픈시킨 상태에서 원시코드의 논리적인 모든 경로를 검사하여 검사 사례를 설계하는 방법이다.
  • 설계된 절차에 초첨을 둔 구조적 테스트로, 프로시저 설계 제어구조를 사용하여 검사 사례를 설계하며, 테스트 과정의 초기에 적용된다.
  • 모듈 안의 작동을 직접 관찰 할 수 있다.
  • 원시 코드의 모든 문장을 한 번 이상 수행함으로써 수행된다.
  • 프로그램의 제어 구조에 따라 선택, 반복 등의 부분들을 수행함으로써 논리적 경로를 제어한다.
  • 각 조건에서의 참과 거짓의 모든 논리적 결정이 적어도 한 번 이상 실행된다.
  • 논리 흐름도, 루프 구조, 순환 복잡도에 관한 오류를 찾을 수 있다.

종류
1. 기초 경로 검사(Basic Path Testing)
a. Tom McCabe가 제안한 것으로 대표적인 화이트 박스 테스트 기법
b. 검사 사례 설계자가 절차적 설계의 논리적 복합성을 측정 할 수 있게 해주고, 이 측정 결과는 실행 경로의 기초를 정의 하는데 지침으로 사용됨
2. 조건 검사(Condition Testing)
a. 프로그램 모듈 내에 있는 논리적 조건을 검사하는 검사 사례 설계 기법
3. 루프 검사(Loop Testing)
a. 프로그램 반복(Loop) 구조에 초점을 맞춰 실시하는 검사 사례 설계 기법
4. 데이터 흐름 검사(Data Flow Testing)
a. 프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞춰 실시하는 검사 사례 설계 기법



Black Box Test

1. 소프트웨어 인터페이스에서 실시되는 검사로, 소프트웨어가 수행할 특정 기능을 알기 위해서 각 기능이 완전히 작동되는 것을 입증하는 검사로, 기능 검사라고도 한다.
2. 부정확 하거나 누락된 기능, 인터페이스 오류, 자료 구조나 외부 데이터베이스 접근에 따른 오류, 행위나 성능오류,  초기화와 종료 오류 등을 발견하기 위해 사용되며며 테스트 과정의 후반부에 적용된다.
3. 소프트웨어 산물의 각 기능별로 적절한 정보 영역(입, 출력)을 정하여 적합한 입력에 대한 출력의 정확성을 점검 한다.
4. 블랙 박스 테스트의 종류
a. 동치 분할 검사(Equivalence Partitioning Testing) : 입력 자료에 초점을 맞춰 검사 사례를 만들고 검사 하는 방법으로, 프로그램의 입력 조건에 타당한 입력 자료와 타당하지 않은 입력 자료의 개수를 균등하게 하여 검사 사례를 정함
b. 경계값 분석(Boundary Value Analysis) : 입력 자료에만 치중한 동치 분할 기법을 보완하기 위한 기법으로, 입력 조건의 중간값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용하여 입력 조건의 경계값을 검사 사례로 선정하여 검사함
c. 원인-효과 그래프 검사(Cause-effect graphing testing) : 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석하여 효용성 높은 검사 사례를 선정하여 검사하는 기법
d. 오류 예측 검사(Fault based testing) = Mutation Testing : 과거의 경험이나 확인자의 감각으로 검사 하는 기법
e. 비교 검사(Comparison Testing) : 여러 버전의 프로그램에 동일한 검사 자료를 제공하여 동일한 결과가 출력되는지 검사하는 기법


반응형

'SW Science for QA > How to do Test' 카테고리의 다른 글

Sample Grammer For reporting -for Testwork-  (0) 2018.09.19
Severity -For Teswork-  (0) 2018.09.19
How to write a bug report -for Testwork-  (0) 2018.09.19
1.2 What is testing?  (0) 2016.04.06
1.1 Why is testing necessary  (0) 2016.04.05