본문 바로가기

Part.6 테스트 지원 도구 - ISTQB

by 꼬부남편 2021. 1. 8.
반응형

1 테스트 도구의 종류
테스트 도구는 반복적인 테스팅 작업을 자동화함으로써 테스팅 활동의 효율성을 높인다.
대용량의 데이터 비교나, 동작 시뮬레이션 자동화가 가능하기 때문에 신뢰성을 높일 수 있다.

도구 자체가 테스트의 실제 결과에 영향을 미친다는 측면에서 '침입적'이라고 할 수 있다.
어떻게 측정하느냐에 따라 실제 결과와 코드 커버리지의 측정치가 달라질 수 있기 때문인데,
이러한 침입적 도구를 사용하여 달라진 결과를 탐사 효과(Probe effect)라고 한다.

2. 테스트 관리 지원 도구
소프트웨어 수명주기 전체에 걸쳐 모든 테스팅 활동에 사용된다.
테스팅 전반과 테스트 프로세스의 관리를 지원 (계획/설계/리포팅/프로세스 개선 등)

1) 테스트 관리 도구
- 실행된 테스트와 테스팅 활동 관리를 지원한다.
- 테스트 실행도구나 결함 추적 도구, 요구사항 관리 도구와의 인터페이스 역할을 한다.
- 별도의 버전 관리 기능을 가지거나 다른 형상 관리 도구와의 인터페이스 기능을 가지고 있다.
- 요구사항 명세와 같은 원본 문서와 테스트 결과, 결함 또는 인시던트 간의 추적성을 제공한다.
- 테스트 결과를 기록하고 테스트 진행상황에 대한 리포트를 생성한다.
- 테스트 대상 정보를 제공하고, 테스트 프로세서의 제어 및 개선을 위해 정량적인 분석을 지원한다.
* 테스트 관리 도구를 통해 테스트 진척도 그래프를 만들 수 있는데, 추세 그래프 형태로 만들어 앞으로의 상황을 예측해볼 수 있다.

2) 인시던트 관리 도구 (결함 추적 시스템)
결함이나 장애, 인지된 문제와 불일치 등을 포함하는 인시던트 리포트를 저장하고 관리한다.
인시던트 관리도구는 인시던트 중에서도 개발자 수정 및 확인 테스트가 필요한 결함을 주요 관리대상으로 한다.
발견-할당-수정-확인-종료 등의 결함 수명주기를 관리하는 도구

- 보고된 인시던트 리포트 간의 우선순위를 정할 수 있다.
- 담당자에게 수정 또는 확인 테스트 등의 임무를 할당할 수 있다.
- 결함 재수정 요청, 수정완료, 수정연기 등으로 결함 상태를 변경할 수 있다.

3) 요구사항 관리 도구
- 요구사항 명세서를 저장해준다.
- 요구사항의 일관성 및 정의되지 않았거나 누락된 요구사항을 확인 할 수 있다.
- 요구사항의 우선순위를 정할 수 있다.
- TC와 요구사항, 기능 커버리지 사이의 추적성을 확보할 수 있도록 지원한다.

4) 형상 관리 도구
엄밀히는 테스팅 도구가 아니지만, 테스트 대상의 다양한 버전이나 빌드이력을 추적하기 위해 사용된다.
- 테스트웨어의 버전이나 빌드들에 대한 정보를 저장한다.
- 테스트웨어와 소프트웨어 중간산출물 버전에 대한 추적성을 지원한다.
- 하나이상의 형상을 갖는 HW나 SW 환경에서 개발이 진행될 때 유용하다.

3. 정적 테스팅 지원 도구
개발 및 테스팅의 각 단계에서 정적 기법을 적용하는 경우에 사용한다.
가장 큰 장점은 개발 프로세스 초기에 더 많은 결함을 발견하게 하는 비용 효과성이다.

1) 리뷰 도구 
- 리뷰 프로세스 정보를 저장한다.
- 리뷰 코멘트를 저장하여 의사소통을 돕는다.
- 발견된 결함과 노력을 보고한다.
- 리뷰 규칙이나 체크리스트를 참조할 수 있도록 관리한다.
- 문서와 소스코드 사이의 추적성을 확보할 수 있다.
- 온라인 리뷰를 지원하기 때문에 물리적인 거리가 있는 팀이라도 유용하다.

2) 정적 분석 도구
동적 테스팅을 하기 전에 결함을 발견할 수 있도록 지원한다.
소스코드의 복잡도와 같은 메트릭을 도출할 수 있으며, 이는 계획 수립이나 리스크 분석시 유용하다.
주요 목적
- 코딩 표준을 지킬 것을 강제한다.
- 구조와 의존관계를 분석 (링크된 웹페이지의 구조와 의존관계 분석 등)
- 코드를 쉽게 이해할 수 있도록 지원

3) 모델링 도구 (개발자용)


4. 테스트 설계 지원 도구
1) 테스트 설계 도구
코드, 설계 모델(상태, 객체, 데이터), 사용자 인터페이스, 요구사항으로부터 테스트 입력값과 TC를 자동 생성해준다.
테스팅의 완성도를 증가시키고 시간을 절약할 수 있지만 모든 측면을 검증하기에는 충분치 못할 수 있다.
설계 도구에 내장된 설계 기법(페어와이즈/상태전이 등)을 작동 적용하여 일정 수준의 커버리지를 확보하고 신뢰성도 높일 수 있다.

2) 테스트 데이터 준비 도구
DB, 파일, 데이터 전송을 적절히 조작하여 TC를 생성할 수 있는 도구
실 데이터의 익명성을 보장하면서도 실제와 거의 동일한 데이터로 테스트를 해볼 수 있다.
특정 규칙에 맞는 데이터 생성이 필요한 경우 유용하다.

5. 테스트 실행 및 로깅 지원 도구
1) 테스트 실행 도구
스크립트 언어를 이용하여 테스트를 자동 혹은 반자동으로 실행해준다.
동일한 테스트를 반복하거나 유사 테스트 순서를 가지고 각기 다른 모듈을 테스트하는 것이 가능하다.
일반적으로 동적 테스트 결과 비교 기능과 각 테스트 실행 로그를 저장하는 기능이 있다.
탐색적 테스트나 비 스크립트 테스트를 수행하는 동안 로그가 저장되기 때문에 장애 발생시 재현조건을 쉽게 찾을 수 있다.
캡쳐링 테스트는 대용량의 자동화 테스트에는 효과적이지 않다. 예상치 않은 이벤트 발생에 매우 취약

2) 테스트 하네스 도구 (D-개발자 지원)
테스트 대상이 실행되는 환경을 시뮬레이션 하여 컴포넌트나 시스템 일부의 테스팅을 가능하게 한다.
일부 컴포넌트가 준비되지 않아 스텁이나 드라이버로 대체가 필요할 때 유용

3) 단순 테스트 프레임워크 도구 (D-개발자 지원)
테스트 실행 프레임워크 중 컴포넌트 테스트 레벨에 포커스를 맞춘 도구

4) 테스트 비교자
파일이나 DB, 혹은 테스트 결과의 차이를 비교해준다.
자동화 테스트의 경우 결과 비교를 위해 테스트 오라클(기대결과)을 이용하는데, 이때 테스트 비교자는 테스트 오라클을 얼마나 정형화 할 수 있는지에 따라 그 가치가 달라진다.

5) 커버리지 측정 도구 (D-개발자 지원)
커버리지 측정 도구는 사용되는 기법, 대상, 코딩 언어에 따라 침입적이기도, 비침입적이기도 하다.
코드 커버리지 도구는 코드구조가 몇퍼센트 테스트되었는지를 측정해준다.

6) 보안도구
바이러스나 서비스 거부 공격 등을 검사하거나 특정 취약성을 찾는다.

6. 성능과 모니터링 도구
1) 동적 분석 도구 (D-개발자 지원)
SW의 실행 시에만 발생하는 시간 의존성과 메모리 누수 등의 결함을 검출한다.
컴포넌트 및 컴포넌트 통합 테스팅에서 사용되거나 미들웨어를 테스트할 때 사용

2) 성능/부하/스트레스 테스팅 도구
시스템 환경에 대한 부하를 시뮬레이션 한다.
자동 반복 실행에 기초하고 있고 파라미터에 의해 조정된다.

3) 모니터링 도구
엄밀히 테스팅 도구는 아니지만 테스팅 목적으로 사용 가능하다.
리소스의 사용량을 지속적으로 확인하여 보고하거나 예상되는 문제점에 대해 경고를 할 수 있다.
테스트웨어의 빌드나 버전정보를 저장하여 추적성을 확보하기도 한다.

7. 특정 어플리케이션 영역을 위한 도구
특정 유형 APK만을 위해 전문화될 수도 있다.

8. 테스팅 도구 이외의 다른 도구
개발자가 사용하는 도구나 사무용 도구도 사용할 수 있다. (스프레드시트, SQL 등)

9. 상용도구와 오픈소스 도구
사용도구 외에 우수한 오픈 소스를 도입하는 경우 개발 시간 및 비용 단축이 가능하다. 좋은 개발 시스템의 사례로 벤치마킹하기도..

반응형

댓글

최신글 전체

이미지
제목
글쓴이
등록일