테스팅(2)
- 서영 조
- 2022년 12월 3일
- 2분 분량
최종 수정일: 2022년 12월 3일
💖테스트의 목적
테스트의 일반적인 목적은 소프트웨어 상의 에러를 검출하고, 소프트웨어적 요구사항을 충족하는지 확인하고, 소프트웨어 출시 후에 발생할 수 있는 결함을 예방하기 위함에 있다. 테스트의 부가적인 목적은 소프트웨어 품질에 대한 자신감 및 정보 획득, 정보에 기반한 정보 제공, 소프트웨어 프로세스 개선 및 이슈 제공에 있다.
💖블랙 박스 테스팅과 화이트 박스 테스팅
✨블랙 박스 테스팅
블랙 박스 테스팅은 프로그램의 내부 구조를 고려하지 않고 주어진 입력에 대해서 적절한 출력을 하는지 검토하는 테스팅으로, 명세 기반 테스트이다.
✔장점
-블랙 박스 테스팅을 통해 소스코드를 이용할 수 없는 경우에도 명세를 기반으로 테스트 케이스를 도출할 수 있다.
-동일 명세 기반의 시스템 개발 시 테스트 케이스를 재사용할 수 있으므로 테스트 케이스 설계 비용을 줄일 수 있다.
-구현 기능에 대한 구체적인 지식 없이 사용자 입장에서 시스템 테스트를 위한 테스트 케이스를 설계할 수 있다.
✔테스트 케이스란?
테스트 케이스란 테스트를 위해 경우를 설정한 것으로, 소프트웨어 개발 초기단계(분석, 설계)에서 테스트 케이스가 정의되어야 한다. 테스트 케이스는 테스트의 내용 및 목적, 입력 데이터, 예상되는 출력데이터 및 기타의 내용으로 이루어진다.
✔테스트 케이스 도출 방법

🔎동등 분할
입력 영역을 여러 동등한 클래스로 분할하고, 각 클래스의 대표값을 설정하여 테스트를 진행한다.
🔎경계값 분석
경계값 근처(예: 일요일과 월요일의 경계, 12월과 1월의 경계 등)에서 에러가 많이 발생한다는 점을 이용하는 방법이다.
🔎페어와이즈 조합
모든 입력 값들이 조합이 아닌 모든 쌍(pair)들의 조합을 검사하는 방법이다.
🔎기반 선정 테스트
사용자가 선택할 확률이 높고, 단순하고 일반적으로 정상적으로 작동할 확률이 높은 값을 선정하는 기법이다.
✨화이트 박스 테스팅
화이트 박스 테스팅은 프로그램의 내부 구조를 고려한 테스팅으로, 구조 및 코드 기반 테스트이다.
✔화이트 박스 테스트이 필요성
블랙박스 테스팅은 명세를 기반으로 올바르게 구현되어 있는지 확인할 수 있지만 프로그램 상의 오류를 점검하기는 힘들다.
✔구조 기반 테스트의 목표
화이트 박스 테스팅의 궁극적인 목표는 코드 상 모든 가능한 경로를 테스팅함에 있다.
✔구조적 커버리지 분석(structural coverage analysis)
명세로부터 생성된 테스트 케이스 실행
코드의 실행된 부분과 실행되지 않은 부분을 분석
실행되지 않은 부분을 분석하여 테스트 케이스 도출
도출된 테스트 케이스가 불가능하거나 불필요한 부분인지 검토
✔화이트 박스 테스팅 종류

🔎모든 실행문 커버리지
모든 코드들이 적어도 한 번은 실행될 수 있도록 한다.
🔎블록 커버리지
프로그램 내 모든 블록들이 적어도 한 번 이상 실행되도록 한다.
🔎조건 검증기준
충분한 테스트 케이스를 설계하여 조건문을 만족하는 경우와 만족하지 않는 경우가 테스트되도록 한다.
✔검증 기준 사이의 관계

💖테스팅 프로세스
테스팅은 소프트웨어단계의 초기부터 고려되어야 하며, 테스팅 계획>테스팅 설계>테스팅 실행>결과 분석 및 평가의 단계를 거친다.

💖TDD(Test-Driven-Development, 테스트 주도 개발)
TDD는 테스트가 주도가 되는 개발 방식으로, 테스트 코드를 먼저 개발하고 애플리케이션 코드를 개발하는 개발 방식이다.
TDD는 문제 발생시 문제를 쉽고 빠르게 파악할 수 있고, 코드의 모든 부분을 빠짐 없이 검토할 수 있다는 장점이 있다.
Comentários