QA ≠ Test

QA(품질 보증)는 개념적인 용어이고, TEST는 QA(품질 보증)를 하기 위한 수단이자 방법이다.

TESTING/ABOUT ISTQB

[2011 실라버스 - Chapter.6] 테스트 지원 도구와 종류에 대해서 알아보자

품생품사(品生品死) 2020. 11. 14. 08:00
반응형

※ "개발자도 알아야 할 소프트웨어 테스팅 실무"를 기반으로 요약 ※ 

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

- 도서 : 개발자도 알아야 할 소프트웨어 테스팅 실무

 

This is ISTQB_001
ISTQB

요약 : iso 표준, 국제 표준 iso, 국내 표준, 표준, istqb, kstqb, 웹 qa, 모바일 qa, 앱 qa, test web

반응형