Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바의 정석 기초편 ch1
- 스프링 mvc1 - 서블릿
- 자바의 정석 기초편 ch9
- jpa 활용2 - api 개발 고급
- 코드로 시작하는 자바 첫걸음
- 자바의 정석 기초편 ch11
- 스프링 mvc1 - 스프링 mvc
- 2024 정보처리기사 시나공 필기
- 스프링 입문(무료)
- jpa - 객체지향 쿼리 언어
- 자바의 정석 기초편 ch6
- 자바 기본편 - 다형성
- 게시글 목록 api
- 스프링 mvc2 - 로그인 처리
- 자바의 정석 기초편 ch13
- 자바의 정석 기초편 ch12
- 자바의 정석 기초편 ch4
- 자바의 정석 기초편 ch2
- 스프링 mvc2 - 타임리프
- @Aspect
- 2024 정보처리기사 수제비 실기
- 스프링 mvc2 - 검증
- 자바의 정석 기초편 ch7
- 자바의 정석 기초편 ch8
- 자바의 정석 기초편 ch5
- 자바의 정석 기초편 ch3
- 스프링 고급 - 스프링 aop
- 스프링 db1 - 스프링과 문제 해결
- 스프링 db2 - 데이터 접근 기술
- 자바의 정석 기초편 ch14
Archives
- Today
- Total
나구리의 개발공부기록
4장 - 애플리케이션 테스트 관리 | 섹션22. 테스트 케이스/테스트 시나리오/테스트 오라클, 섹션23. 테스트 자동화 도구 본문
2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/필기 2강 - 소프트웨어 개발
4장 - 애플리케이션 테스트 관리 | 섹션22. 테스트 케이스/테스트 시나리오/테스트 오라클, 섹션23. 테스트 자동화 도구
소소한나구리 2024. 4. 28. 18:422024년도 시나공 필기 책 내용 정리
섹션22. 테스트 케이스/테스트 시나리오/테스트 오라클
1.테스트 케이스(Test Case)
- 구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 입력 값, 실행 조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서
- 명세 기반 테스트의 설계 산출물에 해당됨
- 테스트 케이스를 미리 설계하면 테스트 오류를 방지할 수 있고 테스트 수행에 필요한 인력, 시간 등의 낭비를 줄일 수 있음
- 테스트 목표와 방법을 설정한 후 작성하고 시스템 설계 단계에서 작성하는 것이 가장 이상적
2. 테스트 케이스 작성 순서
1. 테스트 계획 검토 및 자료 확보 | 테스트 계획서를 재검토하여 테스트 대상 범위 및 접근 방법등을 이해 시스템 요구사항과 기능 명세서를 검토하고 테스트 대상 시스템의 정보를 확보 |
2. 위험 평가 및 우선순위 결정 | 결함의 위험 정도에 따른 우선순위를 결정하고 어느 부분에 초점을 맞춰 테스트를 할지 결정 |
3. 테스트 요구사항 정의 | 시스템에 대한 사용자 요구사항이나 테스트 대상을 재검토하고, 테스트 특성, 조건, 기능 등을 분석 |
4. 테스트 구조 설계 및 테스트 방법 결정 | 테스트 케이스의 형식과 분류 방법을 결정 테스트 절차, 장비, 도구, 테스트 문서화 방법을 결정 |
5. 테스트 케이스 정의 | 요구사항에 따라 테스트 케이스를 작성하고 입력 값, 실행 조건, 예상 결과 등을 기술 |
6. 테스트 케이스 타당성 확인 및 유지 보수 | 소프트웨어의 기능 또는 환경 변화에 따라 테스트 케이스를 갱신 테스트 케이스의 유용성을 검토 |
3. 테스트 시나리오(Test Scenario)
- 테스트 케이스를 적용하는 순서에 따라 여러개의 테스트 케이스들을 묶은 집합, 테스트 케이스들을 적용하는 구체적인 절차를 명세한 문서
- 테스트 순서에 대한 구체적인 절차, 사전 조건, 입력 데이터 등이 설정되어 있음
- 테스트 시나리오를 통해 테스트 순서를 미리 정함으로써 테스트 항목을 빠짐없이 수행할 수 있음
4. 테스트 시나리오 작성 시 유의 사항
- 시스템별, 모듈별, 항목별 등과 같이 여러 개의 시나리오로 분리하여 작성해야 함
- 사용자의 요구사항과 설계 문서 등을 토대로 작성해야 함
- 각각의 테스트 항목은 식별자 번호, 순서 번호, 테스트 데이터, 테스트 케이스, 예상 결과, 확인 등을 포함해서 작성해야 함
- 유스케이스(Use Case)간 업무 흐름이 정상적인지를 테스트할 수 있도록 작성해야 함
- 개발된 모듈 또는 프로그램 간의 연계가 정상적으로 동작하는지 테스트할 수 있도록 작성 해야함
5. 테스트 오라클(Test Oracle)
- 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 대입하여 비교하는 기법 및 활동
- 결과를 판단하기 위해 테스트 케이스에 대한 예상 결과를 계산하거나 확인
- 제한된 검증 : 모든 테스트 케이스에 적용할 수 없음
- 수학적 기법 : 테스트 오라클의 값을 수학적 기법을 이용하여 구할 수 있음
- 자동화 기능 : 테스트 대상 프로그램의 실행, 결과 비교, 커버리지 측정 등을 자동화 할 수 있음
- 참(True)오라클, 샘플링(Sampling)오라클, 추정(Heuristic)오라클, 일관성(Consistent)검사 오라클 등이 있음
6. 테스트 오라클의 종류
- 항공기, 은행, 발전소 소프트웨어 등 미션 크리티컬한 업무에 사용 -> 참 오라클
- 일반적인 업무, 게임, 오락 등에 사용 -> 샘플링, 추정 오라클
참(True)오라클 | 모든 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하는 오라클로 발생된 모든 오류를 검출할 수 있음 |
샘플링(Sampling)오라클 | 특정한 몇몇 테스트 케이스의 입력 값들에 대해서만 기대하는 결과를 제공하는 오라클 |
추정(Heuristic)오라클 | 샘플링 오라클을 개선한 오라클 측정 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하고 나머지 입력 값들에 대해서는 추정으로 처리하는 오라클 |
일관성(Consistent)검사 오라클 | 애플리케이션의 변경이 있을 때, 테스트 케이스의 수행 전과 수행 후의 결과 값이 동일한지를 확인하는 오라클 |
섹션23. 테스트 자동화 도구
1. 테스트 자동화의 개요
- 사람이 반복적으로 수행하던 테스트 절차를 스크립트 형태로 구현하는 자동화 도구를 적용함으로써 쉽고 효율적으로 테스트를 수행할 수 있도록 한 것
- 휴먼 에러를 줄이고 테스트의 정확성을 유지하면서 테스트의 품질을 향상 시킬 수 있음
2. 테스트 자동화 도구의 장/단점
장점 | 테스트 데이터의 재입력, 재구성 같은 반복적인 작업을 자동화 함으로써 인력 및 시간을 줄일 수 있음 다중 플랫폼 호환성, 소프트웨어 구성, 기본 테스트 등 향상된 테스트 품질을 보장 사용자의 요구사항 등을 일관성 있게 검증할 수 있음 테스트 결과에 대한 객관적인 평가 기준을 제공 테스트 결과를 그래프 등 다양한 표시 형태로 제공 UI가 없는 서비스도 정밀 테스트가 가능 |
단점 | 테스트 자동화 도구의 사용 방법에 대한 교육 및 학습이 필요 자동화 도구를 프로세스 단계별로 적용하기 위한 시간, 비용, 노력이 필요 비공개 상용 도구의 경우 고가의 추가 비용이 필요함 *비공개 상용 도구 - 특정 기업체 전용으로 개발되어 독점 공급되는 소프트웨어 |
3. 테스트 자동화 수행 시 고려사항
- 테스트 절차를 고려하여 재사용 및 측정이 불가능한 테스트 프로그램을 제외
- 모든 테스트 과정을 자동화 할 수 있는 도구는 없으므로 용도에 맞는 적절한 도구를 선택하여 사용
- 자동화 도구의 환경 및 습득 기간을 고려해서 프로젝트 일정을 계획
- 테스트 엔지니어의 투입 시기가 늦어지면 프로젝트의 이해 부족으로 인해 불완전한 테스트를 초래할 수 있어 반드시 프로젝트 초기에 테스트 엔지니어의 투입 시기를 계획 해야 함
4. 테스트 자동화 도구의 유형
정적 분석 도구 (Static Analysis Tools) |
프로그램을 실행하지 않고 분석하는 도구 소스 코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함 등을 발견하기 위해 사용됨 테스트를 수행하는 사람이 작성된 소스 코드를 이해하고 있어야만 분석이 가능 |
테스트 케이스 생성 도구 (Test Case Generation Tools) |
자료 흐름도 : 자료 원시 프로그램을 입력받아 파싱한 후 자료 흐름도를 작성 기능 테스트 : 주어진 기능을 구동시키는 모든 가능한 상태를 파악하여 이에 대한 입력을 작성 입력 도메인 분석 : 원시 코드의 내부를 참조하지 않고, 입력 변수의 도메인을 분석하여 테스트 데이터를 작성 랜덤 테스트 : 입력 값을 무작위로 추출하여 테스트 |
테스트 실행 도구 (Test Execution Tools) |
스크립트 언어를 사용하여 테스트를 실행하는 방법으로 테스트 데이터와 테스트 수행 방법등이 포함된 스크립트를 작성한 후 실행 데이터 주도 접근 방식 - 스프레드시트에 테스트 데이터를 저장하고 이를 읽어 실행하는 방식 - 다양한 테스트 데이터를 동일한 테스트 케이스로 반복하여 실행할 수 있음 - 스크립트에 익숙하지 않은 사용자도 미리 작성된 스크립트에 테스트 데이터만 추가하여 테스트 할 수 있음 키워드 주도 접근 방식 - 스프레드시트에 테스트를 수행할 동작을 나타내는 키워드와 테스트 데이터를 저장하여 실행하는 방식 - 키워드를 이용하여 테스트를 정의할 수 있음 |
성능 테스트 도구 (Performance Test Tools) |
애플리케이션의 처리량, 응답 시간, 경과 시간, 자원 사용률 등을 인위적으로 적용한 가상의 사용자를 만들어 테스트를 수행함으로써 성능의 목표 달성 여부를 확인 |
테스트 통제 도구 (Test Control Tools) |
테스트 계획 및 관리, 테스트 수행, 결함 관리 등을 수행하는 도구 종류에는 형상 관리도구, 결함 추적/관리 도구 등이 있음 |
테스트 하네스 도구 (Test Harness Tools) |
애플리케이션의 컴포넌트 및 모듈을 테스트 하는 환경의 일부분으로 테스트를 지원하기 위해 생성된 코드와 데이터를 의미 테스트 하네스 도구는 테스트가 실행될 환경을 시뮬레이션 하여 컴포넌트 및 모듈이 정상적으로 테스트되도록 함 |
테스트 하네스 도구(Test Harness)의 구성요소
- 테스트 드라이버(Test Driver) : 테스트 대상의 하위모듈을 호출하고 매개 변수를 전달하고 모듈 테스트 수행 후의 결과를 도출하는 도구
- 테스트 스텁(Test Stub) : 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로, 일시적으로 필요한 조건말을 가지고 있는 테스트용 모듈
- 테스트 슈트(Test Suites) : 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스의 집합
- 테스트 케이스(Test Case) : 사용자의 요구사항을 정확하게 준수했는지 확인하기 위한 입력 값, 실행 조건, 기대 결과 등으로 만들어진 테스트 항목의 명세서
- 테스트 스크립트(Test Script) : 자동화된 테스트 실행 절차에 대한 명세서
- 목 오브젝트(Mock Object) : 사전에 사용자의 행위를 조건부로 입력해 두면, 그 상황에 맞는 예정된 행위를 수행하는 객체
5. 테스트 수행 단계별 테스트 자동화 도구
테스트 단계 | 자동화 도구 | 설명 |
테스트 계획 | 요구사항 관리 | 사용자의 요구사항 정의 및 변경 사항 등을 관리하는 도구 |
테스트 분석/ 설계 | 테스트 케이스 생성 | 테스트 기법에 따른 테스트 데이터 및 테스트 케이스 작성을 지원하는 도구 |
테스트 수행 | 테스트 자동화 | 테스트의 자동화를 도와주는 도구로 테스트의 효율성을 높임 |
정적 분석 | 코딩 표준, 런타임 오류등을 검증하는 도구 | |
동적 분석 | 대상 시스템의 시뮬레이션을 통해 오류를 검출하는 도구 | |
성능 테스트 | 가상의 사용자를 생성하여 시스템의 처리 능력을 측정하는 도구 | |
모니터링 | CPU, Memory 등과 같은 시스템 자원의 상태 확인 및 분석을 지원하는 도구 | |
테스트 관리 | 커버리지 분석 | 테스트 완료 후 테스트의 충분성 여부 검증을 지원하는 도구 |
형상 관리 | 테스트 수행에 필요한 다양한 도구 및 데이터를 관리하는 도구 | |
결함 추적/관리 | 테스트 시 발생한 결함 추적 및 관리 활동을 지원하는 도구 |
'2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비) > 필기 2강 - 소프트웨어 개발' 카테고리의 다른 글
4장 - 애플리케이션 테스트 관리 핵심 요약 (0) | 2024.04.28 |
---|---|
4장 - 애플리케이션 테스트 관리 | 섹션24. 결함 관리, 섹션25. 복잡도, 섹션26. 애플리케이션 성능개선 (1) | 2024.04.28 |
4장 - 애플리케이션 테스트 관리 | 섹션20. 개발 단계에 따른 애플리케이션 테스트, 섹션21. 통합 테스트 (0) | 2024.04.28 |
4장 - 애플리케이션 테스트 관리 | 섹션17. 애플리케이션 테스트, 섹션18. 애플리케이션 테스트의 분류, 섹션19. 테스트 기법에 따른 애플리케이션 테스트 (1) | 2024.04.28 |
3장 - 제품 소프트웨어 패키징 핵심 요약 (0) | 2024.04.28 |