Top

The Art of Software Testing (Second Edition) 한국어판 [소프트웨어 테스팅의 정석]

  • 원서명The Art of Software Testing, Second Edition (ISBN 9780471469124)
  • 지은이글렌포드 마이어스, 톰 뱃지트, 토드 토마스, 코리 샌들러
  • 옮긴이이공선, 권원일
  • ISBN : 9788960773028
  • 30,000원
  • 2012년 05월 24일 펴냄
  • 페이퍼백 | 292쪽 | 152*224mm
  • 시리즈 : 소프트웨어 테스팅

책 소개

글렌포드 J. 마이어스가 쓴 이 책은 소프트웨어 테스팅 분야에서 한 획을 그은 진정한 명서이며 고전이다. 테스팅에 대한 일반적인 내용을 개발과 연계해 최근 출간된 그 어떤 책보다 오히려 더 체계적이고 설득력 있게 소개한다. 또한 인터넷 애플리케이션 테스팅, 익스트림 테스팅 등 테스팅의 최신 내용도 같은 맥락에서 다뤄 30여 년 전에 저자가 정립한 테스팅 이론의 탁월성과 적용성을 입증하고 있다. 이 책은 소프트웨어 테스트 엔지니어만을 위한 것은 아니다. IT 전문가라면 누구나 한 번은 읽어야 할, 글자 그대로 소프트웨어 테스팅의 정석을 알려주는 책이다.


[ 소개 ]

성공적이고 효율적인 테스팅에 사용되는 실무 기법

1979년 첫 출간된 글렌포드 마이어스의 『The Art of Software Testing』은 지난 25년간 출판사 판매 도서 목록에서 빠지지 않았던 고전이었다. 그만큼 이 책은 기본에 충실하고, 실전에 도움이 되는 가치 있는 책이라는 뜻이다.

이 책의 개정판 저자들은 지금까지 컴퓨터 소프트웨어를 주제로 120권 이상의 책을 집필했다. 그 중에는 높은 판매고를 올리는 책도 있으며, 여러 버전으로 나오기도 했다(코리 샌들러의 『내 PC 고치기(Fix Your Own PC)』는 7판까지 나왔으며, 톰 뱃지트의 마이크로소프트 파워포인트와 오피스에 대한 책은 4판 이상 출판됐다). 하지만 이 책들도 몇 년 이상 판매되는 스테디셀러는 되지 못했다.

차이는 무엇일까? 최근 발간되는 책은 운영체제, 애플리케이션 소프트웨어, 보안, 통신 기술, 하드웨어 구성 등 단편적인 주제를 다룬다. 1980년 이후, 컴퓨터 하드웨어와 소프트웨어 기술의 빠른 변화로 말미암아 주제는 수시로 바뀌어왔다.

같은 시기에 소프트웨어 테스팅에 대한 책은 수십 권 아니 수백 권은 출간됐을 것이다. 이 책들은 소프트웨어 테스팅 주제에 대해서 각각 변화한 접근 방법을 중심으로 기술한다.

반면 마이어스의 『The Art of Software Testing』은 가장 중요한 컴퓨터 주제 중 하나인, 개발 소프트웨어가 본래 목적에 맞는 기능을 수행하는지, 잘못된 기능을 하지 않는지 확인 과정에 대한 확고한 지침을 제공해왔다.

이 책은 이와 같은 기본적인 개념을 다룬다. 최근의 프로그래밍 언어를 포함한 예제를 추가했고, 마이어스가 1판을 작성할 때는 없었던 웹 프로그래밍, 전자상거래, 익스트림 프로그래밍과 익스트림 테스팅 같은 주제를 추가했다.

하지만 새로운 고전에는 원작이 있듯이, 이 책도 현재와 미래의 하드웨어와 소프트웨어 플랫폼에 적용할 원리와 프로세스, 즉 글렌포드 마이어스의 소프트웨어 테스팅 원리를 기술한다. 이 책도 부디 원작에 버금갈 정도로 소프트웨어 설계자와 개발자에게 오랫동안 소중한 정보를 제공하는 스테디셀러가 되길 바란다.


[ 이 책에서 다루는 내용 ]

• 테스팅의 기본 원리와 전략
• 프로그램 인스펙션과 워크스루
• 코드 인스펙션
• 오류 체크리스트
• 동료 평가
• 블랙박스와 화이트박스 테스팅
• 오류 추정
• 하향식 테스팅 대 상향식 테스팅
• 고수준 테스팅
• 기능 테스팅과 시스템 테스팅
• 인수 테스팅
• 설치 테스팅
• 모듈(단위) 테스팅
• 테스트 계획과 제어
• 독립 테스팅 에이전시
• 디버깅 원리
• 오류 분석
• 익스트림 테스팅
• 인터넷 애플리케이션 테스팅
• e커머스 아키텍처의 고수준 테스팅


[ 이 책의 구성 ]

1장은 다른 내용을 읽기 전에 모든 독자가 읽어야 할 자체평가 테스트다.

2장에서는 프로그램 테스팅이 철학적이면서 경제적인 문제의 집합이라는 사실을 이해하는 데 가장 중요한 실제 정보를 다룬다.

3장에서는 컴퓨터에 기반하지 않은 워크스루(Walkthroughs)나 인스펙션 개념을 다룬다. 절차나 관리적인 측면이 아닌 토론에 초점이 맞춰져 있다. 3장에서는 에러를 찾는 방법에 대한 기술적 관점을 설명한다.

4장의 주제는 테스팅에 익숙한 독자라면 이미 잘 아는, 프로그램 테스터의 기술 중 테스트 케이스를 효과적으로 기술하는 지식의 중요성을 좀 더 자세하게 소개한다.

5장과 6장은 개별 모듈이나 서브루틴의 테스팅과 객체 테스팅을 다룬다.

7장에서는 프로그램 디버깅에 대한 실질적인 제안을 제시하며, 8장에서는 익스트림 프로그래밍과 익스트림 테스팅을 다룬다.

마지막으로 9장에서는 기존 책에 기술되지 않았던 전자상거래 시스템을 포함한 웹 프로그램의 테스팅 방법을 소개한다.


[ 이 책의 대상 독자 ]

이 책의 대상 독자는 세 그룹으로 나뉜다. 우선 이 책에 기술된 내용이 전문 프로그래머에겐 최신 정보가 아닐지라도 테스팅 기법의 지식을 얻는 데 도움이 되리라 생각한다. 따라서 독자가 프로그램에서 버그를 찾는 데 이 책의 도움을 받았다면, 그것만으로도 이 책은 제 몫을 다한 것이다. 두 번째 독자는 프로젝트 관리자다. 이 책이 전하는 테스팅 프로세스 관리에 대한 새롭고 실무적인 정보가 필요하리라 생각해서다. 세 번째 독자는 전산학과 학생이다. 앞서 말했듯, 이 책의 목적은 학생들에게 프로그램 테스팅의 문제를 알리고 효과적인 기법을 제안하는 데 있다. 따라서 학생들의 프로그래밍 수업 과정에 이 책이 보조 교재로 사용되길 희망한다. 학생들이 조기에 소프트웨어 테스팅을 접할 수 있기를 바라는 마음에서다.

저자/역자 소개

[ 저자 서문 ]

이 책의 초판이 처음 출간된 1979년에는 전형적인 프로그래밍 프로젝트의 전체 일정과 비용의 50% 이상이 개발된 프로그램이나 시스템 테스트에 할당됐다.

사반세기가 지난 지금도 마찬가지다. 새로 개발된 시스템이나 개발 도구에 포함된 개발 언어와 빠르게 개발하는 프로그래머가 있지만, 아직도 테스팅은 소프트웨어 개발 프로젝트에서 가장 중요한 부분이다.

이런 사실을 고려하면, 오늘날 프로그램 테스팅은 과학으로 분류돼야 한다. 하지만 현실은 이와 매우 다르다. 소프트웨어 테스팅은 소프트웨어 개발 단계 중 가장 연구가 미진한 분야다. 더구나 시대에 뒤떨어졌다 생각하는 사람도 많으며, 이런 분위기는 책이 처음 출간됐을 때나 오늘날에나 조금도 변하지 않았다. 그나마 최근 들어 소프트웨어 테스팅에 대한 책과 기사가 많이 나오다 보니, 이 책이 처음 출간됐을 때보다는 눈에 띄는 주제이긴 하다. 하지만 테스팅은 아직까지 소프트웨어 개발에서 ‘어둠의 예술’이다.

이런 이유로 『The Art of Software Testing』을 개정하리라 마음먹었다. 이 외에 또 다른 이유가 있다. 현직 교수나 강사들이 하는 이야기를 자주 들었다. “우리 학생들이 졸업하고 취직하지만, 프로그램을 어떻게 테스트하는지는 잘 모른다. 더구나 학생들이 예제를 테스팅하고 디버깅하는 방법에 대한 기초 강좌가 거의 없다.”

이에 따라 1979년에 출판된 『The Art of Software Testing』 개정판의 목적은 전산학과 학생과 전문 프로그래머를 위한 지식 격차를 좁히는 것이다. 제목으로 알 수 있듯이, 이 책은 이론적이기보다는 실질적으로 ‘테스팅’을 논하고자 노력했으며 프로그램 언어와 프로세스 내용으로 설명을 끝맺음 한다. 프로그램 테스팅을 이론적으로 논하는 게 가능할지라도, 이 책은 실질적인 입문서로 기획됐다. 그러므로 대부분의 설명이 프로그램 정확성에 대한 수학적인 증명을 배제한 ‘테스트에 관한 실용적인 설명 방식’으로 이뤄진다.


[ 저자 소개 ]

글렌포드 마이어스 (Glenford J. Myers)
현재 스펙트럼 시그널사의 경영자이다. 래디시스 사의 창업자이자 대표였으며 IBM 시스템연구소의 선임연구원이었다.

톰 뱃지트 (Tom Badgett)
국책기업인 아이들에어테크놀로지 사의 CIO이고 복잡한 실시간 빌링 및 고객지원 시스템을 설계•유지•보수하는 소프트웨어 개발팀 매니저다. 소프트웨어와 하드웨어 관련 50여권의 책을 집필했으며, 「피씨주니어(PCJr)」와 「디지털뉴스(Digital News)」의 기술 편집인이기도 하다. 또한 컴퓨터 관련 주요 잡지에 수백 편의 글을 기고했다.

토드 토마스 (Todd M. Thomas)
9년 이상 경력을 가진 소프트웨어 전문 개발자이면서 데이터베이스 관리자로서 민간 및 공공 분야에서 다양한 규모의 소프트웨어 프로젝트에 참여한 경력을 보유하고 있다. 기업의 데이터 저장을 극대화하는 데 자바 기술을 사용하는 방법을 다룬 『자바 데이터 액세스(Java Data Access)』의 저자이다.

코리 샌들러 (Corey Sandler)
컴퓨터, 과학, 비즈니스 및 여행 책을 발굴해 여러 나라의 대규모 출판사에 제공하는 워드어소시에이션 사의 대표이다. 베스트셀러인 『내 PC 고치기(Fix Your Own PC)』의 저자이며 「디지털뉴스」의 수석편집인이었고 편집장을 역임했다. 또한 「PC위크」의 뉴욕지부장을 역임했고 「PC매거진」의 첫 번째 대표편집인이었다.


[ 옮긴이의 말 ]

소프트웨어의 중요성이 강조되면서 그 품질 향상에 대한 관심 또한 올라갔다. 이 책은 소프트웨어의 품질 향상에 직접적으로 기여하는 소프트웨어 테스팅의 체계를 정립했다는 평가를 받아 왔다.

어느 분야에나 '고전'이 있듯이 글렌포드 J. 마이어스의 『The Art of Software Testing』은 1979년 발간 이후에 소프트웨어 테스팅 분야의 흔들림 없는 고전으로 인정받아 왔다. 이 책은 소프트웨어 테스팅의 체계를 정립함으로써 테스팅 분야에서 한 획을 그었다. 물론 IT는 빠르게 발전하면서 기존 기술을 새로운 기술로 대체하고 있다. 하지만 이 책의 첫 부분에 기술된 목차는 물론 자체평가 테스트만 봐도 짐작할 수 있듯이, 또한 새로운 수학 이론이 나오더라도 수학의 기본 정의는 바뀌지 않듯이, 이 책에서 정립한 테스팅 이론과 체계는 30년 이상 바뀌지 않고 여전히 소프트웨어 테스팅의 기준을 제시한다. 그런 이유로 이 책은 전 세계에서 가장 많이 인용되는 책이다.

이 책은 1979년에 발간된 책에 익스트림 테스팅(Extreme Testing)과 인터넷 애플리케이션 부분이 추가돼 2004년에 다시 발간됐다. 앞으로 새로운 개발 기술이 나오면, 대응 테스팅 기술도 추가돼 소프트웨어 테스팅 분야의 고전으로서 역할은 물론 정석으로서의 역할도 이어 갈 것으로 기대한다.

이 책이 국내 소프트웨어 테스트 엔지니어에게는 물론 모든 개발자에게 큰 도움이 됐으면 한다.


[ 옮긴이 소개 ]

이공선
한국정보통신기술협회(TTA)의 소프트웨어 시험 인증팀에서 일하고 있다. 관심 분야는 소프트웨어 테스트와 IT 관련 신기술 및 신제품이다.

권원일
㈜STA테스팅컨설팅의 대표이며 현재 1만 7000명 이상의 회원을 가진 테스팅 커뮤니티인 STEN(Software Test Engineers Network, www.STEN.or.kr)을 운영하고 있다. 소프트웨어 테스팅 분야에서 커리어의 승부를 보고자 테스팅 교육∙컨설팅∙책 집필∙국제활동 등을 즐기고 있다. 지식경제부 기술표준원을 대신해 ISO 소프트웨어 테스팅 표준을 주도적으로 만들고 있으며, ISTQB(International Software Testing Qualifications Board) 국제 테스팅 자격증을 국내에 성공적으로 도입했다. 최근에는 TMMi(Testing Maturity Model integration)를 국내는 물론 아시아권에 확산하는 일에 주력하고 있다.

목차

목차
  • 1장 자체평가 테스트
  • 2장 프로그램 테스팅의 심리학과 경제학
    • 테스팅의 심리학
    • 테스팅의 경제학
      • 블랙박스 테스팅
      • 화이트박스 테스팅
    • 소프트웨어 테스팅 원칙
    • 요약
  • 3장 프로그램 인스펙션과 워크스루, 리뷰
    • 인스펙션과 워크스루
    • 코드 인스펙션
    • 인스펙션용 에러 체크리스트
      • 데이터 참조 에러
      • 데이터 선언 에러
      • 연산 에러
      • 비교 에러
      • 제어흐름 에러
      • 인터페이스 에러
      • 입출력 에러
      • 기타 체크
      • 워크스루
      • 데스크 체킹
      • 동료 평가
      • 요약
  • 4장 테스트 케이스 설계
    • 화이트박스 테스팅
      • 논리 커버리지 테스팅
      • 동등분할
      • 예제
      • 경계 값 분석
      • 원인-결과 그래핑
    • 에러 추측
    • 전략
  • 5장 모듈 테스팅
    • 테스트 케이스 설계
    • 점진적 테스트
    • 하향식 테스팅 대 상향식 테스팅
      • 하향식 테스팅
      • 상향식 테스팅
      • 비교
    • 테스트 수행
  • 6장 고수준 테스팅
    • 기능 테스팅
    • 시스템 테스팅
      • 편의 테스팅
      • 볼륨 테스팅
      • 스트레스 테스팅
      • 사용성 테스팅
      • 보안성 테스팅
      • 성능 테스팅
      • 스토리지 테스팅
      • 구성 테스팅
      • 호환성∙변환 테스팅
      • 설치 테스팅
      • 신뢰성 테스팅
      • 회복 테스팅
      • 유용성 테스팅
      • 문서 테스팅
      • 절차 테스팅
      • 시스템 테스팅 수행
    • 인수 테스팅
    • 설치 테스팅
    • 테스트 계획 및 제어
    • 테스트 완료 기준
    • 독립적 테스트 기관
  • 7장 디버깅
    • 무차별 디버깅
    • 귀납적 디버깅
    • 연역적 디버깅
    • 역추적에 의한 디버깅
    • 테스팅에 의한 디버깅
    • 디버깅 원리
      • 에러 발생 위치 파악의 원리
      • 에러 수정 기법
    • 에러 분석
  • 8장 익스트림 테스팅
    • 익스트림 프로그래밍 기초
    • 익스트림 테스팅의 개념
      • 익스트림 단위 테스팅
      • 인수 테스팅
    • 익스트림 테스팅 활용
      • 테스트 케이스 설계
      • 테스트 드라이버와 테스트 애플리케이션
    • 요약
  • 9장 인터넷 애플리케이션 테스팅
    • 기본적인 e커머스 아키텍처
    • 테스팅 관련 어려운 과제
    • 테스팅 전략
      • 프리젠테이션 레이어 테스팅
      • 비즈니스 레이어 테스팅
      • 데이터 레이어 테스팅
  • 부록 A 익스트림 테스팅 애플리케이션 예제

도서 오류 신고

도서 오류 신고

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

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

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