UI 기반의 단위 테스트는 사전에 정의된 테스트 시나리오별로 테스트를 수행한다. 테스트를 통해 시스템의 안정성, 견고성, 사용성을 검증할 수 있으며, 사용자에게 편의성을 제공할 수 있다.
2. 단위 테스트의 특징
특징
설명
시나리오 기반 테스트임.
UI 기능의 액티비티별 시나리오 작성 및 테스트
테스트 케이스를 생성함.
테스트 식별자, 항목, 기법 기반으로 생성
다양한 테스트 기법이 존재함.
명세 기반 테스트, 베타 테스트 기법, Record,Replay
2.테스트 케이스 설계 기법
UI 기반의 단위 테스트 수행 시, 효율적인 테스트를 수행하기 위하여 테스트 목적에 따라테스트 케이스를 설계해야 한다.
1. 명세 기반 테스트 케이스 설계
(1) 개념
주어진 명세를 바탕으로 테스트 케이스를 도출하고 테스트 케이스를 실행해 봄으로써 결함이 없음을 보장하는 테스트 기법이다.
(2) 종류
종류
설명
동등분할 테스트
같은 특성을 가지면서 같은 방식으로 처리된다고 판단하는 모든등가 집합에서 대표 입력값을 최소 한 개씩 테스트하는 기법
경계값 분석 테스트
동등분할의 경계에서 결함 발견 확률이 높으므로 결함을 예방하기 위해 경계값까지 포함하여 테스트하는 기법
결정 테이블 테스트
시스템의 동작이 여러 가지 논리적인 조건에 의존적인 경우 테스트하는 기법
상태전이 테스트
시스템의 현재 상황과 이전의 이력을 반영하는 상태 및 그 변화에 따라 동작하는 테스트
2. 경험 기반 테스트 케이스 설계
(1) 개념
이전에 테스트 수행자(또는 테스터)가 다루었던 유사 애플리케이션이나 기술에서의 경험, 직관, 테스터의 기술 능력으로부터 테스트 케이스를 추출하는 기법이다.
(2) 종류
종류
설명
탐색적 테스트
테스트 차터를 기반으로 정해진 시간 내 설계, 수행, 기록 및 학습을 진행하는 휴리스틱한 테스트 기법
오류추정 테스트
가능한 결함을 나열하고, 이런 유형의 결함 또는 오류를 공격할 수 있도록 테스트를 설계하는 기법
체크리스트 기반 테스트
테스트하고 평가해야 할 내용과 경험을 분류하여 나열해 놓은체크리스트를 기반으로 테스트하는 기법
SW 특성에 따른 테스트
ISO 9126-2의 품질특성을 기준으로 경험적으로 테스트 케이스를 도출하는 기법
3. 구조 기반 테스트 케이스 설계
(1) 개념
소스코드와 개발 설계 문서등을 참고하여 SW를 제작한 정보를 참고하여 테스트 사례별로 테스트 케이스를 설계하는 기법이다.
(2) 종류
종류
설명
구문 테스트
프로그램 내 모든 구문을 한번 이상 수행 하도록 테스트 케이스를 설계하는 기법
결정 테스트
프로그램 내부의 각 분기들을 한번 이상 수행하도록 테스트케이스를 설계하는 기법
조건 테스트
프로그램 내의 각 조건들을 보장하기 위하여 조건들이 참이되는 경우와 거짓이 되는 경우를 모두 수행하도록 테스트 케이스를 설계하는 기법
데이터흐름 테스트
프로그램 내부에서 변수들이 값을 할당 받은 지점이나 사용된지점에 따라서 테스트 경로들을 선택한 방법
3.단위 테스트 자동화 툴
1. 단위 테스트 자동화 툴의 필요성
단위 테스트 수행 시 자동화 테스트 도구를 도입하면, 테스트 수행, 평가 및 프로세스에대해 많은 시간과 비용을 줄일 수 있어 테스트의 효율을 높이고, 테스트의 충분성을 나타내는 지표인 코드 커버리지(Code Coverage)를 향상시킬 수 있다.
2. 단위 테스트 자동화 툴의 종류
단위 테스트 수행 시 자동화 테스트 도구를 도입하면, 테스트 수행, 평가 및 프로세스에대해 많은 시간과 비용을 줄일 수 있다
종류
설명
웹 UI 테스트자동화 도구
단순한 API들로 구성된 개발자 중심의 웹 UI 테스트 자동화 도구
현재 Selenium과 통합되어 개발
Driver 변경만으로 다양한 환경에서 테스트 수행 가능
표준 API 지원 통해 개발자 UI 테스트에 최적화
개발자 중심의 UI 테스트 도구인 관계로 초기 학습 시간 및 비용 부담 발생
시나리오에 기인한 테스트 케이스의 작성이 까다롭고 불명확
예제 코드
public class WebUITest{
public static void main(String[] args) {
WebDriver driver = new HtmlUnitDriver();
driver.get("http://www.google.com");
WebElement element = driver.findElement(By.name("q"));
element.sendKeys("Cheese!");
}
종류
설명
이미지 기반 웹 테스트 자동화 프레임워크
이미지 기반 웹 테스트 자동화 프레임워크
IDE(Integrated Development Environment) 환경에서 스크립트를 작성하고 스크립트에 필요한 이미지를 캡처할 수 있으며 실행한 테스트 결과 리포트도 제공
한글 스크립트 사용
크로스 브라우징
자바스크립트 오류 자동 검출
변수, include, 조건문, 반복문 지원
원격 관리 및 실행 지원
리포트, 알림, 동영상 캡처 지원
3. 단위 테스트 자동화 툴 도입 효과
단위 테스트 자동화 툴 도입 시 시스템 기능에 대한 결함 발견 확률이 높아지고, 회귀 테
스트(Regression Test)를 같이 자동화시킨다면 결함 발견의 확률이 한층 더 높아진다. 또
한, 자동화 테스트가 실행되는 동안 테스터가 좀 더 중요한 이슈에 집중하여 업무를 진행
할 수 있고, 테스트 통과를 눈으로 확인하면서 시스템의 품질을 파악하기에도 수월하다