메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

풀스택 테스트

10가지 테스트 기술의 기본 원칙과 전략

한빛미디어

번역서

판매중

  • 저자 : 가야트리 모한
  • 번역 : 최경현
  • 출간 : 2023-05-26
  • 페이지 : 432 쪽
  • ISBN : 9791169211093
  • 물류코드 :11109
  • 초급 초중급 중급 중고급 고급
4.9점 (30명)
좋아요 : 9

전략, 실무 접근법, 도구, 저자의 노하우까지 모두 담은 테스트 바이블

 

소프트웨어 개발 주기 동안 수행되는 10가지 테스트 기술의 기본 원칙을 소개하고, 상황별로 각 기술을 활용하는 방법과 전략을 자세히 설명합니다. 특히 (1) 자바 및 자바스크립트를 사용해 실무에서 테스트에 어떻게 접근하는지 단계별로 안내하는 점, (2) 여러 가지 테스트 도구를 소개하는 점, (3) 각 도구로 최대의 가치를 창출할 수 있는 시점을 자세히 설명하는 점이 이 책의 차별화된 특징입니다. 또한 오랜 실무 경험을 통해 터득한 저자의 테스트 노하우를 공유합니다. 따라서 웹 및 모바일 애플리케이션 테스트에 필요한 모든 기술을 접하고 익숙해질 수 있습니다. 전문 테스터뿐만 아니라 애플리케이션 개발자, 데브옵스 엔지니어 같이 테스트와 밀접한 관련이 있는 업무를 담당하는 모든 사람에게 큰 도움이 되는 테스트 교과서라 할 수 있습니다.

 

상세이미지(수정본)_700_풀스택 테스트.jpg

 

가야트리 모한 저자

가야트리 모한

소프트웨어 개발 분야에서 여러 역할을 경험했으며 다양한 기술 및 산업 영역의 전문 지식을 갖춘 열정적인 기술 리더다. Thoughtworks의 수석 컨설턴트로, 고객을 위한 대규모 품질 보증(QA) 팀을 이끌고 있다. 또한 글로벌 QA SME로 일하면서 QA를 위한 커리어 패스와 기술 개발 구조를 정의했다. 기술 리더로서 기술 커뮤니티 육성과 이벤트 주최에 관심이 많으며 기술 주제 전반에 걸친 리더십 개발에 힘쓰고 있다. 셀레니움 10주년 기념일에 Thoughtworks에서 발표한 『Perspectives of Agile Software Testing』을 공동 집필하기도 했다.

최경현 역자

최경현

SK텔레콤에서 통신 및 플랫폼 인프라 등 다양한 시스템을 운영했으며 현재는 개발 업무를 담당하고 있다. 옮긴 책으로는 『처음 시작하는 마이크로서비스』(한빛미디어, 2021), 『쿠버네티스를 활용한 클라우드 네이티브 데브옵스』(한빛미디어, 2019)가 있다.

 

Chapter 1 풀스택 테스트

1.1 좋은 품질을 위한 풀스택 테스트

1.2 시프트 레프트 테스트

1.3 10가지 풀스택 테스트

요점 정리

 

Chapter 2 수동 탐색적 테스트

2.1 구성 요소

_2.1.1 탐색적 테스트 프레임워크

__동등 클래스 분할

__경곗값 분석

__상태 전환

__결정 테이블

__페어와이즈 테스트

__샘플링

__오류 추측

_2.1.2 기능 탐색

__기능적 사용자 흐름

__실패와 오류 처리

__UI 룩앤필

__교차 기능적 측면

2.2 수동 탐색적 테스트 전략

_2.2.1 애플리케이션 이해

_2.2.2 부분별 탐색

_2.2.3 단계별로 탐색적 테스트 반복

2.3 실습

_2.3.1 API 테스트

__포스트맨

_2.3.2 웹UI 테스트

__브라우저

__버그 마그넷

__크롬 개발자 도구

2.4 인사이트: 테스트 환경 위생

요점 정리

 

Chapter 3 자동화된 기능 테스트

3.1 구성 요소

_3.1.1 마이크로 테스트와 매크로 테스트 유형

__유닛 테스트

__통합 테스트

__계약 테스트

__서비스 테스트

__UI 기능 테스트

__엔드 투 엔드 테스트

3.2 자동화된 기능 테스트 전략

3.3 실습

_3.3.1 UI 기능 테스트

__자바-셀레니움 웹 드라이버 프레임워크

___사전 요구 사항

___메이븐

___TestNG

___셀레니움 웹 드라이버

___페이지 객체 모델

___설정 및 워크플로

__자바스크립트-Cypress 프레임워크

___사전 요구 사항

___Cypress

___설정 및 워크플로

_3.3.2 서비스 테스트

__자바 REST Assured 프레임워크

___사전 요구 사항

___설정 및 워크플로

_3.3.3 유닛 테스트

__JUnit

___설정 및 워크플로

3.4 추가 테스트 도구

_3.4.1 팩트

_3.4.2 가라테

_3.4.3 AI/ML 자동화 테스트 도구

__테스트 작성

__테스트 유지 관리

__테스트 보고서 분석

__테스트 거버넌스

3.5 인사이트

_3.5.1 주의해야 할 안티 패턴

__아이스크림 콘 안티 패턴

__컵케이크 안티 패턴

_3.5.2 100% 자동화 커버리지

요점 정리

 

Chapter 4 지속적 테스트

4.1 구성 요소

_4.1.1 CI 소개

_4.1.2 CI/CT/CD 프로세스

_4.1.3 기본 원칙과 에티켓

4.2 CT 전략

_4.2.1 CI의 이점

4.3 실습

_4.3.1 Git

__설정

__워크플로

_4.3.2 젠킨스

__설정

__워크플로

4.4 4가지 주요 지표

요점 정리

 

Chapter 5 데이터 테스트

5.1 구성 요소

_5.1.1 데이터베이스

_5.1.2 캐시

_5.1.3 배치 처리 시스템

_5.1.4 이벤트 스트림

5.2 데이터 테스트 전략

5.3 실습

_5.3.1 SQL

__사전 요구 사항

__워크플로

___Create

___Insert

___Select

___필터링 및 그룹화

___정렬

___함수 및 연산자

___표현식 및 술어

___중첩 쿼리

___결합

___업데이트 및 삭제

_5.3.2 JDBC

__설정 및 워크플로

_5.3.3 아파치 카프카 및 제로코드

__설정

__워크플로

5.4 추가 테스트 도구

_5.4.1 테스트 컨테이너

_5.4.2 Deequ

요점 정리

 

Chapter 6 시각적 테스트

6.1 구성 요소

_6.1.1 시각적 테스트 소개

_6.1.2 프로젝트/비즈니스별 유스 케이스

6.2 프론트엔드 테스트 전략

_6.2.1 유닛 테스트

_6.2.2 통합 테스트

_6.2.3 스냅샷 테스트

_6.2.4 엔드 투 엔드 기능 테스트

_6.2.5 시각적 테스트

_6.2.6 교차 브라우저 테스트

_6.2.7 프론트엔드 성능 테스트

_6.2.8 접근성 테스트

6.3 실습

_6.3.1 BackstopJS

__설정

__워크플로

_6.3.2 Cypress

__설정

__워크플로

6.4 추가 테스트 도구

_6.4.1 Applitools Eyes

_6.4.2 스토리북

6.5 인사이트: 시각적 테스트 적용

요점 정리

 

Chapter 7 보안 테스트

7.1 구성 요소

_7.1.1 일반적인 사이버 공격

_7.1.2 STRIDE 위협 모델

_7.1.3 애플리케이션 취약점

_7.1.4 위협 모델링

__위협 모델링 단계

__위협 모델링 연습

__위협 모델의 보안 테스트 케이스

7.2 보안 테스트 전략

7.3 실습

_7.3.1 OWASP Dependency-Check

__설정 및 워크플로

_7.3.2 OWASP ZAP

__설정

__워크플로

___수동 탐색

___ZAP 스파이더

___스캐닝

___CI에 ZAP 통합하기

7.4 추가 테스트 도구

_7.4.1 스닉 IDE 플러그인

_7.4.2 탈리스만 커밋 전 훅

_7.4.3 크롬 개발자 도구와 포스트맨

7.5 인사이트: 보안은 습관이다

요점 정리

 

Chapter 8 성능 테스트

8.1 백엔드 성능 테스트 구성 요소

_8.1.1 성능, 매출, 주말 휴무의 상관관계

_8.1.2 성능 목표

_8.1.3 성능에 영향을 미치는 요소

_8.1.4 핵심 성과 지표

_8.1.5 성능 테스트 유형

_8.1.6 부하 패턴 유형

_8.1.7 성능 테스트 단계

__1단계: 목표 KPI 정의

__2단계: 테스트 케이스 정의

__3단계: 성능 테스트 환경 준비

__4단계: 테스트 데이터 준비

__5단계: APM 도구 통합

__6단계: 도구를 사용한 성능 테스트 스크립트 작성 및 실행

8.2 실습

_1단계: 목표 KPI 정의

_2단계: 테스트 케이스 정의

_3~5단계: 데이터, 환경, 도구 준비

_6단계: 제이미터를 사용한 성능 테스트 스크립트 작성 및 실행

__설정

__워크플로

__다른 성능 테스트 케이스 설계

__데이터 기반 성능 테스트

__CI에 통합

8.3 추가 테스트 도구

_8.3.1 개틀링

_8.3.2 아파치 벤치마크

8.4 프론트엔드 성능 테스트 구성 요소

_8.4.1 프론트엔드 성능에 영향을 미치는 요소

_8.4.2 RAIL 모델

_8.4.3 프론트엔드 성능 메트릭

8.5 실습

_8.5.1 WebPage Test

__워크플로

_8.5.2 라이트하우스

__워크플로

8.6 추가 테스트 도구

_8.6.1 페이지 스피드 인사이트

_8.6.2 크롬 개발자 도구

8.7 성능 테스트 전략

요점 정리

 

Chapter 9 접근성 테스트

9.1 구성 요소

_9.1.1 접근성 사용자 페르소나

_9.1.2 접근성 생태계

_9.1.3 예제: 스크린 리더

_9.1.4 WCAG 2.0: 기본 원칙과 수준

_9.1.5 레벨 A 적합성 표준

__인지 가능

__조작 가능

__이해 가능

__견고함

_9.1.6 접근성 지원 개발 프레임워크

9.2 접근성 테스트 전략

_9.2.1 사용자 스토리의 접근성 체크리스트

_9.2.2 자동화된 접근성 감사 도구

_9.2.3 수동 테스트

9.3 실습

_9.3.1 WAVE

__워크플로

_9.3.2 라이트하우스

__워크플로

_9.3.3 라이트하우스 노드 모듈

__워크플로

9.4 추가 테스트 도구

_9.4.1 Pa11y CI 노드 모듈

_9.4.2 Axe-core

9.5 인사이트: 접근성 문화

요점 정리

 

Chapter 10 교차 기능 요구 사항 테스트

10.1 구성 요소

10.2 CFR 테스트 전략

_10.2.1 기능성

_10.2.2 사용성

_10.2.3 신뢰성

_10.2.4 성능

_10.2.5 지원성

10.3 기타 CFR 테스트 방법

_10.3.1 카오스 엔지니어링

__카오스 실험

_10.3.2 아키텍처 테스트

_10.3.3 인프라 테스트

_10.3.4 규정 준수 테스트

__일반 데이터 보호 규정(GDPR)

__PCI DSS와 PSD2

10.4 인사이트: 진화성

요점 정리

 

Chapter 11 모바일 테스트

11.1 구성 요소

_11.1.1 모바일 환경

__장치

__앱

__네트워크

_11.1.2 모바일 앱 아키텍처

11.2 모바일 테스트 전략

_11.2.1 수동 탐색적 테스트

_11.2.2 자동화된 기능 테스트

_11.2.3 데이터 테스트

_11.2.4 시각적 테스트

_11.2.5 보안 테스트

_11.2.6 성능 테스트

_11.2.7 접근성 테스트

_11.2.8 CFR 테스트

11.3 실습

_11.3.1 앱피움

__사전 요구 사항

__안드로이드 에뮬레이터

__앱피움 2.0 설정

__워크플로

_11.3.2 앱피움 시각적 테스트 플러그인

__설정

__워크플로

11.4 추가 테스트 도구

_11.4.1 안드로이드 스튜디오 데이터베이스 인스펙터

_11.4.2 성능 테스트 도구

__몽키

__확장 제어: 네트워크 스로틀러

__앱피움 성능 API

_11.4.3 보안 테스트 도구

__MobSF

__Qark

_11.4.4 접근성 검사기

11.5 인사이트: 모바일 테스트 피라미드

요점 정리

 

Chapter 12 테스트 너머의 세계로 나아가기

12.1 테스트 기본 원칙

_12.1.1 결함 예방

_12.1.2 최종 사용자의 관점 반영

_12.1.3 마이크로 및 매크로 수준 테스트

_12.1.4 빠른 피드백

_12.1.5 지속적 피드백

_12.1.6 품질 지표 측정

_12.1.7 커뮤니케이션과 협업

12.2 품질을 우선으로 생각하기 위한 소프트 스킬

마무리

 

Chapter 13 신기술 테스트 소개

13.1 인공지능과 머신러닝

_13.1.1 ML

_13.1.2 ML 애플리케이션 테스트

13.2 블록체인

_13.2.1 블록체인 개념

_13.2.2 블록체인 애플리케이션 테스트

13.3 사물인터넷(IoT)

_13.3.1 IoT의 5 계층 아키텍처

_13.3.2 IoT 애플리케이션 테스트

13.4 증강 현실(AR)과 가상 현실(VR)

_13.4.1 AR 및 VR 애플리케이션 테스트

마무리

테스트 도구가 변해도 적용 가능한 ‘전략’에 초점을 맞춘 실무 교과서

 

자동화된 테스트가 등장하고, 기능적 사용 사례를 넘어 성능, 보안, 안정성과 같은 교차 기능 요구 사항에 대한 테스트가 중요해지면서 풀스택 테스트는 하나의 분야가 되었습니다. 이 책은 풀스택 테스트를 위한 종합적인 자료로, 테스트 기술에 관한 일관된 설명과 실제 사례를 제공하고 어느 시점에 어떤 유형의 테스트를 수행해야 하는지 상세히 설명합니다. 

또한 실습을 통해 테스트 접근 방식을 구체화합니다. 실습에서 다루는 도구는 시간이 지남에 따라 변경되거나 발전할 수 있지만, 이 책에서는 올바른 테스트를 구성하는 방법에 초점을 맞추기 때문에 도구가 변경되더라도 적용 및 응용할 수 있습니다.

 

이제 막 소프트웨어 업계에 입문한 초보자라면 테스트 기술에 대한 전반적인 배경지식을 얻어갈 수 있고, 숙련된 테스트 전문가라면 이 책을 통해 새로운 영역에 관한 인사이트를 얻을 수 있습니다.

 

이 책에서 다루는 10가지 테스트 + 신기술 테스트

1. 수동 탐색적 테스트

2. 자동화된 기능 테스트

3. 지속적 테스트

4. 데이터 테스트

5. CFR 테스트

6. 시각적 테스트

7. 보안 테스트

8. 성능 테스트

9. 접근성 테스트

10. 모바일 테스트

+ 신기술(머신러닝, 블록체인, IoT, AR/VR) 테스트

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에 종사하는 분들이 쉽고 편안하게 읽을 수 있을 것 같습니다. 이 도서를 통해서 일찍 퇴근하는 님들이 되었으면 합니다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

이번에 이 책을 선택한 이유는 개발자로 더 성장하고 싶은 생각이 많고 책을 좋아해서 어떤 책을 읽어볼까 생각하던 순간에 타이틀이 가장 눈에 띄어서 선택하게 되었다. 그리고 테스트라는 말에 코딩테스트와 비슷한 맥락인 줄 알고 선택을 했는데 제품을 출시하기위해 필요한 과정에 대한 책이어서 좋았다. 나중에 내가 앱이나 홈페이지를 만들 때 많은 시행착오를 겪을 텐데 특히 어플을 만들때 어떠한 과정이 필요하고 출시하기 전과 출시한 후에도 필요한 과정을 알 수 있어서 좋았다.

꼭 개발이 아니어도 어떤 상품을 출시할 때 비슷한 맥락으로 진행을 해도 좋을 것같다는 생가깅 들었다.

20230827_160401.jpg

 

 

책의 “추천사”에 이어지는 “베타리더의말”에서 어떤 베타리더가 이 책을 가리켜 한마디로 정의하면 “모든테스트의 종합판이다라고 썼는데 적절한 표현인 것 같다. 시프트레프트(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)을 소개한다.

 

 

20230827_160449.jpg

 

20230827_160506.jpg

 

 

각 장의 실습부분에서는 현장에서 사용되는 무료 테스트 도구 중심으로 절차와화면 캡쳐를 적정하게 배치하여 설명하고 있다. 추가적인 설명이 필요한 용어, 개념, 상황 등에 대해서는 각주로 참고 URL을 표시하고 있다. 어떤 책에서는 추가 설명이 필요한 용어, 개념 등에 대해 박스 내용 등으로 포함해서 궁금증을 바로 해소해주는 형식을 취한다. 각 구성의 장단점이 있는 것 같은데 책에서는 URL을 참고하도록해서 본문에 필요한 내용 위주로 책의 분량을 늘이지 않고 책을 보다 효율적으로 보는데 도움을 주는 것 같다. 대부분의각주가 URL을 참고하도록 되어 있으나 추가적인 내용을 기술하는 경우도 있어 균형을 취하고 있다.

 

20230827_160741.jpg

 

실습에 필요한 기본적인 소스코드내용도 역시 포함되어 있어 직접 타이핑해보고 기술을 체득하는데 도움을 주고 있다.

20230827_160837.jpg

 

노트”, “내용을 박스안에 별도로 제공해서 참고하거나 주의해야 할내용들도 시의 적절하게 제공하고 있다.

20230827_160954.jpg

 

 

각 장 마지막의 요점정리를 통해 핵심적인 내용들을 다시금 정리해 볼 수 있도록 하고있다.

 

20230827_161013.jpg

 

 

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

 

마지막으로 일반적으로 생각하는 테스트의 관습적인 잘못된 태도에 관한 저자의 생각으로 마무리한다.



 

테스트가 개발을 완료한 후 별도로 진행하는 독립적인 작업이라는 기존의 사고를 버려야 한다. ... 시프트 레프트는 소프트웨어 개발 초기에 테스트를 시행하는 것으로 풀스택 테스트에서 따라야 하는 핵심 원칙이다.

Chapter 1 풀스택 테스트, p29

 



"한빛미디어<나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

#풀스택테스트 #테스트 #test #풀스택 #소프트웨어개발 #소프트웨어엔지니어 #개발방법론 #자바 #자바스크립트 #프론트엔드 #백엔드 #JUNIT #JEST #시프트레프트 #셀레니움 #Cypress #한빛미디어 #가야트리모한 #최경현 #소프트스킬 #시프트레프트테스트



 

풀스택 개발자로서 되도록이면 테스트를 많이해 내가 짠 코드의 품질을 높이자는 주의인데, 프로젝트 일정에 쫓기다 보면 제대로 하지않고 테스트를 하는 경우가 있어 참 아쉬움이 남는 경우가 많이 있었습니다.

뭔가, 테스트를 안했을때는 불안감이 커지고 내가 짠 코드에 자신감도 없고 찜찜한 기분이 남습니다.

이제부터라도 테스트에 더 많은 시간을 좋은 품질의 소프트웨어를 만들기 위해 노력해야 하겠습니다.

풀스택 테스트는 모든 계층에서 애플리케이션의 모든 영역을 테스트하여 좋은 품질의 소프트웨어를 제공하는 것을 말합니다.

이책에서는 풀스텍 테스트를 크게 10가지 영역으로 나눕니다. 수동 탐색적 테스트, 자동화된 기능 테스트, 지속적 테스트, 데이터 테스트, 시각적 테스트, 보안 테스트, 성능 테스트, 접근성 테스트, CFR 교차 기능 요구사항 테스트, 모바일 테스트로써 풀스택 테스트를 효율적으로 수행하기 위한 테스트 기법입니다.

위의 10가지 테스트를 상황별로 기술을 활용하는 방법과 전략을 자세히 설명하며, 특히 자바 및 자바스크립트를 활용해 실무에서 어떻게 단계별로 안내하는 점 그리고 여러가지 테스트를 소개하고 각 도구로 최대의 가치를 창출할 수 있는 시점을 자세히 설명하는 점이 이 책의 특징이라고 할수 있습니다.

또한 오랜 실무 경험을 통해 터득한 저자의 노하우를 알려주며 웹 및 모바일 애플리케이션 테스트에 필요한 모든 기술을 접하고 익숙해질 수 있습니다. 전문 테스터 뿐만 아니라 애플리케이션 개발자, 데비옵스 엔지니어 같이 테스트와 밀접한 관련이 있는 업무를 당담하는 모든 사람에게 큰 도움이 되는 테스트계의 교과서라 할 수 있습니다.

목차

Chapter 1 풀스택 테스트

1.1 좋은 품질을 위한 풀스택 테스트

1.2 시프트 레프트 테스트

1.3 10가지 풀스택 테스트

요점 정리

Chapter 2 수동 탐색적 테스트

2.1 구성 요소

_2.1.1 탐색적 테스트 프레임워크

_2.1.2 기능 탐색

2.2 수동 탐색적 테스트 전략

2.3 실습

_2.3.1 API 테스트

_2.3.2 웹UI 테스트

2.4 인사이트: 테스트 환경 위생

요점 정리

Chapter 3 자동화된 기능 테스트

3.1 구성 요소

_3.1.1 마이크로 테스트와 매크로 테스트 유형

3.2 자동화된 기능 테스트 전략

3.3 실습

_3.3.1 UI 기능 테스트

_3.3.2 서비스 테스트

_3.3.3 유닛 테스트

3.4 추가 테스트 도구

_3.4.1 팩트

_3.4.2 가라테

_3.4.3 AI/ML 자동화 테스트 도구

3.5 인사이트

_3.5.1 주의해야 할 안티 패턴

_3.5.2 100% 자동화 커버리지

요점 정리

Chapter 4 지속적 테스트

4.1 구성 요소

4.2 CT 전략

_4.2.1 CI의 이점

4.3 실습

_4.3.1 Git

_4.3.2 젠킨스

4.4 4가지 주요 지표

요점 정리

Chapter 5 데이터 테스트

5.1 구성 요소

_5.1.1 데이터베이스

_5.1.2 캐시

_5.1.3 배치 처리 시스템

_5.1.4 이벤트 스트림

5.2 데이터 테스트 전략

5.3 실습

_5.3.1 SQL

_5.3.2 JDBC

_5.3.3 아파치 카프카 및 제로코드

5.4 추가 테스트 도구

_5.4.1 테스트 컨테이너

_5.4.2 Deequ

요점 정리

Chapter 6 시각적 테스트

6.1 구성 요소

_6.1.1 시각적 테스트 소개

_6.1.2 프로젝트/비즈니스별 유스 케이스

6.2 프론트엔드 테스트 전략

_6.2.1 유닛 테스트

_6.2.2 통합 테스트

_6.2.3 스냅샷 테스트

_6.2.4 엔드 투 엔드 기능 테스트

_6.2.5 시각적 테스트

_6.2.6 교차 브라우저 테스트

_6.2.7 프론트엔드 성능 테스트

_6.2.8 접근성 테스트

6.3 실습

_6.3.1 BackstopJS

_6.3.2 Cypress

6.4 추가 테스트 도구

_6.4.1 Applitools Eyes

_6.4.2 스토리북

6.5 인사이트: 시각적 테스트 적용

요점 정리

Chapter 7 보안 테스트

7.1 구성 요소

_7.1.1 일반적인 사이버 공격

_7.1.2 STRIDE 위협 모델

_7.1.3 애플리케이션 취약점

_7.1.4 위협 모델링

7.2 보안 테스트 전략

7.3 실습

_7.3.1 OWASP Dependency-Check

_7.3.2 OWASP ZAP

7.4 추가 테스트 도구

_7.4.1 스닉 IDE 플러그인

_7.4.2 탈리스만 커밋 전 훅

_7.4.3 크롬 개발자 도구와 포스트맨

7.5 인사이트: 보안은 습관이다

요점 정리

Chapter 8 성능 테스트

8.1 백엔드 성능 테스트 구성 요소

_8.1.1 성능, 매출, 주말 휴무의 상관관계

_8.1.2 성능 목표

_8.1.3 성능에 영향을 미치는 요소

_8.1.4 핵심 성과 지표

_8.1.5 성능 테스트 유형

_8.1.6 부하 패턴 유형

_8.1.7 성능 테스트 단계

8.2 실습

_1단계: 목표 KPI 정의

_2단계: 테스트 케이스 정의

_3~5단계: 데이터, 환경, 도구 준비

_6단계: 제이미터를 사용한 성능 테스트 스크립트 작성 및 실행

8.3 추가 테스트 도구

_8.3.1 개틀링

_8.3.2 아파치 벤치마크

8.4 프론트엔드 성능 테스트 구성 요소

_8.4.1 프론트엔드 성능에 영향을 미치는 요소

_8.4.2 RAIL 모델

_8.4.3 프론트엔드 성능 메트릭

8.5 실습

_8.5.1 WebPage Test

__워크플로

_8.5.2 라이트하우스

__워크플로

8.6 추가 테스트 도구

_8.6.1 페이지 스피드 인사이트

_8.6.2 크롬 개발자 도구

8.7 성능 테스트 전략

요점 정리

Chapter 9 접근성 테스트

9.1 구성 요소

_9.1.1 접근성 사용자 페르소나

_9.1.2 접근성 생태계

_9.1.3 예제: 스크린 리더

_9.1.4 WCAG 2.0: 기본 원칙과 수준

_9.1.5 레벨 A 적합성 표준

_9.1.6 접근성 지원 개발 프레임워크

9.2 접근성 테스트 전략

_9.2.1 사용자 스토리의 접근성 체크리스트

_9.2.2 자동화된 접근성 감사 도구

_9.2.3 수동 테스트

9.3 실습

_9.3.1 WAVE

_9.3.2 라이트하우스

_9.3.3 라이트하우스 노드 모듈

9.4 추가 테스트 도구

_9.4.1 Pa11y CI 노드 모듈

_9.4.2 Axe-core

9.5 인사이트: 접근성 문화

요점 정리

Chapter 10 교차 기능 요구 사항 테스트

10.1 구성 요소

10.2 CFR 테스트 전략

_10.2.1 기능성

_10.2.2 사용성

_10.2.3 신뢰성

_10.2.4 성능

_10.2.5 지원성

10.3 기타 CFR 테스트 방법

_10.3.1 카오스 엔지니어링

_10.3.2 아키텍처 테스트

_10.3.3 인프라 테스트

_10.3.4 규정 준수 테스트

10.4 인사이트: 진화성

요점 정리

Chapter 11 모바일 테스트

11.1 구성 요소

_11.1.1 모바일 환경

_11.1.2 모바일 앱 아키텍처

11.2 모바일 테스트 전략

_11.2.1 수동 탐색적 테스트

_11.2.2 자동화된 기능 테스트

_11.2.3 데이터 테스트

_11.2.4 시각적 테스트

_11.2.5 보안 테스트

_11.2.6 성능 테스트

_11.2.7 접근성 테스트

_11.2.8 CFR 테스트

11.3 실습

_11.3.1 앱피움

_11.3.2 앱피움 시각적 테스트 플러그인

11.4 추가 테스트 도구

_11.4.1 안드로이드 스튜디오 데이터베이스 인스펙터

_11.4.2 성능 테스트 도구

_11.4.3 보안 테스트 도구

__MobSF

__Qark

_11.4.4 접근성 검사기

11.5 인사이트: 모바일 테스트 피라미드

요점 정리

Chapter 12 테스트 너머의 세계로 나아가기

12.1 테스트 기본 원칙

_12.1.1 결함 예방

_12.1.2 최종 사용자의 관점 반영

_12.1.3 마이크로 및 매크로 수준 테스트

_12.1.4 빠른 피드백

_12.1.5 지속적 피드백

_12.1.6 품질 지표 측정

_12.1.7 커뮤니케이션과 협업

12.2 품질을 우선으로 생각하기 위한 소프트 스킬

마무리

Chapter 13 신기술 테스트 소개

13.1 인공지능과 머신러닝

_13.1.1 ML

_13.1.2 ML 애플리케이션 테스트

13.2 블록체인

_13.2.1 블록체인 개념

_13.2.2 블록체인 애플리케이션 테스트

13.3 사물인터넷(IoT)

_13.3.1 IoT의 5 계층 아키텍처

_13.3.2 IoT 애플리케이션 테스트

13.4 증강 현실(AR)과 가상 현실(VR)

_13.4.1 AR 및 VR 애플리케이션 테스트

마무리

데이터 엔지니어로써 풀스택 테스트는 이색적으로 다가왔다. 

왜냐하면 풀스택 테스트라 함은 내 업에서 별로 중요하지 않게 생각했기 때문이다. (하지만 이것은 이 책을 읽기 전에 할 수 있었던 무식한?! 소리였다.

풀스택 테스트라는 개념을 생각해봤을 때, 예전에 유닛테스트 및 통합테스트 관점이 떠올랐는데 데이터 엔지니어가 된 이후에는 딱히 해당 테스트들을 해본 기억이 없기 때문이다. (물론, 데이터 정합성이나 품질 테스트를 해왔고 해당 내용이 풀스택 테스트에 포함되어 있다.)

 

이런 아리까리한 테스트란 개념에 대해 잡아줄 수 있는 레퍼런스로써 이 책은 훌륭하다.

단, 테스트에 깊이가 있는 사람들보다 테스트라는 것에 대해 개념이 잘 서지 않는 분들께 도움이 될 것이다. 

 

이책의 풀스택 테스트에서 풀스택이란 우리가 생각하는 프론트엔드 + 백엔드를 말하는 것이 아닌 UI, 서비스, 데이터베이스 등 애플리케이션에 포함된 각 계층을 의미한다. 각 계층과 계층을 아우르는 테스트를 풀스택 테스트라고 하고 말이다. 

 

테스트 관점 별로 소개했을 때 크게 다섯 가지로 소개가 되어 있다.

첫째, 구성요소. 각 관점 별 어떤 테스트들을 수행할 수 있을지 구성요소에 대해 소개를 한다.

둘째, 전략. 상황 별 기술을 어떻게 적용하는지 방법에 대해 서술한다.

셋째, 실습. 각 기술들을 활용하여 실제 적용하는 예제와 같은 느낌이다.

넷째, 추가 테스트 도구. 언급된 기술들을 제외하고도 고려해볼 수 있는 추가 테스트 도구를 다룬다.

다섯째, 인사이트. 필자의 경험과 지식을 바탕으로 각 기술과 관련된 인사이트를 공유해준다. 

 

이런 내용들을 토대로 테스트를 하는 다양한 관점을 다루고 어떻게 활용할 수 있을지 생각하게 만들어주는 책이다. 

(나에게는 이색적인 도구가 있어 추후 기회가 된다면 사용해볼 예정이다. )

단순 소프트웨어 엔지니어 뿐만 아니라 여러 분야에 계신 분들도 읽어보면 여러 관점에서 품질을 제고하는데 도움이 될 것으로 생각한다. 

 

    "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


근래 테스트에 대해 잘 알아야겠다는 생각을 하고 있습니다. 잘 갖춰진 테스트 체계는 개발 조직에 학습 기회를 제공하는 피드백을 제공하게 되는데요. 적절한 피드백을 받는 조직에서 일하는 것만큼, 개발자의 자기 계발에 중요한 요소가 없다고 이해하게 되었기 때문입니다.

그 배경에는 작년 말에 읽었던 <디지털 트랜스포메이션 엔진>이 한몫을 했습니다. 기업가 정신이나 인수 합병과 같은 기업 행위 보다, 기업의 수익률을 높이는 요소는 "적절한 기술"의 사용이라고 했기 때문인데요. 이는 "고성과" 기술 조직의 뒷받침이 있어야 가능한 일입니다.

다시 말해, 고성과 기술 조직이 회사의 사활을 가를 수 있는 거죠. 고성과 조직은 고객의 요구사항이 빠르게 서비스로 반영되고, 그 과정이 대단히 안정적이며, 과정을 거친 다음 나오는 피드백이 조직의 학습에 도움이 되는 조직입니다. 여기에 지속적인 통합, 지속적인 배포 등의 기술과 함께 적절한 테스트 기법이 상당히 중요한 위치를 차지하고 있습니다. 그러니 테스트에 대해 관심을 가질만하죠.

우리가 가지고 있는 선입견에서 '테스트'는 제품을 만들어서 최종 출시 전 승인을 받는 정도의 역할을 하는 것입니다. 하지만 그건 애자일 방식의 테스트가 아닙니다. 테스트 주도 개발(TDD: Test driven development) 개념에서 볼 때 테스트는 선행으로 시작해야 하거든요. 여기서 문제가 발생합니다. 애자일이 왜 필요한지 이해하기 전, 무작정 테스트를 앞으로 보내는 게 맞는다는 강요를 받게 되면, 정말 테스트만 앞으로 보내려고 노력하다가 포기하게 됩니다. 테스트를 앞으로 보내는 건, 개발자 입장에서는 다른 방식의 사고로 개발을 하는 것을 의미하지만 개발 프로세스의 입장에서는 그만큼 자동화 기회를 얻겠다는 의미가 됩니다. 되도록 많은 테스트를 확보해야 코드를 유지 보수하는 과정에서 시스템이 안정적으로 변화하게 될 것이기 때문입니다.

반드시 필요하지만, 우리의 지식과 경험이 거부하는 상황이라 표현하면 될 것 같습니다. 그럼, 서로의 이해를 돕기 위해서, 전통적인 테스트 방법과 애자일 테스트 방법에 대한 적절한 비교를 통해서 고성과 조직이 어떤 방식으로 지속적인 학습을 도모하는지 이해하는 과정이 필요할 것 같습니다. 그게 이해된다면, 그다음 필요한 건, 우리가 서비스를 운용하기 위해 필요한 테스트들을 분야별로 나누고, 우리가 이해한 대로 기존의 테스트 프로세스를 바꾸는 작업이 필요하게 될 것 같은데요. <풀 스택 테스트>는 그 부분에서 필요한 책인 것 같습니다. 저자는 테스트를 분야로 나누고 각 분야 테스트가 어떤 의미를 지니는지 독자를 이해시킨 다음 관련 코드로 그 이해의 깊이를 깊게 해줄 설명을 보태는 방식으로 책의 내용을 꾸리고 있습니다.

그래서, "풀스택"이라는 용어보다는 모든 분야 서비스를 잘 설명한다는 다른 용어를 찾아서 책의 제목을 삼았으면 어떨까 하는 생각도 해보게 되더군요. "풀스택"이라고 하면 왠지 프런트엔드, 백엔드를 아우르는 테스트 정도로 이해되기 때문이죠.

회사에서 특정 기술을 도입하거나, 또는 우리 회사만의 독특한 기술을 문서화할 때 필요한 건, 특정 기술을 사용하는 샘플 코드 보다, 그 기술이 왜 세상 밖으로 나오게 되었는지, 그리고 그 기술은 어떤 이론적인 배경을 가지고 만들어졌는지 설명하는 내용입니다. 기술 블로그나 회사 내 문서를 볼 때마다 저는 이 부분의 결핍을 느꼈는데요. 이 책을 읽으면서, 이 책의 설명 방식이 하나의 샘플이 되면 좋겠다는 생각을 했습니다. 앞에서 말씀드린 것처럼 이 책은 왜 그게 필요한지를 먼저 설명하고 코드를 보여주는 방식으로 구성되어 있기 때문입니다.

우리가 복잡한 일을 해야 할 때 가장 중요한 준비가 일의 목록을 정하는 것입니다. 뭘 해야할지 먼저 정리해 둬야 막상 일을 하게 될 때 놓치고 하지 않는 불상사가 일어나지 않기 때문이죠. 문제는 목록을 작성하는게 그리 만만치 않다는 것입니다. 저는 이런 경우에 필요한 책이 <풀스택 테스트>와 같은 책이 아닐까 싶습니다. 읽어보시면 아시겠지만, 필요한 테스트를 설명하는 과정에서 그 테스트에 어떤 개념과 일이 필요한지 목록 정리를 잘해주는 부분들이 많이 보이거든요.

아참, "시각 테스트"에 대해서 설명하는 부분은 흥미로웠습니다. 로버트 C 마틴은 <소프트웨어 장인 정신 이야기>에서 GUI는 테스트하지 말라"고 직접 이야기 하고 있는데요. 이 책에서는 "시각 테스트"라는 장을 따로 나눠서 설명하고 있기 때문입니다. 하지만 어떤 면에서 기조가 비슷하다고 생각하게 되었습니다.

"따라서 시각적 테스트의 경우에는 명확하게 관련된 사용자 스토리가 있을 때만 적용해야 한다"라고 199페이지에 못박고 있기 때문입니다. 로버트 C 마틴도 GUI를 위한 유닛테스트는 필요없다고 설명하지만 화면을 그리는 프리젠테이션 컴포넌트를 테스트하지 말라는 것이지 여기에 '그릴' 데이터를 주입해주는 프리젠터에 경우에는 유닛테스트를 추가해서 TDD방식으로 구현하라고 설명하고 있습니다. 그렇다면 테스트를 마무리하는 시점에서 "사용자 스토리"가 있는 경우에는 "인수"를 위해 테스트를 추가할 필요가 생길 것 같습니다.

이 책은 한번 보고 끝나는 것보다 관련 업무를 할 때 다시 들춰보며 "목록" 확인을 하는 용도로 사용하면 꽤 유용하겠다는 생각을 했습니다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

개발자가 아무리 테스트 해도 애초에 개발자가 잘못 만들었거나, 사용자가 어찌저찌 잘못건들여서 발생하거나, 따로 만들 땐 괜찮다가도 협업 중 발생하거나, 브라우저에 지원되는 API 차이거나, 개발 환경과 실제 배포 환경 차이 등 다양한 사유로 이슈들이 생깁니다. 

그렇다 보니 테스트를 좀 더 꼼꼼하게 하면 했지 절대 빠질 수 없는 과정 중 하나라고 생각합니다.

항상 테스트를 하게 되지만 꼭 놓치는 부분들이 발생했습니다.

이 책을 보고 지금까지의 나는 막무가내로 테스트를 했다는 것을 깨달았습니다.

테스트에도 전략이 필요하고, 관련 도구를 잘 활용하는 방법을 설명합니다.

또한 모든 과정에 필요한 테스트를 순서에 따라 설명하는 것이 아닌 프론트, 보안, 자동화 등 관련 테스트 방법, 분야 등에 맞게 챕터별로 구분되어 있습니다. 읽다 보면 테스트하는 이유를 납득하게 됩니다.

실무에서 '굳이 이런 것 까지 해야 하는걸까?' 하는 의문이 생기거나, 체계적인 테스트가 필요하다면 필히 이 책을 보시길 추천드립니다.

 

"한빛미디어 <나는 리뷰어다활동을 위해서 책을 제공받아 작성된 서평입니다."

테스트를 처음 접하는 사람들에게 어떤 시점, 어떤 유형의 테스트를 수행해야 하는지 도움이 된다.

테스트 전략은 변하지 않고 오래 간다.

 

 

이 책은 테스트를 11가지로 종류를 나열하고, 정의와 테스트 방법을 설명하고 있다.

각각 어떤 시선에서 테스트를 해야하는지, 테스트 방법이 이렇게 많았는지를 꺠닫게 해주었다.

특히 QA 분이 자동화 기능 테스트를 한다고 했을 때 무슨 말일까 싶었는데(회사 마다 다를 수 있겠지만)

java로 Junit 테스트 코드를 작성하는 내용이 포함된 내용을 보고는 회사에서 코드를 짜면 테스트 코드를 짜냐고 고민했던 나의 업무랑 비슷하구나를 꺠달았다.

 

이 책은 간단하게 웹 개발을 하고있는 개발자와 QA 분들이 보기에 테스트 종류 별 개념과 목표를 정리해줘서 도움이 될 것으로 보인다. 

 

 

웹 개발자로 일하고 있는 나는 이 책에 들어있기를 바랬던 테스트 설명은

1) 테스트 코드의 작성

2) 부하테스트 하는 방법

3) 피들러같은 걸 어떻게 사용하는지 였다.

 

1)번과 2)번은 간단하게 설명이 되어있고

3)번은 없었다. 하지만 프론트왜 백단에서 부하 테스트를 하는 어플리케이션은 설명이 되어있어서 이런 게 있구나를 알게 되어 좋았다.

4444.jpeg

 

 

서비스를 개발하다 보면 가장 중요한 부분이 테스트이지 않을까 싶다. 

요건대로 기능이 제대로 작동하고, 예외 케이스 발생해서 오류가 발생하는지 다양한 케이스가 존재하기 때문이다.

 

물론 서비스를 런칭하고 나서도 마찬가지다. 

일부 기능을 수정했는데, 수정한 기능 때문에 기존에 잘 동작하던 기능이 제대로 동작하지 않는 경우도 있기 때문이다.

 

그렇기에 서비스를 개발할 때, 테스트가 가장 중요한 부분인데 이것을 일정에 쫒겨 놓치는 경우가 많다.

그래서 일련의 테스트를 자동화해서 서비스의 품질을 높이는 것이 개발자의 또 하나의 미션이지 않을까 싶다.

 

책 이름에서 알수 있듯이, 풀스택이다. 한쪽의 테스트만 잘 수행됐다고 제대로 동작이 안되는 것처럼 백엔드, 프론트

모두 테스트가 통과되어야 정상적인 서비스를 제공할 수 있다고 판단할 수 있다.

 

테스트도 아래와 같이 여러 테스트가 있다.

수동 탐색적, 자동화된 기능, 지속적, 데이터, 시각적, 보안, 성능 , 접근성, 교차 기능 요구 사항, 모바일 테스트 등 

이런 여러가지 테스트가 있다는 것도 책을 읽으면서 알 수 있었습니다.

 

다만 여러가지를 다루다 보니 깊게 배우고 싶으신 분은 조금 아쉬운 분도 계실 것 같지만 

이 책의 가장 큰 장점은 웹 및 모바일 애플리케이션 테스트에 필요한 모든 기술을 다루는 종합적인 가이드라는 것입니다.

테스트의 기본 개념부터 다양한 테스트 기술, 실무적인 테스트 접근법, 테스트 도구 활용 방법까지 폭넓게 다루고 있습니다. 

따라서, 웹 및 모바일 애플리케이션 테스트에 대한 기초 지식을 쌓고 싶은 분이나 다양한 테스트 기술을 배우고 싶은 분에게 

유용한 책이라 생각됩니다.

 

품질 좋은 서비스를 제공하기 위해서는 그에 준하는 테스트가 뒷받침 되어야 된다고 생각합니다.

아직도 테스트에 목마르신 분들은 한 번 읽어보시라고 추천 드립니다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

초중급자에게 맞는 책이다.

왜냐하면 깊이 있는 내용으로 구성된 것이 아닌 여러 도구와 테스트 방법론에 대하여 개략적으로 설명하고 있기 때문이다.

그래서 가볍게 한번 읽어볼 만하다.

테스트 정말 중요하다.

프로그래밍의 처음과 끝은 테스트라고 해도 과언이 아닐 만큼 테스트에 대하여 큰 비중을 두고 있는 현실이다.

오죽하면 테스트를 전문적으로 하는 사업과 업체들이 생겨났을까?

테스트를 하면 할수록 자신이 맡은 모듈 그리고 더 나아가 전체적으로 프로그램의 품질이 올라간다.

그래서 예전과 다르게 트렌디하게 개발한다고 하면-새 자일, MSA-테스트 기간을 개발 기간과 거의 동일하게 5:5로 맞춘다.

기획, 분석, 설계, 디자인 모두 끝낸 6개월짜리 프로젝트라면 개발 3개월, 테스트 3개월 이렇게 나누고 있다.

혹여나 생각하기에 아니 테스트 기간이 그렇게 길어도 돼? 낭비 아냐? 개꿀임?

...이라고 생각할 수도 있다.

하지만 내가 말했듯이 테스트를 좀 더 집요하고 징그럽게 하면 할수록 프로그램의 품질은 올라간다.

그것만은 확실히 보증할 수 있다. 자신이 만든 창작물(모듈, 프로그램)의 결함과 에러, 이슈 건들에 대하여 부끄러워하지 않아야 하고, 넓은 아량으로 그대로 다 받아들여야 한다.

테스트를 빨리하고 오래 할수록 프로그램의 품질은 확실히 올라간다.

이 책은 그 중요하고 중요한 테스트에 대하여 상상하지도 못하는 여러 가지 방법론과 툴, 팁을 알려준다.

흔히 자바 개발자라면 테스트 도구에 대하여 JUnit만 알고 있는 개발자가 대부분이겠다.

(JUnit을 알고, 실제로도 한번 assert 해본 것만으로도 대단...)

또는,

debugger로 서버를 올려서 브레이크 포인트를 걸거나.

system.out.println을 찍거나.

logger.info를 찍거나...

프런트엔드에서는

debugger를 입력하거나

크롬 개발자 도구에서 break point를 걸거나 하겠다.

하지만 이 책은 그걸 넘어서 엄청 다양한 테스트 방법과 도구를 알려준다.

모바일 테스트

수동 탐색적 테스트

자동화된 기능 테스트

지속적 테스트(CI/CD)

데이터 테스트

CFR 테스트

시각적 테스트

보안 테스트

성능 테스트

접근성 테스트

이렇게 많은 방법과 기술이 있다니!!!

내 실력과 시야, 견문이 한층 더 넓혀지는 느낌이 들었다.

자고로 개발자라면 머릿속에는 새로운 지식이 안 들어있어도 들어는 보고 훑어서라도 가볍게 봐놔야 나중에 머릿속에서 끄집어 내어 검색하여 창작물을 계속 만들 수 있다.

그런 의미에서 이 책은 테스트에 대한 시야를 한층 더 올려주고 넓혀줄 것이다.

소스들이 있어도 직접 구현하지 않아도 되고, 직관적으로 흐름을 따라가며 유추하며 아주 편하고 가볍게 읽어나가기 수월하다.

확실히 이 책을 읽는다면!!!! 개발 실력도 확실히 월등히 늘 것이다. 장담한다.

테스트 도구는 앞으로도 새로운 듣고들 이 나올 것이다.

그리고 진보하고 발전할 것이다.

그리고, 이 책을 통해 학습하는 테스트 전략들은 세월이 지나도 변하지 않는 보석처럼 오래도록 쓰일 것이라 장담한다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서

책을 제공받아 작성된 서평입니다."

20230815_161653.jpg

 

 

이번에 리뷰할 책은 풀스택 테스트 책을 제공받았습니다. 개발을 진행 후에 개발이 잘되었는지 검증하는 것이 매우 중요한 파트입니다.

 

본 책에서는 개발 환경 및 운영계 운용과 배치 처리로 데이터를 효율적으로 처리하는 법을 주로 다루고 있습니다. 더 원활한 개발을 위해서 자동화된 테스트를 실습을 통해 익혀볼 수 있습니다.

 

다양한 언어를 기반으로 사전 요구사항과 어떻게 기본 설정값을 주어야 하는지도 친절하게 코드로 설명해놓았기에 실제 프로젝트 적용에도 수월하다고 생각합니다.

 

 

책을 읽으면서 다양한 풀스택 테스트를 해볼 수 있는 책이였으며, 추후 업무에 적용을 하는데 있어서도 추천드리고 싶은 책입니다.

​​

마지막으로 좋은 책 제공과 기회를 주신 한빛미디어 담당자 분들께 감사 드립니다. 9월에도 내용이 탄탄한 도서를 읽고 빨리 리뷰를 남기고 싶습니다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

한빛미디어 <나는 리뷰어다>활동을 위해서 책을 제공받아 작성된 서평입니다.

장점

1.    풀스택 개발자를 대상으로 테스트에 관한 종합적인 가이드를 제공한다. 애플리케이션의 모든 계층과 전체를 테스트하는 방법을 다루며, 풀스택개발자들이 놓치기 쉬운 부분을 꼼꼼하게 다룸

2.    책은 10가지 풀스택 테스트 기술을 상세히 설명하고각각에 대한 전략을 제시한다. 수동 탐색적 테스트부터 자동화된 기능 테스트, 보안 테스트, 성능 테스트 등 다양한 영역을 다루어 독자는 다양한테스트 기술을 학습하고 실전에서 적용할 수 있다.

3.    책은 인공지능, 머신러닝, 블록체인, 사물인터넷 등의 최신 기술에 대한 테스트에 대해서도 간략하게다룹니다. 독자는 이를 통해 현대적인 개발 트렌드에 대한 이해를 높일 수 있다.

단점

1.    풀스택 테스트는 다양한 영역과 기술을 포괄하는 분야로, 초보자들에게는복잡하고 어려울 수 있다. 이 책은 초보자들에게 테스트에 대한 기본 개념을 설명하고 있지만, 전반적으로 고급 수준의 내용을 다루고 있기 때문에 초보자들은 추가적인 공부와 실습이 필요할 수 있다.

2.    책은 다양한 테스트 기술과 전략을 다루고 있지만, 특정주제에 대해서는 상세한 내용을 다루지 않을 수 있습니다. 예를 들어,인공지능이나 머신러닝과 같은 신기술에 대한 테스트에 대해서는 간략하게 언급하고 있지만, 깊은내용을 제공하지 않는다.

 

후기

 

1.      장에는 다양한 예시와 시각 자료가 포함되어 있어 어려운 개념을 쉽게 이해할 있도록 구성되어 있어 초심자도 테스트에 대한 내용을 폭넓게 이해할 있다. 이책을 통해 프로그램의 품질을 향상시키는 방법과 개발 시야를 확장할 있어 초보자에게는 어려울 수도 있지만 "풀스택테스트" 개발자에게 추천하는 책이다.

 

 

화면 캡처 2023-06-29 112342.png

 

 

풀스택에 관심이 많은 저에게 풀스택 테스트라는 제목은 짧으면서도 충분히 매력적이었습니다. 점차 풀스택 개발자에 대한 수요가 늘고 있는 만큼 풀스택 테스트는 많은 개발자 또는 개발자 지망생에게 꼭 필요한 내용이라고 생각이 들었고, 책을 읽으면서 주변 사람들에게 이 책을 추천해 주고 싶은 마음이 더 많이 들었습니다. 

 

풀스택 테스트는 '전략, 실무 접근법, 도구, 저자의 노하우까지 모두 담은 테스트 바이블'이라는 소개에 맞게 이론 설명, 전략 탐색, 실습 및 저자의 꿀팁까지 모두 제공되는 책입니다. 어려울 수 있는 내용을 다양한 예시와 시각 자료를 사용하여 쉽고 재미있게 잘 풀어내 개발을 어느 정도 아는 초심자들도 어렵지 않게 이해할 수 있을 것 같습니다. 


웹 개발을 배우고 있는 사람으로서 풀스택 테스트를 통해 개발의 큰 그림을 볼 수 있었고, 개발을 공부하거나 개발하면서 놓칠 수 있는 부분을 꼼꼼히 다루어 주어 많은 도움이 되었습니다. 

 

풀스택 테스트란 사용자 관점에서 품질을 테스트하기 위해 모든 요소를 테스트하는 것으로, 애플리케이션이 원하는 대로 작동하는지 검증하기 위한 것입니다. 마이크로 측면과 매크로 측면에서 애플리케이션 전체의 품질을 고려할 수 있으며, 시각적으로는 아래처럼 표현할 수 있습니다. 


풀스택 테스트


풀스택 테스트와 개발은 뗄 수 없는 관계입니다. 테스트는 개발과 병행해야 하며 피드백을 빠르게 얻기 위해 전달 주기 내에 수행해야 합니다.


이 책에서는 시프트 레프트 테스트라는 개념을 언급하는데,  초기단계부터 테스트 수행하는 것으로 작업마다 품질 검사를 반복하여 초기에 결함을 발견하고 다양한 품질을 탐색하게 하여 좋은 소프트웨어를 만들도록 하는 것을 의미합니다. 

 

이 책은 코딩을 처음 접하거나 공부한 지 얼마 되지 않은 사람을 위한 책은 아닙니다. 책에는 소프트웨어 테스트를 처음 접하는 사람이나 테스트 지식을 넓히고 싶은 사람이라고 써 있지만, 풀스택이라는 이름에 맞게 개발을 서비스하는 업무 또는 프로젝트를 해 본 사람에게 좋지 않을까 싶습니다. 넓게는 개발을 배우고 있는 사람에게도 좋을 것 같습니다.


이 책의 실습에서 사용하는 개발 언어는 자바 또는 자바 스크립트이므로 자바나 자바 스크립트의 기본적인 문법은 알고 있어야 합니다. 뿐만 아니라 개발 프로세스를 어느 정도 알고 있어야 합니다. 적어도 애자일이나 폭포수 방법론 등은 이해해야 합니다.  

 

이 책은 웹 또는 앱에서 사용할 수 있는 10가지 테스트 기술을 상세하게 소개합니다. 


10가지 풀스택 테스트


1. 수동 탐색적 테스트

     다양한 시나리오에서 애플리케이션의 작동을 탐색하고 이해하는 활동으로, 개인의 분석력과 관찰력을 통해 모든 관점을 종합하고 새로운 사용자 흐름과 버그를 발견할 수 있습니다.

2. 자동화된 기능 테스트

    빠른 피드백을 얻기 위해 도구를 통해 애플리케이션의 작동을 검증하는 것으로, 수동 탐색적 테스트를 수행하여 새로운 테스트 케이스를 찾고 회귀 테스트에 자동화하는 것이 효과적입니다. 

3. 지속적 테스트(CT)

   애플리케이션 변경 시 수동 및 자동 테스트를 통해 품질을 검증하고 품질이 저하된 경우 팀에 알리는 프로세스로서 지속적으로 빠르게 피드백을 받을 수 있또록 CT 프로세스를 설계해야 합니다. 

4. 데이터 테스트

    온라인 애플리케이션의 핵심은 데이터이고 결함 발생 확률이 매우 높기 때문에 데이터 테스트는 반드시 수행해야 합니다.  

5. 시각적 테스트

    애플리케이션이 디자인한대로 보이는지 확인하는 테스트로, 수동 테스트와 자동화된 테스트 모두 수행해야 하며, 적절한 단계에 적용해야 하고 빠르고 안정적인 피드백을 제공할 수 있는 도구를 선택해야 합니다. 

6. 보안 테스트

    개발 주기 전반에 적절한 보안 수단을 애플리케이션에 적용해야하며 위협 모델링 연습을 팀 전체가 자주 수행해야 합니다. 가장 중요한 것은 보안을 습관화하는 것입니다. 

7. 성능 테스트

    소프트웨어 제공 주기부터 지속적으로 KPI를 측정하여 성능 문제를 미리 감지하고 해결해야 합니다. 

8. 접근성 테스트

    웹 접근성 기능은 점차 중요해지고 있습니다. 접근성 생태계를 통해 도구와 기술을 얻을 수 있지만 접근성을 제공하기 위해 변경이 많이 필요할 수 있으므로 개발 주기 초기 단계에서 수행하는 것이 좋습니다. 

9. 교차 기능 요구 사항 테스트

    교차 기능 요구 사항(CFR)은 애플리케이션의 실행 및 진화 품질을 정의하며 폭넓은 애플리케이션 기능에 적용됩니다. 좋은 품질의 소프트웨어를 제공할 뿐 아니라 진화적 아키텍처를 구축하는데 도움이 됩니다.  

10. 모바일 테스트

    모바일 테스트는 웹 테스트와 다르기 때문에 전체적인 테스트를 통합해 풀스택으로 수행해야 합니다. 개발 초기에 앱의 특성을 고려해 계획해야 합니다. 


이 책의 마지막 부분에서는 인공지능과 머신러닝, 블록체인, 사물인터넷, 증강현실과 가상현실 등의 신기술 테스트까지 간략하게 소개해 주고 있습니다.  

 

이 책의 각 장은 1) 구성 요소 2) 전략 3) 실습 4) 추가 테스트 도구 5) 저자의 인사이트로 구성되어 있어 테스트 전반에 대한 모든 내용을 폭넓게 이해할 수 있습니다. 놓칠 수 있는 부분까지 상세히 다루고 각 부분을 꼼꼼히 설명하고 있습니다. 용어의 경우 박스 형태로 간단하게 개념을 설명해 주기도 합니다. 


가장 좋았던 점은 다양한 예시를 들어 어려울 수 있는 내용을 쉽게 설명하고 있다는 점입니다. 해당 테스트가 왜 필요한지와 어떤 문제가 발생할 수 있는지를 잘 풀어내고 있습니다.


보안이 중요한 이유를 이미지로 표현하고 있다.

 

또한 시각적 자료를 통해 글로 제시된 내용을 한 눈에 볼 수 있도록 도식화하여 각 프로세스나 개념을 더 이해하기 쉬웠습니다. 



테스트 전략을 통해 각 테스트를 각 단계에 어떻게 적용할지를 설명하는 부분도 좋았습니다. 전략을 하나씩 적용해 가면서 테스트를 해봄으로써 애플리케이션 품질 향상에 큰 도움이 될 것 같습니다. 


테스트 전략


실습 부분에서는 유용한 툴을 소개하고 툴 사용 방법을 그림과 코드를 통해 상세하게 설명하고 있습니다. 처음 접하는 툴이 많아 배워야 할 부분은 많았지만 개발할 때 각 툴을 모두 사용하면 좋을 것 같습니다. 


실습 코드 제공

 


전체적으로 상세한 설명과 시각 자료가 많아서 쉽게 읽을 수 있었고, 내용을 이해하는 데에도 어려움이 없었습니다. 이 책에서 다루는 각각의 테스트를 하나씩 애플리케이션 개발에 적용한다면 품질 향상에 큰 도움이 될 것 같습니다. 이번에는 전체 내용을 훓어 보았지만 각 내용을 모두 숙지하고 적용해 볼 때까지 여러 번 읽을 예정입니다.    

20230625_182317 (2).jpg

 

소프트웨어 개발 테스트를 위한 완벽 가이드 북이 책은 크게 10가지의 S/W 테스트에 대해서 다루고 있습니다. 

 

20230619_021714 (2).jpg

 

 

 

응용 프로그램부터 모바일 앱 그리고 일반 웹사이트까지 효율적으로 품질 테스트를 수행하기 위한 방법론에 대해 설명하고 있습니다.각 테스트 분야에서는 테스트의 개념과 전략 그리고 이 테스트를 자동화할 수 있는 도구들에 대해서 정리가 잘 되어 있습니다. 

 

 우리가 보통 수행하는 수동적 테스트는 테스트 시나리오와 체크 리스트를 작성해서 고객의 요구사항대로 소프트웨어가 동작하는지 살펴보는 1차원적인 방법이지만여기서 더 나아가 수동 탐색적 테스트, 자동화된 테스트 그리고 지속적 테스트 등의 다양한 테스트 방법론과 접근 방법에 대해서 배울 수 있습니다. 

 

 좀 더 구체적인 테스트 분야로는 데이터 테스트, 시각적 테스트, 보안 테스트, 성능 테스트, 접근성 테스트, 교차 기능 요구 사항 테스트, 모바일 테스트 등에 대해서 설명되어 있습니다.(테스트 제목만 봐도 어떤 분야의 테스트 항목을 다루는지 바로 알 수 있습니다.) 

 

 이 책에서 정리한 10가지의 풀스택 테스트는 다소 이론적인 설명이 많지만, 소프트웨어를 개발하거나 품질을 관리하는 대부분의 사람들이 꼭 알아야 하는 내용들로 채워져 있으니, 테스트 체크리스트를 작성할 때 참고하면 도움이 될 것입니다. 

 

--한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

"한빛미디어 <나는 리뷰어다>활동을 위해서 책을 제공받아 작성된 서평입니다."

 

IMG_1371 중간.png

 

 

이 책은 테스트의 중요성에 대해서 ‘이 책에 대하여’에 필자의 경험으로

‘테스트 전략을 잘 구현한 팀은 좋은 품질의 소프트웨어를 제공하는 데 성공했고 그렇지 않은 팀은 실패했다.’고 기술하였다.

나는 최근 이 말에 매우 많은 공감을 하고 있다.

 

IMG_1372 중간.png

 

 

개발자로서 개발을 하다 보면 테스트의 중요성을 매우 다양한 곳에서 다양한 방법으로 느끼게 된다.

 

그러나 스타트업 중소기업 등에서는 현실상 생산성이 없다는 이유로 QA를 두고 제대로 된 테스트를 하는 것이 어려운 것은 현실이다.

그렇기 때문에 개발 단계에서의 단위 테스트 와 형식적인 테스트로 끝나는 경우가 많다.

 

필자는 10가지 풀스택 테스트를 분류하여 테스트 방법을 소개하고 있다.

1 . 수동 탐색적 테스트, 2. 자동화된 기능 테스트, 3. 지속적 테스트, 4. 데이터 테스트, 5. 시각적 테스트, 6. 보안 테스트, 7. 성능 테스트, 8. 접근성 테스트, 9. 교차 기능 요구 사항 테스트, 10. 모바일 테스트

 

IMG_1376 중간.png

 

 

각각의 테스트는 기능적 또는 분석적 측면에서 나누어 놓은 것일 뿐 이 분류된 테스트가 자신이 개발하는 시스템에 필요하다면 모든 테스트를 다 진행하여야 한다.

 

다시 한번 말하지만 이 책에서는 테스트의 필요성에 대해 매우 잘  설명하고 있다고 생각한다. 

 

이 책은 개발자 또는 QA 테스터 이외에도 소프트웨어로 서비스를 하는 모든 분야의 사람들이 읽어 보면 좋을 듯하다.

특히나 소프트웨어의 아웃풋 만큼이나 소프트웨어의 품질의 중요성을 알아야 하는 기획 및 운영진 등에서도 알아야 한다고 생각한다.

 

테스트가 무엇인지, 어떻게 해야 하는지, 좋은 테스트 시스템을 갖추기 위해 어떤 것을 고려해야 하는지를 다루는 책이다.

 

우선 테스트를 크게 10가지로 분류하고 있다.

  1. 수동 탐색적 테스트
  2. 자동화된 기능 테스트
  3. 지속적 테스트
  4. 데이터 테스트
  5. 시각적 테스트
  6. 보안 테스트
  7. 성능 테스트
  8. 접근성 테스트
  9. 교차 기능 요구 사항 테스트
  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정보등이 서버에 저장되기 때문에 기업 보안정책 검토 필요

· https://any-api.com/ (공개된 api 사이트)

· wiremock : https://wiremock.org/start

 

WireMock - flexible, open source API mocking

WireMock is a tool for building mock APIs. API mocking enables you build stable, predictable development environments when the APIs you depend on are unreliable or don’t exist.

wiremock.org

다른 구성요소의 작동을 모방하는 스텁을 만들고 변경하기 위한 도구
wiremock에 대해서 실행해본 화면 "여기서는 stub을 잘 만드는것이 핵심으로 보입니다"

 

 

<UI탐색도구>
· 다양한 브라우저를 테스트 할수 있는 클라우드 테스트 플랫폼

보통 상황에 따라서 PC에 설치되지 않는 브라우저를 테스트 하는 경우가 종종 있습니다. 클라우드에서 비용을 지불해야 하지만 이런 사이트를 알고 있으면 좋은것 같습니다. (너무 비슷한 사이트들이 많아서 책에서 언급된 플랫폼 정보는 아래와 같습니다)
1) https://www.browserstack.com/

2) https://saucelabs.com/

· 버그마그넷
크롬, 파이어폭스에서 플러그인방식으로 사용
https://chrome.google.com/webstore/detail/bug-magnet/efhedldbjahpgjcneebmbolkalbhckfi

 

Bug Magnet

Right-click context menu to help with exploratory testing

chrome.google.com

 

· 크롬 개발자 도구

가장 많이 사용하고, 다양한 기능을 제공한다 책에 소개된 내용중 평소에 알지 못한 기능을 기록한다.
1) 느린 네트워크 환경 테스트

 

 

 

2) 서비스 중단시 작동
특정 요청을 block처리를 해서, 서비스 중단 시나리오를 테스트 할수 있다.

 

 

 

 

 

■ 2. 자동화된 기능 테스트

마이크로 테스트, 매크로 테스트의 개념을 알아야 한다.

· 유닛 테스트의 백앤드 프레임워크

JUnit, TestNG, NUnit

· 유닛 테스트의 프런트앤드 프레임워크
Jest, Mocha, Jasmine

· 계약테스트 활용

Postman, pact (https://docs.pact.io/)

· 서비스 테스트 활용

postman, Rest Assured(https://rest-assured.io/), 가레테(https://github.com/karatelabs/karate)

· UI기능 테스트

셀레니움(https://www.selenium.dev/), Cypress (https://www.cypress.io/)

 

 

 

· 커버리지를 관리하기 위한 방법

TestRail(https://www.testrail.com/), Jira, 엑셀 등

· 참고) JetBrain에서 테스트를 위한 IDE가 있어서 소개합니다. (https://www.jetbrains.com/aqua/)

 

 

· 행동 주도 개발 (BDD)
 테스트 할때 많이 들어보았을 Given, When, Then 구조를 가진 사용자 스토리 작성하는 기능 제공 (https://cucumber.io/

· Cypress에서도 테스트 케이스를 생성해서, Junit처럼 테스트 결과를 확인할수 있습니다.

 

 

<서비스 테스트>

· Rest Assured에서는 restapi를 자동화 테스트를 수행한다. Junit, TestNG모두 사용할수 있다.

<유닛 테스트>

· java : JUnit, TestNG, .net : NUnit, javascript : Jest, Mocha, 루비 : RSpec

 

■ 3. 지속적 테스트

· 많이 사용하는 jenkins를 통해서 구성한다. 

· 여기에 다양한 플러그인을 통해서 ci/cd를 구성한다.

 

■ 4. 데이터 테스트

· jdbc를 통한 테스트 

· Deequ: 아마존에서 개발한 도구로 스파크 위에 구축된다. 대규모 배치 처리에 사용된다.

 

■ 5. 시작적 테스트

화면에서 시각적으로 몇px이 다르게 보여지는 경우에 대해서 테스트 하는 방법등 시작적인 부분에 대해서 테스트를 수행한다.

· Phantomjs(https://phantomjs.org/), BackstopJS(https://github.com/garris/BackstopJS)은 오픈소스이고, Applitools Eyes(https://applitools.com/platform/eyes/),Functionize(https://www.functionize.com/) 는 AI기반 유료 도구이다.

· 프런트쪽 유닛테스트는 Jest , react testing library등을 이용한다.

· 다시한번 오픈소스에 대해서 정리를 하면, CyPress, Galen(http://galenframework.com/), backstopjs등이 있고, 유료도구에는 applitools eyes, percy (https://percy.io/) 등이 있다.

 

 

■ 6. 보안 테스트

· 보안에 대해서는 범위도 넓고, 다양한 기법들이 있습니다.
1) SAST : 정적인 보안 테스트
2) SCA : 소프트웨어 구성 분석
3) 기능적 보안 테스트 자동화

4) 이미지 스캔
5) DAST : 동적인 보안 테스트

 

 

· OWASP Dependency-check는 수비게 설치를 해서 소스의 취약점을 검사해줍니다.

ex) mac에서는 brew을 통해서 쉽게 설치가 가능합니다.

· 스닉은 InlliJ에서도 쉽게 구성할수 있어서 SCA, SAST모두 지원해서 활용을 잘 해보면 좋을것 같습니다.

 

 

 

 

■ 7. 성능 테스트

<서버>

· JMeter를 통한 성능테스트

· 개틀링(https://gatling.io/) : 부하테스트, 스칼라 기반 script작성

· 아파치 벤치마크 : 보통 ab tool이라로 한다.

<프런트>

· WebpageTest (https://www.webpagetest.org/) : 무료 온라인 도구

· 라이트 하우스 : 크롬의 일부 기능 포함됨

 

 

 

■ 8. 접근성 테스트

· 접근성 테스트 전략

 

 

 

■ 10. 모바일 테스트

· Appium (https://appium.io/): "Appium은 웹드라이버를 사용하여 Android 또는 iOS에서 스크립트를 실행하고 네이티브 애플리케이션, 모바일 웹 애플리케이션 및 하이브리드 애플리케이션을 테스트하기 위한 오픈 소스 자동화 도구입니다" 크로스 플랫폼을 지원하는 자동화 도구로 애플에서 제공하는 iOS용 XCUITest와 구글에서 제공하는 안드로이드용 UiAutomator와 같은 OS별 번들링하여서 사용한다.

· 성능 테스트 도구에는 몽키(가오스 엔지니어링), 보안테스트 도구에는 MosSF, Qark가 있다.

 

 

책에서 언급하는 다양한 개념과 기법, 이것을 활용한 다양한 tool중에 평소에 알고 있었던 부분이 있지만, 새로운 tool 및 사용법을 소개받고 파악한 내용이 많아서, 앞으로도 필요한 테스트 환경 및 범위를 선정해서 활용을 잘하면 매우 큰 도움이 되는 책이라고 생각합니다.

테스트를 해도해도 끝이없는 영역인 것 같다. 개발자로써 프로그램을 개발하면 테스트 단계를 거치는데, 항상 테스트 단계에서 제대로 테스트가 이루어지지않아 나중에 가면 어디선가 터지고만다. 그렇게 프로그램 개시 후에 오류가 터지고나면

상사님 : "테스트를 잘했어야지"

나 : "분명 테스트 잘 했는데..."

이런 구차한 변명만 늘어놓게된다. 변명을 하지않을 수가 없다. 왜냐하면 "네 다음엔 더 잘하겠습니다 ~" 하기엔 이미 진심으로 테스트를 잘했다고 생각했기 때문에....... 그래서 (늘 마음속으로) 나는 되묻는다.

'어떻게 하는게 잘하는건데요..?'

이런 고민을 하던 찰나에 이 책을 접하게 된 것은 나에겐 행운같은 일이다.

이 책은 개발 프로그램의 품질 검증을 위한 테스트에 대한 방법론을 다루고있다. 테스트를 '잘'하는 것에 대한 막연함이 든다면 이 책은 개발 품질을 위한 테스트 방법론을 총망라하고있다. 그래서 실전 테스트를 할 때 옆에 껴두고 두고두고 보면서 적용하기에도 괜찮은 책인 것 같다.

다루고 있는 테스트 방법으로는

1. 풀스택테스트

2. 수동 탐색적 테스트

3. 자동화된 기능 테스트

4. 지속적 테스트

5. 데이터 테스트

6. 시각적 테스트

7. 보안 테스트

8. 성능 테스트

9. 접근성 테스트

10. 교차 기능 요구 사항 테스트

11. 모바일 테스트

12. 신기술 테스트

에 대해서 다루고있다.

[도서 소개]

전략, 실무 접근법, 도구, 저자의 노하우까지 모두 담은 테스트 바이블


소프트웨어 개발 주기 동안 수행되는 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가지 테스트 기술의 기본 원칙과 전략은 풀 스택 애플리케이션을 위한 테스팅 기법에 대한 입문 수준의 내용을 제공합니다. 깊이와 전문적인 통찰력이 아쉽지만 초보자에게 풀스택 테스트에서 여정을 시작할 수 있는 기반을 제공하기에는 충분합니다. 보다 포괄적이고 고급 지식을 원하는 독자를 위해서는 다음 개정판에서 보완해야 할 수도 있습니다.

 

 "한빛미디어 리뷰어 활동을 위해서 책을 제공받아 작성된 서평입니다."

작년 부터 혼자만의 숙원 사업(?)으로 테스트에 대해 공부해봐야지 다짐했었다. 이런 저런 일로 차일피일 미루다가 더이상 미룰 없어 공부를 시작하였다. 그동안 내가 하던 테스트 코드라고는 RestDoc 위해 JUnit 사용하여 통합 테스트 같은 테스트 코드만 짰다. 아무래도 목적이 RestDoc이다 보니 대부분 api 대한 성공케이스와 아주 가끔의 실패케이스 코드 뿐이었다. 테스트 코드를 짜기 어플리케이션에서 테스트란 뭘까... 뭔데 이렇게 복잡하고 어려울까.... 생각이 많이 들었고, 전체적인 테스트에 대해 알고  책을 선택했다! 풀스택 테스트 책에서 가장 중요한 키워드는 1장에서 부터 언급되는 "시프트 레프트 테스트" 이다. 기존에는 분석 > 설계 > 개발 > 테스트 단계였다면 시프트 레프트 테스트는 초반 부터 품질을 함께 설계/검사 하는 것이다. 이해 관계자들이  부터 함께 테스트를 거치면서 품질은 전체의 책임임을 강조한다. 그리고 책은 챕터를 지나면서 모든 테스트를 10가지 풀스택 테스트로 나누어 설명한다. 챕터마다 처음엔 관련된 테스트의 이론에 대해 설명하고, 테스트를 진행하기 위한 툴에 대해서 설명해준다. 책을 통해 몰랐던 툴에 대해서도 알아갈 있었다. 책을 읽으면서 내가 지금까지 주체적으로 제대로 테스트는 가지 밖에 없었다는 것을 알았다. 아예 없다고 생각했는데 그래도 하나라도 있어서 다행인가,,,? 진짜 책을 읽으면서 어서 자동화 테스트를 공부하고 싶다고 의지 뿜뿜... 다른 테스트도 언젠가 도입해 보고 싶다.

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

SW의 기능테스트가 전부 인줄 알았다

다양한 테스트 방법과 도구를 알려주고 있고 실습까지 내용도 내용이지만 현업에 바로 적용가능하게 도와주는 책이다.

 

십수년 동안 개발자로 업무를 보다가 몇 년 전부터는 SW테스터로 업무가 전환되었다. 

그동안 개발하면서 테스트를 하고 있었다고 생각했지만 #ISTQB #Foundation 자격증취득을 위해 준비하면서 접한 두 권의 책이 전부였던 상태라...사실 테스트를 위한 조직이 처음 만들어진것이라...하하~~대략 난감한 상태.. 그냥 경험을 기반(도메인 지식만)으로 테스트 업무를 해왔다. 그게 다였다. 그러다 찾아온 기회??...^^ 사실 풀스택개발자는 들어 봤는데 #풀스택테스트 라? 생소했다??그리고 책을 받고 목차를 보고, 처음 든 생각.. 정독하였다~ 

 

111.PNG

 

 

책의 첫 장부터 한 글자 한 글자 정성을 들여 천천히 정독했다.1장에선 풀스택테스트가 무엇인지 바로 알려준다 ~^^ 

삽시간에 궁금증이 풀리면서 이 책에 대한 기대감을 더 높여주었다.

 

2장의 수동탐색적 테스트 ~ 11장의 모바일테스트까지 각 테스트에 대한 설명과 테스트 도구 그리고 실습까지 친절하게 나와있다. 이 중 가장 좋았던 부분은 테스트 도구에 대한 언급이다. 너무 필요한 내용이였고 현장에서도 바로 적용해 봄직한..내겐 너무 필요한....감사하다.테스트의 #도구사용법 그리고 테스트의 범위 등 실질적인 도움이 되는 내용이 있어 밑줄까지 쳐가면서 열공 ~~

특히 이부분은 이 책에서 가장 감동을 받았던 부분있다. ^^

 

100% 커버리지를 달성해도 애플리케이션에 버그가 없다고 보장할수 없다. 

 

한 Chapter를 넘길때 마다 여러가지 도구를 실제 업무에 적용해보고 싶다는 생각이 들었다. 

5장.데이터 테스트, 7장. 보안 테스트, 8장. 성능테스트 는 그동안 해보고 싶어도 어떻게 하는지 궁금하지만 귀챦아서, 시간이 없어서, 잘 몰라서 여러가지 핑계를 대며 하지 않았던, 할수 없었던 분야의 테스트 였지만 이제 해보고 싶어졌다. ~^^

마지막 13장 신기술 테스트 소개까지 다 읽고 나니..

 

10가지의 테스트 방법과 도구 그리고 실습이 실제 내 업무에 어느 정도 도움이 될거라는..

 하하 기대와 흥분이 설레게 하는 순간이다.

개인적으로는 SW에 종사하는 모든 이가 읽었으면 좋겠다.경영자도 관리자도 모두 말이다.

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

얼마 전 프로그램 테스트에 대한 글을 봤는데요.

우리나라에는 프로그램 테스트하는 직군의 직업이 많지 않다고 하더라고요.

그러다가 이번에 풀스택 테스트라는 제목으로 10가지 테스트의 기본 원리를 학습할 수 있는 책이 나와서 읽게 되었습니다.

로랜드줄무늬텐렉

오라일리 책 표지에는 이렇게 동물이 나오는데요.

대부분은 멸종 위기에 있는 동물들입니다.

오늘 소개하는 책 Full Stack Testing에 나오는 동물은 로랜드줄무늬텐렉이라고 합니다.

마다가스카르 섬에 살고 있고요.

 

인간에 대한 내성이 있어 멸종 위기 종은 아니라고 하네요.

신기한 것은 암컷은 1년 동안만 번식이 가능하다고 합니다.

그리고 생후 25일부터 번식할 수 있는 동물이라고 해요.

한빛미디어 책이 주는 줄거움은 책 표지에 나오는 동물에 대한 설명글을 읽는 것에서 시작됩니다.

일반적으로 테스트는 성능부터 UI, 계약, 엔트 두 엔드 기능, 유닛 테스트, 접근성 테스트까지 풀스택 테스트에서 포괄하고 있는 내용입니다. 이 책은 포괄적인 내용의 테스트 유형을 다루고 있으며 테스트 과정에서 발상하는 열 가지 문제를 설명하고 있어서 전략과 원칙을 세우는 데 도움이 될 것입니다.

UI 계층부터 데이터베이스까지 각 영역에 필요한 테스트를 매우 상사하게 소개하고 실제로 테스트하는 방법을 낱낱이 살펴본다.

이 책은 거의 모든 소프트웨어 테스트 개념뿐만 아니라 간단한 실습도 소개한다.

프런트엔드와 백엔드 테스트만을 다룰 것이라 생각했는데 성능 테스트, 접근성 테스트, 보안 테스트, 블록체인까지 다양한 테스트를 다룬다. 모든 개발자가 읽어보기를 권하며 특히 데브옵스 엔지니어나 SRE에게 큰 도움이 될 것이다.

이 책의 저자는 현업에서 경험한 지식과 사례를 이 책에 담았습니다.

다양한 유형의 테스트를 소개하고 간단한 실습을 통해 도구를 다루는 방법을 설명합니다.

이제 막 소프트웨어에 입문한 초보자라면 각 장의 개념 소개를 통해 기술에 대한 전반적인 배경지식을 얻어 갈 수 있습니다.

반대로 숙련된 테스트 전문가라면 이 책을 통해 새로운 영역에 관한 인사이트를 얻을 수 있습니다.

저자는 이 책을

테스트를 처음 접하는 사람이 오늘날의 웹 및 모바일 애플리케이션 테스트에 필요한 모든 기술을 초중급자 수준 이상으로 향상시킬 수 있는 종합적인 자료가 되는 것을 목표로 한다고 합니다.

테스트는 애플리케이션이 원하는 대로 작동하는지 검증하는 것이다.

성공적인 테스트를 위해서는 마이크로 수준과 매크로 수준에서 테스트를 수행해야 한다.

클래드의 메서드, 입력 데이터 값, 로그 메시지, 에러 코드 같은 애플리케이션의 마이크로 측면과 기능 테스트, 기능 간 통합, 엔드 투 엔드 워크플로 같은 매크로 측면을 검증해야 한다.

더 나아가 보안, 성능, 접근성, 가용성 등 애플리케이션 전체의 품질을 고려해야 한다.

필자는 이 모든 것을 종합하여 풀스택 테스트라고 부른다.

28쪽

10가지 플스택 테스트

  1. 수동 탐색적 테스트
  2. 자동화된 기능 테스트
  3. 지속적 테스트
  4. 데이터 테스트
  5. 시각적 테스트
  6. 보안 테스트
  7. 성능 테스트
  8. 접근성 테스트
  9. 교차 기능 요구 사항 테스트
  10. 모바일 테스트

챕터 7에서는 보안 테스트로 해커로부터 시스템을 보호하는 방식을 다루고

챕터 9 접근성 테스트에서는 장애가 있는 사용자도 시스템을 쉽게 사용할 수 있도록 하는 방법을 설명해 줍니다.

책을 통해 저자는 오랜 경험에서 얻은 노하우를 전하는데 전문 테스터뿐만 아니라 애플리케이션 개발자 데브옵스 엔지니어같이 테스트와 밀접한 관련이 있는 업무를 담당하는 모든 사람에게 큰 도움이 될 것이라고 소개하고 있다.

 

 

1230624.jpg

 

 

테스트에 대한 관심이 높아지고 있습니다.

 

소프트웨어 회사들은 테스트를 도입하려 합니다.

 

하지만 테스트를 도입하려는 회사들은 어디부터 손대야 할지 어려움을 느낄 수 있습니다.

 

테스트의 도입을 망설이는 회사들도 있는데요.

프로젝트 기간이 늘어날 수 있기 때문입니다.

 

그래도 다들 도입하는 이유는 무엇일까요?

그 이유는 테스트를 통해 유지보수에 발생하는 비용을 줄일 수 있습니다.

 

테스트 도입하는 데 도움이 되는 책을 소개하려 합니다.

 

소개해 드릴 책은 “풀스택 테스트”입니다.

 

10가지 테스트 기술과 신기술 관련 테스트에 대한 이해를 도와줍니다.

 

테스트 전반을 이해하고 올바른 테스트를 할 수 있도록 방향을 잡아줄 것입니다.

 

어떻게 방향을 잡아주는지 같이 살펴보겠습니다.

 

 

2230624.jpg

 

 

◆ 테스트 기술에 대한 전반적인 지식

소프트웨어 회사에서 테스트를 중요하게 생각합니다.

 

테스트 코드 없이는 다음 단계로 넘어가지 않는 회사도 있습니다.

 

초보자도 테스트 기술에 대한 전반적인 배경지식을 익힐 수 있을 것입니다.

 

프로덕트를 개발할 때 자동화 테스트, 지속적 테스트, 보안, 성능, 모바일 등 테스트 분야는 발전하고 있습니다.

 

테스트는 소프트웨어 회사에서 필수 관문이 되었습니다.

 

가장 기초적인 수동 탐색적 테스트부터 시작할 수 있습니다.

 

그 외에도 CFR, 시각적, 접근성, 데이터 테스트에 대한 전략과 실무 접근법을 배울 수 있을 것입니다.

 

 

3230624.jpg

 

 

◆ 테스트가 중요해진 이유

회사에 다니기 전 테스트 경험은 단위테스트나 간단한 테스트만 해볼 것입니다.

 

간단하게 모바일 분야만 보더라도 화면 UI 테스트, 성능 테스트, 보안 테스트도 관심을 가져야 합니다.

 

서비스를 배포하는 데 있어서 사용자에게 신뢰를 얻어야 좋은 서비스로 발전할 수 있습니다.

 

회사에서도 테스트하지 않는다면 당장은 편할지 모르지만, 나중엔 비용은 눈덩이처럼 엄청나게 커지게 될 것입니다.

 

 

4230624.jpg

 

 

끝으로 테스트에 활용할 수 있는 추가 테스트 도구나 저자의 인사이트도 책에 포함되어 있습니다.

 

개념 외에도 테스트 도구 사용법과 다양한 도식으로 쉽게 설명해 줍니다.

 

테스트의 기본 개념부터 테스트의 구성요소, 전략, 실습으로 테스트에 필요한 기술을 접할 수 있습니다.

 

업무에 테스트를 활용하고자 한다면 이 책을 통해 테스트 전반을 익힐 수 있을 것입니다.

 

테스트에 필요한 기술을 익히고 싶은 분들에게 이 책을 추천합니다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

개발분야에 어느 정도 지식이 있으면 읽기 더 쉽겠습니다. 전반적인 내용을 훑어보기 좋아요. 

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 상품명 :
풀스택 테스트
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
풀스택 테스트
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
풀스택 테스트
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 상품1