Top

[시간과 비용을 줄이고 품질은 높이는]
소프트웨어 테스트 자동화 구축과 6가지 핵심 활동

  • 원서명Implementing Automated Software Testing: How to Save Time and Lower Costs While Raising Quality (ISBN 9780321580511)
  • 지은이엘프리드 더스틴(Elfriede Dustin), 톰 개럿(Thom Garrett), 버니 가우프(Bernie Gauf)
  • 옮긴이여용구, 황영석
  • ISBN : 9788960777118
  • 38,800원
  • 2015년 05월 29일 펴냄
  • 페이퍼백 | 408쪽 | 188*250mm
  • 시리즈 : 소프트웨어 테스팅

책 소개

요약

성공적인 소프트웨어 테스트 자동화에 대한 방법을 알려주고, 그에 수반한 6가지 핵심 활동을 설명한 책이다. 이 책에서는 미 국방부와 주로 일하는 IDT라는 회사가 실제 현업에서 적용한 소프트웨어 테스트 자동화 경험을 최대한 상세히 풀어 설명하면서, 어떻게 성공적으로 테스트 자동화를 구축해나갔는지 보여준다. 아울러 요구사항 이해, 테스트 자동화 전략 수립, 소프트웨어 테스트 자동화 프레임워크(ASTF) 테스팅, 지속적인 진척 현황 추적에 따른 적절한 대응, 소프트웨어 테스트 자동화 프로세스 구현, 적합한 인력을 프로젝트에 투입하는 등의 6가지 핵심 활동을 구체적으로 소개하며, 요구사항 정의, 전략 설정, 프레임워크 선정과 적용, 그리고 이를 지속적으로 개선하면서 조직에 맞는 경량 프로세스를 만들어나가는 것이 목표다. 지속적인 가치를 주는 테스트 자동화 체계를 잡아가기를 원하는 사람들에게 꼭 필요한 정보를 알려주는 중요한 책이다.

추천의 글

"이 책은 소프트웨어 테스트 지식에 관한 우리의 큰 목마름을 채워준다. 테스트 자동화가 여타 테스트 활동과 어떻게 다른지를 기술하고, 테스트 자동화에 필요한 기술과 지식의 유형을 명확히 그려준다는 점에서 매우 탁월한 책이다. 테스트를 공부하는 사람이라면 반드시 읽어야 하며, 관련 분야 종사자에게 바이블이 될 것이다."
- 제프 오퍼트(Jeff Offutt) / 조지메이슨 대학 소프트웨어 공학 교수

"이 책은 앞서 발간된 『Automated Software Testing』의 개정증보판으로서, 소프트웨어 테스트 자동화를 적용하려는 관련 종사자들에게 완벽한 참고서가 될 것이다. 소프트웨어 테스트 전문가라면 반드시 읽어야 할 필독서다."
- 제프 라쉬카(Jeff Rashka) / PMP, 『Automated Software Testing』과 『Quality Web Systems』의 공동 저자

세계가 매우 빠르게 급변하는 오늘날에는, 날마다 변화와 혁신의 문화를 세워나가야 한다. 혁신은 군인, 선원, 이등병, 해병, 해안경비대의 일상에서 매일 일어나는 일이다. 군인으로서의 내 삶을 돌아보면, 운 좋게도 극적인 혁신의 효과를 맛 보고 경험할 수 있었다. 엄청난 혁신이 일어나는 또 하나의 영역이 정보 기술 영역이다. 오늘날 배포되는 시스템은 수백만 라인의 방대한 소프트웨어, 십 년 전만 해도 상상할 수 없었던 컴퓨터 프로세서의 속도, 그리고 광대역을 제공하는 네트워크로 구성되어 있다.
이와 같은 혁신에도 불구하고, 증대되는 위협에 대응할 필요성은 이전보다 훨씬 더 커졌고, 반응에 필요한 시간은 줄어들고 있다. 정보 기술 관점에서 보면, 이는 소프트웨어 변경이나 개선과 관련된 영역을 이전에 비해 더욱 빠르게 만들어나가야 함을 의미한다. 빠르면서도 효과적인 테스트 변화가 매우 중요하다. 그러나 여전히 수많은 프로그램에서 일정의 50% 이상을 테스트에 쏟아 붓고 있다.
혁신적인 테스트 솔루션 제공의 선두에 있는 IDT(Innovative Defense Technologies)는 이런 변화의 위협에 발맞춰갈 필요가 있었다. 이 책은 성공적인 소프트웨어 테스트 자동화 프로그램 구현에 도움을 줄 수 있는 가이드를 제시한다. 직접 경험한 케이스 스터디를 싣고, 소프트웨어 테스트 자동화 이슈 및 해법을 심도 있게 파헤친다. 또한 소프트웨어 테스트 자동화의 비즈니스 케이스를 어떻게 개발해야 하는지 그리고 소프트웨어 테스트 자동화 프로그램에 대한 수명주기 접근을 어떻게 제공해야 하는지 풍부하게 말해준다. IDT는 이 책에서 필요한 정보를 시기적절히 제공함으로써 관련 담당자들이 효과적인 소프트웨어 테스트 자동화 프로그램을 구현할 수 있게 한다.
- 에드먼드 지암바스티아니 주니어(Edmund P. Giambastiani, Jr). 제독 / 미합중국 해군(퇴역)의 합참부의장(2005~2007)

내가 처음으로 소프트웨어 시스템을 개발했던 1960년대 중반에는, 테스트는 주로 개발자의 몫이었다. 최종 사용자는 상대적으로 작은 테스트 케이스로 검증할 뿐이었다. 20여 년이 지나면서 더 많은 시간이 테스트에 할애되고 있으나, 중요한 테스트 케이스들이 프로그래밍 직군이 수행하는 테스트와 최종 사용자 또는 별도 테스트 그룹의 테스트 과정에서 중첩되고 있다. 이런 필요 이상의 테스트는 초과 비용을 발생시키며 프로젝트 일정을 지연시켰다. 오류가 발견되면, 수정과 재검증을 위한 시간 지연은 비용을 발생시켰다. 오늘날에도 소프트웨어 제품이 시장에 나오는 데 중요한 비용과 시간을 테스트에 소비하고 있다. 제품 내의 소프트웨어 복잡도와 규모가 증가하면서, 미래에도 테스트 양은 계속적으로 증가하리라 예상된다. 테스트 기술에서 큰 개선이 요구되고 있기에, 이에 대한 해결책의 하나로 소프트웨어 테스트 자동화가 있다.
소프트웨어 테스트 자동화의 목적은 시간과 리소스의 사용을 효과적으로 하여 테스트 효율을 높이는 데 있다. 또한 필요하다면 테스트 조합과 순서를 변경하게 해주고, 테스트 커버리지를 높이면서 테스트 중복 실행을 피하며, 결과 분석도 자동으로 해준다. 이를 통해 동일한, 또는 더 감소된 테스트 시간 프레임 내에서 소프트웨어의 품질과 신뢰를 높이고자 한다. 이 책은 효과적인 소프트웨어 테스트 프로그램 구축을 위한 방대한 기술적인 가이드를 제공한다. 소프트웨어 테스트 전반에 걸쳐 적용할 수 있는 소프트웨어 테스트 자동화에 대한 제안과 솔루션을 경험에 기초해 제공한다. 이 책에서 제공하는 소프트웨어 테스트 자동화 베스트 프랙티스와 가이드라인을 적용하면, 테스트 프로그램을 개선할 수 있으며, 마침내 정해진 시간과 예산 안에서 높은 품질의 소프트웨어 제품을 생산하여 비즈니스를 발전시킬 수 있다. 아울러 이 책에서는 자동화 테스트 솔루션의 ROI(투자 대비 수익)을 계산하는 방법에 대한 생생하고 실질적인 조언을 해준다. 이는 사용자가 테스트 자동화로 활용하기에 최적인 곳과 비용 대비 효과가 없는 시점이 언제인지를 이해하는 데 도움이 될 것이다.
마지막으로, 소프트웨어 테스트 자동화의 이점으로는 테스트 프로세스를 공식적으로 감사할 수 있다는 점도 들 수 있다. 2002년에 제정된 사베인스-옥슬리 법 404조(SOX 404, Section 404 of the Sarbanes-Oxley Act of 2002)는 2004년을 기점으로 기업 연간 보고서의 재정 보고서 내에 기업 내 통제 관리에 대한 보고서를 포함시킬 것을 요구한다. 더 나아가, 경영 평가를 증명하기 위해 회사의 외부 감사 역시 필요하다. 경영 정보 시스템은 기업 내 통제 시스템의 매우 중요한 구성요소가 될 것이다. 따라서 새로운 시스템에 대한 테스트 프로세스의 독립적인 감사가 가능하다는 사실은 향후 대규모 시스템의 개발과 구축에서 매우 중요하게 작용할 것이다.
- 윌리엄 나일린(William Nylin, Jr.) 박사 / 콘즈(Conn’s, Inc.)의 수석부사장 겸 이사

이 책에서 다루는 내용

■ 소프트웨어 테스트 자동화의 현실적인 비즈니스 케이스를 수립해 추진해나가는 방법
■ 테스트 요구사항을 명확히 하고, 이 요구사항을 반영하기 위해 자동화 전략을 세우는 방법
■ 효율적인 테스트 환경을 구축하고, 이 환경에 적합한 자동화 툴과 기술을 선택하는 방법
■ 지속적으로 진행 상황을 추적하고 올바르게 변경할 수 있도록 증명된 지표들을 사용하는 방법

이 책의 구성

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장에서 볼 수 있다.

지은이 소개

엘프리드 더스틴(Elfriede Dustin)

다년간의 실무 소프트웨어 테스트 자동화 경험을 기초로 다수의 소프트웨어 테스트 도서와 기사를 썼다. IDT에서 소프트웨어 테스트 리서치 프로그램을 이끌고 있다.

톰 개럿(Thom Garrett)

복잡한 미 국방부의 시스템 및 공영 방송 서비스(PBS, Public Broadcasting Service), 디지털 시스템 리소스(DSR, Digital System Resources), 아메리카 온라인(AOL, America Online) 같은 일반 상업 애플리케이션의 계획, 테스트, 배포를 담당한 경험이 있다. 샌프란시스코 대학에서 석사 학위를 받았다.

버니 가우프(Bernie Gauf)

IDT의 대표다. 새로운 기술 도입을 위해 미 국방부 패널로 활발히 참여해 수많은 테스트 컨퍼런스에 초대받고 있으며, 초청 연사로서 소프트웨어 테스트 자동화에 대한 통찰을 공유하고 있다.

세 저자는 IDT(Innovative Defense Technologies)(www.idtus. com)에서 함께 일하고 있으며, 소프트웨어 테스트 자동화 솔루션의 설계, 개발, 구현 전문가다.

옮긴이의 말

소프트웨어 테스트 자동화에 대한 생각이 어느덧 ‘정말 되는 걸까?’에서 ‘정말 되는구나’로 바뀌었다. 테스트 자동화는 많은 IT 회사의 목표인 ‘높은 품질의 빠른 출시’에 점점 더 많은 기여를 하게 되는 듯하다.

이 책의 원서는 2009년에 미국에서 출간됐는데, 그 즈음에는 나 자신조차도 ‘테스트 자동화’에 대해 부정적이었다. 많은 리소스를 들여 테스트를 만들고 한 번 돌아가는 것에는 환호하지만, 지속적으로 가치를 주는 작업이 되지 못한 채 비용과 리소스만 낭비된 시도들을 많이 봐왔다.

하지만 지금은 다르다. 현재 내가 속한 곳에서도 시간을 들여 실패와 시도를 거듭한 끝에, (갈 길이 멀긴 하지만) 매일 돌아가는 테스트도 꽤 많아졌다. 테스트 자동화를 하면서 부딪히는 예상치 못한 이슈들도 하나 둘 풀어내는 중이다. 이제 재미있는 무엇인가를 할 수 있는 출발선에는 서 있게 된 것 같다.

이 책은 IDT라는 회사에서 소프트웨어 테스트 자동화에 관한 경험과 아이디어/노하우를 정리해 공유해준 책이다. IDT는 주로 미 국방부와 관련된 시스템이 높은 품질로 출시되도록 소프트웨어 테스트 자동화를 적용하고 컨설팅을 해주는 회사다. 정부 기관 중 그것도 국방부와 관련된 시스템에 적용한 결과이고, 출간된 시기도 6년 전쯤이기에, 현 시점에서 볼 때 아주 매력적인 기술이나 방법/도구를 제시하진 않는다. 하지만 미션 크리티컬한 국방 시스템에 실제로 적용한 테스트 자동화의 경험을 최대한 상세히 풀어 설명하기에, 어떻게 성공적으로 테스트 자동화를 구축해나갔는지를 경험할 수 있다.

여기서 제시한 방법이 테스트 자동화 구축의 유일한 길은 아니며, 이 책이 테스트 자동화 구축에서 유일한 바이블은 아니다. 하지만 테스트 자동화를 체계적으로 구축할 때 고려할 사항에 대해 미리 알아두면 좋을 내용은 알차게 담겨 있다. 요구사항을 정하고 전략을 세운 뒤, 이에 맞는 프레임워크를 선정하고 적용한다. 그리고 이를 지속적으로 개선하면서 조직에 맞는 경량 프로세스를 만들어나가는 것이 그 답이다.

내가 속한 조직에 비춰볼 때도 테스트 자동화 기술을 익히고 문제는 풀어나가지만, 큰 그림을 가지고 어떤 체계 안에서 자동화를 성숙하게 만들 것인가는 놓치기 쉬운 것 같다. 그런 측면에서 이 책이 나에게도 도움이 되었다. 마찬가지로, 지속적인 가치를 주는 테스트 자동화 체계를 잡아가기를 원하는 사람이라면 이 책에서 필요한 많은 정보를 얻을 수 있을 것이다.

옮긴이 소개

여용구

현재 네이버 QA 랩에 재직 중이다. 주요 관심 분야는 테스트 자동화와 애자일 테스트다. 에이콘출판사에서 펴낸 『소프트웨어 테스팅, 마이크로소프트에선 이렇게 한다』(2009), 『소프트웨어 테스트 자동화』(2013)를 공역했다.

황영석

현재 네이버 QA 랩에 재직 중이다. 테스트 자동화에 관심이 많고, 테스트 자동화를 활용한 효율적이면서 효과적인 테스트 방법을 항상 고민하고 있다. 에이콘출판사에서 펴낸 『소프트웨어 테스트 자동화』(2013)를 공역했다.

목차

목차
  • 1부 소프트웨어 테스트 자동화의 정의와 필요성
  • 1장 효과적인 소프트웨어 테스트 자동화란
  • 1.1 소프트웨어 테스트 자동화 정의
  • 1.2 소프트웨어 테스트 자동화 사례
  • 1.3 향상된 소프트웨어 테스트 자동화 기술
  • 1.4 다양한 소프트웨어 테스트 타입의 자동화
  • 1.5 소프트웨어 테스트 자동화 기반의 프로덕션 지원 제공
  • __필요시 프로덕션 이슈 해결책 지원
  • __수정으로 인해 영향받는 프로그램 컴포넌트 구분 지원
  • __수정된 프로그램의 정확도와 품질 검증
  • __프로덕션 시스템 문제 리포트(STR) 분류
  • 1.6 표준 평가를 위한 자동화
  • 1.7 정리

  • 2장 자동화가 필요한 이유
  • 2.1 오늘날 소프트웨어 테스트가 직면한 문제
  • 2.2 소프트웨어 테스트의 시간과 비용 절감
  • __테스트 자동화 계획과 개발: 초기 테스트 업무 증가
  • __테스트 데이터 생성: 테스트 업무/일정 줄이기
  • __테스트 실행: 테스트 업무/일정 줄이기
  • __테스트 결과 분석: 테스트 업무/일정 줄이기
  • __에러 상태/해결 모니터링: 테스트 업무/일정 줄이기
  • __리포트 생성: 테스트 업무/일정 줄이기
  • __고려해야 하는 비용과 시간을 줄일 수 있는 그 밖의 요인
  • 2.3 소프트웨어 품질에 영향 주기
  • 2.4 소프트웨어 테스트 프로그램 개선
  • __빌드 검증 테스트 개선(스모크 테스트)
  • __리그레션 테스트 개선
  • __멀티플랫폼 호환성 및 설정 테스트
  • __일상적인 재미없는 테스트 실행 개선
  • __고급 테스트 이슈에 집중하도록 개선
  • __수동 테스트로 수행하기 어려운 테스트
  • __소프트웨어 결함 재현 능력
  • __시스템 전문지식 향상
  • __일과 후의 ‘불이 꺼진 후’ 테스트
  • __요구사항 정의 개선
  • __성능 테스트 개선
  • __스트레스 및 내구성 테스트 개선
  • __품질 측정 및 테스트 최적화
  • __시스템 개발 수명주기 개선
  • __문서화 및 추적성 개선
  • __작업 부하 분산 및 동시성 테스트
  • 2.5 정리

  • 3장 비즈니스 케이스
  • 3.1 비즈니스 케이스의 정의
  • 3.2 비즈니스 니즈 확립
  • __테스트 업무의 속도와 효율을 높이는 니즈
  • __테스트 비용을 줄이는 니즈
  • __테스트 팀 구성원의 기술을 가장 효과적으로 활용하는 니즈
  • 3.3 비용과 효과 측면에서 자동화의 타당성 증명
  • __ROI 측정
  • __전체 테스트 자동화 세이브
  • __테스트 환경 설정 시간 세이브
  • __테스트 개발 시간 세이브
  • __테스트 실행 시간 세이브
  • __테스트 실행/진단 시간 세이브
  • __그 밖의 ROI 고려사항
  • __그 외의 ROI 지표
  • 3.4 리스크
  • 3.5 그 밖의 고려사항
  • 3.6 정리

  • 4장 소프트웨어 테스트 자동화의 실패 이유와 함정
  • 4.1 일반적으로 R&D는 자동 또는 수동 테스트 업무에 초점이 맞춰져 있지 않다
  • 4.2 소프트웨어 테스트 자동화의 오해와 진실
  • __테스트 계획 자동 생성
  • __모든 것을 만족시키는 테스트 툴
  • __즉각적인 테스트 업무 감소
  • __즉각적인 일정 감소
  • __쉽게 사용할 수 있는 툴
  • __소프트웨어 테스트 자동화를 위한 범용 애플리케이션
  • __100% 테스트 커버리지
  • __캡처/플레이백과 소프트웨어 테스트 자동화를 동일시
  • __소프트웨어 테스트 자동화는 수동 테스터의 활동이다
  • __테스트 목적의 상실: 결함을 찾는 것
  • __단위 테스트 자동화가 아닌 시스템 테스트 자동화에 집중
  • __트웨어 테스트 자동화를 위한 개발 고려사항의 부족
  • __테스트 가능한 애플리케이션 작성
  • __오픈 아키텍처 표준 준수
  • __표준 문서화 포맷 준수
  • __표준 방식으로 테스트 케이스 문서화
  • __코딩 표준 준수
  • __OMG의 IDL 사용
  • __GUI 테스트 권고사항
  • __GUI 오브젝트 네이밍 표준
  • __코드 재사용 라이브러리 컨셉
  • 4.4 나무를 위한 숲: 어느 툴을 선택해야 하는가
  • __툴을 평가하고 선택하는 방법
  • 4.5 툴 벤더 전체를 보더라도 자동화 표준은 부족하다
  • __테스트 자동화 툴 표준 샘플
  • 4.6 비즈니스 케이스의 부족
  • 4.7 정리

  • 2부 자동화 방법: 성공적인 자동화를 위한 6가지 핵심 활동
  • 5장 핵심 활동 1: 요구사항 이해
  • 5.1 소프트웨어 테스트 자동화를 지원하는 요구사항에 대한 이해
  • __테스트 대상 애플리케이션 또는 테스트 대상 시스템 요구사항
  • __소프트웨어 테스트 자동화 프레임워크와 자동화 툴 요구사항
  • __소프트웨어 테스트 자동화 데이터 요구사항
  • __테스트 환경 요구사항
  • __소프트웨어 테스트 자동화 요구사항
  • 5.2 소프트웨어 테스트 자동화 요구사항을 지원하는 추가 정보
  • __수동 테스트 프로시저
  • __설계 문서
  • __프로토타입
  • 5.3 사용 가능한 정보가 없을 때
  • __인터뷰 진행
  • __지식 베이스 향상
  • __레거시 애플리케이션 또는 레거시 시스템에 기초한 개발 요구사항
  • 5.4 요구사항 추적 매트릭스(RTM) 구현
  • __RTM의 정의
  • __RTM 예제
  • 5.5 정리

  • 6장 핵심 활동 2: 테스트 자동화 전략 수립
  • 6.1 소프트웨어 테스트 자동화 전략 문서
  • 6.2 범위와 테스트 자동화 목표
  • __자동화할 테스트 결정
  • __우선순위: 기능의 일정 우선순위를 기초한 자동화 요구사항
  • __테스트 목표 정의: 예제
  • 6.3 접근 방법 정하기
  • __테스트 케이스 설계와 개발
  • 6.4 소프트웨어 테스트 자동화 프레임워크(ASTF)
  • 6.5 소프트웨어 테스트 자동화 환경/구성
  • __테스트 구성
  • __그 밖의 테스트 자동화 테스트 환경 요구사항
  • __테스트 환경 관리 자동화: 형상 관리(CM) 자동화
  • 6.6 RTM 자동화
  • __자동화 프레임워크에서 사용할 수 있는 표준 테스트 케이스 템플릿 요청
  • __테스트 케이스 하이퍼링크
  • __성공/실패 결과를 포함한 테스트 단계 업데이트
  • __성공/실패 결과를 포함한 RTM 업데이트
  • 6.7 결함 추적 자동화
  • 6.8 정리

  • 7장 핵심 활동3: 소프트웨어 테스트 자동화 프레임워크 테스팅
  • 7.1 ASTF가 요구사항 명세를 만족하고 기능이 기대한 대로 동작하는지 검증
  • __효과적인 ASTF 개발 프로세스 적용 여부 검증
  • 7.2 설계, 개발, 테스트 케이스 등 ASTF와 관련된 모든 산출물의 동료 리뷰
  • __소프트웨어 개발 수명주기에서의 동료 리뷰
  • __ASTF의 모든 컴포넌트 평가
  • __테스트 케이스 리뷰
  • __테스트 로직 리뷰
  • __테스트 데이터 리뷰
  • __테스트 자동화 코드 리뷰
  • 7.3 요구사항과 커버리지 검증
  • __추적성
  • __커버리지
  • 7.4 고객 리뷰 수행
  • 7.5 정리

  • 8장 핵심 활동 4: 지속적인 진척 현황 추적에 따른 적절한 대응
  • 8.1 소프트웨어 테스트 자동화 프로그램 추적과 결함 방지
  • __기술 교류와 검토 회의 진행
  • __내부 검사 진행
  • __제약사항과 관련된 리스크 검토
  • __리스크 완화 전략 수립
  • __소프트웨어 테스트 자동화 프로세스 및 환경의 무결성 보호
  • __일정과 비용의 정의, 공유, 추적
  • __액션, 이슈, 결함 추적
  • 8.2 소프트웨어 테스트 자동화 지표
  • __자동화 가능률 또는 자동화 지수
  • __자동화 진행 상황
  • __테스트 진행 상황
  • __테스트 자동화 커버리지율
  • __결함 밀도
  • __결함 트렌드 분석
  • __결함 제거 효율
  • __소프트웨어 테스트 자동화 ROI
  • __기타 소프트웨어 테스트 지표
  • 8.3 근본 원인 분석
  • 8.4 정리

  • 9장 핵심 활동 5: 소프트웨어 테스트 자동화 프로세스 구현
  • 9.1 소프트웨어 테스트 자동화 단계와 마일스톤
  • 9.2 소프트웨어 테스트 자동화 1단계: 요구사항 수집(테스트 자동화 요구사항 분석)
  • 9.3 소프트웨어 테스트 자동화 2단계: 테스트 케이스 설계 및 작성
  • 9.4 소프트웨어 테스트 자동화 3단계: ASTF 및 테스트 스크립트 개발
  • 9.5 소프트웨어 테스트 자동화 4단계: 테스트 자동화 실행 및 결과 리포팅
  • 9.6 소프트웨어 테스트 자동화 5단계: 프로그램 리뷰 및 평가
  • 9.7 가상 품질 게이트
  • 9.8 프로세스 측정
  • 9.9 정리

  • 10장 핵심 활동 6: 적합한 인력을 프로젝트에 투입(필요한 스킬 세트 파악)
  • __소프트 스킬
  • 10.1 프로그램 관리
  • __AST 1단계: 요구사항 수집(테스트 자동화 요구사항 분석)
  • __AST 2단계: 테스트 케이스 설계 및 작성
  • __AST 3단계: ASTF 및 테스트 스크립트 개발
  • __AST 4단계: 테스트 자동화 실행 및 결과 리포팅
  • __AST 5단계: 프로그램 리뷰 및 평가
  • 10.2 시스템 엔지니어링
  • __AST 1단계: 요구사항 수집(테스트 자동화 요구사항 분석)
  • __AST 2단계: 테스트 케이스 설계 및 작성
  • __AST 3단계: ASTF 및 테스트 스크립트 개발
  • __AST 4단계: 테스트 자동화 실행 및 결과 리포팅
  • __AST 5단계: 프로그램 리뷰 및 평가
  • 10.3 소프트웨어 개발
  • __AST 1단계: 요구사항 수집(테스트 자동화 요구사항 분석)
  • __AST 2단계: 테스트 케이스 설계 및 작성
  • __AST 3단계: ASTF 및 테스트 스크립트 개발
  • __AST 4단계: 테스트 자동화 실행 및 결과 리포팅
  • __AST 5단계: 프로그램 리뷰 및 평가
  • 10.4 형상 관리
  • __AST 1단계: 요구사항 수집(테스트 자동화 요구사항 분석)
  • __AST 2단계: 테스트 케이스 설계 및 작성
  • __AST 3단계: ASTF 및 테스트 스크립트 개발
  • __AST 4단계: 테스트 자동화 실행 및 결과 리포팅
  • __AST 5단계: 프로그램 리뷰 및 평가
  • 10.5 품질 보증
  • __AST 1단계: 요구사항 수집(테스트 자동화 요구사항 분석)
  • __AST 2단계: 테스트 케이스 설계 및 작성
  • __AST 3단계: ASTF 및 테스트 스크립트 개발
  • __AST 4단계: 테스트 자동화 실행 및 결과 리포팅
  • __AST 5단계: 프로그램 리뷰 및 평가
  • 10.6 도메인 전문가
  • __교육
  • 10.7 정리

  • 부록 A 프로세스 체크리스트
  • A.1 AST 1단계: 요구사항 수집(테스트 자동화 요구사항 분석)
  • __체크리스트
  • __산출물
  • A.2 AST 2단계: 테스트 케이스 설계 및 개발
  • ____체크리스트
  • ____산출물
  • A.3 AST 3단계: 소프트웨어 ASTF 및 테스트 스크립트 개발
  • __체크리스트
  • __산출물
  • A.4 AST 4단계: 테스트 자동화 실행 및 결과 리포팅
  • __체크리스트
  • __산출물
  • A.5 AST 5단계: 프로그램 리뷰 및 평가
  • __체크리스트
  • __산출물

  • 부록 B 다양한 테스트 유형에 적용된 소프트웨어 테스트 자동화
  • B.1 보안 테스트
  • B.2 지속성 테스트
  • B.3 동시성 테스트
  • B.4 성능 테스트
  • B.5 코드 커버리지 테스트
  • B.6 단위 테스트
  • 부록 C 알맞은 툴 선택
  • C.1 요구사항 관리
  • __요구사항 관리 자동화
  • C.2 단위 테스트 프레임워크: 평가 예제
  • __프레임워크 평가 및 선택 방법
  • C.3 형상 관리: 평가 예제
  • __소프트웨어 형상 관리(SCM)의 장점
  • __평가 대상 SCM 툴
  • C.4 결함 추적: 평가 예제
  • __결함 추적 툴을 평가하고 선택하는 방법
  • __버그질라와 크랙
  • __결론: 보안이 최우선
  • C.5 보안 테스트
  • __정적 분석과 동적 분석
  • __소스 분석과 바이너리 분석
  • __애플리케이션 풋프린팅
  • __퍼즈 테스트 또는 침투 테스트
  • __위협 모델링: 위협 모델링으로 보안 테스트 우선순위 정하기
  • __자동화 리그레션 테스트
  • __무선 보안 진단 툴
  • C.6 ASTF: 평가 예제
  • __테스트 케이스 개발
  • __고급 언어
  • __플랫폼 지원
  • __오픈소스
  • __비용
  • __다중 프로세스 관리
  • __테스트 케이스 결과 수집
  • __분산 환경 지원
  • __예정 실행 시간
  • __확장성
  • __테스트 대상 시스템에 대한 영향
  • __이메일
  • __소프트웨어 테스트 자동화 프레임워크의 결론
  • __테스트 자동화 툴 예제: 테스트플랜트의 에그플랜트
  • C.7 그 외 소프트웨어 테스트 수명주기 지원 툴
  • __자가 테스트 또는 자율 컴퓨팅

  • 부록 D 사례 연구: ASTF 예제
  • D.1 핵심 설계 특징
  • D.2 테스트 관리자
  • D.3 테스트 케이스 자동화와 테스트 코드 생성
  • D.4 결과 리포팅
  • D.5 결함 리포팅 자동화

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안