도구 분류
자원 업무 | 도구 종류 | 설명 |
테스트 관리 | 테스트 관리 도구, 요구사항 관리, 인시던트 관리(이슈 추적), 형상 관리 |
테스트 계획, 노력 추정, 테스트 일정 관련 작업 수행 테스트 진행과 보고 테스트 문서 관리 요구사항과 테스트 케이스 추적성 관리 이슈 등록 및 추적 변경 관리 및 통제 |
정적 테스트 | 리뷰 프로세스 지원 도구, 정적 분석 도구, 모델링 도구 |
표준 코딩 규칙 검사 복잡도 검사 자료 흐름 검사 |
동적 테스트 | 테스트 설계 도구, 테스트 데이터 준비 도구 |
모델이나 소스코드에서 테스트 케이스 생성 테스트 실행에 필요한 데이터 자동 생성 |
테스트 실행 및 로깅 | 테스트 실행 도구, 보안 도구, 테스트 하네스/단위 테스트 프레임워크, 테스트 비교기, 커버리지 측정 도구 |
테스트 케이스 실행 모의 객체 생성 기대 결과와 실행 결과 비교 커버리지 측정 |
성능 및 모니터링 | 동적 분석 도구, 모니터링 도구 성능/스트레스/부하 테스트 도구 |
메모리 누수 검사 부하 발생 성능 측정 |
테스트 자동화는 도구를 사용하여 테스트 프로세스 일부 혹은 전부를 자동화하는 것을 의미
단순하면서 반복적인 업무에서 벗어나 일관성을 유지하며 빠르게 테스트를 수행
한 두번 수행되는 경우에는 자동화할 필요 없음
경우에 따라 매뉴얼 테스트가 더 효과적일 때도 있음
테스트 자동화 분야 및 테스트 도구
SEARCH 모델
Setup, Execution, Analysis, Report, Clean up, Help
동적 테스트 프로세스
- 테스트 설계 및 구현 : 테스트 케이스 및 테스트 절차를 개발하는 프로세스
- 테스트 환경 구축 및 관리 : 테스트 환경 요구사항에 따라 환경을 구축하고 관리하는 프로세스
- 테스트 실행 : 테스트 절차 실행, 결과 저장
- 결함 보고 : 테스트 결과를 분석하여 결함이 식별되었을 때 보고하는 프로세스
테스트 설계 도구
명세 기반 테스트 설계 도구
- 요구사항 명세서를 바탕으로 테스트 케이스의 설계 및 생성을 도와주는 도구
- 요구사항 명세 모델을 입력으로 받아 테스트 케이스 생성
- 마이크로소프트에서 만든 PICT 도구는 입력 인자, 입력 인자의 값, 제약사항을 제공하면 테스트 케이스 조합 생성
구조 기반 테스트 설계 도구
- 코드를 입력으로 받아 테스트 케이스를 생성하는 도구
- 기대 결괏값을 생성하지 않음, 몇몇 구조 기반 테스트 설계 도구는 생성함
- 레거시 시스템을 기반으로 프로젝트를 실행할 때, 이렇게 생성된 테스트 케이스를 리그레션 테스트 케이스로 활용
테스트 환경 도구
테스트를 원활하게 수행하기 위한 가장 기본적이면서 중요한 작업
IaC(Infrastructure as Code)
- 인프라를 코드화 한다
- IaC 개념을 바탕으로 한 도커는 애플리케이션 실행 환경을 자동으로 설치할 수 있는 도구
- 도커는 소프트웨어 컨테이너라는 단위로 패키징
- 컨테이너에는 라이브러리, 미들웨어, 시스템 도구, 런타임 환경 등 애플리케이션 실행 시 필요한 것을 포함
- 개발자 플랫폼에 구애받지 않고 실행될 것임을 확신할 수 있음
- 누구라도 구성 파일 실행을 통해 테스트 환경이나 운영 환경을 손쉽게 구축 가능
테스트 실행 도구
Record&Playback : 테스트 케이스를 컴퓨터가 실행할 수 있는 스크립트로 변환하는 방법 중 대표적인 것
Katalon Studio는 Record&Playback 기능을 제공하는 도구
선형 프레임워크
- 스크립트를 작성하는 가장 간단한 형태
- 모듈과 같은 스크립트를 구조화하는 수단을 제공하지 않고, 테스트 단계를 순차적인 흐름으로 실행
- 프로그래밍 지식이 필요하지 않음
- 테스트 케이스를 쉽게 작성할 수 있음
- 유지보수하기 어려움
- 테스트가 기록되는 시점과 조건이 조금이라도 다르면 테스트가 작동되지 않음
- 데이터가 스크립트에 직접적으로 기록되어 다양한 데이터를 사용하기 어려움
모듈 기반 프레임워크
- 스크립트를 모듈화할 수 있는 여러 수단을 제공
- 하나의 큰 스크립트를 유지가 용이한 여러 개의 작은 스크립트로 분할하여 관리하는 것이 가능
- 여러 스크립트에서 공통적으로 필요로 하는 스크립트를 개발하는 비용을 줄임
- 애플리케이션 변경 시 관련된 스크립트만 변경
- 스크립트가 통과되는 경우와 통과되지 않은 경우를 구분하여 작성 가능
- 스크립트 작성 시 프로그래밍 지식이 요구됨
- 데이터가 스크립트에 직접적으로 기록되어 다양한 데이터를 사용하여 테스트하기 어려움
데이터 주도 프레임워크
- 테스트에 사용되는 데이터를 테스트 스크립트의 로직과 분리하여 보관하는 프레임워크
- 다양한 데이터를 사용하여 테스트
- 데이터 파일 관리가 용이
- 스크립트를 작성할 때 프로그래밍 지식이 요구됨
- 데이터 파일 관리가 요구됨
- 데이터 검증 요구
키워드 주도 프레임워크
- 테스트 케이스와 애플리케이션 간 결합을 줄여서 애플리케이션 변경돼도 테스트 케이스에 영향 X
- 키워드는 애플리케이션을 테스트 시 요구되는 액션이나 단계를 캡슐화하는 테스트 케이스를 구성하는 빌딩 블록
- 테스트 설계와 자동화 분리, 테스트 케이스 유지보수 용이, 키워드 재사용
- 테스트 케이스를 설계할 때 프로그래밍 지식이 요구되지 않음
- 기술적인 관점이 아닌 비즈니스 관점에서 테스트
- 프레임워크 구축 시 자동화 지식과 기술이 있는 전문화된 테스트 자동화 인력 요구
- 테스트 라이브러리를 구성하는 등의 높은 초기 비용
이슈 관리 도구
과거에는 버그 추적 도구라고 부름
이슈는 시스템 품질을 악화시키고 사용자 불만족을 유발하는 원인이 됨
- 신규 상태 : 식별된 결함이 보고된 상태
- 진행 상태 : 개발자가 지시된 결함을 해결하기 위해 소스 코드를 수정
- 해결 상태 : 개발자에게서 지시된 결함이 해결되었다는 보고를 받은 상태, 재테스트를 통해 확인.
- 완료 상태 : 재테스트를 통해 결함이 해결된 것을 확인한 상태
Redmine(Ruby), Jira(Java), Mantis(PHP), Trac(Python), Yona(Java)
테스트 도구 선정
- 테스트 조직 및 프로세스 상황에 따라 반자동화 또는 일부 자동화를 고려할 필요가 있음
- UI 테스트를 위한 테스트 케이스가 많아질수록 문제가 발생할 가능성이 커짐
- UI 변경 시 테스트 스크립트도 변경해야 함. 제때 변경하지 않으면 거짓 양성이 나타남.
거짓 양성 : 실제 결함이 아닌데 결함으로 잘못 판단한 경우
- 각 테스트 타입이 차지하는 영역의 넓이는 투자 대비 효과(ROI)와 자동화해야 하는 양을 의미
- 새로운 테스트 케이스를 개발할 때 UI나 통합 테스트 케이스 형태로 개발하는 대신 가능한 한 단위 테스트 케이스로 개발하는 것을 의미
- 단위 테스트, 통합테스트 케이스만으로 부족할 때 UI 테스트 케이스 개발
- 요구사항 정의 : 테스트 도구에 대한 요구사항을 식별하여 정의
- 도구 조사 : 요구사항을 고려하여 상업용 도구, 오픈소스 등을 조사, 자체 개발 가능성 검토
- 도구 평가 : 평가 기준을 준비하여 도구가 요구사항에 얼마나 부합한지 평가
도구 공급자의 명성, 사후 관리 및 도구 갱신 주기 등 여러 요소 고려 - 파일럿 프로젝트 : 도구의 시험판 버전 사용 또는 파일런 프로젝트 수행으로 도구 품질 평가
도구의 문제점 도출, 해결방안 검토 - 도구 선정 : 도구 도입에 따른 테스트 프로세스의 개선 효과 등을 고려하여 비용 대비 이득을 추정하여 도구 선정
- 도구 도입 : 도구 도입에 따른 테스트 프로세스 개선, 도구 배포 계획 수립, 교육 및 훈련 계획 수립
'CSTS' 카테고리의 다른 글
9. 구조 기반 테스트 (0) | 2021.02.27 |
---|---|
8. 정적 테스트 (0) | 2021.02.27 |
6. 소프트웨어 생명 주기 모델과 테스트 (0) | 2021.02.26 |
5. 위험 기반 테스트 (1) | 2021.02.25 |
4. 품질 특성과 비기능 테스트 (2) | 2021.02.24 |