소프트웨어 개발 주기 동안 수행되는 10가지 테스트 기술의 기본 원칙을 소개하고, 상황별로 각 기술을 활용하는 방법과 전략을 자세히 설명합니다. 특히 (1) 자바 및 자바스크립트를 사용해 실무에서 테스트에 어떻게 접근하는지 단계별로 안내하는 점, (2) 여러 가지 테스트 도구를 소개하는 점, (3) 각 도구로 최대의 가치를 창출할 수 있는 시점을 자세히 설명하는 점이 이 책의 차별화된 특징입니다. 또한 오랜 실무 경험을 통해 터득한 저자의 테스트 노하우를 공유합니다. 따라서 웹 및 모바일 애플리케이션 테스트에 필요한 모든 기술을 접하고 익숙해질 수 있습니다. 전문 테스터뿐만 아니라 애플리케이션 개발자, 데브옵스 엔지니어 같이 테스트와 밀접한 관련이 있는 업무를 담당하는 모든 사람에게 큰 도움이 되는 테스트 교과서라 할 수 있습니다.
저자소개
저자
가야트리 모한
소프트웨어 개발 분야에서 여러 역할을 경험했으며 다양한 기술 및 산업 영역의 전문 지식을 갖춘 열정적인 기술 리더다. Thoughtworks의 수석 컨설턴트로, 고객을 위한 대규모 품질 보증(QA) 팀을 이끌고 있다. 또한 글로벌 QA SME로 일하면서 QA를 위한 커리어 패스와 기술 개발 구조를 정의했다. 기술 리더로서 기술 커뮤니티 육성과 이벤트 주최에 관심이 많으며 기술 주제 전반에 걸친 리더십 개발에 힘쓰고 있다. 셀레니움 10주년 기념일에 Thoughtworks에서 발표한 『Perspectives of Agile Software Testing』을 공동 집필하기도 했다.
역자
최경현
SK텔레콤에서 통신 및 플랫폼 인프라 등 다양한 시스템을 운영했으며 현재는 개발 업무를 담당하고 있다. 옮긴 책으로는 『처음 시작하는 마이크로서비스』(한빛미디어, 2021), 『쿠버네티스를 활용한 클라우드 네이티브 데브옵스』(한빛미디어, 2019)가 있다.
자동화된 테스트가 등장하고, 기능적 사용 사례를 넘어 성능, 보안, 안정성과 같은 교차 기능 요구 사항에 대한 테스트가 중요해지면서 풀스택 테스트는 하나의 분야가 되었습니다. 이 책은 풀스택 테스트를 위한 종합적인 자료로, 테스트 기술에 관한 일관된 설명과 실제 사례를 제공하고 어느 시점에 어떤 유형의 테스트를 수행해야 하는지 상세히 설명합니다.
또한 실습을 통해 테스트 접근 방식을 구체화합니다. 실습에서 다루는 도구는 시간이 지남에 따라 변경되거나 발전할 수 있지만, 이 책에서는 올바른 테스트를 구성하는 방법에 초점을 맞추기 때문에 도구가 변경되더라도 적용 및 응용할 수 있습니다.
이제 막 소프트웨어 업계에 입문한 초보자라면 테스트 기술에 대한 전반적인 배경지식을 얻어갈 수 있고, 숙련된 테스트 전문가라면 이 책을 통해 새로운 영역에 관한 인사이트를 얻을 수 있습니다.
2023년 05월에 출간된 한빛미디어 출판사의 <풀스택 테스트: 10가지 테스트 기술의 기본 원칙과 전략>에 대한 리뷰를 진행하겠습니다. 이 책의 원서는 2022년에 7월에 출간되었고, 아마존 평점으로 4.2점의 높은 점수를 받고 있습니다. 저자는 가야트리 모한으로 Thoughtworks의 수석 컨설턴트로 재직 중이며, 대규모 품질 보증 팀을 리딩하고 있습니다. 역자는 최경현 님으로 번역서로 <처음 시작하는 마이크로서비스>와 <쿠버네티스를 활용한 클라우드 네이티브 데브옵스>가 있습니다.
<풀스택 테스트>는 430여 페이지로 구성되어 있습니다. 분철하거나 전자책으로도 출간되어 있으므로 전자책 뷰어가 있으면 전자책으로 만나보는 것도 좋을 것 같습니다. 참고로 필자도 전자책으로 봤습니다.
이 책은 풀스택 테스트에 관한 소개로 시작하며, 좋은 품질의 웹 및 모바일 애플리케이션을 제공하기 위한 10가지 테스트 기술을 13장으로 구성하여 설명하고 있습니다.
저자가 이 책을 집필하면서 목표로 세운 부분은 다음과 같습니다.
테스트를 처음 접하는 사람이 오늘날의 웹 및 모바일 애플리케이션 테스트에 필요한 모든 기술을 초중급자 수준 이상으로 향상시킬 수 있는 종합적인 자료가 되는 것
이 책에서 다루는 테스트 기술은 다음과 같습니다. 상당히 방대한 내용을 다루고 있습니다.
수동 탐색적 테스트
자동화된 기능 테스트
지속적 테스트
데이터 테스트
CFR 테스트
시각적 테스트
보안 테스트
성능 테스트
접근성 테스트
모바일 테스트
신기술(머신러닝, 사물인터넷, AR/VR 등) 등
이 책에서 소개하는 다양한 테스트 중에서 미리 사용해 본 도구들도 있었고, 이 책을 통해 새롭게 배운 도구들도 있었습니다. 이 책에서 소개한 모든 테스트 도구를 사용해보진 못했지만, 매력적으로 느껴지는 도구들도 있었고 제 시각을 넓혀준 계기가 된 것 같습니다.
이 책에서 각 테스트를 소개하는 전략은 다음과 같습니다.
구성요소 - 각 주제를 이해하기 위한 필수 항목을 나열한다. 기술을 처음 접하는 경우 '구성 요소' 절을 통해 기술에 관한 이해와 기술이 필요한 영역에 관한 인이트를 얻을 수 있다.
전략 - 주어진 상황에서 기술을 적용하는 비법을 자세히 설명한다.
실습 - 각 기술에 관련된 여러 도구를 다루는 방법은 단계별로 안내한다.
추가 테스트 도구 - '실습' 절에서 다룬 것과 유사한 도구 등을 추가로 소개한다.
인사이트 - 저자의 관찰과 경험을 바탕으로 각 기술과 관련된 교훈을 소개한다.
이 책의 서론 부분에 전략보다 더 잘 요약하여 소개함에 어려움을 느꼈습니다. 그래서 책의 서론 부분에 있는 내용을 담아 소개합니다.
또한, 10가지 이상의 테스트 방법을 다루기에는 지면이 부족한 느낌이 들었는데, 책의 주요 범주를 벗어나는 부분은 과감하게 링크를 제공하는 것으로 대체한 부분이 눈에 띄었습니다. 비록 링크를 직접 입력하여 이동하기에 불편한 부분이 있지만, 모든 내용을 책에 담을 수 없기 때문에 이렇게 기술한 부분에 대해 이해할 수 있었습니다.
이 책의 서문에서 저자는 이 책의 내용을 드라이퍼스 모델(Dreyfus Model)의 초중급자 수준으로 다룬다고 이야기합니다. 이상(능숙자)의 단계로 나아가기 위해서는 다양한 상황에 대하 연습이 필요하다고 이야기하고 있는데 이 부분에 대해 저자의 생각에 공감합니다. 이 책의 내용을 학습한 후, 다양하게 경험하고 문제를 해결해 나가며 자신의 지식으로 만들어 나가는 것이 중요하다고 생각합니다. 필자도 이 책을 통해 새롭게 알게 된 새로운 지식을 체계화하고 각 테스트 도구들의 사용법을 학습하려 합니다.
한빛미디어 평가단에 참가하여 작성한 글이며, 한빛미디어에서 제공해 준 책을 읽고 작성했음을 밝힙니다.
소프트웨어 테스팅은 컴포넌트테스트(단위테스트)- 통합테스트 - 시스템테스트 - 인수테스트의 단계를 거쳐서 최종 사용자에게 배포된다. 이 외의 상세한 테스트의 모든것을 담은 책이 이 책이다.
UI계층부터 데이터베이스까지 필요한 모든 테스트를 배울 수 있다.
기능테스트 및 비기능테스트 등을 어떻게 해야하는지 배우고 싶다면 이 책을 참고하는 것이 좋다.
특히나 데브옵스 엔지니어에게 매우 유용한 책임이 분명하다.
제품을 만들고 품질을 높이기 위한 활동은 모든 산업 영역에서 하는 가장 중요한 활동입니다. 특히 IT에서의 품질 개선 활동은 설계 단계부터 시작해서 배포 후 운영 후에도 개선 활동을 합니다. 이 도서는 좋은 품질을 위해 다음과 같은 테스트에 대한 설명과 수행 방법에 대해서 실습을 할 수 있도록 구성되어 있습니다.
수동 탐색적 테스트 : 다양한 시나리오를 도출 하고 테스트 환경에서 시물레이션 하고 애플리케이션의 작동을 관찰하는 기술로 다양한 방법론과 접근 방법을 설명하고 API와 UI 탐색을 위한 테스트 도구를 소개하고 있습니다.
자동화된 기능 테스트 : 사람의 개입 없이 요구 사항을 테스트 하는 것으로 테스트 방법에 대해서 소개하고 있으며 UI 기반 테스트 도구인 셀레니옴 웹 드라이버 테스트에 대한 실습 및 JUNIT등 다양한 접근 방법에 대해서 소개하고 있은 것으로 개인적으로는 가장 흥미로운 부분이었습니다.
지속적 테스트 : CI/CD/CT에 대해서 설명을 하고 있으며 Git, 젠킨스를 사용해서 실습할 수 있도록 설명을 하고 있습니다.
데이터 테스트 : 개인적으로 접하지 못한 테스트 영역으로 순수 데이터에 대한 검증을 이야기하는 것으로 SQL, JBDC, 카프카 등을 이용해서 하는 것에 대해서 새로운 시각으로 접할 수 있는 개시가 된 것 같습니다.
시각적 테스트 : 웹 애플리케이션 UI에 대한 테스트 방법을 소개 하고 있으며 BackstopJS, Cypress 등을 도구를 사용한 테스트 방법을 설명하고 있습니다.
보안 테스트 : 자동화된 보안 스캔 도구를 활용하여 해커의 관점에서 애플리케이션의 보안 문제를 찾는 방법에 대한 다양한 전략을 소개 하고 있습니다./
성능 테스트 : 성능 테스트는 시스템의 안정성을 검증 하는 테스트로 프론트, 백엔드로 나누어 성능 테스트에 대한 전반적인 방법에 대해서 소개하고 있습니다.
접근성 테스트 : 접근성은 사이트 이용에 어려움이 겪는 사람을 톱는 것을 목표로 음성등 다양한 방법으로 접근을 하고 있는데 이 부분에 대해서는 WCAG 2.0 기준으로 설명을 하고 있습니다.
교차 기능 요구 사항 테스트 : 요구 사항에 얼마나 만족 했는가에 따라서 프로젝트의 승부가 갈리는데 이 도서에서 요구 사항을 검증하기 위한 방법 및 도구에 대해서 설명을 하고 있습니다.
현장에서 언제나 느끼는 것 이지만 개발보다 중요한 것이 테스트입니다, 개발자는 언제나 실수를 할 수 있고 그 실수를 잡아주는 것이 테스트입니다. 설계 단계에는 시뮬레이션을 개발 단계에서는 단위 테스트릍 시험 단계에서는 CI/CD 및 자동화 도구를 사용한 지속적인 테스트, 사용자 시험에서 UI에 대한 시험 그리고 각 단계별 데이터 검증 그리고 성능 및 보안 시험.. 이 도서는 현장에서 시행되고 있는 모든 테스트에 대해서 10가지 방법으로 나눠 각 단계에 대한 쉬운 설명과 접근 방법 및 실습을 위한 예제를 제공하고 있습니다. 개발자, 테스터 등 IT에 종사하는 분들이 쉽고 편안하게 읽을 수 있을 것 같습니다. 이 도서를 통해서 일찍 퇴근하는 님들이 되었으면 합니다.
이번에 이 책을 선택한 이유는 개발자로 더 성장하고 싶은 생각이 많고 책을 좋아해서 어떤 책을 읽어볼까 생각하던 순간에 타이틀이 가장 눈에 띄어서 선택하게 되었다. 그리고 테스트라는 말에 코딩테스트와 비슷한 맥락인 줄 알고 선택을 했는데 제품을 출시하기위해 필요한 과정에 대한 책이어서 좋았다. 나중에 내가 앱이나 홈페이지를 만들 때 많은 시행착오를 겪을 텐데 특히 어플을 만들때 어떠한 과정이 필요하고 출시하기 전과 출시한 후에도 필요한 과정을 알 수 있어서 좋았다.
꼭 개발이 아니어도 어떤 상품을 출시할 때 비슷한 맥락으로 진행을 해도 좋을 것같다는 생가깅 들었다.
책의 “추천사”에 이어지는 “베타리더의말”에서 어떤 베타리더가 이 책을 가리켜 한마디로 정의하면 “모든테스트의 종합판”이다라고 썼는데 적절한 표현인 것 같다. 시프트레프트(Shift left)는 보안 및 테스트와 같은 활동을 프로젝트 타임라인 초기 단계에 수행하는것이라 하는데 저자는 소프트웨어 라이프 사이클의 초기부터 다양한 테스트를 자동화해서 적용하고 지속적 통합(CI,Continuous Integration) 및 지속적 배포(CD, ContinuousDeployment)를 통해 웹 및 모바일 애플리케이션의 품질을 확보할 것을 강조하고 있다.
책의 제목인 풀스택(Full Stack) 테스트란 무엇일까? 풀스택 개발자는 종종 들어보았는데인터넷 검색을 해보면 풀스택은 프론트앤드와 백엔드 개발을 모두 하는 것이라고 나온다. 저자는 먼저 좋은소프트웨어 품질에 대해 얘기하고, 테스트는 간단히 말해 애플리케이션이 원하는 대로 작동하는지 검증하는것이고, 이를 위해 클래스의 메서드, 입력 데이터 값, 로그 메시지, 에러 코드 같은 애플리케이션의 마이크로(micro) 측면과 기능 테스트, 기능 간 통합, 앤드 투 앤드(end-to-end) 워크플로 같은 매크로(macro) 측면의 테스트가 필요하다고 한다. 더 나아가 보안, 성능, 접근성, 가용성등 애플리케이션 전체의 품질을 고려해야 하는데 이 모든 것을 종합해서 “풀스택 테스트”라고 정의하고 있다. 구조적으로는 UI,서비스, 데이터베이스 등 애플리케이션에 포함된 각 계층과 애플리케이션 전체를 테스트하는것을 의미한다.
책에서는 10가지 풀스택 테스트로 수동 탐색적 테스트, 자동화된 기능 테스트, 지속적 테스트(CI/CD), 데이터 테스트, CFR(Cross Functional Test), 시각적 테스트, 보안테스트, 성능 테스트, 접근성 테스트를 각각의 Chapter로 다루고 있다. 더 나아가 신기술을 테스트하는 방법을알고 싶은 호기심 많은 사람을 위한 추가 내용으로 마지막 장인 “Chapter 13. 신기술 테스트소개”에서는 AI/ML, 블록체인, IoT, AR/VR과 같은 최신 기술을 소개하고 각 기술을 테스트하는 방법을 설명하고 있다.
저자가 이 책이 테스트를 처음접하는 사람이 오늘날의 웹 및 모바일 애플리케이션 테스트에 필요한 모든 기술을 초중급자(advancedbeginner) 수준으로 향상시킬 수 있는 종합적인 자료가 될 수 있도록 각 장(Chapter)마다일관된 구성을 취하고 있다. 먼저 “구성요소”를 통해 각 주제를 이해하기 위한 필수 항목을 나열하고 있다. “전략”에서는 주어진 상황에서 기술을 적용하는 방법을 자세히 설명한다. “실습”에서는 각 기술에 관련된 여러 도구를 다루는 방법을 단계별로 안내한다. “추가테스트 도구”에서는 “실습”절에 다룬 것과 유사한 도구 또는 도움이 될 만한 도구를 추가로 소개한다. “인사이트”에서는 저자의 관찰과 경험을 바탕으로 각 기술과 관련된 교훈(LesssonsLearned)을 소개한다.
각 장의 “실습” 부분에서는 현장에서 사용되는 무료 테스트 도구 중심으로 절차와화면 캡쳐를 적정하게 배치하여 설명하고 있다. 추가적인 설명이 필요한 용어, 개념, 상황 등에 대해서는 각주로 참고 URL을 표시하고 있다. 어떤 책에서는 추가 설명이 필요한 용어, 개념 등에 대해 박스 내용 등으로 포함해서 궁금증을 바로 해소해주는 형식을 취한다. 각 구성의 장단점이 있는 것 같은데 책에서는 URL을 참고하도록해서 본문에 필요한 내용 위주로 책의 분량을 늘이지 않고 책을 보다 효율적으로 보는데 도움을 주는 것 같다. 대부분의각주가 URL을 참고하도록 되어 있으나 추가적인 내용을 기술하는 경우도 있어 균형을 취하고 있다.
실습에 필요한 기본적인 소스코드내용도 역시 포함되어 있어 직접 타이핑해보고 기술을 체득하는데 도움을 주고 있다.
“노트”, “팁” 내용을 박스안에 별도로 제공해서 참고하거나 주의해야 할내용들도 시의 적절하게 제공하고 있다.
각 장 마지막의 “요점정리”를 통해 핵심적인 내용들을 다시금 정리해 볼 수 있도록 하고있다.
SI프로젝트를 수행하게 되면 개발단계별로 단위테스트, 통합테스트, 사용자 승인 테스트와 종류별로기능테스트, 성능테스트 정도만 접하게 되는 것 같다. 개인적으로는오래전에 부분적인 자동화 테스트 경험도 있지만 이 책은 알지 못 했던 다양한 테스트 관련 정보를 제공하고 있어 서두에서 베타리더의 글을 빌려 언급했던것처럼 테스트에 관한 종합선물세트와 같다고 말할 수 있을 것 같다. 시간이 별로 없어 책에 나온 실습내용을 따라해 보지는 못 했지만 나중에 시간이 되면 직접 따라해 보면서 테스트에 관련 기술을 한층 더 내재화하고 각주에 표기되어 있는 URL의 정보도 인터넷에서 찾아보면 더욱 지식의 폭이 넓어질 것 같다.
풀스택 테스트를 읽고나서, 테스트에 관한 잘못된 생각 및 여태까지 존재도 모르고 있었던 수 많은 테스트 도구와 테스트 원칙, 테스트 방법론에 대해서 무지했던 나를 반성하는 기회가 되었다. 매우 재미있게 읽었으며, 개발자로써 한층 업그레이드된 느낌이다. ㅎㅎ
이 책은 제목에서 처럼 소프트웨어에 대한 거의 모든 테스트를 다루고 있다. 개발자는 물론 PM, PO, QA, 테스터, SRE 모두에게 도움이 될 것을 확신한다. 데이터 과학자를 포함해서 말이다. 책에서 전달하고자 하는 것이 테스트 도구의 사용법이 아니라 테스트가 필요한 부분과 전략(방법론)이기 때문이다. 도구 사용법은 덤이다.
책을 다 읽고 난 지금 저자의 프론트엔드와 백엔드를 가리지 않고, 데이터와 AI, 블록체인까지 다루는 어마어마한 기술 스택에 존경심을 표한다. 이 많은 내용을 어떻게 한 권에 넣었는지 정말 대단하다는 생각이다.
책의 구성은 전체 13개장으로 되어 있는데, 1장은 풀스택 테스트의 기초 개념을 소개하고, 2장부터 11장까지는 10가지 상황에 대한 테스트 방법을 설명한다. 12장에서는 불변하는 테스트의 기본 원칙과 마음 가짐에 관해 설명하고, 마지막으로 4가지 신기술에 대한 테스트 방법을 설명으로 마무리한다.
각 장 설명하면 아래와 같다.
Chapter 1은 소프트웨어 품질에 대한 저자의 생각과 좋은 품질을 유지 하기 위한 방법 및 테스트라는 주제에 관해 설명하고,
Chapter 2는 주어진 요구 사항의 의미를 분석하고, 소프트웨어의 작동을 탐색하여 테스트하는 수동 탐색적 테스트 방법에 관해 설명한다.
Chapter 3은 도구를 활용하여 사람 대신 도구가 수행하는 자동화된 기능 테스트 방법에 관해 설명한다.
Chapter 4는 CI 소개 및, CI를 통한 지속적 테스트 방법에 대해 설명하고,
Chapter 5는 애플리케이션에서 가장 중요한 요소인 데이터 테스트에 관해 설명한다.
Chapter 6은 애플리케이션의 첫인상을 결정하는 시각적 품질을 테스트하는 시각적 테스트 방법을 설명하고,
Chapter 7은 해커의 입장에서 생각하여 사이버 범죄에 노출될 수 있는 위협을 테스트하는 보안 테스트에 관해 설명한다.
Chapter 8은 성능이 소프트웨어에 미치는 영향과 함께 성능 테스트 방법에 관해 설명하고
Chapter 9는 영구적, 일시적, 상황적 장애가 있는 사용자가 쉽게 소프트웨어를 사용할 수 있도록 하는 접근성 테스트 방법에 설명한다.
Chapter 10은 우리가 비기능이라고 알고 있는 교차 기능 요구 사항 테스트 방법에 관해 설명하고,
Chapter 11은 전세계 사용자가 66억명이나 되는 스마트폰, 태블릿등의 모바일 테스트 방법에 관해 알아본다.
Chapter 12는 테스트 기술이 아닌, 테스트 원칙과 마음 가짐에 관해 설명하고,
마지막으로, Chapter 13은 신기술(인공지능과 머신러닝, 블록체인, 사물인터넷, 증강 현실(AR).과 가상 현실(VR)) 테스트 소개로 마무리한다.
테스트의 각 장(2장~11장)은 먼저 해당 주제와 관련된 명언으로 시작하여 , 해당 주제(테스트)의 개념과 필요성에 대해 설명한다. 그리고 테스트 대상의 구성 요소를 확인하고, 이어서 테스트 전략(방법론)을 살펴보고, 실습 방법을 설명한다. 추가 테스트 도구가 있으면 덧붙여 설명하고, 마지막으로 요점을 정리한다.
실습 방법 설명은 기술 스택의 설명과 실제 명령줄 코드로 설치 방법을 알려준다. 필요하면 소스코드와 설정 예제도 함께 보여준다. 툴을 설명할 때는 캡처화면으로 설명한다. 무엇보다 설명하기 전에 워크플로부터 알려주는 패턴이 도움이 많이 되었다.
특히, 인사이트는 저자의 경험이나 안티 패턴, 실수할 수 있는 부분을 전달하기에 꼭 챙겨보기 바란다.
개인적으로 모든 장이 훌륭하지만, '10장 교차 기능 요구 사항 테스트'와 '12장 테스트 너머의 세계로 나아가기'가 인상 깊었다.
10장은 비기능으로 인식하던 교차 기능 요구 사항 테스트가 매우 중요하다는 사실을 알게 되었으며, 테스트로 교차 기능 요구 사항을 커버할 수 있었고, 거의 모든 기능은 테스트가 가능하며, 결국에는 좋은 소프트웨어 품질로 이어진다는 것이다.
12장은 앞으로 계속 개발될 테스트 도구에 종속되지 않고 사용할 수 있는 불변하는 테스트 기본 원칙과 품질을 우선으로 생각하는 팀의 소프트웨어 스킬(커뮤니케이션, 문제 해결, 리더쉽, 유연성) 연습도 기술을 배우는 것 이상으로 중요하다는 것이다.
디자인은 주황색 테마로 주제에 맞는 다양한 그림과 추가 용어를 설명하는 NOTE 블록, 표, 예제 소스코드, 결과 캡처, 테스트 도구 설치 화면이 굉장히 많았음에도 전혀 이질감이 없이 잘 읽히고 좋았다.
어마어마한 기술 스택을 다루고, 많은 툴과 용어가 있었음에도 번역이 어색하지 않았고, 매우 깔끔했다. 역자님에게도 감사드린다. :D
마지막으로 일반적으로 생각하는 테스트의 관습적인 잘못된 태도에 관한 저자의 생각으로 마무리한다.
테스트가 개발을 완료한 후 별도로 진행하는 독립적인 작업이라는 기존의 사고를 버려야 한다. ... 시프트 레프트는 소프트웨어 개발 초기에 테스트를 시행하는 것으로 풀스택 테스트에서 따라야 하는 핵심 원칙이다.
풀스택 개발자로서 되도록이면 테스트를 많이해 내가 짠 코드의 품질을 높이자는 주의인데, 프로젝트 일정에 쫓기다 보면 제대로 하지않고 테스트를 하는 경우가 있어 참 아쉬움이 남는 경우가 많이 있었습니다.
뭔가, 테스트를 안했을때는 불안감이 커지고 내가 짠 코드에 자신감도 없고 찜찜한 기분이 남습니다.
이제부터라도 테스트에 더 많은 시간을 좋은 품질의 소프트웨어를 만들기 위해 노력해야 하겠습니다.
풀스택 테스트는 모든 계층에서 애플리케이션의 모든 영역을 테스트하여 좋은 품질의 소프트웨어를 제공하는 것을 말합니다.
이책에서는 풀스텍 테스트를 크게 10가지 영역으로 나눕니다. 수동 탐색적 테스트, 자동화된 기능 테스트, 지속적 테스트, 데이터 테스트, 시각적 테스트, 보안 테스트, 성능 테스트, 접근성 테스트, CFR 교차 기능 요구사항 테스트, 모바일 테스트로써 풀스택 테스트를 효율적으로 수행하기 위한 테스트 기법입니다.
위의 10가지 테스트를 상황별로 기술을 활용하는 방법과 전략을 자세히 설명하며, 특히 자바 및 자바스크립트를 활용해 실무에서 어떻게 단계별로 안내하는 점 그리고 여러가지 테스트를 소개하고 각 도구로 최대의 가치를 창출할 수 있는 시점을 자세히 설명하는 점이 이 책의 특징이라고 할수 있습니다.
또한 오랜 실무 경험을 통해 터득한 저자의 노하우를 알려주며 웹 및 모바일 애플리케이션 테스트에 필요한 모든 기술을 접하고 익숙해질 수 있습니다. 전문 테스터 뿐만 아니라 애플리케이션 개발자, 데비옵스 엔지니어 같이 테스트와 밀접한 관련이 있는 업무를 당담하는 모든 사람에게 큰 도움이 되는 테스트계의 교과서라 할 수 있습니다.
근래 테스트에 대해 잘 알아야겠다는 생각을 하고 있습니다. 잘 갖춰진 테스트 체계는 개발 조직에 학습 기회를 제공하는 피드백을 제공하게 되는데요. 적절한 피드백을 받는 조직에서 일하는 것만큼, 개발자의 자기 계발에 중요한 요소가 없다고 이해하게 되었기 때문입니다.
그 배경에는 작년 말에 읽었던 <디지털 트랜스포메이션 엔진>이 한몫을 했습니다. 기업가 정신이나 인수 합병과 같은 기업 행위 보다, 기업의 수익률을 높이는 요소는 "적절한 기술"의 사용이라고 했기 때문인데요. 이는 "고성과" 기술 조직의 뒷받침이 있어야 가능한 일입니다.
다시 말해, 고성과 기술 조직이 회사의 사활을 가를 수 있는 거죠. 고성과 조직은 고객의 요구사항이 빠르게 서비스로 반영되고, 그 과정이 대단히 안정적이며, 과정을 거친 다음 나오는 피드백이 조직의 학습에 도움이 되는 조직입니다. 여기에 지속적인 통합, 지속적인 배포 등의 기술과 함께 적절한 테스트 기법이 상당히 중요한 위치를 차지하고 있습니다. 그러니 테스트에 대해 관심을 가질만하죠.
우리가 가지고 있는 선입견에서 '테스트'는 제품을 만들어서 최종 출시 전 승인을 받는 정도의 역할을 하는 것입니다. 하지만 그건 애자일 방식의 테스트가 아닙니다. 테스트 주도 개발(TDD: Test driven development) 개념에서 볼 때 테스트는 선행으로 시작해야 하거든요. 여기서 문제가 발생합니다. 애자일이 왜 필요한지 이해하기 전, 무작정 테스트를 앞으로 보내는 게 맞는다는 강요를 받게 되면, 정말 테스트만 앞으로 보내려고 노력하다가 포기하게 됩니다. 테스트를 앞으로 보내는 건, 개발자 입장에서는 다른 방식의 사고로 개발을 하는 것을 의미하지만 개발 프로세스의 입장에서는 그만큼 자동화 기회를 얻겠다는 의미가 됩니다. 되도록 많은 테스트를 확보해야 코드를 유지 보수하는 과정에서 시스템이 안정적으로 변화하게 될 것이기 때문입니다.
반드시 필요하지만, 우리의 지식과 경험이 거부하는 상황이라 표현하면 될 것 같습니다. 그럼, 서로의 이해를 돕기 위해서, 전통적인 테스트 방법과 애자일 테스트 방법에 대한 적절한 비교를 통해서 고성과 조직이 어떤 방식으로 지속적인 학습을 도모하는지 이해하는 과정이 필요할 것 같습니다. 그게 이해된다면, 그다음 필요한 건, 우리가 서비스를 운용하기 위해 필요한 테스트들을 분야별로 나누고, 우리가 이해한 대로 기존의 테스트 프로세스를 바꾸는 작업이 필요하게 될 것 같은데요. <풀 스택 테스트>는 그 부분에서 필요한 책인 것 같습니다. 저자는 테스트를 분야로 나누고 각 분야 테스트가 어떤 의미를 지니는지 독자를 이해시킨 다음 관련 코드로 그 이해의 깊이를 깊게 해줄 설명을 보태는 방식으로 책의 내용을 꾸리고 있습니다.
그래서, "풀스택"이라는 용어보다는 모든 분야 서비스를 잘 설명한다는 다른 용어를 찾아서 책의 제목을 삼았으면 어떨까 하는 생각도 해보게 되더군요. "풀스택"이라고 하면 왠지 프런트엔드, 백엔드를 아우르는 테스트 정도로 이해되기 때문이죠.
회사에서 특정 기술을 도입하거나, 또는 우리 회사만의 독특한 기술을 문서화할 때 필요한 건, 특정 기술을 사용하는 샘플 코드 보다, 그 기술이 왜 세상 밖으로 나오게 되었는지, 그리고 그 기술은 어떤 이론적인 배경을 가지고 만들어졌는지 설명하는 내용입니다. 기술 블로그나 회사 내 문서를 볼 때마다 저는 이 부분의 결핍을 느꼈는데요. 이 책을 읽으면서, 이 책의 설명 방식이 하나의 샘플이 되면 좋겠다는 생각을 했습니다. 앞에서 말씀드린 것처럼 이 책은 왜 그게 필요한지를 먼저 설명하고 코드를 보여주는 방식으로 구성되어 있기 때문입니다.
우리가 복잡한 일을 해야 할 때 가장 중요한 준비가 일의 목록을 정하는 것입니다. 뭘 해야할지 먼저 정리해 둬야 막상 일을 하게 될 때 놓치고 하지 않는 불상사가 일어나지 않기 때문이죠. 문제는 목록을 작성하는게 그리 만만치 않다는 것입니다. 저는 이런 경우에 필요한 책이 <풀스택 테스트>와 같은 책이 아닐까 싶습니다. 읽어보시면 아시겠지만, 필요한 테스트를 설명하는 과정에서 그 테스트에 어떤 개념과 일이 필요한지 목록 정리를 잘해주는 부분들이 많이 보이거든요.
아참, "시각 테스트"에 대해서 설명하는 부분은 흥미로웠습니다. 로버트 C 마틴은 <소프트웨어 장인 정신 이야기>에서 GUI는 테스트하지 말라"고 직접 이야기 하고 있는데요. 이 책에서는 "시각 테스트"라는 장을 따로 나눠서 설명하고 있기 때문입니다. 하지만 어떤 면에서 기조가 비슷하다고 생각하게 되었습니다.
"따라서 시각적 테스트의 경우에는 명확하게 관련된 사용자 스토리가 있을 때만 적용해야 한다"라고 199페이지에 못박고 있기 때문입니다. 로버트 C 마틴도 GUI를 위한 유닛테스트는 필요없다고 설명하지만 화면을 그리는 프리젠테이션 컴포넌트를 테스트하지 말라는 것이지 여기에 '그릴' 데이터를 주입해주는 프리젠터에 경우에는 유닛테스트를 추가해서 TDD방식으로 구현하라고 설명하고 있습니다. 그렇다면 테스트를 마무리하는 시점에서 "사용자 스토리"가 있는 경우에는 "인수"를 위해 테스트를 추가할 필요가 생길 것 같습니다.
이 책은 한번 보고 끝나는 것보다 관련 업무를 할 때 다시 들춰보며 "목록" 확인을 하는 용도로 사용하면 꽤 유용하겠다는 생각을 했습니다.
풀스택에 관심이 많은 저에게 풀스택 테스트라는 제목은 짧으면서도 충분히 매력적이었습니다. 점차 풀스택 개발자에 대한 수요가 늘고 있는 만큼 풀스택 테스트는 많은 개발자 또는 개발자 지망생에게 꼭 필요한 내용이라고 생각이 들었고, 책을 읽으면서 주변 사람들에게 이 책을 추천해 주고 싶은 마음이 더 많이 들었습니다.
풀스택 테스트는 '전략, 실무 접근법, 도구, 저자의 노하우까지 모두 담은 테스트 바이블'이라는 소개에 맞게 이론 설명, 전략 탐색, 실습 및 저자의 꿀팁까지 모두 제공되는 책입니다. 어려울 수 있는 내용을 다양한 예시와 시각 자료를 사용하여 쉽고 재미있게 잘 풀어내 개발을 어느 정도 아는 초심자들도 어렵지 않게 이해할 수 있을 것 같습니다.
웹 개발을 배우고 있는 사람으로서 풀스택 테스트를 통해 개발의 큰 그림을 볼 수 있었고, 개발을 공부하거나 개발하면서 놓칠 수 있는 부분을 꼼꼼히 다루어 주어 많은 도움이 되었습니다.
풀스택 테스트란 사용자 관점에서 품질을 테스트하기 위해 모든 요소를 테스트하는 것으로, 애플리케이션이 원하는 대로 작동하는지 검증하기 위한 것입니다. 마이크로 측면과 매크로 측면에서 애플리케이션 전체의 품질을 고려할 수 있으며, 시각적으로는 아래처럼 표현할 수 있습니다.
풀스택 테스트와 개발은 뗄 수 없는 관계입니다. 테스트는 개발과 병행해야 하며 피드백을 빠르게 얻기 위해 전달 주기 내에 수행해야 합니다.
이 책에서는 시프트 레프트 테스트라는 개념을 언급하는데, 초기단계부터 테스트 수행하는 것으로 작업마다 품질 검사를 반복하여 초기에 결함을 발견하고 다양한 품질을 탐색하게 하여 좋은 소프트웨어를 만들도록 하는 것을 의미합니다.
이 책은 코딩을 처음 접하거나 공부한 지 얼마 되지 않은 사람을 위한 책은 아닙니다. 책에는 소프트웨어 테스트를 처음 접하는 사람이나 테스트 지식을 넓히고 싶은 사람이라고 써 있지만, 풀스택이라는 이름에 맞게 개발을 서비스하는 업무 또는 프로젝트를 해 본 사람에게 좋지 않을까 싶습니다. 넓게는 개발을 배우고 있는 사람에게도 좋을 것 같습니다.
이 책의 실습에서 사용하는 개발 언어는 자바 또는 자바 스크립트이므로 자바나 자바 스크립트의 기본적인 문법은 알고 있어야 합니다. 뿐만 아니라 개발 프로세스를 어느 정도 알고 있어야 합니다. 적어도 애자일이나 폭포수 방법론 등은 이해해야 합니다.
이 책은 웹 또는 앱에서 사용할 수 있는 10가지 테스트 기술을 상세하게 소개합니다.
1. 수동 탐색적 테스트
다양한 시나리오에서 애플리케이션의 작동을 탐색하고 이해하는 활동으로, 개인의 분석력과 관찰력을 통해 모든 관점을 종합하고 새로운 사용자 흐름과 버그를 발견할 수 있습니다.
2. 자동화된 기능 테스트
빠른 피드백을 얻기 위해 도구를 통해 애플리케이션의 작동을 검증하는 것으로, 수동 탐색적 테스트를 수행하여 새로운 테스트 케이스를 찾고 회귀 테스트에 자동화하는 것이 효과적입니다.
3. 지속적 테스트(CT)
애플리케이션 변경 시 수동 및 자동 테스트를 통해 품질을 검증하고 품질이 저하된 경우 팀에 알리는 프로세스로서 지속적으로 빠르게 피드백을 받을 수 있또록 CT 프로세스를 설계해야 합니다.
4. 데이터 테스트
온라인 애플리케이션의 핵심은 데이터이고 결함 발생 확률이 매우 높기 때문에 데이터 테스트는 반드시 수행해야 합니다.
5. 시각적 테스트
애플리케이션이 디자인한대로 보이는지 확인하는 테스트로, 수동 테스트와 자동화된 테스트 모두 수행해야 하며, 적절한 단계에 적용해야 하고 빠르고 안정적인 피드백을 제공할 수 있는 도구를 선택해야 합니다.
6. 보안 테스트
개발 주기 전반에 적절한 보안 수단을 애플리케이션에 적용해야하며 위협 모델링 연습을 팀 전체가 자주 수행해야 합니다. 가장 중요한 것은 보안을 습관화하는 것입니다.
7. 성능 테스트
소프트웨어 제공 주기부터 지속적으로 KPI를 측정하여 성능 문제를 미리 감지하고 해결해야 합니다.
8. 접근성 테스트
웹 접근성 기능은 점차 중요해지고 있습니다. 접근성 생태계를 통해 도구와 기술을 얻을 수 있지만 접근성을 제공하기 위해 변경이 많이 필요할 수 있으므로 개발 주기 초기 단계에서 수행하는 것이 좋습니다.
9. 교차 기능 요구 사항 테스트
교차 기능 요구 사항(CFR)은 애플리케이션의 실행 및 진화 품질을 정의하며 폭넓은 애플리케이션 기능에 적용됩니다. 좋은 품질의 소프트웨어를 제공할 뿐 아니라 진화적 아키텍처를 구축하는데 도움이 됩니다.
10. 모바일 테스트
모바일 테스트는 웹 테스트와 다르기 때문에 전체적인 테스트를 통합해 풀스택으로 수행해야 합니다. 개발 초기에 앱의 특성을 고려해 계획해야 합니다.
이 책의 마지막 부분에서는 인공지능과 머신러닝, 블록체인, 사물인터넷, 증강현실과 가상현실 등의 신기술 테스트까지 간략하게 소개해 주고 있습니다.
이 책의 각 장은 1) 구성 요소 2) 전략 3) 실습 4) 추가 테스트 도구 5) 저자의 인사이트로 구성되어 있어 테스트 전반에 대한 모든 내용을 폭넓게 이해할 수 있습니다. 놓칠 수 있는 부분까지 상세히 다루고 각 부분을 꼼꼼히 설명하고 있습니다. 용어의 경우 박스 형태로 간단하게 개념을 설명해 주기도 합니다.
가장 좋았던 점은 다양한 예시를 들어 어려울 수 있는 내용을 쉽게 설명하고 있다는 점입니다. 해당 테스트가 왜 필요한지와 어떤 문제가 발생할 수 있는지를 잘 풀어내고 있습니다.
또한 시각적 자료를 통해 글로 제시된 내용을 한 눈에 볼 수 있도록 도식화하여 각 프로세스나 개념을 더 이해하기 쉬웠습니다.
테스트 전략을 통해 각 테스트를 각 단계에 어떻게 적용할지를 설명하는 부분도 좋았습니다. 전략을 하나씩 적용해 가면서 테스트를 해봄으로써 애플리케이션 품질 향상에 큰 도움이 될 것 같습니다.
실습 부분에서는 유용한 툴을 소개하고 툴 사용 방법을 그림과 코드를 통해 상세하게 설명하고 있습니다. 처음 접하는 툴이 많아 배워야 할 부분은 많았지만 개발할 때 각 툴을 모두 사용하면 좋을 것 같습니다.
전체적으로 상세한 설명과 시각 자료가 많아서 쉽게 읽을 수 있었고, 내용을 이해하는 데에도 어려움이 없었습니다. 이 책에서 다루는 각각의 테스트를 하나씩 애플리케이션 개발에 적용한다면 품질 향상에 큰 도움이 될 것 같습니다. 이번에는 전체 내용을 훓어 보았지만 각 내용을 모두 숙지하고 적용해 볼 때까지 여러 번 읽을 예정입니다.
소프트웨어 개발 테스트를 위한 완벽 가이드 북이 책은 크게 10가지의 S/W 테스트에 대해서 다루고 있습니다.
응용 프로그램부터 모바일 앱 그리고 일반 웹사이트까지 효율적으로 품질 테스트를 수행하기 위한 방법론에 대해 설명하고 있습니다.각 테스트 분야에서는 테스트의 개념과 전략 그리고 이 테스트를 자동화할 수 있는 도구들에 대해서 정리가 잘 되어 있습니다.
우리가 보통 수행하는 수동적 테스트는 테스트 시나리오와 체크 리스트를 작성해서 고객의 요구사항대로 소프트웨어가 동작하는지 살펴보는 1차원적인 방법이지만여기서 더 나아가 수동 탐색적 테스트, 자동화된 테스트 그리고 지속적 테스트 등의 다양한 테스트 방법론과 접근 방법에 대해서 배울 수 있습니다.
좀 더 구체적인 테스트 분야로는 데이터 테스트, 시각적 테스트, 보안 테스트, 성능 테스트, 접근성 테스트, 교차 기능 요구 사항 테스트, 모바일 테스트 등에 대해서 설명되어 있습니다.(테스트 제목만 봐도 어떤 분야의 테스트 항목을 다루는지 바로 알 수 있습니다.)
이 책에서 정리한 10가지의 풀스택 테스트는 다소 이론적인 설명이 많지만, 소프트웨어를 개발하거나 품질을 관리하는 대부분의 사람들이 꼭 알아야 하는 내용들로 채워져 있으니, 테스트 체크리스트를 작성할 때 참고하면 도움이 될 것입니다.
테스트가 무엇인지, 어떻게 해야 하는지, 좋은 테스트 시스템을 갖추기 위해 어떤 것을 고려해야 하는지를 다루는 책이다.
우선 테스트를 크게 10가지로 분류하고 있다.
수동 탐색적 테스트
자동화된 기능 테스트
지속적 테스트
데이터 테스트
시각적 테스트
보안 테스트
성능 테스트
접근성 테스트
교차 기능 요구 사항 테스트
모바일 테스트
이 10가지 테스트를 제품에 적용하면 웹, 모바일 모든 측면에서 품질을 테스트할 수 있다고 말한다.
소프트웨어 품질은 더 이상 기능적인 측면에서만 평가할 수 없고 보안, 성능, 시각적 품질과 같은 애플리케이션의 전반적인 부분을 만족시켜야만이 좋은 품질의 소프트웨어라고 할 수 있다.
이를 위해서 단순히 소스코드만을 다루는 단위 테스트의 범위를 벗어나 모든 계층, 모든 영역의 테스트를 통해 좋은 품질의 소프트웨어를 만들 수 있다고 저자는 말한다. 그리고 모든 개발이 완료된 시점에서 시작하는 것이 아닌 테스트 시점을 요구 사항 분석이라는 극 초기 단계부터 끌어당기는 시프트 레프트 테스트를 통해 소프트웨어 개발 주기의 여러 단계에서 발생하는 피드백을 빠른 시점에 얻는 것이 중요하다고 강조한다.
QA 엔지니어이시거나 지망하고 계신 분이라면 반드시 읽어봐야 하는 책이라고 생각한다. 그리고 내가 작성한 코드가 어떤 테스트를 통해 검증되는지만 알고 있어도 개발 단계에서 누락할 수 있는 부분을 메꿀 수 있다고 생각하는 개발자분들에게도 추천한다.
내 경우, 회사에 소속도 하고, 1인 #개발자 활동도 하며, 일반 관리 애플리케이션부터 웹 #프로그램, 자동화 프로그램, 모바일앱 등 오랜 시간에 걸쳐 #프로그래머 로서 다양한 경험을 쌓은 편이라 아주 전문적인 파트를 제외하면, 프로그램 개발에 별다른 부담을 갖는 편은 아닌데, 개인적으로 매우 미숙하다 느끼는 파트가 있다면, 프로그램 테스트 쪽이다.
마음만은 언제나 완벽한 #소프트웨어 테스트를 마쳐서 개발을 종료하고 싶지만, 빠듯한 일정에 쫓기다 보면, 겉으로 드러난 디버깅 수준 정도로만 끝나는 경우가 많다. 그러다 문제 생기면, 허둥지둥 코드 보고 문제점 찾는 그런 일들이 자주 생기고 만다. 그나마 내공이 쌓이면서, 일반적으로 생길 수 있는 문제들은 미리 코딩 작업에 미리 적용해서 #프로그래밍 하기 때문에 여태 큰 문제가 발생하지 않았지만, 테스트를 충분히 했든 못했든 아직 내 테스트 지식이나 실력을 믿을 수 없다 보니, 언제나 화장실 갔다가 뒤를 들 닦은 듯한 기분을 지울 수가 없었다. 뭔가 불안불안한 거다.
개발자라면 다들 이런 찜찜함 없이 완벽한 프로그램을 짜고 싶을 것이다. 나 역시 마찬가지다. 그래서 현실이 안 따라줘도 #애자일 방법론이며, 소프트웨어 테스트 관련 기술 정보를 보게 되면, 항상 관심을 가지고 봐왔다. 그러다 이번에 단편적인 지식이 아닌, 뭔가 종합적으로 테스트 기술을 정리하고, 미흡한 실력도 높여보고 싶어, 품질 보증 관련 전문가인 가야트리 모한의 '풀스택 테스트'를 보게 되었다.
책 제목인 풀스택 테스트는 UI, 서비스, 데이터베이스 등 애플리케이션에 포함된 각 계층과 애플리케이션 전체를 테스트하는 것을 의미한다. 난 프로그램에 관련된 해볼 수 있는 온갖 테스트는 다 해본다는 뜻으로 이해했다. 실제 책을 보면, 진짜 다양한 테스트 기술들이 나온다.
#풀스택테스트 에서는 풀스택 테스트를 크게 10가지 영역으로 나눠 얘기한다. 수동 탐색적 테스트, 자동화된 기능 테스트, 지속적 테스트, 데이터 테스트, 시각적 테스트, 보안 테스트, 성능 테스트, 접근성 테스트, CFR 교차 기능 요구사항 테스트, 모바일 테스트가 바로 그것들로 프로그램 테스트에 관심이 조금이라도 있었던 사람이라면, 단편적으로 나마 조금씩은 들어 봤을 것이다.
특히 모바일 테스트 파트 경우, 요즘은 PC 보다는 스마트폰이나 태블릿 같은 모바일 기기를 더 많이 사용하므로 빼놓을 수 없는 테스트다. 게다가 '풀스택 테스트'는 증강현실, 사물인터넷, 인공지능, 블록체인 같이 최신 기술 관련한 부분도 간단하지만 빼놓지 않고 다루고 있어 테스트 개념을 IT 기술 종합적으로 정리할 수 있어서 좋았다.
이렇게 '풀스택 테스트' 책 구성 자체가 각각의 영역별로 나눠져 있고, 그 안에 구성 요소, 테스트 전략, 실습, 요점 정리라는 내용 구조가 되어 있는 데다, 이것들을 이해하기 쉽게 정리해서 그려 놓은 각종 도표와 그림들이 머릿속에 체계적으로 정리하는데 큰 도움이 된다. 여기에 중요 용어나 문구는 굵은 글자나 형광펜 그은 거처럼 처리해서 강조되어 있어 바로 눈길을 끌어주고, 사각 상자, 또는 NOTE 코너, 다양한 주석들이 있어서, 좀 더 이해하기 쉽게 해준다. 저자가 좀 더 강조하고 싶은 이야기는 인사이트 영역에 담았다.
'풀스택 테스트'는 소프트웨어 #테스트 개념을 이론적으로 체계적으로 세울 수 있다는 장점과 함께 실무적으로도 다양한 스킬을 얻을 수 있다. 이 책에는 포스트맨, WireMock, 버그 마그넷, 크롬 개발자 도구, TestNG, 셀레니움 웹 드라이버, jUnit, Git, 제로코드, BackstopJS, Cypress, OWASP Dependency-Check, 제이미터, WAVE, 앱피움, 몽키 등등 각 테스트 단계에 직간접적으로 요긴하게 쓸 수 있는 각종 도구나 프레임워크 같은 것들이 매우 많이 소개되어 있다. 나처럼 테스트 경험이 충분치 않은 사람들에게는 엄청난 도움이 되는 정보들이다. 뭘로 테스트해야 하나 하는 막연함을 많이 덜 수 있다.
'풀스택 테스트' 덕분에 내가 그동안 뭘 잘하고 있었는지, 못하고 있었는지, 아예 모르고 있었는지 좀 더 명확하게 알 수 있었다. 개발 시야를 전체적으로 확장하는 데 도움이 되었다. 내가 작업한 프로그램 품질을 어떻게 향상 시킬 수 있는지 구체적인 지식을 얻을 수 있었다.
어느 정도 경험이 있는 개발자 입장에서는 '풀스택 테스트' 내용이 그다지 어렵지 않을 것이다. 접해보지 않은 부분만 관심을 가지고 보충하면 된다. 반면, 초보 개발자 입장에서는 '풀스택 테스트'의 내용들이 어려울 수도 있고, 그다지 와 닿지 않을 수 있다. 그러나 소프트웨어 테스트는 품질 관리에 빼놓을 수 없는 작업이므로 어느 정도 이해는 경력 상관 없이 꼭 필요하다. 지금 당장 이해가 안 돼도 시간이 지나면, '맞아 맞아, 그때 그 말이 맞았네'하며 많은 부분 공감되는 상황이 벌어질 것이다. 그만큼 개발자 근육을 강화하는데 꼭 필요한 단백질 같은 지식이다. 게다가 해외에 비해, 우리나라는 풀스택 테스트 기술을 가진 인력 자원들이 많지 않다고 한다. 이런 지식을 알아 두면, 경력 업그레이드에도 좋을 것이고, 해외 진출에도 도움이 될 것이다. 개발자라면 꼭 읽어 보라고 추천하고 싶다.
이 책에서 눈에 띄는 주제 중 하나는 "지식의 저주"라는 개념입니다. 주제에 대해 이미 깊이 알고 있는 상태에서 다른 사람에게 무언가를 설명하는 것이 어렵다는 것을 의미합니다. 이 책은 이 저주를 인식하고 작가와 독자 사이의 이해 격차를 해소하기 위한 조처를 하는 것의 중요성을 강조합니다. 명확한 설명을 제공하고 전문 용어나 가정을 피함으로써 기술 문서 작성시 자신의 문서를 다양한 청중이 액세스할 수 있도록 할 수 있습니다.
이 책은 또한 기술 문서 작성의 협업적 특성을 강조합니다. 어떤 문서도 고립되어 존재하지 않는다는 사실을 강조합니다. IT 환경에서는 상호 연결된 여러 문서가 있는 경우가 많으며 독자를 관련 자원으로 안내하고 필요한 정보에 쉽게 액세스할 수 있도록 하는 것이 중요합니다. 문서를 효과적으로 구성하고 탐색 요소를 통합함으로써 작성자는 독자가 원활하게 탐색하고 혼란이나 좌절 없이 원하는 정보를 찾을 수 있도록 도울 수 있습니다.
또한 이 책은 문서가 발전하고 정기적으로 업데이트되어야 할 필요성을 강조합니다. 기술은 끊임없이 변화하고 있으며 오래되었거나 부정확한 문서는 혼란과 오류로 이어질 수 있습니다. 기술 문서는 독자가 자신의 문서에 두는 신뢰를 염두에 두고 제공된 정보가 신뢰할 수 있도록 해야 합니다. 문서 작성 및 유지 관리는 시간이 많이 소요될 수 있지만 효과적인 의사소통을 지원하고 사용자 간의 신뢰를 조성하는 것은 필수적인 책임입니다.
결과적으로 기술 전문성 수준에 관계없이 기술 문서 작성에 관련된 모든 사람에게 유용한 책입니다. 특히 IT, 오픈 API 명세를 작성하는 분에게 추천드립니다.
결론부터 말하자면 정말 잘 짜여진 책이다. 모든 챕터는 주제와 연관된 테스팅 개념에 대해 상세하게 설명해주고, 실전적인 예제를 통해 개발 환경에 맞는 실제 코드를 보여준다.
내용은 대부분 웹에 초점이 맞춰져있다. JAVA로 개발되는 웹 애플리케이션에서 계층적으로 테스트를 진행한다. 따라서 실습의 많은 내용이 JAVA 웹에 맞춰져있고, 테스팅 툴 또한 그러한 환경에서 사용되는 것들로 국한되어 있다. 그렇지만, 앞서 언급했듯이 테스팅 이론에 대한 개념적인 설명이 충분하기 때문에, 다른 분야의 프로그램을 개발하더라도 충분히 얻어갈 내용이 많다고 느껴졌다.
단점으로는 너무 광범위한 내용을 다루려다 보니, 특정 파트에서의 설명이 조금 부족하다고 느껴질 때가 있었다. 제목에서부터 풀스택을 강조했기 때문이었을까, 모바일이나 신기술 챕터는 너무 얕은 수준의 내용이었다.
그럼에도 충분히 가치있는 책이다. 책에서 설명하는 테스팅 방법론에 대한 내용은 개발자라면 모두 다 알고 있어야 할 내용이라고 생각하고, 웹을 개발하다보면 책에서 언급된 테스팅 툴은 대부분 사용하게 될 거라고 느꼈다. 테스트에 대한 지식이 아예 없거나, JAVA 웹에 테스트를 도입하고 싶은 독자라면 충분히 읽어봄직한 책이라 생각한다.
개발할때, 테스트의 중요성은 이제 어느 누가 강조하지 않아도 당연한 절차로 생각되어집니다.
하지만, 실제 테스트를 잘하기 위해서는 많은 난관이 존재합니다.
크게는 사용자가 실제 사용하는것처럼 동일한 케이스를 만들고 가상의 mock객체를 구성하는 것이
말로는 쉽지만, 실제 구성하기 위해서는 다양한 케이스가 존재하고, 이러한 것을 프로그램적으로 처리하는 것이
쉽지많은 않습니다. 또한 너무 다양한 언어와 외부 라이브러리가 존재하기 때문에 이러한 것을 TestCase로 작성하는것은
어떨때는 기능개발보다 어렵습니다.
저자는 집필의도를 통해서 우리가 제품에서 테스트를 실패하는 원인은 아래와 같이 정의합니다.
사용자 화면 기준의 End to End 테스트 집중하는 현상
일부 기능테스트만 수행하고, 비기능적인 문제를 찾지 못하는 현상
수동적인 테스트에만 의존하는 현상
정말 다 맞는 말입니다. 많은 분들이 느끼는 문제점이 오랜시간 흘러왔지만, 이러한 것을이 아직도 쉽게 해결되지 않는 문제점 이기도 합니다.
평소 풀스택이라는 단어가 좋게도 느껴지는데, 어떠한 부분에서는 조금 과장된 단어가 아닐까 생각이 들기는 합니다.
이책에서의 내용을 살펴보면서, 어떠한 의미로 풀스택테스트라는 제목인지 살펴보려고 합니다.
책에서 말하는 "풀스택"이라는 의미는 모든 기술을 의미하는 것이 아니고, <UI계정, 서비스 계청, 데이터베이스> 를 커버하는 애플리케이션의 전제 범주를 의미하는 것입니다.
■ 책이 구성
· 웹 및 모바일 어플리케이션을 대상으로 10가지의 테스트 기술을 상세히 설명합니다.
· 보통 많이 들어보셨을 포스트맨, Jnit 및 다양한 실제 다양한 테스트를 하기 위한 기법이 소개되어집니다.
· 눈에 들어온 분야는 "데이터테스트", "시작적 테스트", "보안테스트", "성능테스트" 등등 매우 다양하고 생소하지만 평소에 필요한 테스트 기법이 설명되어지고 있어서 매우 다양한 분야에 걸처서 테스트 기법이 소개되어 집니다.
· 조금 화두가 되고 있는 AI/ML,블록체인에 대해서 테스트 하는 기법 소개도 많이 흥미로운 내용입니다.
· 테스트 개념 뿐만이 아니라 간단한 실습도 진행을 하면서, 해당 기법을 통해서 독자분들이 개발환경에 맞는것을 조금더 학습해 갈수 있는 다양한 방법을 소개한다는 점이 매우 좋았습니다. 모든 개발 환경을 다 커버하는 책은 없습니다. 단순히 Spring환경에서 구현을 하여도 정말 다양한 방법으로 개발되어서 100% 각자의 환경이 일치하는 환경으로 테스트 샘플을 구할수는 없습니다. 그런점에서 다양한 기법이 소개되어지고, 그 원리를 이해하면 활용할수 있는 방향을 제시하는 부분도 매우 많은 도움이 되는 책이라고 생각합니다.
· 10가지 정의하고 있는 풀스택 테스트
■ 1. 수동 탐색적 테스트
· 수동테스트 vs 수동 탐색적 테스트는 분명 다른 개념이다.
· postman : 많이들 사용하는 tool, 로그인 후 테스트 url정보등이 서버에 저장되기 때문에 기업 보안정책 검토 필요
다른 구성요소의 작동을 모방하는 스텁을 만들고 변경하기 위한 도구 wiremock에 대해서 실행해본 화면 "여기서는 stub을 잘 만드는것이 핵심으로 보입니다"
<UI탐색도구> · 다양한 브라우저를 테스트 할수 있는 클라우드 테스트 플랫폼
보통 상황에 따라서 PC에 설치되지 않는 브라우저를 테스트 하는 경우가 종종 있습니다. 클라우드에서 비용을 지불해야 하지만 이런 사이트를 알고 있으면 좋은것 같습니다. (너무 비슷한 사이트들이 많아서 책에서 언급된 플랫폼 정보는 아래와 같습니다) 1) https://www.browserstack.com/
· Appium (https://appium.io/): "Appium은 웹드라이버를 사용하여 Android 또는 iOS에서 스크립트를 실행하고 네이티브 애플리케이션, 모바일 웹 애플리케이션 및 하이브리드 애플리케이션을 테스트하기 위한 오픈 소스 자동화 도구입니다" 크로스 플랫폼을 지원하는 자동화 도구로 애플에서 제공하는 iOS용 XCUITest와 구글에서 제공하는 안드로이드용 UiAutomator와 같은 OS별 번들링하여서 사용한다.
· 성능 테스트 도구에는 몽키(가오스 엔지니어링), 보안테스트 도구에는 MosSF, Qark가 있다.
책에서 언급하는 다양한 개념과 기법, 이것을 활용한 다양한 tool중에 평소에 알고 있었던 부분이 있지만, 새로운 tool 및 사용법을 소개받고 파악한 내용이 많아서, 앞으로도 필요한 테스트 환경 및 범위를 선정해서 활용을 잘하면 매우 큰 도움이 되는 책이라고 생각합니다.
테스트를 해도해도 끝이없는 영역인 것 같다. 개발자로써 프로그램을 개발하면 테스트 단계를 거치는데, 항상 테스트 단계에서 제대로 테스트가 이루어지지않아 나중에 가면 어디선가 터지고만다. 그렇게 프로그램 개시 후에 오류가 터지고나면
상사님 : "테스트를 잘했어야지"
나 : "분명 테스트 잘 했는데..."
이런 구차한 변명만 늘어놓게된다. 변명을 하지않을 수가 없다. 왜냐하면 "네 다음엔 더 잘하겠습니다 ~" 하기엔 이미 진심으로 테스트를 잘했다고 생각했기 때문에....... 그래서 (늘 마음속으로) 나는 되묻는다.
'어떻게 하는게 잘하는건데요..?'
이런 고민을 하던 찰나에 이 책을 접하게 된 것은 나에겐 행운같은 일이다.
이 책은 개발 프로그램의 품질 검증을 위한 테스트에 대한 방법론을 다루고있다. 테스트를 '잘'하는 것에 대한 막연함이 든다면 이 책은 개발 품질을 위한 테스트 방법론을 총망라하고있다. 그래서 실전 테스트를 할 때 옆에 껴두고 두고두고 보면서 적용하기에도 괜찮은 책인 것 같다.
소프트웨어 개발 주기 동안 수행되는 10가지 테스트 기술의 기본 원칙을 소개하고, 상황별로 각 기술을 활용하는 방법과 전략을 자세히 설명합니다. 특히 (1) 자바 및 자바스크립트를 사용해 실무에서 테스트에 어떻게 접근하는지 단계별로 안내하는 점, (2) 여러 가지 테스트 도구를 소개하는 점, (3) 각 도구로 최대의 가치를 창출할 수 있는 시점을 자세히 설명하는 점이 이 책의 차별화된 특징입니다. 또한 오랜 실무 경험을 통해 터득한 저자의 테스트 노하우를 공유합니다. 따라서 웹 및 모바일 애플리케이션 테스트에 필요한 모든 기술을 접하고 익숙해질 수 있습니다. 전문 테스터뿐만 아니라 애플리케이션 개발자, 데브옵스 엔지니어 같이 테스트와 밀접한 관련이 있는 업무를 담당하는 모든 사람에게 큰 도움이 되는 테스트 교과서라 할 수 있습니다.
[이 책의 구성]
1. 구성 요소 - 각 주제의 필수 요소
2. 전략 - 기술 적용 방법
3. 실습 - 각 기술과 관련된 도구 사용법
4. 추가 테스트 도구 - 추가적인 도구 소개
5. 인사이트 - 저자의 노하우 공유
[대상 독자]
- 소프트웨어 테스터
- 애플리케이션 개발자
- 데브옵스 엔지니어
- 테스트 입문자자
[이 책의 특징]
테스트 도구가 변해도 적용 가능한 ‘전략’에 초점을 맞춘 실무 교과서
자동화된 테스트가 등장하고, 기능적 사용 사례를 넘어 성능, 보안, 안정성과 같은 교차 기능 요구 사항에 대한 테스트가 중요해지면서 풀스택 테스트는 하나의 분야가 되었습니다. 이 책은 풀스택 테스트를 위한 종합적인 자료로, 테스트 기술에 관한 일관된 설명과 실제 사례를 제공하고 어느 시점에 어떤 유형의 테스트를 수행해야 하는지 상세히 설명합니다.
또한 실습을 통해 테스트 접근 방식을 구체화합니다. 실습에서 다루는 도구는 시간이 지남에 따라 변경되거나 발전할 수 있지만, 이 책에서는 올바른 테스트를 구성하는 방법에 초점을 맞추기 때문에 도구가 변경되더라도 적용 및 응용할 수 있습니다.
이제 막 소프트웨어 업계에 입문한 초보자라면 테스트 기술에 대한 전반적인 배경지식을 얻어갈 수 있고, 숙련된 테스트 전문가라면 이 책을 통해 새로운 영역에 관한 인사이트를 얻을 수 있습니다.
이 책에서 다루는 10가지 테스트 + 신기술 테스트
1. 수동 탐색적 테스트
2. 자동화된 기능 테스트
3. 지속적 테스트
4. 데이터 테스트
5. CFR 테스트
6. 시각적 테스트
7. 보안 테스트
8. 성능 테스트
9. 접근성 테스트
10. 모바일 테스트
+ 신기술(머신러닝, 블록체인, IoT, AR/VR) 테스트
베타리더 후기
책을 읽다 보면 저자의 방대한 지식에 놀라고, 그 꼼꼼함에 두 번 놀라게 된다. 어느 시점에 어떤 테스트가 반드시 필요한지 자세하게 소개하며, 독자는 그저 자신의 컨디션에 맞춰 이 책의 흐름을 자연스럽게 따라가기만 하면 된다.
_복종순, 메가존클라우드 매니저
애플리케이션이 커질수록 더 다양한 테스트가 필요해지는데, 처음에는 무엇부터 해야 할지 감이 잡히지 않는 경우가 많다. 테스트를 처음 시작하는 사람에게 이 책이 많은 도움이 될 것이다.
_이경석, 겜퍼 백엔드 개발자
테스트의 기본 개념과 다양한 기법을 실습과 함께 배울 수 있는 책이다. 특히 최근 보안 문제가 강조되고 있는데 보안 전문가가 아닌 개발자로서 어떻게 보안 테스트를 수행해야 하는지 알 수 있어 유익하다.
_고주형, 중앙대학교 소프트웨어학부
[서평]
풀스택 테스트: 10가지 테스트 기술의 기본 원칙과 전략은 풀스택 애플리케이션 테스트와 관련된 기본 원칙 및 전략에 대한 소개 합니다. 이 책은 독자들에게 테스트 기술에 대한 기본적인 이해와 소프트웨어 스택의 여러 계층에 적용할 수 있는 방법을 자세히 설명하는 것을 목표로 합니다.
이 책은 풀스택 테스트의 중요성과 복잡한 소프트웨어 시스템의 품질과 안정성을 보장하는 역할을 설명하는 것으로 시작합니다. 그런 다음 개별 구성 요소 단위 테스트에서 전체 응용 프로그램의 종단 간 테스트에 이르기까지 광범위한 시나리오를 다루는 10가지 테스트 기술을 제시합니다. 각 기술은 간결한 방식으로 설명되어 있어 테스트 경험이 전무한 초보 독자도 쉽게 접근할 수 있습니다.
이 책의 강점 중 하나는 실제 실무 사례를 강조한다는 것입니다. 각 테스트 기술을 구현하는 방법을 보여주는 수많은 실제 시나리오가 포함되어 있습니다. 이러한 예는 독자가 이론과 실습을 연결하여 개념을 보다 효과적으로 파악할 수 있도록 도와줍니다.
또한 이 책은 각 기술에 적합한 테스트 도구 및 프레임워크를 선택하는 방법에 대한 지침을 제공합니다. REST Assured, JUnit 및 Cypress과 같은 인기 있는 도구를 강조하고 풀스택 테스트를 용이하게 하는 데 사용할 수 있는 방법을 설명합니다. 이 책의 실용적인 측면은 자신의 프로젝트에서 개념을 구현하려는 독자에게 유용합니다.
그러나 이 책은 몇 가지 영역에서 부족합니다. 첫째, 각 테스트 기술의 적용 범위가 다소 얕게 느껴집니다. 설명은 기본적인 이해를 제공하지만 좀더 깊은 지식을 원하는 독자는 다른 관련 책을 참조해야 할 수 있습니다. 둘째, 이 책은 다양한 기술 스택이나 프레임워크에 특정한 테스트 전략에 대한 내용이 부족합니다.
또한 책의 구성을 개선할 수 있습니다. 10가지 테스팅 기술은 별도의 장으로 제시되지만 이들 사이의 연관성이 부족합니다. 명확한 연결과 점진적인 학습 경로가 포함된 보다 구조화된 접근 방식은 기술이 어떻게 조화를 이루는지에 대한 독자의 이해를 향상시켰을 것입니다.
이러한 단점에도 불구하고 풀스택 테스트: 10가지 테스트 기술의 기본 원칙과 전략은 풀스택 테스트에 대한 적절한 소개 역할을 합니다. 이 책은 초보자도 쉽게 접근할 수 있으며 테스트 프로세스에 대한 실용적인 통찰력을 제공합니다. 고급 개념을 탐구하거나 특정 기술 스택에 대한 광범위한 범위를 제공하지는 않지만 풀스택 환경에서 테스트 기술의 기본 사항을 이해하려는 개인에게 출발점 역할을 할 수 있습니다.
결론적으로 풀스택 테스트: 10가지 테스트 기술의 기본 원칙과 전략은 풀 스택 애플리케이션을 위한 테스팅 기법에 대한 입문 수준의 내용을 제공합니다. 깊이와 전문적인 통찰력이 아쉽지만 초보자에게 풀스택 테스트에서 여정을 시작할 수 있는 기반을 제공하기에는 충분합니다. 보다 포괄적이고 고급 지식을 원하는 독자를 위해서는 다음 개정판에서 보완해야 할 수도 있습니다.
다양한 테스트 방법과 도구를 알려주고 있고 실습까지 내용도 내용이지만 현업에 바로 적용가능하게 도와주는 책이다.
십수년 동안 개발자로 업무를 보다가 몇 년 전부터는 SW테스터로 업무가 전환되었다.
그동안 개발하면서 테스트를 하고 있었다고 생각했지만 #ISTQB #Foundation 자격증취득을 위해 준비하면서 접한 두 권의 책이 전부였던 상태라...사실 테스트를 위한 조직이 처음 만들어진것이라...하하~~대략 난감한 상태.. 그냥 경험을 기반(도메인 지식만)으로 테스트 업무를 해왔다. 그게 다였다. 그러다 찾아온 기회??...^^ 사실 풀스택개발자는 들어 봤는데 #풀스택테스트 라? 생소했다??그리고 책을 받고 목차를 보고, 처음 든 생각.. 정독하였다~
책의 첫 장부터 한 글자 한 글자 정성을 들여 천천히 정독했다.1장에선 풀스택테스트가 무엇인지 바로 알려준다 ~^^
삽시간에 궁금증이 풀리면서 이 책에 대한 기대감을 더 높여주었다.
2장의 수동탐색적 테스트 ~ 11장의 모바일테스트까지 각 테스트에 대한 설명과 테스트 도구 그리고 실습까지 친절하게 나와있다. 이 중 가장 좋았던 부분은 테스트 도구에 대한 언급이다. 너무 필요한 내용이였고 현장에서도 바로 적용해 봄직한..내겐 너무 필요한....감사하다.테스트의 #도구사용법 그리고 테스트의 범위 등 실질적인 도움이 되는 내용이 있어 밑줄까지 쳐가면서 열공 ~~
특히 이부분은 이 책에서 가장 감동을 받았던 부분있다. ^^
100% 커버리지를 달성해도 애플리케이션에 버그가 없다고 보장할수 없다.
한 Chapter를 넘길때 마다 여러가지 도구를 실제 업무에 적용해보고 싶다는 생각이 들었다.
5장.데이터 테스트, 7장. 보안 테스트, 8장. 성능테스트 는 그동안 해보고 싶어도 어떻게 하는지 궁금하지만 귀챦아서, 시간이 없어서, 잘 몰라서 여러가지 핑계를 대며 하지 않았던, 할수 없었던 분야의 테스트 였지만 이제 해보고 싶어졌다. ~^^
마지막 13장 신기술 테스트 소개까지 다 읽고 나니..
10가지의 테스트 방법과 도구 그리고 실습이 실제 내 업무에 어느 정도 도움이 될거라는..
그러다가 이번에 풀스택 테스트라는 제목으로 10가지 테스트의 기본 원리를 학습할 수 있는 책이 나와서 읽게 되었습니다.
로랜드줄무늬텐렉
오라일리 책 표지에는 이렇게 동물이 나오는데요.
대부분은 멸종 위기에 있는 동물들입니다.
오늘 소개하는 책 Full Stack Testing에 나오는 동물은 로랜드줄무늬텐렉이라고 합니다.
마다가스카르 섬에 살고 있고요.
인간에 대한 내성이 있어 멸종 위기 종은 아니라고 하네요.
신기한 것은 암컷은 1년 동안만 번식이 가능하다고 합니다.
그리고 생후 25일부터 번식할 수 있는 동물이라고 해요.
한빛미디어 책이 주는 줄거움은 책 표지에 나오는 동물에 대한 설명글을 읽는 것에서 시작됩니다.
일반적으로 테스트는 성능부터 UI, 계약, 엔트 두 엔드 기능, 유닛 테스트, 접근성 테스트까지 풀스택 테스트에서 포괄하고 있는 내용입니다. 이 책은 포괄적인 내용의 테스트 유형을 다루고 있으며 테스트 과정에서 발상하는 열 가지 문제를 설명하고 있어서 전략과 원칙을 세우는 데 도움이 될 것입니다.
UI 계층부터 데이터베이스까지 각 영역에 필요한 테스트를 매우 상사하게 소개하고 실제로 테스트하는 방법을 낱낱이 살펴본다.
이 책은 거의 모든 소프트웨어 테스트 개념뿐만 아니라 간단한 실습도 소개한다.
프런트엔드와 백엔드 테스트만을 다룰 것이라 생각했는데 성능 테스트, 접근성 테스트, 보안 테스트, 블록체인까지 다양한 테스트를 다룬다. 모든 개발자가 읽어보기를 권하며 특히 데브옵스 엔지니어나 SRE에게 큰 도움이 될 것이다.
이 책의 저자는 현업에서 경험한 지식과 사례를 이 책에 담았습니다.
다양한 유형의 테스트를 소개하고 간단한 실습을 통해 도구를 다루는 방법을 설명합니다.
이제 막 소프트웨어에 입문한 초보자라면 각 장의 개념 소개를 통해 기술에 대한 전반적인 배경지식을 얻어 갈 수 있습니다.
반대로 숙련된 테스트 전문가라면 이 책을 통해 새로운 영역에 관한 인사이트를 얻을 수 있습니다.
저자는 이 책을
테스트를 처음 접하는 사람이 오늘날의 웹 및 모바일 애플리케이션 테스트에 필요한 모든 기술을 초중급자 수준 이상으로 향상시킬 수 있는 종합적인 자료가 되는 것을 목표로 한다고 합니다.
테스트는 애플리케이션이 원하는 대로 작동하는지 검증하는 것이다.
성공적인 테스트를 위해서는 마이크로 수준과 매크로 수준에서 테스트를 수행해야 한다.
클래드의 메서드, 입력 데이터 값, 로그 메시지, 에러 코드 같은 애플리케이션의 마이크로 측면과 기능 테스트, 기능 간 통합, 엔드 투 엔드 워크플로 같은 매크로 측면을 검증해야 한다.
더 나아가 보안, 성능, 접근성, 가용성 등 애플리케이션 전체의 품질을 고려해야 한다.
필자는 이 모든 것을 종합하여 풀스택 테스트라고 부른다.
28쪽
10가지 플스택 테스트
수동 탐색적 테스트
자동화된 기능 테스트
지속적 테스트
데이터 테스트
시각적 테스트
보안 테스트
성능 테스트
접근성 테스트
교차 기능 요구 사항 테스트
모바일 테스트
챕터 7에서는 보안 테스트로 해커로부터 시스템을 보호하는 방식을 다루고
챕터 9 접근성 테스트에서는 장애가 있는 사용자도 시스템을 쉽게 사용할 수 있도록 하는 방법을 설명해 줍니다.
책을 통해 저자는 오랜 경험에서 얻은 노하우를 전하는데 전문 테스터뿐만 아니라 애플리케이션 개발자 데브옵스 엔지니어같이 테스트와 밀접한 관련이 있는 업무를 담당하는 모든 사람에게 큰 도움이 될 것이라고 소개하고 있다.