6.1 테스트 도구 고려 사항
- 테스트 도구는 하나 이상의 테스팅 활동을 지원하는데 사용할 수 있으며, 다음과 같은 종류가 있다
- 테스팅에 직접 사용하는 도구 (예: 테스트 실행 도구, 테스트 데이터 준비 도구)
- 요구사항, 테스트 케이스, 테스트 프로세스, 자동 테스트 스크립트, 테스트 결과, 테스트 데이터, 결함을 관리하고 , 테스트 실행 보고와 모니터링을 지원하는 도구
- 분석과 평가 에 사용하는 도구
- 테스팅을 지원하는 모든 도구
6.1.1 테스트 도구의 분류
테스트 도구는 정황에 따라 다음과 같은 하나 이상의 목적이 있다.
- 반복적인 작업이나 수동으로 진행했을 때 상당한 리소스를 필요로 하는 작업(예 : 테스트 실행, 리그레션 테스팅)을 자동화해서 테스트 활동의 효율성을 높인다.
- 테스트 프로세스 전반에 걸쳐 수동 테스트 활동을 지원해서 테스트 활동의 효율성을 높인다.
- 테스팅의 일관성과 결함 재현성 향상으로 테스트 활동의 품질을 향상시킨다.
- 수동으로 실행할 수 없는 활동을 자동화( 예 대규모 성능 테스팅) 한다.
- 테스팅의 신뢰성을 향상 한다.( 예 대규모 데이터 비교 자동화나 동작 시뮬레이션)
도구는 목적, 가격, 라이선스 모델, 사용된 기술에 따라 분류할 수 있다. 본 실바러스에서는 테스트 도구가 지원하는 활동에 따라 도구를 분류 한다.
테스팅 및 테스트웨어 관리 지원 도구 , 정적 테스팅 지원 도구 , 테스트 설계 및 구현 지원 도구, 테스트 실행 및 로깅 지원 도구 , 성능 측정과 동적 분석 지원도구, 특수 목적 테스팅 지원 도구
테스팅 및 테스트웨어 관리 지원 도구 - 테스팅 및 테스트웨어 관리를 지원하는 도구는 다음과 같다.
- 테스트 관리 도구와 애플리케이션 수명 주기 관리 도구
- 요구사항 관리 도구
- 결함 관리 도구
- 형상 관리 도구
- 지속적인 통합 도구(개발자 지원)
정적 테스팅 지원 도구
- 정적 분석 도구
테스트 설계 및 구현 지원 도구 - 테스트 설계와 구현 단계에서 작업 산출물 (예 테스트 케이스, 테스트 프로시저,테스트 데이터)를 유지보수 하는데 도음을 준다.
- 모델 기반 테스팅 도구
- 테스트 데이터 준비 도구
테스트 실행 및 로깅 지원 도구
- 테스트 실행 도구
- 커버리지 도구 커버리지, 코드 커버리지
- 테스트 하네스
성능 측정과 동적 분석 지원 도구 - 성능 측정 및 동적 분석 도구는 성능 및 부하 테스트 활동이 수동으로는 효과적으로 수행할 수 없기 때문에 이를 지원하는 데 필수적이다.
- 성능 테스팅 도구
- 동적 분석 도구
특수 목적 테스팅 지원도구 - 일반적인 테스트 프로세스를 지원하는 도구 외에 비기능적 특징을 커버하기 위한 보다 특정적인 테스팅을 지원하는 도구도 있다.
6.1.2 테스트 자동화의 효과와 리스크
테스트 실행 지원도구 잠재적 가치 ( 샘플 A - Q39)
- 반복적인 수동 업무의 감소로 시간 절약
- 월등한 일관성과 반복성 제공
- 보다 객관적인 평가 기준 제공
- 테스팅 관련 정보에 접근이 쉬움
테스트 지원도구 잠재적 리스크
- 도구에 대한 비현실적인 기대
- 초기 도구 도입에 필요한 시간, 비용, 노력에 대한 과소 평가
- 도구가 생성하는 테스트 작업 산출물을 유지하기 위한 노력의 과소평가
- 도구에 대한 지나친 의존
- 테스트 작업 산출물에 대한 버전의 관리 소홀
- 요구사항 관리도구, 형상 관리 도구, 결함 관리 도구, 다수의 공급 업체에서 제공하는 도구 환경에서 주요 도구 간의 관계와 상호 운용성 이슈를 관리하지 않음
- 도구 공급 업체의 폐업, 해당 도구의 판매 중단, 해당 도구가 다른 공급 업체에 매각될 수 있음.
- 지원, 업그레이드, 결함 수정에 대한 공급 업체의 부적절한 대응
- 오픈소스 프로젝트는 연기되거나 중단될 수 있음.
- 도구가 새로운 플랫폼이나 기술을 지원하지 않음
- 도구가 소유권이 명확하지 않음.
테스트 실행 도구 - 테스트 실행 도구는 자동화 테스트 스크립트를 사용해 테스트를 실행.
- 캡처 기반 테스트 접근법 - 테스터의 수동적인 조작을 녹화해 테스트를 캡처하는 것은 매력적으로 보일 수 있지만 이러한 접근 방식은 테스트 스크립트의 수가 많을경우 적절하지 않다.
- 데이터 주도 테스트 접근법 - 이 접근법은 테스트 입력값과 기대 결과값을 보통 스프레드시트에 저장하고 더 많은 공통 스크립트를 활용해 해당 테스트 데이터를 읽어 들여 동일한 테스트 스크립트를 매번 다른 데이터로 반복적으로 실행한다.
- 키워드 주도 테스트 접근법 - 이 접근법은 해야 할 행동을 설명하는 키워드를 공통 스크립트가 처리해 키워드 스크립트를 호출한다. 키워드 스크립트는 연관된 테스트 데이터를 처리한다.
위에서 언급한 접근법은 스크립트 언어 전문가(테스터, 개발자 또는 테스트 자동화 전문가) 가 필요하다.
테스트 관리 도구 - 아래와 같은 이유로 다른 도구나 스프레드시트와 연동해야 하는 경우가 많다.
- 필요한 정보를 생성하기 위해
- 요구사항 관리 도구에 저장된 요구사항의 추적성을 지속적으로 유지하기 위해
- 형상 관리 도구에 저장된 테스트 대상 버전 정보와 연결하기 위해
6.2 도구의 효과적인 사용
- 조직의 강점, 약점 등 성숙도 수준 평가
- 도구의 지원으로 테스트 프로세스 개선 기회 식별
- 테스트 대상이 이용하는 기술을 이해해 테스트 대상과 호환 가능한 도구 선택
- 호환과 통합이 가능한 도구 확인을 위해, 조직에서 이미 사용하고 있는 빌드와 지속적인 통합 도구 이해
- 명확한 요규사항과 객관적인 기준에 맞는 도구 평가
- 도구를 일정 기간 무료로 시험해 볼 수있는지 여부
- 공급자 평가 또는 비 상업적 도구 지원 평가
- 조직이 요구하는 도구 사용 코칭과 멘토 요구사항 식별
- 도구를 직접 사용할 사람의 테스팅 역량을 고려한 훈련 수요 확인
- 다양한 라이센스 모델의 장단점 고려
- 필요시 구체적인 비즈니스 사례에 근거해 비용 대비 효과 추정
마지막으로 사전검증을 진행 해야 한다. 사전 검증으로 테스트 대상 소프트웨어와 현재 인프라 환경에서 도구가 효과적으로 동작하는지 확인하고 필요한 경우에는 효율적으로 도구를 사용하는데 필요한 요구사항을 식별.
6.2.2 도구 도입을 위한 파일럿 프로젝트 - 도구 선택과 사전 검증이 성공적으로 끝난 다음 선택한 도구를 조직에 도입하는 시점은 주로 파일럿 프로젝트 이다. 파일럿 프로젝트의 목적은 다음과 같다 :
- 깊이 있는 도구 지식의 습득, 장단점 모두 이해
- 도구를 기존 프로세스와 프랙티스에 어떻게 적용할지 평가하고 무엇을 변경할지 결정
- 도구와 테스트 작업 산출물의 사용, 관리, 저장, 유지보수에 대한 기준 결정
- 목표한 가치를 적절한 비용으로 달성할 수 있는지 평가
- 도구에서 수집하고 보고하기를 희망하는 메트릭을 이해하고 그런 메트릭을 도출하고 보고할 수 있도록 도구를 설정
6.2.3 도구 성공 요인
- 조직에 도구의 평가, 구현, 배포, 지속적인 지원을 위한 성공 요인은 다음과 같다.
- 조직의 다른 부서에 도구 사용 전파를 점진적으로 진행
- 도구의 사용법에 맞게 프로세스를 수정하고 개선
- 도구 사용자에게 교육, 코칭, 멘토링 제공
- 도구사용에 필요한 지침을 정의
- 실제 도구 사용에서 얻은 사용법 정보의 수집 방법 구현
- 도구 사용 현황과 성과를 모니터링
- 특정 도구 사용자에게 지원 제공
- 모든 사용자로부터 사용 후 교훈 수집
소프트웨어 개발 수명주기와 도구를 기술적으로, 유기적으로 통합하는게 중요하다. 가령 운영이나 외부 공급업체를 담당하는 조직을 별도로 둔다.
'자격증 > ISTQB' 카테고리의 다른 글
[ISTQB] CTFL 합격 후기! (2) | 2020.06.30 |
---|---|
정리 1 (0) | 2020.06.22 |
[Part 5] 테스트 관리 (0) | 2020.06.14 |
[part 3] 정적 테스팅 (0) | 2020.06.11 |
[Part 2] 소프트웨어 수명주기와 테스팅 (0) | 2020.06.08 |