이미 소장하고 있다면 판매해 보세요.
|
1부 소프트웨어 테스트 자동화의 정의와 필요성
1장 효과적인 소프트웨어 테스트 자동화란 __소프트웨어 테스트 자동화 정의 __소프트웨어 테스트 자동화 사례 __향상된 소프트웨어 테스트 자동화 기술 __다양한 소프트웨어 테스트 타입의 자동화 __소프트웨어 테스트 자동화 기반의 프로덕션 지원 제공 ____필요시 프로덕션 이슈 해결책 지원 ____수정으로 인해 영향받는 프로그램 컴포넌트 구분 지원 ____수정된 프로그램의 정확도와 품질 검증 ____프로덕션 시스템 문제 리포트(STR) 분류 __표준 평가를 위한 자동화 __정리 2장 자동화가 필요한 이유 __오늘날 소프트웨어 테스트가 직면한 문제 __소프트웨어 테스트의 시간과 비용 절감 ____테스트 자동화 계획과 개발: 초기 테스트 업무 증가 ____테스트 데이터 생성: 테스트 업무/일정 줄이기 ____테스트 실행: 테스트 업무/일정 줄이기 ____테스트 결과 분석: 테스트 업무/일정 줄이기 ____에러 상태/해결 모니터링: 테스트 업무/일정 줄이기 ____리포트 생성: 테스트 업무/일정 줄이기 ____고려해야 하는 비용과 시간을 줄일 수 있는 그 밖의 요인 __소프트웨어 품질에 영향 주기 __소프트웨어 테스트 프로그램 개선 ____빌드 검증 테스트 개선(스모크 테스트) ____리그레션 테스트 개선 ____멀티플랫폼 호환성 및 설정 테스트 ____일상적인 재미없는 테스트 실행 개선 ____고급 테스트 이슈에 집중하도록 개선 ____수동 테스트로 수행하기 어려운 테스트 ____소프트웨어 결함 재현 능력 ____시스템 전문지식 향상 ____일과 후의 ‘불이 꺼진 후’ 테스트 ____요구사항 정의 개선 ____성능 테스트 개선 ____스트레스 및 내구성 테스트 개선 ____품질 측정 및 테스트 최적화 ____시스템 개발 수명주기 개선 ____문서화 및 추적성 개선 ____작업 부하 분산 및 동시성 테스트 __정리 3장 비즈니스 케이스 __비즈니스 케이스의 정의 __비즈니스 니즈 확립 ____테스트 업무의 속도와 효율을 높이는 니즈 ____테스트 비용을 줄이는 니즈 ____테스트 팀 구성원의 기술을 가장 효과적으로 활용하는 니즈 __비용과 효과 측면에서 자동화의 타당성 증명 ____ROI 측정 ____전체 테스트 자동화 세이브 ____테스트 환경 설정 시간 세이브 ____테스트 개발 시간 세이브 ____테스트 실행 시간 세이브 ____테스트 실행/진단 시간 세이브 ____그 밖의 ROI 고려사항 ____그 외의 ROI 지표 __리스크 __그 밖의 고려사항 __정리 4장 소프트웨어 테스트 자동화의 실패 이유와 함정 __일반적으로 R&D는 자동 또는 수동 테스트 업무에 초점이 맞춰져 있지 않다 __소프트웨어 테스트 자동화의 오해와 진실 ____테스트 계획 자동 생성 ____모든 것을 만족시키는 테스트 툴 ____즉각적인 테스트 업무 감소 ____즉각적인 일정 감소 ____쉽게 사용할 수 있는 툴 ____소프트웨어 테스트 자동화를 위한 범용 애플리케이션 ____100% 테스트 커버리지 ____캡처/플레이백과 소프트웨어 테스트 자동화를 동일시 ____소프트웨어 테스트 자동화는 수동 테스터의 활동이다 ____테스트 목적의 상실: 결함을 찾는 것 ____단위 테스트 자동화가 아닌 시스템 테스트 자동화에 집중 __소프트웨어 테스트 자동화를 위한 개발 고려사항의 부족 ____테스트 가능한 애플리케이션 작성 ____오픈 아키텍처 표준 준수 ____표준 문서화 포맷 준수 ____표준 방식으로 테스트 케이스 문서화 ____코딩 표준 준수 ____OMG의 IDL 사용 ____GUI 테스트 권고사항 ____GUI 오브젝트 네이밍 표준 ____코드 재사용 라이브러리 컨셉 __나무를 위한 숲: 어느 툴을 선택해야 하는가 ____툴을 평가하고 선택하는 방법 __툴 벤더 전체를 보더라도 자동화 표준은 부족하다 ____테스트 자동화 툴 표준 샘플 __비즈니스 케이스의 부족 __정리 2부 자동화 방법: 성공적인 자동화를 위한 6가지 핵심 활동 5장 핵심 활동 1: 요구사항 이해 ____소프트웨어 테스트 자동화를 지원하는 요구사항에 대한 이해 ____테스트 대상 애플리케이션 또는 테스트 대상 시스템 요구사항 ____소프트웨어 테스트 자동화 프레임워크와 자동화 툴 요구사항 ____소프트웨어 테스트 자동화 데이터 요구사항 ____테스트 환경 요구사항 ____소프트웨어 테스트 자동화 요구사항 __소프트웨어 테스트 자동화 요구사항을 지원하는 추가 정보 ____수동 테스트 프로시저 ____설계 문서 ____프로토타입 __사용 가능한 정보가 없을 때 ____인터뷰 진행 ____지식 베이스 향상 ____레거시 애플리케이션 또는 레거시 시스템에 기초한 개발 요구사항 __요구사항 추적 매트릭스(RTM) 구현 ____RTM의 정의 ____RTM 예제 __정리 6장 핵심 활동 2: 테스트 자동화 전략 수립 __소프트웨어 테스트 자동화 전략 문서 __범위와 테스트 자동화 목표 ____자동화할 테스트 결정 ____우선순위: 기능의 일정 우선순위를 기초한 자동화 요구사항 ____테스트 목표 정의: 예제 __접근 방법 정하기 ____테스트 케이스 설계와 개발 __소프트웨어 테스트 자동화 프레임워크(ASTF) __소프트웨어 테스트 자동화 환경/구성 ____테스트 구성 ____그 밖의 테스트 자동화 테스트 환경 요구사항 ____테스트 환경 관리 자동화: 형상 관리(CM) 자동화 __RTM 자동화 ____자동화 프레임워크에서 사용할 수 있는 표준 테스트 케이스 템플릿 요청 ____테스트 케이스 하이퍼링크 ____성공/실패 결과를 포함한 테스트 단계 업데이트 ____성공/실패 결과를 포함한 RTM 업데이트 __결함 추적 자동화 __정리 7장 핵심 활동3: 소프트웨어 테스트 자동화 프레임워크 테스팅 __ASTF가 요구사항 명세를 만족하고 기능이 기대한 대로 동작하는지 검증 ____효과적인 ASTF 개발 프로세스 적용 여부 검증 __설계, 개발, 테스트 케이스 등 ASTF와 관련된 모든 산출물의 동료 리뷰 ____소프트웨어 개발 수명주기에서의 동료 리뷰 ____ASTF의 모든 컴포넌트 평가 ____테스트 케이스 리뷰 ____테스트 로직 리뷰 ____테스트 데이터 리뷰 ____테스트 자동화 코드 리뷰 __요구사항과 커버리지 검증 ____추적성 ____커버리지 __고객 리뷰 수행 __정리 8장 핵심 활동 4: 지속적인 진척 현황 추적에 따른 적절한 대응 __소프트웨어 테스트 자동화 프로그램 추적과 결함 방지 ____기술 교류와 검토 회의 진행 ____내부 검사 진행 ____제약사항과 관련된 리스크 검토 ____리스크 완화 전략 수립 ____소프트웨어 테스트 자동화 프로세스 및 환경의 무결성 보호 ____일정과 비용의 정의, 공유, 추적 ____액션, 이슈, 결함 추적 __소프트웨어 테스트 자동화 지표 ____자동화 가능률 또는 자동화 지수 ____자동화 진행 상황 ____테스트 진행 상황 ____테스트 자동화 커버리지율 ____결함 밀도 ____결함 트렌드 분석 ____결함 제거 효율 ____소프트웨어 테스트 자동화 ROI ____기타 소프트웨어 테스트 지표 __근본 원인 분석 __정리 9장 핵심 활동 5: 소프트웨어 테스트 자동화 프로세스 구현 __소프트웨어 테스트 자동화 단계와 마일스톤 __소프트웨어 테스트 자동화 1단계: 요구사항 수집(테스트 자동화 요구사항 분석) __소프트웨어 테스트 자동화 2단계: 테스트 케이스 설계 및 작성 __소프트웨어 테스트 자동화 3단계: ASTF 및 테스트 스크립트 개발 __소프트웨어 테스트 자동화 4단계: 테스트 자동화 실행 및 결과 리포팅 __소프트웨어 테스트 자동화 5단계: 프로그램 리뷰 및 평가 __가상 품질 게이트 __프로세스 측정 __정리 10장 핵심 활동 6: 적합한 인력을 프로젝트에 투입(필요한 스킬 세트 파악) ____소프트 스킬 __프로그램 관리 ____AST 1단계: 요구사항 수집(테스트 자동화 요구사항 분석) ____AST 2단계: 테스트 케이스 설계 및 작성 ____AST 3단계: ASTF 및 테스트 스크립트 개발 ____AST 4단계: 테스트 자동화 실행 및 결과 리포팅 ____AST 5단계: 프로그램 리뷰 및 평가 __시스템 엔지니어링 ____AST 1단계: 요구사항 수집(테스트 자동화 요구사항 분석) ____AST 2단계: 테스트 케이스 설계 및 작성 ____AST 3단계: ASTF 및 테스트 스크립트 개발 ____AST 4단계: 테스트 자동화 실행 및 결과 리포팅 ____AST 5단계: 프로그램 리뷰 및 평가 __소프트웨어 개발 ____AST 1단계: 요구사항 수집(테스트 자동화 요구사항 분석) ____AST 2단계: 테스트 케이스 설계 및 작성 ____AST 3단계: ASTF 및 테스트 스크립트 개발 ____AST 4단계: 테스트 자동화 실행 및 결과 리포팅 ____AST 5단계: 프로그램 리뷰 및 평가 __형상 관리 ____AST 1단계: 요구사항 수집(테스트 자동화 요구사항 분석) ____AST 2단계: 테스트 케이스 설계 및 작성 ____AST 3단계: ASTF 및 테스트 스크립트 개발 ____AST 4단계: 테스트 자동화 실행 및 결과 리포팅 ____AST 5단계: 프로그램 리뷰 및 평가 __품질 보증 ____AST 1단계: 요구사항 수집(테스트 자동화 요구사항 분석) ____AST 2단계: 테스트 케이스 설계 및 작성 ____AST 3단계: ASTF 및 테스트 스크립트 개발 ____AST 4단계: 테스트 자동화 실행 및 결과 리포팅 ____AST 5단계: 프로그램 리뷰 및 평가 __도메인 전문가 __정리 부록 A 프로세스 체크리스트 __AST 1단계: 요구사항 수집(테스트 자동화 요구사항 분석) ____체크리스트 ____산출물 __AST 2단계: 테스트 케이스 설계 및 개발 ____체크리스트 ____산출물 __AST 3단계: 소프트웨어 ASTF 및 테스트 스크립트 개발 ____체크리스트 ____산출물 __AST 4단계: 테스트 자동화 실행 및 결과 리포팅 ____체크리스트 ____산출물 __AST 5단계: 프로그램 리뷰 및 평가 ____체크리스트 ____산출물 부록 B 다양한 테스트 유형에 적용된 소프트웨어 테스트 자동화 __보안 테스트 __지속성 테스트 __동시성 테스트 __성능 테스트 __코드 커버리지 테스트 __단위 테스트 부록 C 알맞은 툴 선택 __요구사항 관리 ____요구사항 관리 자동화 __단위 테스트 프레임워크: 평가 예제 ____프레임워크 평가 및 선택 방법 __형상 관리: 평가 예제 ____소프트웨어 형상 관리(SCM)의 장점 ____평가 대상 SCM 툴 __결함 추적: 평가 예제 ____결함 추적 툴을 평가하고 선택하는 방법 ____버그질라와 크랙 ____결론: 보안이 최우선 __보안 테스트 ____정적 분석과 동적 분석 ____소스 분석과 바이너리 분석 ____애플리케이션 풋프린팅 ____퍼즈 테스트 또는 침투 테스트 ____위협 모델링: 위협 모델링으로 보안 테스트 우선순위 정하기 ____자동화 리그레션 테스트 ____무선 보안 진단 툴 __ASTF: 평가 예제 ____테스트 케이스 개발 ____고급 언어 ____플랫폼 지원 ____오픈소스 ____비용 ____다중 프로세스 관리 ____테스트 케이스 결과 수집 ____분산 환경 지원 ____예정 실행 시간 ____확장성 ____테스트 대상 시스템에 대한 영향 ____이메일 ____소프트웨어 테스트 자동화 프레임워크의 결론 ____테스트 자동화 툴 예제: 테스트플랜트의 에그플랜트 __그 외 소프트웨어 테스트 수명주기 지원 툴 ____자가 테스트 또는 자율 컴퓨팅 부록 D 사례 연구: ASTF 예제 __핵심 설계 특징 __테스트 관리자 __테스트 케이스 자동화와 테스트 코드 생성 __결과 리포팅 __결함 리포팅 자동화 |
|
★ 이 책에서 다루는 내용 ★
■ 소프트웨어 테스트 자동화의 현실적인 비즈니스 케이스를 수립해 추진해나가는 방법 ■ 테스트 요구사항을 명확히 하고, 이 요구사항을 반영하기 위해 자동화 전략을 세우는 방법 ■ 효율적인 테스트 환경을 구축하고, 이 환경에 적합한 자동화 툴과 기술을 선택하는 방법 ■ 지속적으로 진행 상황을 추적하고 올바르게 변경할 수 있도록 증명된 지표들을 사용하는 방법 ★ 이 책의 구성 ★ 1부, 소프트웨어 테스트 자동화의 정의와 필요성 1장, ‘효과적인 소프트웨어 테스트 자동화란’에서는 소프트웨어 테스트 자동화가 무엇인지 기술한다. 이 책 전반에서 사용되는 소프트웨어 테스트 자동화의 정의는 ‘소프트웨어 테스트 수명주기(STL, software testing lifecycle) 전반에 걸쳐 효율과 효과를 향상하려는 목적을 띤 소프트웨어 기술의 응용(application)과 구현(implementation)이다. 2장, ‘자동화가 필요한 이유’에서는 자주 논의되는 질문들을 기술한다. 현재 소프트웨어 테스트가 직면한 문제와 소프트웨어 테스트의 비용과 시간을 줄일 수 있는 방법을 설명한다. 왜 자동화를 해야 하는지에 대한 이유는, 3장에 상세하게 기술한 비즈니스 케이스를 만드는 데 도움이 되는 기초가 된다. 3장, ‘비즈니스 케이스’에서는 비즈니스 케이스를 정의하는 단계별 접근 방법을 소개한다. 비즈니스 케이스는 비즈니스 필요성, 소프트웨어 테스트 자동화가 필요한 이유, 비즈니스를 통해 얻게 되는 유/무형의 이점, 예상되는 비용과 일정에 대한 분석, 투자 견적, 투자 대비 수익(ROI)에 대한 내용을 포함한다. 4장, ‘소프트웨어 테스트 자동화의 실패 이유와 함정’에서는 소프트웨어 테스트 자동화를 둘러싼 오해와 진실을 쉽게 설명한다. 회사와 조직에서 이 교훈들을 살펴봐야 하는 이유는 소프트웨어 테스트 자동화를 구현하면서 실패를 반복하지 않기 위해서다. 2부, 자동화 방법: 성공적인 자동화를 위한 6가지 핵심 활동 이제 1부에서 제시한 비즈니스 케이스에 대한 확신을 갖게 됐고, 테스트 자동화의 실제와 숨겨진 함정을 이해했다면, 다음 단계는 자동화 방법을 결정하는 것이다. 2부에서는 다양한 소프트웨어 테스트 자동화 작업들을 성공적으로 구현하는 방법을 설명한다. 우리는 아래에 기술한 6가지 핵심 활동을 통해 소프트웨어 테스트 자동화를 성공적으로 달성할 수 있음을 확인했다. 5장, ‘핵심 활동 1: 요구사항 이해’에서는 테스트 자동화 전략을 세우기 전에 요구사항을 이해하는 일이 얼마나 중요한지 다룬다. 요구사항이 충분하지 않을 때 이를 해결하려고 정보를 수집하는 방법으로 풀어나가는데, 이런 문제에 대한 접근 방법도 5장에서 이야기한다. 6장, ‘핵심 활동 2: 테스트 자동화 전략 수립’에서는 테스트 자동화 접근 방법을 상세 절차로 만드는 것에 대해 기술한다. 여기에는 테스트 환경 고려사항, 테스트 자동화 스크립트 및 관련 산출물에 대한 형상 관리 등이 포함된다. 추가로, 테스트 대상 선정 시 고려사항과 적절한 툴 선정(오픈소스, 상업 툴, 인하우스 툴에 상관없이)의 중요성에 대해서도 기술한다. 7장, ‘핵심 활동 3: 소프트웨어 테스트 자동화 프레임워크(ASTF) 테스팅’에서는 테스트 기법 이해와 테스트 자동화의 한 부분인 테스트 케이스 작성의 중요성에 대해 다룬다. 자동화 엔지니어는 문서화가 테스트 자동화의 한 부분임을 자주 잊곤 한다. 테스트 케이스 문서화는 소프트웨어 테스트 자동화 노력에 대한 청사진과 같다. 7장에서는 테스트 케이스에서 역으로 요구사항을 추적하는 일의 중요성, 입력 값과 기대 결과 등을 포함하는 테스트 케이스의 내용, 그리고 문서화된 테스트 케이스가 어떻게 테스트 자동화의 구현과 개발에 기초가 되는지를 설명한다. 8장, ‘핵심 활동 4: 지속적인 진척 현황 추적에 따른 적절한 대응’에서는 자동화를 시작할 때 설정한 목표를 추적해야 하는 중요성에 대해 기술한다. 3장에서 비즈니스 케이스 생성과 목표 설정의 필요성을 설명했다. 8장에서는 어떻게 동료 리뷰, 인스펙션 그리고 다양한 자동화 및 테스트 지표가 설정한 목표에 대한 진척을 추적하고 측정하는 데 어떤 도움을 주는지를 기술한다. 9장, ‘핵심 활동 5: 소프트웨어 테스트 자동화 프로세스 구현’에서는 가벼운 프로세스의 필요성에 대해 밝힌다. 적절한 프로세스 없이도 성공적으로 구현할 수 있는 테스트 자동화 스크립트도 있다. 하지만 대규모의 테스트 자동화 프로그램을 효과적으로 구현하려면 적용하기 용이한 경량 프로세스가 있어야 한다. 9장에서는 이러한 프로세스를 정리해 소개하고, 구체적인 사항은 연관된 각 장으로 연결해준다. 10장, ‘핵심 활동 6: 적합한 인력을 프로젝트에 투입(필요한 스킬 세트 파악)’에서는 소프트웨어 테스트 자동화 개발에 필요한 스킬 세트를 분류한다. 예를 들어 요구사항 분석, 설계, 소프트웨어 개발, 테스트 등은 소프트웨어 개발 팀의 스킬 세트와 유사하다. 핵심 활동 6에서는 테스트 기법에 대한 지식과 분석 스킬이 아무리 중요하다 해도 효과적인 소프트웨어 테스트 자동화 구현을 위해서는 소프트웨어 개발 스킬이 뒷받침되어야 함을 강조한다. 테스트 자동화 프로세스에 따라 필요한 스킬은 9장에서 기술했다. ★ 이 책의 대상 독자 ★ 이 책의 대상 독자는 테스트 관리자, 테스트 리더, 테스트 업계 종사자처럼 전문적으로 소프트웨어 테스팅 분야에 몸 담고 있는 사람들이다. 또한 전문 QA, QA 리더 그리고 QA 업계에서 일하는 사람들을 위한 책이기도 하다. 소프트웨어 배포 품질과 효과를 올리고 싶은 프로젝트 관리자와 소프트웨어 개발자에게도 도움이 될 것이다. ★ 지은이의 말 ★ 새로운 소프트웨어 개발 과정 중에서 테스트는 점점 더 많은 시간과 비용을 차지하고 있다. 소프트웨어 테스트 자동화를 활용하면 개발자와 소프트웨어 테스터는 소프트웨어 테스트 수명주기를 최적화할 수 있고, 비용도 줄일 수 있다. 기술과 개발이 점점 더 복잡해짐에 따라, 소프트웨어 테스트 자동화는 더욱더 필수적이다. 이 책은 먼저 출판된 『Automated Software Testing』에서 기술한 증명된 사례와 테스트 자동화 수명주기 방법론에 근거해 만들어졌고, 소프트웨어 테스트 자동화를 성공적으로 구현하기 위해 필요한 새롭고 실질적인 완벽한 가이드를 제공한다. 이 책에서는 세 명의 전문가가 소프트웨어 테스트 자동화의 구성요소, 갖춰야 하는 기능, 한계점을 체계적으로 설명한다. 이들은 방위 산업 및 일반 산업 모두에서 소프트웨어 테스트 자동화를 사용한 경험을 서술하며, 이를 통해 베스트 프랙티스, 핵심 성공 요소, 주요 문제점과 해결법 같은 전반적인 구현 프로세스를 볼 수 있다. 테스트 전문가, QA 전문가, 프로젝트 관리자나 개발자라면, 이 책은 이전에는 경험해보지 못한 테스트 효율성을 가져오는 데 도움을 줄 것이며, 개발 수명주기 전반을 개선할 수 있는 소프트웨어 테스트 자동화를 사용하는 방법을 터득하게 될 것이다. 제안하려고 하는 테스트 자동화 전략이 실패할 것 같은가? 괜찮았던 과거보다도 못한 결과를 주는 소프트웨어 테스트 자동화라는 용어 때문에 괴롭지 않은가? 테스트 자동화라는 만능 해결사가 목표를 잃고 있지는 않은가? 테스트 자동화 엔지니어가 실망스러운가? 우리는 IDT(www.idtus.com)에서 자동화 테스트의 성공을 돕는 견고한 솔루션, 전략, 아이디어를 찾아냈다. 그리고 이 책에 모두 담았다. 시스템과 애플리케이션에 대한 제대로 된 소프트웨어 테스트 전략, 기법, 솔루션이 있다면, 소프트웨어 테스트 자동화는 가장 효과적인 프랙티스 중 하나다. 이는 테스트 효율을 높이고 테스트 비용은 극적으로 낮추면서, 더 빠르고 넓은 효율적인 결함 검출이라는 측면에서 소프트웨어 품질을 높이는 데 기여한다. 이 책은 조직에 소프트웨어 테스트 자동화를 구현하는 데 도움이 되는 가이드를 제공한다. 하지만 존재하지도 않는 마법 같은 해법을 제공하지는 않는다. 다만, 경험에 근거해 많은 논점과 권고사항을 알려준다. 1부에서는 자동화 이슈를 철저히 분석한다. 소프트웨어 테스트 자동화인 것과 아닌 것은 무엇인가? 비즈니스 케이스(business case)는 자동화 성공을 위해 왜 필요한가? 자동화는 왜 필요하며 언제 해야 하는가에 대한 이슈를 설명하며, 앞서 설명한 비즈니스 케이스를 만들기 위한 단계별 지침도 추가했다. 그리고 자동화가 자주 실패하는 이유와 성공을 막는 함정과 주로 하는 큰 실수들을 정리했다. 또한 자동화 성공을 돕는 오픈소스 테스트 툴도 소개한다. 2부에서는 소프트웨어 자동화 테스트를 성공적으로 구현하기 위한 6가지 핵심 활동을 제시한다. ■ 핵심 활동 1: 요구사항 이해 ■ 핵심 활동 2: 테스트 자동화 전략 수립 ■ 핵심 활동 3: 소프트웨어 테스트 자동화 프레임워크(ASTF) 테스팅 ■ 핵심 활동 4: 지속적인 진척 현황 추적에 따른 적절한 대응 ■ 핵심 활동 5: 소프트웨어 테스트 자동화 프로세스 구현 ■ 핵심 활동 6: 적합한 인력을 프로젝트에 투입(필요한 스킬 세트 파악) IDT에서 소프트웨어 테스트 자동화에 대한 두 가지 설문조사를 수행한 적이 있다. 전 세계에 걸쳐 다양한 분야, 다양한 규모의 조직에 속한 테스트 전문가 700명에게서 응답을 받았는데, 이 설문조사에서 일관되게 나타난 두 가지 내용은 다음과 같다. ■ 약 70%의 응답자는 자동화에 비용이 많이 든다는 사실을 믿지만, 왜 자동화를 해야 하며 어떻게 실제 프로젝트에 적용해야 하는지에 대해서는 별다른 확신이 없다. ■ 응답자의 절반은 자동화를 구현하는 데 필요한 경험이나 시간, 예산이 부족하다고 느꼈다. 소프트웨어 테스트 자동화가 유용하고 필요하다는 데는 대부분 동의한다. 하지만 성공률이 더 높은 자동화를 구현하지 못하는 이유는 바로 경험 부족 때문인 듯하다. 그렇기에 프로젝트에서 기술을 겸비한 사람을 찾는 일은 매우 중요하다. 필요한 기술은 10장에 정리해뒀다. 설문조사 결과에 대한 더 많은 내용은 4장에서 볼 수 있다. ★ 옮긴이의 말 ★ 소프트웨어 테스트 자동화에 대한 생각이 어느덧 ‘정말 되는 걸까?’에서 ‘정말 되는구나’로 바뀌었다. 테스트 자동화는 많은 IT 회사의 목표인 ‘높은 품질의 빠른 출시’에 점점 더 많은 기여를 하게 되는 듯하다. 이 책의 원서는 2009년에 미국에서 출간됐는데, 그 즈음에는 나 자신조차도 ‘테스트 자동화’에 대해 부정적이었다. 많은 리소스를 들여 테스트를 만들고 한 번 돌아가는 것에는 환호하지만, 지속적으로 가치를 주는 작업이 되지 못한 채 비용과 리소스만 낭비된 시도들을 많이 봐왔다. 하지만 지금은 다르다. 현재 내가 속한 곳에서도 시간을 들여 실패와 시도를 거듭한 끝에, (갈 길이 멀긴 하지만) 매일 돌아가는 테스트도 꽤 많아졌다. 테스트 자동화를 하면서 부딪히는 예상치 못한 이슈들도 하나 둘 풀어내는 중이다. 이제 재미있는 무엇인가를 할 수 있는 출발선에는 서 있게 된 것 같다. 이 책은 IDT라는 회사에서 소프트웨어 테스트 자동화에 관한 경험과 아이디어/노하우를 정리해 공유해준 책이다. IDT는 주로 미 국방부와 관련된 시스템이 높은 품질로 출시되도록 소프트웨어 테스트 자동화를 적용하고 컨설팅을 해주는 회사다. 정부 기관 중 그것도 국방부와 관련된 시스템에 적용한 결과이고, 출간된 시기도 6년 전쯤이기에, 현 시점에서 볼 때 아주 매력적인 기술이나 방법/도구를 제시하진 않는다. 하지만 미션 크리티컬한 국방 시스템에 실제로 적용한 테스트 자동화의 경험을 최대한 상세히 풀어 설명하기에, 어떻게 성공적으로 테스트 자동화를 구축해나갔는지를 경험할 수 있다. 여기서 제시한 방법이 테스트 자동화 구축의 유일한 길은 아니며, 이 책이 테스트 자동화 구축에서 유일한 바이블은 아니다. 하지만 테스트 자동화를 체계적으로 구축할 때 고려할 사항에 대해 미리 알아두면 좋을 내용은 알차게 담겨 있다. 요구사항을 정하고 전략을 세운 뒤, 이에 맞는 프레임워크를 선정하고 적용한다. 그리고 이를 지속적으로 개선하면서 조직에 맞는 경량 프로세스를 만들어나가는 것이 그 답이다. 내가 속한 조직에 비춰볼 때도 테스트 자동화 기술을 익히고 문제는 풀어나가지만, 큰 그림을 가지고 어떤 체계 안에서 자동화를 성숙하게 만들 것인가는 놓치기 쉬운 것 같다. 그런 측면에서 이 책이 나에게도 도움이 되었다. 마찬가지로, 지속적인 가치를 주는 테스트 자동화 체계를 잡아가기를 원하는 사람이라면 이 책에서 필요한 많은 정보를 얻을 수 있을 것이다. |