이미 소장하고 있다면 판매해 보세요.
|
1장 자체평가 테스트
2장 프로그램 테스팅의 심리학과 경제학 ___테스팅의 심리학 ___테스팅의 경제학 ______블랙박스 테스팅 ______화이트박스 테스팅 ___소프트웨어 테스팅 원칙 ___요약 3장 프로그램 인스펙션과 워크스루, 리뷰 ___인스펙션과 워크스루 ___코드 인스펙션 ___인스펙션용 에러 체크리스트 ______데이터 참조 에러 ______데이터 선언 에러 ______연산 에러 ______비교 에러 ______제어흐름 에러 ______인터페이스 에러 ______입출력 에러 ______기타 체크 ______워크스루 ______데스크 체킹 ______동료 평가 ______요약 4장 테스트 케이스 설계 ___화이트박스 테스팅 ______논리 커버리지 테스팅 ______동등분할 ______예제 ______경계 값 분석 ______원인-결과 그래핑 ___에러 추측 ___전략 5장 모듈 테스팅 ___테스트 케이스 설계 ___점진적 테스트 ___하향식 테스팅 대 상향식 테스팅 ______하향식 테스팅 ______상향식 테스팅 ______비교 ___테스트 수행 6장 고수준 테스팅 ___기능 테스팅 ___시스템 테스팅 ______편의 테스팅 ______볼륨 테스팅 ______스트레스 테스팅 ______사용성 테스팅 ______보안성 테스팅 ______성능 테스팅 ______스토리지 테스팅 ______구성 테스팅 ______호환성?변환 테스팅 ______설치 테스팅 ______신뢰성 테스팅 ______회복 테스팅 ______유용성 테스팅 ______문서 테스팅 ______절차 테스팅 ______시스템 테스팅 수행 ___인수 테스팅 ___설치 테스팅 ___테스트 계획 및 제어 ___테스트 완료 기준 ___독립적 테스트 기관 7장 디버깅 ___무차별 디버깅 ___귀납적 디버깅 ___연역적 디버깅 ___역추적에 의한 디버깅 ___테스팅에 의한 디버깅 ___디버깅 원리 ______에러 발생 위치 파악의 원리 ______에러 수정 기법 ___에러 분석 8장 익스트림 테스팅 ___익스트림 프로그래밍 기초 ___익스트림 테스팅의 개념 ______익스트림 단위 테스팅 ______인수 테스팅 ___익스트림 테스팅 활용 ______테스트 케이스 설계 ______테스트 드라이버와 테스트 애플리케이션 ___요약 9장 인터넷 애플리케이션 테스팅 ___기본적인 e커머스 아키텍처 ___테스팅 관련 어려운 과제 ___테스팅 전략 ______프리젠테이션 레이어 테스팅 ______비즈니스 레이어 테스팅 ______데이터 레이어 테스팅 부록 A 익스트림 테스팅 애플리케이션 예제 부록 B 1,000보다 작은 소수 |
|
이 책의 초판이 처음 출간된 1979년에는 전형적인 프로그래밍 프로젝트의 전체 일정과 비용의 50% 이상이 개발된 프로그램이나 시스템 테스트에 할당됐다.
사반세기가 지난 지금도 마찬가지다. 새로 개발된 시스템이나 개발 도구에 포함된 개발 언어와 빠르게 개발하는 프로그래머가 있지만, 아직도 테스팅은 소프트웨어 개발 프로젝트에서 가장 중요한 부분이다. 이런 사실을 고려하면, 오늘날 프로그램 테스팅은 과학으로 분류돼야 한다. 하지만 현실은 이와 매우 다르다. 소프트웨어 테스팅은 소프트웨어 개발 단계 중 가장 연구가 미진한 분야다. 더구나 시대에 뒤떨어졌다 생각하는 사람도 많으며, 이런 분위기는 책이 처음 출간됐을 때나 오늘날에나 조금도 변하지 않았다. 그나마 최근 들어 소프트웨어 테스팅에 대한 책과 기사가 많이 나오다 보니, 이 책이 처음 출간됐을 때보다는 눈에 띄는 주제이긴 하다. 하지만 테스팅은 아직까지 소프트웨어 개발에서 '어둠의 예술'이다. 이런 이유로 『The Art of Software Testing』을 개정하리라 마음먹었다. 이 외에 또 다른 이유가 있다. 현직 교수나 강사들이 하는 이야기를 자주 들었다. "우리 학생들이 졸업하고 취직하지만, 프로그램을 어떻게 테스트하는지는 잘 모른다. 더구나 학생들이 예제를 테스팅하고 디버깅하는 방법에 대한 기초 강좌가 거의 없다." 이에 따라 1979년에 출판된 『The Art of Software Testing』 개정판의 목적은 전산학과 학생과 전문 프로그래머를 위한 지식 격차를 좁히는 것이다. 제목으로 알 수 있듯이, 이 책은 이론적이기보다는 실질적으로 '테스팅'을 논하고자 노력했으며 프로그램 언어와 프로세스 내용으로 설명을 끝맺음 한다. 프로그램 테스팅을 이론적으로 논하는 게 가능할지라도, 이 책은 실질적인 입문서로 기획됐다. 그러므로 대부분의 설명이 프로그램 정확성에 대한 수학적인 증명을 배제한 '테스트에 관한 실용적인 설명 방식'으로 이뤄진다.---저자 서문 중에서 소프트웨어의 중요성이 강조되면서 그 품질 향상에 대한 관심 또한 올라갔다. 이 책은 소프트웨어의 품질 향상에 직접적으로 기여하는 소프트웨어 테스팅의 체계를 정립했다는 평가를 받아 왔다. 어느 분야에나 '고전'이 있듯이 글렌포드 J. 마이어스의 『The Art of Software Testing』은 1979년 발간 이후에 소프트웨어 테스팅 분야의 흔들림 없는 고전으로 인정받아 왔다. 이 책은 소프트웨어 테스팅의 체계를 정립함으로써 테스팅 분야에서 한 획을 그었다. 물론 IT는 빠르게 발전하면서 기존 기술을 새로운 기술로 대체하고 있다. 하지만 이 책의 첫 부분에 기술된 목차는 물론 자체평가 테스트만 봐도 짐작할 수 있듯이, 또한 새로운 수학 이론이 나오더라도 수학의 기본 정의는 바뀌지 않듯이, 이 책에서 정립한 테스팅 이론과 체계는 30년 이상 바뀌지 않고 여전히 소프트웨어 테스팅의 기준을 제시한다. 그런 이유로 이 책은 전 세계에서 가장 많이 인용되는 책이다. 이 책은 1979년에 발간된 책에 익스트림 테스팅(Extreme Testing)과 인터넷 애플리케이션 부분이 추가돼 2004년에 다시 발간됐다. 앞으로 새로운 개발 기술이 나오면, 대응 테스팅 기술도 추가돼 소프트웨어 테스팅 분야의 고전으로서 역할은 물론 정석으로서의 역할도 이어 갈 것으로 기대한다. 이 책이 국내 소프트웨어 테스트 엔지니어에게는 물론 모든 개발자에게 큰 도움이 됐으면 한다. ---옮긴이의 말 중에서 |
|
성공적이고 효율적인 테스팅에 사용되는 실무 기법
1979년 첫 출간된 글렌포드 마이어스의 『The Art of Software Testing』은 지난 25년간 출판사 판매 도서 목록에서 빠지지 않았던 고전이었다. 그만큼 이 책은 기본에 충실하고, 실전에 도움이 되는 가치 있는 책이라는 뜻이다. 이 책의 개정판 저자들은 지금까지 컴퓨터 소프트웨어를 주제로 120권 이상의 책을 집필했다. 그 중에는 높은 판매고를 올리는 책도 있으며, 여러 버전으로 나오기도 했다(코리 샌들러의 『내 PC 고치기(Fix Your Own PC)』는 7판까지 나왔으며, 톰 뱃지트의 마이크로소프트 파워포인트와 오피스에 대한 책은 4판 이상 출판됐다). 하지만 이 책들도 몇 년 이상 판매되는 스테디셀러는 되지 못했다. 차이는 무엇일까? 최근 발간되는 책은 운영체제, 애플리케이션 소프트웨어, 보안, 통신 기술, 하드웨어 구성 등 단편적인 주제를 다룬다. 1980년 이후, 컴퓨터 하드웨어와 소프트웨어 기술의 빠른 변화로 말미암아 주제는 수시로 바뀌어왔다. 같은 시기에 소프트웨어 테스팅에 대한 책은 수십 권 아니 수백 권은 출간됐을 것이다. 이 책들은 소프트웨어 테스팅 주제에 대해서 각각 변화한 접근 방법을 중심으로 기술한다. 반면 마이어스의 『The Art of Software Testing』은 가장 중요한 컴퓨터 주제 중 하나인, 개발 소프트웨어가 본래 목적에 맞는 기능을 수행하는지, 잘못된 기능을 하지 않는지 확인 과정에 대한 확고한 지침을 제공해왔다. 이 책은 이와 같은 기본적인 개념을 다룬다. 최근의 프로그래밍 언어를 포함한 예제를 추가했고, 마이어스가 1판을 작성할 때는 없었던 웹 프로그래밍, 전자상거래, 익스트림 프로그래밍과 익스트림 테스팅 같은 주제를 추가했다. 하지만 새로운 고전에는 원작이 있듯이, 이 책도 현재와 미래의 하드웨어와 소프트웨어 플랫폼에 적용할 원리와 프로세스, 즉 글렌포드 마이어스의 소프트웨어 테스팅 원리를 기술한다. 이 책도 부디 원작에 버금갈 정도로 소프트웨어 설계자와 개발자에게 오랫동안 소중한 정보를 제공하는 스테디셀러가 되길 바란다. ★ 이 책에서 다루는 내용 ★ o 테스팅의 기본 원리와 전략 o 프로그램 인스펙션과 워크스루 o 코드 인스펙션 o 오류 체크리스트 o 동료 평가 o 블랙박스와 화이트박스 테스팅 o 오류 추정 o 하향식 테스팅 대 상향식 테스팅 o 고수준 테스팅 o 기능 테스팅과 시스템 테스팅 o 인수 테스팅 o 설치 테스팅 o 모듈(단위) 테스팅 o 테스트 계획과 제어 o 독립 테스팅 에이전시 o 디버깅 원리 o 오류 분석 o 익스트림 테스팅 o 인터넷 애플리케이션 테스팅 o e커머스 아키텍처의 고수준 테스팅 ★ 이 책의 구성 ★ 1장은 다른 내용을 읽기 전에 모든 독자가 읽어야 할 자체평가 테스트다. 2장에서는 프로그램 테스팅이 철학적이면서 경제적인 문제의 집합이라는 사실을 이해하는 데 가장 중요한 실제 정보를 다룬다. 3장에서는 컴퓨터에 기반하지 않은 워크스루(Walkthroughs)나 인스펙션 개념을 다룬다. 절차나 관리적인 측면이 아닌 토론에 초점이 맞춰져 있다. 3장에서는 에러를 찾는 방법에 대한 기술적 관점을 설명한다. 4장의 주제는 테스팅에 익숙한 독자라면 이미 잘 아는, 프로그램 테스터의 기술 중 테스트 케이스를 효과적으로 기술하는 지식의 중요성을 좀 더 자세하게 소개한다. 5장과 6장은 개별 모듈이나 서브루틴의 테스팅과 객체 테스팅을 다룬다. 7장에서는 프로그램 디버깅에 대한 실질적인 제안을 제시하며, 8장에서는 익스트림 프로그래밍과 익스트림 테스팅을 다룬다. 마지막으로 9장에서는 기존 책에 기술되지 않았던 전자상거래 시스템을 포함한 웹 프로그램의 테스팅 방법을 소개한다. ★ 이 책의 대상 독자 ★ 이 책의 대상 독자는 세 그룹으로 나뉜다. 우선 이 책에 기술된 내용이 전문 프로그래머에겐 최신 정보가 아닐지라도 테스팅 기법의 지식을 얻는 데 도움이 되리라 생각한다. 따라서 독자가 프로그램에서 버그를 찾는 데 이 책의 도움을 받았다면, 그것만으로도 이 책은 제 몫을 다한 것이다. 두 번째 독자는 프로젝트 관리자다. 이 책이 전하는 테스팅 프로세스 관리에 대한 새롭고 실무적인 정보가 필요하리라 생각해서다. 세 번째 독자는 전산학과 학생이다. 앞서 말했듯, 이 책의 목적은 학생들에게 프로그램 테스팅의 문제를 알리고 효과적인 기법을 제안하는 데 있다. 따라서 학생들의 프로그래밍 수업 과정에 이 책이 보조 교재로 사용되길 희망한다. 학생들이 조기에 소프트웨어 테스팅을 접할 수 있기를 바라는 마음에서다. |