3. 테스팅 지원 도구
v 테스트 도구의 종류
– 테스트 실행 도구, 테스트 데이터 생성 도구 그리고 결과
비교 도구와 같이 명확하게 테스팅에 사용되는 도구
– 테스트, 테스트 결과, 데이터, 요구사항, 인시던트, 결과
등을 관리하기 위해 사용하고, 테스트 실행 모니터링과
리포팅을 위한 것과 같이 테스팅 프로세스 관리를 도와
주는 도구
– 탐색(예: 어플리케이션을 위한 파일 작업을 모니터링하는
도구)에 사용되는 도구
– 테스팅을 지원하는 모든 도구(스프레드시트 또한 이러한
의미에서 테스트 도구이다)
4. 테스팅 지원 도구의 목적
v 반복 업무 자동화나 테스트 계획, 테스트 설계, 테스트 리포
팅 및 모니터링 같은 수동 테스트 활동 지원으로 테스트의
효율성 개선
v 수동으로 테스트할 때(예, 정적 테스팅) 필요한 자원을 요구
하는 활동 자동화
v 수동으로 실행할 수 없는 활동 자동화(예, 클라이언트-서버
어플리케이션의 대규모 성능 테스팅)
v 테스팅의 신뢰성 증가 (예, 대규모 데이터 비교 자동화 또는
동작 시뮬레이션)
5. 테스트 도구의 분류
v 테스팅 활동에 따른 분류
§ 테스트 관리 지원 도구
§ 테스트 설계 지원 도구
§ 테스트 실행 및 로깅 지원 도구
§ 성능과 모니터링 도구
6. 테스트 관리지원도구[1]
v 테스트 관리 도구
– 실행된 테스트와 테스팅 활동 관리 지원
– 테스트 실행도구, 결함추적 도구, 요구사항 관리 도구와
의 인터페이스 역할
– 별도의 버전 관리나 형상관리도구와의 인터페이스
– 요구사항 명세 등 문서와 테스트, 테스트 결과, 인시던트
간의 추적성 제공
– 테스트 결과 기록 및 리포트 생성
– 테스트 대상 정보 제공 및 정량적인 분석 지원
7. 테스트 관리지원도구[2]
v 인시던트 관리 도구
– 보고된 인시던트 리포트 간의 우선순위 조정
– 담당자에게 수정 또는 확인테스트 등의 임무 할당
– 결함 재수정 요청, 수정완료, 수정연기 등 결함 상태 변경
8. 테스트 관리지원도구[3]
v 요구사항 관리 도구
– 요구사항 명세서 저장
– 요구사항의 일관성 및 정의되지 않았거나 누락된 요구사
항 확인
– 요구사항의 우선순위 조정
– 테스트와 요구사항, 기능 사이의 추적정 제공
9. 테스트 관리지원도구[4]
v 형상 관리 도구
– 소프트웨어나 테스트웨어의 버전이나 빌드들에 대한 정
보 저장
– 테스트웨어와 소프트웨어 중간 산출물 버전에 대한 추적
성 제공
– 다양한 버전의 운영체제나 라이브러리, 컴파일러, 웹 브
라우저 등 하나 이상의 형상을 갖는 환경에서 유용함
10. 정적 테스팅 지원도구[1]
v 리뷰 도구
– 리뷰 프로세스 정보 저장
– 리뷰 코멘트 저장 및 의사소통 지원
– 발견된 결함과 노력 보고
– 리뷰 규칙이나 체크리스트 참조 기능
– 문서와 소스 코드 사이의 추적성 제공
– 온라인 리뷰 지원으로 원격 작업 기능 제공
11. 정적 테스팅 지원도구[2]
v 정적 분석 도구(개발자 지원)
– 코딩 표준 준수 강제
– 구조와 의존 관계 분석
– 코드를 쉽게 이해할 수 있도록 지원
– 개발자의 업무를 지원하는 도구
v 모델링 도구(개발자 지원)
– 소프트웨어 모델의 유효성 검사
– 개발자의 업무를 지원하는 도구
12. 테스트 설계 지원도구
v 테스트 설계 도구
– 코드, 설계 모델, 사용자 인터페이스, 요구사항으로부터
테스트 입력값과 테스트 케이스 생성
– 테스트 오라클을 사용하여 기대 결과값 생성
v 테스트 데이터 준비 도구
– 데이터베이스, 파일, 데이터 전송을 적절히 조작하여 테
스트 실행 시 사용할 테스트 데이터를 생성
13. 테스트 실행 및 로깅 지원도구[1]
v 테스트 실행 도구
– 스크립트 언어를 이용하여 저장된 입력 값과 기대 결과
를 사용하여 테스트를 자동 혹은 반자동으로 실행
v 테스트 하네스 도구(개발자 지원)
– 테스트 대상이 실행되는 환경을 시뮬레이션 함으로써 컴
포넌트나 시스템 일부에 대한 테스팅 기능 제공
– 테스팅 환경의 일부 컴포넌트가 아직 준비되어 있지 않
고 스텁이나 드라이버로 대체할 필요할 때 사용 가능
– 개발자를 지원하는 도구
14. 테스트 실행 및 로깅 지원도구[2]
v 단위 테스트 프레임워크 도구(개발자 지원)
– 컴포넌트 테스트 레벨에 포커스
– 코드 개발 동안 병렬적으로 컴포넌트 테스트 수행 지원
v 테스트 비교자
– 파일이나 데이터베이스 혹은 테스트 결과의 차이 비교
15. 테스트 실행 및 로깅 지원도구[3]
v 커버리지 측정 도구 (개발자 지원)
– 코드 커버리지 도구는 측정하고자 하는 코드구조가 몇
퍼센트 테스트 되었는가를 측정
– 개발자를 지원하는 도구
v 보안 테스팅 도구
– 컴퓨터 바이러스나 서비스 거부 공격 등을 검사
– 테스트 대상의 보안적 취약성을 테스트
16. 성능과 모니터링 도구
v 동적 분석 도구
– 소프트웨어의 실행 시에만 발생하는 시간 의존성과 메모
리 누수와 같은 결함 검출
– 컴포넌트나 컴포넌트 통합 테스팅에 사용
v 성능/부하/스트레스 테스팅 도구
– 시스템이 다양한 사용 조건 하에서 어떻게 동작하는가를
시뮬레이션하고 모니터링
v 모니터링 도구
– 엄밀하게 말하면 테스팅 도구는 아니나 테스팅 목적으로
이용할 수 있어 유용함
– 시스템의 리소스 사용량 등 지속적 분석 보고
17. 특정 응용 영역을 위한 도구
v 웹 기반 어플리케이션에 특화된 성능 테스팅 도구
v 특정 개발 플랫폼을 위한 정적 분석 도구
v 보안 테스팅에 특화된 동적 분석 도구
v 임베디드 시스템과 같은 특정 어플리케이션 분야를 위한 도
구
18. 도구 사용의 잠재적 가치
v 반복적인 업무 감소
v 일관성과 반복성 제공
v 객관적인 평가 제공
v 테스트 진행 정보에 대한 쉬운 접근성 제공
19. 도구 사용의 잠재적 위험
v 도구에 대한 비현실적인 기대
v (교육 훈련과 외부 전문가를 포함한) 도구 도입 초기에 필요한 시간, 비용, 노력
을 낮게 산정
v 도구를 통해 중요하고 지속 가능한 성과를 얻기 위해 필요한 시간, 노력을 낮게
산정
v 도구에 의해 생성된 테스트 자산을 유지 보수하는데 필요한 노력 낮게 산정
v 도구에 대한 지나친 의존
v 도구 내 테스트 자산의 버전 제어 간과
v 요구사항 관리 도구, 버전 제어 도구, 인시던트 관리 도구, 결함 추적 도구 및 다
수의 공급업체로 부터의 도구와 같은 중요한 도구 사이의 관계와 상호 운용성
이슈 간과
v 도구 공급업체의 파업, 도구의 폐기 또는 다른 공급업체에 도구 판매의 위험
v 지원, 업그레이드, 결함 수정에 대한 공급업체의 빈약한 대응
v 오픈 소스/무료 도구 프로젝트의 중단 위험
v 새로운 플랫폼 지원에 대한 불능과 같은 예기치 못한 일
20. 도구 유형별 특별한 고려사항
v 테스트 실행 도구
– 테스터의 수동 작업 캡처: 대규모의 자동화 테스트 스크
립트에는 부적절
– 데이터 주도 테스팅: 데이터를 스프레드시트에 저장, 테
스터는 미리 정의된 스크립트로 테스트 데이터 생성가능
– 키워드 주도 테스팅: 스프레드시트에 수행할 동작을 나타
내는 키워드와 테스트 데이터 포함
v 정적분석도구
– 경고 메시지 처리
v 테스트 관리 도구
– 조직의 요구에 맞는 형식으로 유용한 정보를 생성하기
위해 다른 도구나 스프레드시트와 인터페이스 필요
21. 도구 선택을 위한 고려사항
v 조직의 성숙도, 강점과 약점을 평가한 후, 도구 지원으로 테
스팅 프로세스를 개선할 수 있는지 판단한다.
v 도구 도입을 위한 명확한 요구사항과 객관적인 도구 평가
기준을 가지고 도입하려는 도구를 평가한다.
v 도구가 요구되는 기능성을 만족하는지를 파일럿 프로젝트에
적용하여 입증해본다.
v 도구 제작 회사나 배포 회사의 교육 제공과 지원 능력을 고
려한다.
v 도구 사용과 관련된 조직 내부 교육과 지도에 대한 요구사
항을 식별한다.
22. 도구 도입 절차[1]
v 요구사항 정의
v 도구 조사
v 도구 평가
v 파일럿 시범 적용
v 도구 선택
v 도구 도입 및 배포
23. 요구사항
정의
조직의 능력 평가(기술, 인력, 정책 등)
테스트 프로세스 개선 준비
도구 도입 요구사항 식별 및 정의
도구조사
도입 가능한 도구 조사
제약사항 식별 및 검토
내부 개발 가능성 검토
도구평가
도구 평가 기준 준비
기능 및 관련 기술 평가 및 검토
도구 및 공급사 평가 실시
파일럿
시범적용
파일럿 프로젝트 선정
도구 시범 적용 실시
요구사항 만족 여부 평가
시범 적용을 통한 문제점 도출 및 해결 방안 검토
도구선택
도구 선택 기준 준비
도구 선택 기준에 의한 도구 선택
도구 도입 계획 수립
도구선택 및
배포
전담 조직 할당 및 관련 인프라 구축 계획
도구 도입에 따른 테스트 프로세스 개선
도구 배포 계획 및 교육/훈련 계획 수립
도구 설치 및 환경 구축
도구 성공 사례 공유
도구 도입 절차[2]
24. 도구 도입 절차[3]
v 파일럿 프로젝트 목적
– 도구와 관련한 상세한 사항을 습득한다.
– 기존 프로세스와 업무에 도구를 어떻게 적용할 수 있는
지 평가하고, 무엇을 변경할 필요가 있는지 결정한다.
– 도구와 테스트 자산의 사용, 관리, 저장 그리고 유지보수
하는 표준 방식을 결정한다. (예, 파일과 테스트의 명명
규칙을 결정, 라이브러리 생성과 테스트 스위트의 모듈화
정의)
– 합리적인 비용으로 목표하는 이익에 도달할 수 있는지
평가한다.
25. 도구의 배포의 성공 요인
v 조직의 나머지 부분에도 도구의 사용을 점진적으로 확대한
다.
v 도구의 사용법에 맞게 프로세스를 수정하고 개선한다.
v 새로운 사용자를 위해 교육/훈련을 한다.
v 사용 가이드라인을 정의한다.
v 실제 사용을 통해 유용한 정보를 얻는 방법을 마련한다.
v 도구의 사용과 성과를 모니터링 한다.
v 주어진 도구를 위한 테스트 팀에 지원을 제공한다.
v 모든 팀에서 교훈을 수집한다.
26. 도구 도입의 기대성과
v 사람의 실수로 인한 오류 최소화
v 수동으로 하기 어렵거나 불가능한 작업 가능
v 신뢰성 있는 정량적 테스트 보고
v 테스트 시간 단축으로 제품 릴리즈 시간 단축 가능
v 더욱 자주 테스트함으로써 신뢰성을 높일 수 있음
v 테스팅 스킬이 높지 않아도 도구를 활용한 테스트 실행 가능
v 테스트 커버리지를 높일 수 있음
v 실행 자동화 도구의 경우 리그레션 테스팅의 효과 가능
v 처리 절차 자동화로 커뮤니케이션 오류 절감에 기여
v 도구에 내장된 기능을 사용함으로써 객관적이고 효과적인 도구 사용 가
능
v 테스팅 업무의 인식 개선에 도움