제 6장 테스트 지원 도구
제 6장 테스트 지원 도구
6.1 테스트 도구 고려 사항
테스트 도구는 하나 이상 테스팅 활동을 지원하는 데 사용할 수 있으며, 다음과 같은 종류가 있다.
테스팅 도구(실행, 준비 도구), 요구사항-케이스-프로세스-결과-데이터-결함 모니터링 지원 도구, 분석-평가에 사용하는 도구, 테스팅을 지원하는 모든 도구 (스프레드 시트 또한)
6.1.1 테스트 도구의 분류
정황에 따라 다음과 같은 하나 이상의 목적이 있다.
반복 작업이나 수동으로 진행 시 상당한 리소스를 필요로 하는 직업을 자동화 해 테스트 활동의 효율 성 증대
테스트 프로세스 전반에 걸쳐 수동 테스트 활동 지원하여 테스트 활동 효율성 증대
테스팅 일관성과 결함 재현성 향상으로 품질 향상
수동 실행 불가 항목을 자동화 (대규모 성능 테스팅 등)
테스팅의 신뢰성 향상
도구는 목적, 가격, 라이선스, 사용 기술에 따라 분류 가능하다. 어떤 도구는 명확하게 하나만 지원하거나 어떤 도구는 하나 이상의 활동을 지원하기도 한다. 도구 자체가 테스트 실제 결과에 영향을 준다는 의미에서 침입적 도구도 있다. 이런 침입적 도구로 달라진 결과를 탐사 효과라고 부른다.(ex 성능 테스팅 도구 추가 명령으로 실제 반응 시간이 달라 컴포넌트 테스트 중 개발자에게 더 적절한 도구도 있다.
테스팅 및 테스트웨어 관리 지원 도구
관리 도구는 수명주기 전체에 걸쳐 모든 테스팅에 사용 가능. 지원 도구는 다음과 같다.
테스트 관리 도구, 애플리케이션 수명주기 관리 도구
요구사항 관리 도구 (추적성 관리)
결함, 형상, 지속적인 통합 도구(개발자 지원)
정적 테스팅 지원 도구
정적 분석 도구(개발자 지원)
테스트 설계 및 구현 도구
테스트 설계와 구현 단계에서 작업 산출물을 유지보수하는 데 도움을 주며, 다음과 같은 도구가 있다.
모델 기반 테스팅 도구
테스트 데이터 준비 도구
테스트 실행 및 로깅 지원 도구
테스트 실행 도구, 커버리지 도구, 테스트 하네스
성능 측정과 동적 분석 지원 도구
수동으로는 효과적으로 수행 불가기에 이를 지원하는데 필수적이다.
성능 테스팅 도구
동적 분석 도구
특수 목적 테스팅 지원 도구
비기능적 특징을 커버하기 위한 특정 테스팅을 지원하는 도구도 있다.
6.1.2 테스트 자동화 효과와 리스크
단순히 도구 도입으로 성공이 보장되는 것이 아니다. 노력이 필요한데, 잠재적 가치가 되는 반면 리스크도 존재한다. 특히 자동화로 지칭하는 도구가 그렇다.
테스트 실행 지원 도구 (자동화) 장점
반복적 수동 업무 감소
월등한 일관성과 반복성
보다 객관적인 평가 기준
테스팅 관련 정보 접근 쉬움
테스팅 지원 도구 잠재적 리스크
도구에 대한 비현실적 기대
초기 도구 도입에 필요한 시간, 비용, 노력에 대한 과소평가
도구로 의미 있고 지속적인 효과를 얻는 데 필요 시간과 노력 과소평가
도구가 생성하는 테스트 작업 산출물 유지하기 위한 노력 과소평가
도구에 대한 지나친 의존
테스트 작업 산출물 버전 관리 소홀
상호운용성 이슈 관리 불가
도구 매각, 공급 업체 부적절 대응, 기술 지원 불가, 소유권 불명확 등
6.1.3 테스트 실행 및 테스트 관리 도구 고려 사항
테스트 실행 도구 : 자동화 테스트 스크립트를 사용해 테스트 실행
캡처 기반 테스트 접근법 : 수동 조작을 녹화해 테스트 캡처, 테스트 스크립트 많을 수록 불가. 이벤트 발생 취약. 유지 보수 필요
데이터 주도 테스트 접근법 : 입력과 기대 결과를 스프레드 시트에 저장하고 공통 스크립트 활용해 테스트 데이터를 읽어 들여 동일 테스트 스크립트를 매번 다른 데이터로 반복 실행
키워드 주도 테스트 접근법 : 이 접근법을 해야 할 행동을 설명하는 키워드를 공통 스크립트가 처리해 키워드 스크립트를 호출한다.
위의. 접근법은 스크립트 언어 전문가 필요. 테스트 주도 또는 키워드 주도는 익숙하지 않아도 사전 정의된 스크립트에 대한 데이터나 키워드 작성해 기여 가능. 동적 아니면 차후 비교 가능.
모델 기반 테스팅 도구는 기능 명세를 다이어그램 같은 모델 형태로 표현 가능. 시스템 설계자가 수행. 도구는 모델을 해석해 테스트 케이스 명세 생성하고, 생성 명세는 테스트 관리 도구에 저장하거나 실행 도구로 실행
테스트 관리 도구
여러 이유로 다른 도구나 스프레드시트와 연동해야 한다.
필요 정보 생성
요구사항 관리 도구에 저장된 요구사항과 추적성 지속 유지
형상 관리 도구에 저장된 테스트 버전 정보와 연결
통합 도구 사용 시 특히 중요.
6.2 도구의 효과적인 사용
조직에 맞는 도구 선택하는데 주요 고려 사항은 다음과 같다.
6.2.1 도구 선택 주요 원칙
조직 성숙도 수준 평가
도구 지원으로 프로세스 개선 기회 식별
테스트 대상 이용 기술 이해로 호환 가능한 도구 선택
조직 사용하고 있는 빌드와 지속적인 통하 ㅂ도구 이해
명확한 요구사항과 객관적 기준에 맞는 도구 평가
도구 일정 기간 무료 시험 가능한지 여부
공급자 평가 또는 비 상업적 도구 지원 평가
도구 사용 코칭과 멘토 요구사항 식별
훈련 수요 확인, 다양한 라이선스 장단점 고려
비용 대비 효과 추정
사전 검증 진행. 테스트 대상 소프트웨어와 현재 인프라에서 도구가 효과적으로 동작하는 지 확인하고 요구사항 식별 개선
6.2.2 도구 도입을 위한 파일럿 프로젝트
도구 선택과 사전 검증이 끝나면 도구를 조직에 도입하는 시점은 주로 파일럿 프로젝트다. 파일럿 프로젝트 목적은 다음과 같다.
깊이 있는 도구 지식 습득, 장단점 이해
도구를 어떻게 적용할지 평가, 변경점 발견
도구의 사용, 관리, 저장, 유지보수 기준 결정
목표 가치 비용 달성 평가
메트릭 이해
6.2.3 도구 성공 요인
조직의 다른 부서에 도구 사용 전파 점진적 진행
도구 사용법에 맞게 프로세스 수정 및 개선
도구 사용자 교육, 코칭, 멘토링
도구 사용 지침 정의
도구 사용 현황, 모니터링, 교훈 수집
소프트웨어 개발 수명주기와 도구를 기술적, 유기적 통합 중요.
운영 외부 공급업체 담당 조직을 별도로 둔다.