6.1 테스트 도구 고려 사항
* 테스트 도구
- 하나 이상의 테스팅 활동을 지원하는데 사용할 수 있음
- 종류
· 테스팅에 직접 사용하는 도구 (예 : 테스트 실행 도구, 테스트 데이터 준비 도구)
· 요구사항, TC, 테스트 프로세스, 자동 테스트 스크립트, 테스트 결과, 테스트 데이터, 결함을 관리하고,
테스트 실행 보고와 모니터링을 지원하는 도구
· 분석과 평가에 사용하는 도구
· 테스팅을 지원하는 모든 도구 (이런 의미에서 스프레드시트도 테스트 도구)
6.1.1 테스트 도구의 분류 (K2)
* 정황에 따른 목적
① 반복적인 작업 or 수동으로 진행했을 때 상당한 리소스를 필요로 하는 작업(예 : 테스트 실행, 리그레션 테스팅)을 자동화해서 테스트 활동의 효율성을 높임
② 테스트 프로세스 전반에 걸쳐 수동 테스트 활동을 지원해서 테스트 활동의 효율성을 높임 (1.4절)
③ 테스팅 일관성과 결함 재현성 향상 -> 테스트 활동의 품질을 향상시킴
④ 수동으로 실행할 수 없는 활동을 자동화(예 : 대규모 성능 테스팅)함
⑤ 테스팅의 신뢰성을 향상(예 : 대규모 데이터 비교 자동화 or 동작 시뮬레이션)함
* 테스트 도구가 지원하는 활동에 따른 도구 분류?
- 침입적(Instructive) 도구 : 도구 자체가 테스트의 실제 결과에 영향을 줌.
- 탐사 효과(Probe effect) : 침입적 도구를 사용해 달라진 결과
예 :
성능 테스팅 도구 - 실행하는 추가 명령 때문에 애플리케이션의 실제 반응 시간이 달라질 수 있음
코드 커버리지 도구 - 달성하는 코드 커버리지의 측정치가 달라질 수 있음
- 컴포넌트 or 컴포넌트 통합 테스트 中 개발자에게 더 적절한 도구 -> 아래 표에 (개발자 지원)으로 표기
No | 도구의 분류 | 지원 도구 |
1 | 테스팅 및 테스트웨어 관리 지원 도구 (관리 도구는 SW 수명주기 전체에 걸쳐 모든 테스팅 활동에 사용할 수 있음) |
· 테스트 관리 도구, 애플리케이션 수명 주기 관리 도구(ALM) · 요구사항 관리 도구 (예 : 테스트 대상의 추적성 관리) · 결함 관리 도구 · 형상 관리 도구 · 지속적인 통합 도구 (개발자 지원) |
2 | 정적 테스팅 지원 도구 | · 정적 분석 도구 (개발자 지원) |
3 | 테스트 설계 및 구현 지원 도구 | · 모델 기반 테스팅 도구 · 테스트 데이터 준비 도구 |
4 | 테스트 실행 및 로깅 지원 도구 | · 테스트 실행 도구 (예 : 리그레션 테스트 수행) · 커버리지 도구 (예 : 요구사항 / 코드 커버리지 (개발자 지원)) · 테스트 하네스 (개발자 지원) |
5 | 성능 측정과 동적 분석 지원 도구 | · 성능 테스팅 도구 · 동적 분석 도구 (개발지 지원) |
6 | 특수 목적 테스팅 지원 도구 (非기능적 특징을 커버하기 위한....) |
x |
6.1.2 테스트 자동화의 효과와 리스크 (K1)
* 테스트 실행 지원 도구의 잠재적 가치
① 반복적인 수동 업무의 감소로 시간 절약
(예 : 리그레션 테스트 수행, 환경 구축/ 해체, 같은 테스트 데이터 재입력, 코딩 표준 준수 여부 점검 등)
② 월등한 일관성과 반복성 제공
(예 : 일관성 있는 테스트 데이터 생성, 같은 순서와 간격의 테스트 실행, 요구사항으로부터의 지속적인 테스트 도출)
③ 보다 객관적인 평가 기준 제공 (예 : 정적 테스팅 측정치, 커버리지)
④ 테스팅 관련 정보에 접근이 쉬움 (예 : 테스트 진척도, 결함율, 성능 통계와 그래프)
* 테스팅 지원 도구의 잠재적인 리스크
① 도구에 대한 非현실적인 기대 (예 : 도구의 기능과 사용성)
② 초기 도구 도입에 필요한 시간, 비용, 농력에 대한 과소평가 (예 : 교육, 외부 전문가 비용)
③ 도구로 의미 있고 지속적인 효과를 얻는 데 필요한 시간과 노력을 과소평가
(예 : 테스트 프로세스의 수정과 도 구의 사용법에 대한 지속적인 개선)
④ 도구가 생성하는 테스트 작업 산출물을 유지하기 위한 노력의 과소평가
⑤ 도구에 대한 지나친 의존
(테스트 설계나 실행을 대체한다고 생각 or 수동 테스팅이 더 효과적인 경우에 자동 테스팅 사용)
⑥ 테스트 작업 산출물에 대한 버전의 관리 소홀
⑦ 요구사항 / 형상 / 결함 관리 도구, 다수의 공급 업체에서 제공하는 도구 환경에서
주요 도구 간의 관계와 상호운용성 이슈를 관리하지 않음
⑧ 도구 공급 업체의 폐업, 해당 도구의 판매 중단, 해당 도구가 다른 공급 업체에 매각될 수 있음
⑨ 지원, 업그레이드, 결함 수정에 대한 공급 업체의 부적절한 대응
⑩ 오픈소스 프로젝트는 연기되거나 중단될 수 있음
⑪ 도구가 새로운 플랫폼이나 기술을 지원하지 않음
⑫ 도구의 소유권이 명확하지 않음 (예 : 멘토링, 업데이트 등의 어려움)
6.1.3 테스트 실행 및 테스트 관리 도구 고려 사항 (K1)
* 테스트 실행 도구
- 자동화 테스트 스크립트를 사용해 테스트를 실행함
① 캡처 기반 테스트 접근법 (Capturing test approach)
- 테스터의 수동적인 조작을 녹화해 테스트를 캡처하는 것은 매력적으로 보일 수 있지만
- 이러한 접근 방식은 테스트 스크립트의 수가 많을 경우 적절하지 않음
(미처 예상하지 못한 이벤트가 발생하면 취약함,
시스템의 사용자 인터페이스가 시간이 지남에 따라 바뀌게 되면
스크립트도 계속해서 유지보수를 해 줄 필요가 있음)
② 데이터 주도 테스트 접근법 (Data-driven test approach)
- 테스트 입력값과 기대 결과값을 보통 스프레드시트에 저장하고
더많은 공통 스크립트를 활용해 해당 테스트 데이터를 읽어 들여
동일한 테스트 스크립트를 매번 다른 데이터로 반복적으로 실행함
③ 키워드 주도 테스트 접근법 (Keyword-driven test approach)
- 해야 할 행동을 설명하는 키워드(= 액션 워드)를 공통 스크립트가 처리해 키워드 스크립트를 호출(call)함
- 키워드 스크립트는 연관된 테스트 데이터를 처리함
* 테스트 관리 도구
- 다른 도구나 스프레드시트와 연동해야 하는 이유
① 필요한 정보를 생성하기 위해
② 요구사항 관리 도구에 저장된 요구사항과의 추적성을 지속적으로 유지하기 위해
③ 형상 관리 도구에 저장된 테스트 대상 버전 정보와 연결하기 위해
6.2 도구의 효과적인 사용
6.2.1 도구 선택의 주요 원칙 (K1)
* 조직에 맞는 도구를 선택하는데 고려사항
① 성숙도 수준 평가 (조직의 강점, 약점 등)
② 도구의 지원으로 테스트 프로세스 개선 기회 식별
③ 테스트 대상이 이용하는 기술을 이해해 테스트 대상과 호환 가능한 도구 선택
④ 호환과 통합이 가능한 도구 확인을 위해, 조직에서 이미 사용하고 있는 빌드와 지속적인 통합 도구 이해
⑤ 명확한 요구사항과 객관적인 기준에 맞는 도구 평가
⑥ 도구를 일정 기간 무료로 시험해 볼 수 있는지 여부
⑦ 공급자 평가(교육, 지원, 상용 제품) or 非 상업적(예 : 오픈 소스) 도구 지원 평가
⑧ 조직이 요구하는 도구 사용 코칭과 멘토 요구사항 식별
⑨ 도구를 직접 사용할 사람의 테스팅(테스트 자동화 포함) 역량을 고려한 훈련 수요 확인
⑩ 다양한 라이센스 모델(예 : 상용 제품이나 오픈소스)의 장단점 고려
⑪ 필요 시 구체적인 비즈니스 사례에 근거해 비용 대비 효과 추정
★ 반드시 사전 검증(proof-of-concent)을 진행해야 함!
-> 테스트 대상 SW와 현재 인프라 환경에서 도구가 효과적으로 동작하는지 확인
효율적으로 도구를 사용하는 데 필요한 요구사항을 식별함
6.2.2 도구 도입을 위한 파일럿 프로젝트 (K1)
* 파일럿 프로젝트 : 도구 선택과 사전 검증이 성공적으로 끝난 다음 선택한 도구를 조직에 도입하는 시점
* 파일럿 프로젝트의 목적
① 깊이 있는 도구 지식의 습득, 장단점 모두 이해
② 도구를 기존 프로세스와 프랙티스에 어떻게 적용할지 평가하고 무엇을 변경할지 결정
③ 도구와 테스트 작업 산출물의 사용, 관리, 저장, 유지보수에 대한 기준 결정
(예 : 파일과 테스트를 명명하는 규칙 결정, 코딩 표준 선택, 라이브러리 생성, 테스트 스위트의 모듈성 정의)
④ 목표한 가치를 적절한 비용으로 달성할 수 있는지 평가
⑤ 도구에서 수집하고 보고하기를 희망하는 메트릭을 이해하고
그런 메트릭을 도출하고 보고할 수 있도록 도구를 설정
6.2.3 도구 성공 요인 (K1)
* 조직에 도구의 평가, 구현, 배포, 지속적인 지원을 위한 성공 요인
① 조직의 다른 부서에 도구 사용 전파를 점진적으로 진행
② 도구의 사용법에 맞게 프로세스를 수정하고 개선
③ 도구 사용자에게 교육, 코칭, 멘토링 제공
④ 도구사용에 필요한 지침을 정의 (예 : 사내 자동화 규정)
⑤ 실제 도구 사용에서 얻은 사용법 정보의 수집 방법 구현
⑥ 도구 사용 현황과 성과를 모니터링
⑦ 특정 도구 사용자에게 지원 제공
⑧ 모든 사용자로부터 사용 후 교훈 수집
Sample A
Sample B
Sample C
'IT > ISTQB FL' 카테고리의 다른 글
ISTQB CTFL 합격 후기 (2) | 2024.04.09 |
---|---|
실라버스 제 5 장. 테스트 관리 (0) | 2024.01.07 |
실라버스 제 4 장. 테스트 기법 (0) | 2024.01.07 |
실라버스 제 3 장. 정적 테스팅 (0) | 2024.01.01 |
실라버스 제 2 장. 소프트웨어 개발 수명주기와 테스팅 (0) | 2023.12.31 |