반응형
※ "개발자도 알아야 할 소프트웨어 테스팅 실무"를 기반으로 요약 ※
Part 6. 테스트 지원 도구
6.1 테스트 도구의 종류
6.1.1 테스트 도구의 분류
✔ 테스트 도구는 지원하는 테스팅 활동에 따라 분류할 수 있다.
6.1.2 테스트 관리 지원도구
✔ 테스팅 전반과 테스트 프로세스 관리를 지원해주는 도구로서 테스트 계획,설계,실행,리포팅,테스트 프로세스 개선등의 활동을 지원한다. 테스트 관리도구 , 인시던트 관리 도구, 요구사항 관리 도구, 형상 관리 도구 등
테스트 관리도구의 특징
- 실행된 테스트와 테스팅 활동 관리를 지원한다.
- 테스트 실행도구와 결함 추적도구 , 요구사항 관리 도구와의 인터페이스 역할을 한다.
- 별도의 버전 관리 기능을 가지거나 혹은 다른 형상 관리도구와의 인터페이스 기능을 가지고 있다.
- 요구사항 명세와 같은 원본 문서와 테스트, 테스트 결과 , 결함 또는 인시던트 간의 추적성을 제공한다.
- 테스트 결과를 기록하고 테스트 진행 상황에 대한 리포트를 생성한다.
- 테스트 대상 정보를 제공하고 테스트 프로세스를 제어하고 개선하기 위해, 테스트 수행과 관련되었거나 테스트 대상과 관련된 정량적인 분석을 지원한다.
인시던트 관리 도구의 특징
- 보고된 인시던트 리포트 간의 우선순위를 정할 수 있다.
- 담당자에게 수정 또는 확인 테스트 등의 임무를 할당 할 수 있다.
- 결함 재수정 요청, 수정완료, 수정연기 등으로 결함 상태를 변경할 수 있다.
요구사항 관리도구
- 요구사항 명세서 저장
- 요구사항의 일관성 및 정의되지 않았거나 누락된 요구사항 확인
- 요구사항의 우선순위를 정할 수 있도록 지원
- 테스트와 요구사항 , 기능 사이의 추적성을 확보할 수 있도록 지원
형상 관리 도구
- 소프트웨어나 테스트웨어의 버전이나 빌드들에 대한 정보를 저장한다.
- 테스트웨어와 소프트웨어 중간 산출물 버전에 대한 추적성을 지원한다.
- 특히, 하나 이상의 형상을 갖는 하드웨어나 소프트웨어 환경에서 개발이 진행될 때 유용하다. 해당 환경의 예는 다양한 버전의 운영체제, 다양한 라이브러리, 컴파일러, 다양한 웹브라우저, 컴퓨터 등이다.
6.1.3 정적 테스팅 지원 도구
리뷰 도구
- 리뷰 프로세스 정보를 저장한다.
- 리뷰 코멘트를 저장하고 서로 의사소통하게 한다.
- 발견된 결함과 노력을 보고한다.
- 리뷰 규칙이나 체크리스트를 참조할 수 있도록 관리한다.
- 문서와 소스 코드 사이의 추적성을 확보할 수 있다.
- 온라인 리뷰를 지원하므로 지역적으로 떨어져 있는 팀들에게 유용하다.
정적 분석 도구
- 코딩 표준을 지킬것을 강제한다.
- 구조와 의존 관계를 보존한다.
- 코드를 쉽게 이해할 수 있도록 지원한다.
모델링 도구
- 소프트웨어 모델의 유효성을 검사할 수 있게 한다.
6.1.4 테스트 설계 지원 도구
테스트 설계 도구
- 코드, 설계 모델 , 사용자 인터페이스 , 요구사항으로부터 테스트 입력값과 테스트 케이스를 생성해 낸다.
- 도구가 생성해 내는 체계적인 테스트 케이스로 테스팅의 완성도를 증가시키고 시간을 절약
- 시스템이나 소프트웨어의 모든 측면을 검증하기에는 충분하지 못하다.
테스트 데이터 준비 도구
- 데이터 베이스 , 파일 , 데이터 전송을 적절히 조작하여 테스트 실행 시 사용할 테스트 데이터를 생성하는 도구이다.
- 실 데이터의 익명성을 보장하여 데이터를 보호하면서도 실제 거의 동일한 데이터로 테스트를 할 수 있다.
- 다량의 데이터가 필요한 경우나 특정 생성 규칙에 맞는 데이터가 필요한 경우에도 유용하게 활용할 수 있다.
6.1.5 테스트 실행 및 로깅 지원 도구
테스트 실행 도구
- 테스트 하네스 도구
- 테스트 대상이 실행되는 환경을 시뮬레이션 함으로써 컴포넌트나 시스템 일부에 대한 테스팅을 가능하게 한다.
- 단위 테스트 프레임워크 도구
- 테스트 실행 프레임워크 중 컴포넌트 테스트 레벨에 포커스를 맞춘 도구를 단위 테스트 프레임워크라고 한다. 이러한 도구는 코드를 개발하는 동안 컴포넌트 테스트를 병렬적으로 수행할 수 있도록 지원한다.
- 테스트 비교자
- 파일이나 데이터 베이스 혹은 테스트 결과의 차이를 비교해 준다.
- 커버리지 측정 도구보안도구
6.1.6 성능과 모니터링 도구
- 동적 분석 도구
- 소프트웨어의 실행 시에만 발생하는 시간 의존성과 메모리 누수와 같은 결함을 검출해낼 수 있다.
- 성능/부하/스트레스 테스팅 도구
- 성능 테스팅은 테스트 환경 준비, 테스트 설계 , 테스트 실행 결과 해석 등을 위해 성능 테스팅 전문가가 필요한 경우가 많다.
- 모니터링 도구
6.1.7 특정 어플리케이션 영역을 위한 도구
- 웹 기반 어플리케이션에 특화된 성능 테스팅 도구
- 특정 개발 플랫폼을 위한 정적 분석 도구
- 보안 테스팅에 특화된 동적 분석 도구
- 임베디드 시스템과 같은 특정 어플리케이션 분야를 위한 상용 도구 스위트
6.1.8 테스팅 도구 이외의 도구
- 테스터는 개발자가 사용하는 도구도 사용할 수 있고 사무용으로 사용하는 도구도 테스팅에 활용 ex) 스프레드시트 , SQL , 리소스 또는 디버깅 도구 사용
6.1.9 상용도구와 오픈소스 도구
- 오픈 소스 도구의 특징
구분 | 오픈 소스 도구 | 상용 도구 |
기술 지원 | 대부분 불가능 | 공급사의 기술 지원 가능 |
도구의 완성도 | 도구에 따라 다름 | 대부분 높음 |
비용 | 무료 | 대부분 고가 |
소스 공개 | 공개 | 비공개 |
사용자 커스터마이징 | 가능 | 불가능 |
교육 및 훈련 | 사용자 스스로 해결 | 공급사의 교육 지원 가능 |
업데이트 주기 | 알 수 없음 | 공급사의 전략 또는 계획 존재 |
유지보수 | 사용자 스스로 해결하거나 관련 커뮤니티 활용 | 공급사의 기술 지원 가능 |
제품 또는 회사 종속성 |
특정 회사나 제품에 대한 족속성 탈피 | 특정회사나 제품에 종속됨 |
문서화 |
대체로 빈약함 | 체계적인 사용자 문서 존재 |
기술 발전의 기여도 | 커뮤니티를 통한 기술 정보 공유로 발전속도가 빠름 | 폐쇄적이고 독점적인 경우가 많음 |
6.2 도구의 효과적인 사용 : 잠재가치와 위험
6.2.1 테스팅 도입의 잠재 이익과 위험
도구 사용의 잠재적 가치
- 반복적인 업무 감소
- 월등한 일관성과 반복성 제공
- 객관적인 평가 제공
- 테스트 또는 테스팅 진행 정보에 대한 쉬운 접근성 제공
도구 사용의 잠재적인 위험
- 도구에 대한 비현실적인 기대
- 도구 도입 초기에 필요한 시간, 비용 , 노력을 과소평가하여 산정
- 도구를 통해 중대하고 지속 가능한 성과를 얻기 위해 필요한 시간이나 노력을 적게 산정하는 것
- 도구에 의해 생성된 테스트 자산을 유지 보수하는데 필요한 노력을 적게 산정하는 것
- 도구에 대한 지나친 의존
6.2.2 도구 유형별 고려사항
- 테스트 실행 도구
- 테스터의 수동적인 조작을 기록하여 테스트를 자동화하는 방식은 매력적으로 보이지만, 이러한 접근 방식은 대규모의 테스트를 자동화하는 데는 적절치 않다. 저장된 스크립트는 각 스크립트마다 특정 데이터와 행위를 선형적으로 표현하고 있다. 따라서 , 이런 종류의 스크립트는 미처 예상하지 못한 이벤트에 취약할 수 있다.
- 성능 테스팅 도구
- 성능 테스팅 도구를 정상적으로 사용하기 위해서는 성능 테스팅을 설계하고 테스트 결과를 해석할 수 있는 전문가가 필요하다.
- 정적 분석 도구
- 도구 사용시 초기에는 필터를 적용하여 불필요한 메시지를 제거하고, 이를 점차 확대 적용하는 것이 효과적인 접근 방식이다.</p
- 테스트 관리 도구
- 테스트 관리도구는 조직의 요구에 맞는 최적화된 형태의 정보를 생성하기 위해 다른 도구나 스트레드시트 등과 연계하여 사용할 필요가 있다. 또한, 보고서는 효과적으로 설계되고 모니터링 되어 보고서의 가치를 전달할 수 있어야 한다.
6.3 도구 도입 및 배포
6.3.1 도구 선택 및 도입
도구 선택을 위한 주요 고려 사항
- 조직의 성숙도, 강점과 약점을 평가한 후 도구 지원으로 테스팅 프로세스를 개선할 수 있는 기회를 발견한다.
- 도구 도입을 위한 명확한 요구사항과 객관적인 도구 평가 기준을 가지고 도입 하고자 하는 도구를 평가한다.
- 도구가 요구되는 기능성을 만족하는지 , 도구가 본래 목표하는 바를 달성하는지 등을 파일럿 프로젝트에 적용하여 입증해 본다.
- 교육 제공과 지원 능력 등을 고려하여 도구 제작 회사나 배포 회사를 평가한다.
- 도구 사용과 관련된 조직 내부 교육과 지도에 대한 요구사항을 식별한다.
6.3.2 파일럿 프로젝트 적용
파일럿 프로젝트의 목적
- 도구와 관련된 상세한 사항을 습득한다.
- 현 프로세스나 업무에 도구를 어떻게 적용할 수 있는지 평가하고 , 도구 적용을 위해 현 프로세스나 업무의 무엇을 변경해야 하는지 결정한다.
- 도구의 사용, 관리, 저장 , 유지 보수하는 표준적인 방식을 결정한다. 예를 들어, 파일이나 테스트 케이스의 명명 규칙을 결정하거나 라이브러리를 만들고 테스트 스위트 모듈방식을 정의한다.
- 합리적인 비용으로 목표하는 성과에 도달할 수 있는지 평가한다.
6.3.3 테스트 자동화
도구를 구입하거나 자체 개발을 통해 테스트를 자동화할 경우 고려해야 할 사항
- 적절한 자동화 대상 프로젝트 선정
- 자동화를 테스트 전략과 계획에 포함
- 자동화 도구 선정에 신중
- 도구에서 요구하는 것에 따라 제품과 테스트 스펙을 공식적으로 변경하도록 준비
- 자동화 테스트 지원 시설 개발 계획 고려 - 자동화 도구 적용범위의 한계로 직접 개발해야 할 부분 존재
- 테스팅을 개발 계획 또는 도구 방식에 맞게 진행하는것 고려
- 상세한 자동화 테스트 지침 필요
- 자동화 도구 및 자동화 테스팅 교육에의 투자 요구
- 도구 전문가 참여
- 자동화 도구 관련 프로세스의 정의와 적용
6.3.4 도구의 배포
도입한 도구를 조직내부에 배포할 때의 성공 요인
- 조직의 나머지 부분에도 도구의 사용을 점진적으로 확대한다.
- 도구의 사용법에 맞게 프로세스를 수정하고 개선한다.
- 새로운 사용자를 위해 교육과 훈련을 한다.
- 사용 가이드라인을 정의한다.
- 도구사용을 통해 교훈을 얻는 방법을 마련한다.
- 도구 사용 현황과 성과를 모니터링 한다.
6.3.5 도구 도입 절차
- 1단계 요구사항 정의
- 2단계 도구 조사
- 3단계 도구 평가
- 4단계 파일럿 시범 적용
- 5단계 도구 선택
- 6단계 도구 도입 및 배포
6.4 도구도입의 성과
- 사람의 실수로 인한 에러 최소화
- 수동으로 하기 어렵거나 불가능한 작업이 도구 지원을 통해 가능해짐
- 신뢰성 있는 정량적 테스트 리포팅
- 테스트 시간의 단축으로 제품 릴리즈 시간 단축 가능
- 더욱 빈번하게 자주 테스트함으로써 신뢰성을 높일 수 있음
- 테스팅 스킬이 높지 않아도 도구를 활용한 테스트 실행 가능
- 테스트 커버리지를 높일 수 있음
- 실행 자동화 도구의 경우 리그레션 테스팅의 효과 가능
- 처리 절차의 자동화는 커뮤니케이션 시간 및 커뮤니케이션 오류 절감에 기여
- 도구에 내장된 기능을 사용함으로써 객관적이고 효과적인 도구 사용 가능
- 매니저의 경우 담당자의 개별 보고에 의존하지 않고 도구의 대시보드를 통해 실시간 현황 파악 가능
Related References
- 도서 : 개발자도 알아야 할 소프트웨어 테스팅 실무
요약 : iso 표준, 국제 표준 iso, 국내 표준, 표준, istqb, kstqb, 웹 qa, 모바일 qa, 앱 qa, test web
반응형
'TESTING > ABOUT ISTQB' 카테고리의 다른 글
[ISTQB] 2021년 연간 시험 일정에 대한 정보입니다 (0) | 2021.02.02 |
---|---|
[2011 실라버스 - Chapter.5] 테스트 관리를 위한 요소들에 대해서 알아보자 (0) | 2020.11.07 |
[2011 실라버스 - Chapter.4] 테스트 설계와 구현 프로세스에 대해서 알아보자 (0) | 2020.11.05 |
[2011 실라버스 - Chapter.3] 정적 기법과 테스트 프로세스에 대해서 알아보자 (0) | 2020.10.30 |
[2011 실라버스 - Chapter.2] 소프트웨어 수명주기 와 테스팅에 대해서 알아보자 (0) | 2020.10.28 |