istqb 6-테스트도구-2015-배포판

26
2015, 봄 게임콘텐츠스쿨 이종원 교수 ISTQB 강의노트 8 테스트 도구

Upload: jongwon-lee

Post on 08-Aug-2015

172 views

Category:

Software


7 download

TRANSCRIPT

Page 1: Istqb 6-테스트도구-2015-배포판

2015, 봄

게임콘텐츠스쿨이종원 교수

ISTQB 강의노트 8

테스트 도구

Page 2: Istqb 6-테스트도구-2015-배포판

학습내용v 테스트 도구의 종류v 테스트 도구의 효과적인 사용방법v 테스트 도구의 도입 프로세스

Page 3: Istqb 6-테스트도구-2015-배포판

테스팅 지원 도구v 테스트 도구의 종류

– 테스트 실행 도구, 테스트 데이터 생성 도구 그리고 결과비교 도구와 같이 명확하게 테스팅에 사용되는 도구

– 테스트, 테스트 결과, 데이터, 요구사항, 인시던트, 결과등을 관리하기 위해 사용하고, 테스트 실행 모니터링과리포팅을 위한 것과 같이 테스팅 프로세스 관리를 도와주는 도구

– 탐색(예: 어플리케이션을 위한 파일 작업을 모니터링하는도구)에 사용되는 도구

– 테스팅을 지원하는 모든 도구(스프레드시트 또한 이러한의미에서 테스트 도구이다)

Page 4: Istqb 6-테스트도구-2015-배포판

테스팅 지원 도구의 목적v 반복 업무 자동화나 테스트 계획, 테스트 설계, 테스트 리포

팅 및 모니터링 같은 수동 테스트 활동 지원으로 테스트의효율성 개선

v 수동으로 테스트할 때(예, 정적 테스팅) 필요한 자원을 요구하는 활동 자동화

v 수동으로 실행할 수 없는 활동 자동화(예, 클라이언트-서버어플리케이션의 대규모 성능 테스팅)

v 테스팅의 신뢰성 증가 (예, 대규모 데이터 비교 자동화 또는동작 시뮬레이션)

Page 5: Istqb 6-테스트도구-2015-배포판

테스트 도구의 분류

v 테스팅 활동에 따른 분류§ 테스트 관리 지원 도구§ 테스트 설계 지원 도구§ 테스트 실행 및 로깅 지원 도구§ 성능과 모니터링 도구

Page 6: Istqb 6-테스트도구-2015-배포판

테스트 관리지원도구[1]v 테스트 관리 도구

– 실행된 테스트와 테스팅 활동 관리 지원– 테스트 실행도구, 결함추적 도구, 요구사항 관리 도구와

의 인터페이스 역할– 별도의 버전 관리나 형상관리도구와의 인터페이스– 요구사항 명세 등 문서와 테스트, 테스트 결과, 인시던트

간의 추적성 제공– 테스트 결과 기록 및 리포트 생성– 테스트 대상 정보 제공 및 정량적인 분석 지원

Page 7: Istqb 6-테스트도구-2015-배포판

테스트 관리지원도구[2]v 인시던트 관리 도구

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

Page 8: Istqb 6-테스트도구-2015-배포판

테스트 관리지원도구[3]v 요구사항 관리 도구

– 요구사항 명세서 저장– 요구사항의 일관성 및 정의되지 않았거나 누락된 요구사

항 확인– 요구사항의 우선순위 조정– 테스트와 요구사항, 기능 사이의 추적정 제공

Page 9: Istqb 6-테스트도구-2015-배포판

테스트 관리지원도구[4]v 형상 관리 도구

– 소프트웨어나 테스트웨어의 버전이나 빌드들에 대한 정보 저장

– 테스트웨어와 소프트웨어 중간 산출물 버전에 대한 추적성 제공

– 다양한 버전의 운영체제나 라이브러리, 컴파일러, 웹 브라우저 등 하나 이상의 형상을 갖는 환경에서 유용함

Page 10: Istqb 6-테스트도구-2015-배포판

정적 테스팅 지원도구[1]v 리뷰 도구

– 리뷰 프로세스 정보 저장– 리뷰 코멘트 저장 및 의사소통 지원– 발견된 결함과 노력 보고– 리뷰 규칙이나 체크리스트 참조 기능– 문서와 소스 코드 사이의 추적성 제공– 온라인 리뷰 지원으로 원격 작업 기능 제공

Page 11: Istqb 6-테스트도구-2015-배포판

정적 테스팅 지원도구[2]v 정적 분석 도구(개발자 지원)

– 코딩 표준 준수 강제– 구조와 의존 관계 분석– 코드를 쉽게 이해할 수 있도록 지원– 개발자의 업무를 지원하는 도구

v 모델링 도구(개발자 지원)– 소프트웨어 모델의 유효성 검사– 개발자의 업무를 지원하는 도구

Page 12: Istqb 6-테스트도구-2015-배포판

테스트 설계 지원도구v 테스트 설계 도구

– 코드, 설계 모델, 사용자 인터페이스, 요구사항으로부터테스트 입력값과 테스트 케이스 생성

– 테스트 오라클을 사용하여 기대 결과값 생성

v 테스트 데이터 준비 도구– 데이터베이스, 파일, 데이터 전송을 적절히 조작하여 테

스트 실행 시 사용할 테스트 데이터를 생성

Page 13: Istqb 6-테스트도구-2015-배포판

테스트 실행 및 로깅 지원도구[1]v 테스트 실행 도구

– 스크립트 언어를 이용하여 저장된 입력 값과 기대 결과를 사용하여 테스트를 자동 혹은 반자동으로 실행

v 테스트 하네스 도구(개발자 지원)– 테스트 대상이 실행되는 환경을 시뮬레이션 함으로써 컴

포넌트나 시스템 일부에 대한 테스팅 기능 제공– 테스팅 환경의 일부 컴포넌트가 아직 준비되어 있지 않

고 스텁이나 드라이버로 대체할 필요할 때 사용 가능– 개발자를 지원하는 도구

Page 14: Istqb 6-테스트도구-2015-배포판

테스트 실행 및 로깅 지원도구[2]v 단위 테스트 프레임워크 도구(개발자 지원)

– 컴포넌트 테스트 레벨에 포커스– 코드 개발 동안 병렬적으로 컴포넌트 테스트 수행 지원

v 테스트 비교자– 파일이나 데이터베이스 혹은 테스트 결과의 차이 비교

Page 15: Istqb 6-테스트도구-2015-배포판

테스트 실행 및 로깅 지원도구[3]v 커버리지 측정 도구 (개발자 지원)

– 코드 커버리지 도구는 측정하고자 하는 코드구조가 몇퍼센트 테스트 되었는가를 측정

– 개발자를 지원하는 도구

v 보안 테스팅 도구– 컴퓨터 바이러스나 서비스 거부 공격 등을 검사– 테스트 대상의 보안적 취약성을 테스트

Page 16: Istqb 6-테스트도구-2015-배포판

성능과 모니터링 도구v 동적 분석 도구

– 소프트웨어의 실행 시에만 발생하는 시간 의존성과 메모리 누수와 같은 결함 검출

– 컴포넌트나 컴포넌트 통합 테스팅에 사용v 성능/부하/스트레스 테스팅 도구

– 시스템이 다양한 사용 조건 하에서 어떻게 동작하는가를시뮬레이션하고 모니터링

v 모니터링 도구– 엄밀하게 말하면 테스팅 도구는 아니나 테스팅 목적으로

이용할 수 있어 유용함– 시스템의 리소스 사용량 등 지속적 분석 보고

Page 17: Istqb 6-테스트도구-2015-배포판

특정 응용 영역을 위한 도구v 웹 기반 어플리케이션에 특화된 성능 테스팅 도구v 특정 개발 플랫폼을 위한 정적 분석 도구v 보안 테스팅에 특화된 동적 분석 도구v 임베디드 시스템과 같은 특정 어플리케이션 분야를 위한 도

Page 18: Istqb 6-테스트도구-2015-배포판

도구 사용의 잠재적 가치v 반복적인 업무 감소v 일관성과 반복성 제공v 객관적인 평가 제공v 테스트 진행 정보에 대한 쉬운 접근성 제공

Page 19: Istqb 6-테스트도구-2015-배포판

도구 사용의 잠재적 위험v 도구에 대한 비현실적인 기대v (교육 훈련과 외부 전문가를 포함한) 도구 도입 초기에 필요한 시간, 비용, 노력

을 낮게 산정v 도구를 통해 중요하고 지속 가능한 성과를 얻기 위해 필요한 시간, 노력을 낮게

산정v 도구에 의해 생성된 테스트 자산을 유지 보수하는데 필요한 노력 낮게 산정v 도구에 대한 지나친 의존v 도구 내 테스트 자산의 버전 제어 간과v 요구사항 관리 도구, 버전 제어 도구, 인시던트 관리 도구, 결함 추적 도구 및 다

수의 공급업체로 부터의 도구와 같은 중요한 도구 사이의 관계와 상호 운용성이슈 간과

v 도구 공급업체의 파업, 도구의 폐기 또는 다른 공급업체에 도구 판매의 위험v 지원, 업그레이드, 결함 수정에 대한 공급업체의 빈약한 대응v 오픈 소스/무료 도구 프로젝트의 중단 위험v 새로운 플랫폼 지원에 대한 불능과 같은 예기치 못한 일

Page 20: Istqb 6-테스트도구-2015-배포판

도구 유형별 특별한 고려사항v 테스트 실행 도구

– 테스터의 수동 작업 캡처: 대규모의 자동화 테스트 스크립트에는 부적절

– 데이터 주도 테스팅: 데이터를 스프레드시트에 저장, 테스터는 미리 정의된 스크립트로 테스트 데이터 생성가능

– 키워드 주도 테스팅: 스프레드시트에 수행할 동작을 나타내는 키워드와 테스트 데이터 포함

v 정적분석도구– 경고 메시지 처리

v 테스트 관리 도구– 조직의 요구에 맞는 형식으로 유용한 정보를 생성하기

위해 다른 도구나 스프레드시트와 인터페이스 필요

Page 21: Istqb 6-테스트도구-2015-배포판

도구 선택을 위한 고려사항v 조직의 성숙도, 강점과 약점을 평가한 후, 도구 지원으로 테

스팅 프로세스를 개선할 수 있는지 판단한다.v 도구 도입을 위한 명확한 요구사항과 객관적인 도구 평가

기준을 가지고 도입하려는 도구를 평가한다.v 도구가 요구되는 기능성을 만족하는지를 파일럿 프로젝트에

적용하여 입증해본다.v 도구 제작 회사나 배포 회사의 교육 제공과 지원 능력을 고

려한다.v 도구 사용과 관련된 조직 내부 교육과 지도에 대한 요구사

항을 식별한다.

Page 22: Istqb 6-테스트도구-2015-배포판

도구 도입 절차[1]v 요구사항 정의v 도구 조사v 도구 평가v 파일럿 시범 적용v 도구 선택v 도구 도입 및 배포

Page 23: Istqb 6-테스트도구-2015-배포판

요구사항정의

조직의 능력 평가(기술, 인력, 정책 등)테스트 프로세스 개선 준비도구 도입 요구사항 식별 및 정의

도구조사도입 가능한 도구 조사제약사항 식별 및 검토내부 개발 가능성 검토

도구평가도구 평가 기준 준비기능 및 관련 기술 평가 및 검토도구 및 공급사 평가 실시

파일럿시범적용

파일럿 프로젝트 선정도구 시범 적용 실시요구사항 만족 여부 평가시범 적용을 통한 문제점 도출 및 해결 방안 검토

도구선택도구 선택 기준 준비도구 선택 기준에 의한 도구 선택도구 도입 계획 수립

도구선택 및배포

전담 조직 할당 및 관련 인프라 구축 계획도구 도입에 따른 테스트 프로세스 개선도구 배포 계획 및 교육/훈련 계획 수립도구 설치 및 환경 구축도구 성공 사례 공유

도구 도입 절차[2]

Page 24: Istqb 6-테스트도구-2015-배포판

도구 도입 절차[3]v 파일럿 프로젝트 목적

– 도구와 관련한 상세한 사항을 습득한다.– 기존 프로세스와 업무에 도구를 어떻게 적용할 수 있는

지 평가하고, 무엇을 변경할 필요가 있는지 결정한다.– 도구와 테스트 자산의 사용, 관리, 저장 그리고 유지보수

하는 표준 방식을 결정한다. (예, 파일과 테스트의 명명규칙을 결정, 라이브러리 생성과 테스트 스위트의 모듈화정의)

– 합리적인 비용으로 목표하는 이익에 도달할 수 있는지평가한다.

Page 25: Istqb 6-테스트도구-2015-배포판

도구의 배포의 성공 요인v 조직의 나머지 부분에도 도구의 사용을 점진적으로 확대한

다.v 도구의 사용법에 맞게 프로세스를 수정하고 개선한다.v 새로운 사용자를 위해 교육/훈련을 한다.v 사용 가이드라인을 정의한다.v 실제 사용을 통해 유용한 정보를 얻는 방법을 마련한다.v 도구의 사용과 성과를 모니터링 한다.v 주어진 도구를 위한 테스트 팀에 지원을 제공한다.v 모든 팀에서 교훈을 수집한다.

Page 26: Istqb 6-테스트도구-2015-배포판

도구 도입의 기대성과v 사람의 실수로 인한 오류 최소화v 수동으로 하기 어렵거나 불가능한 작업 가능v 신뢰성 있는 정량적 테스트 보고v 테스트 시간 단축으로 제품 릴리즈 시간 단축 가능v 더욱 자주 테스트함으로써 신뢰성을 높일 수 있음v 테스팅 스킬이 높지 않아도 도구를 활용한 테스트 실행 가능v 테스트 커버리지를 높일 수 있음v 실행 자동화 도구의 경우 리그레션 테스팅의 효과 가능v 처리 절차 자동화로 커뮤니케이션 오류 절감에 기여v 도구에 내장된 기능을 사용함으로써 객관적이고 효과적인 도구 사용 가

능v 테스팅 업무의 인식 개선에 도움