헤드리스 브라우저와 모카를 활용한 노드로 하는 웹 앱 테스트 자동화
이 책의 총서 (299)
작가정보
저자(글) 페드로 테세이라
저자 페드로 테세이라(Pedro Teixeira)는 풍부한 오픈 소스 경험과 많은 Node.js 모듈을 개발한 프로그래머다. 약 14년 전 소프트웨어 공학과를 졸업 후 페드로는 컨설턴트와 프로그래머 그리고 세계적으로 잘 알려진 Node.js 단체 멤버로서 왕성한 활동을 하고 있다.
서비스(PaaS) 프로바이더로서 Node.js 플랫폼을 주도하는 노데지수(Nodejitsu)에서 페드로는 Node 회사의 공동 설립자 겸 고문 프로그래머다. 그는 유명한 노드 텃 스크린캐스트(Node Tuts screencast)의 저자이자 Node.js를 주제로 한 『Hands-on Node.js』(자체 출판)와 『Professional Node.js』(Wrox 출판)을 쓴 집필자다.
페드로가 10세 때 ZX 스펙트럼 프로그램하는 방법을 아버지께 배운 이후 쉬지 않고 프로그램 실력을 쌓아왔다. 그는 아버지가 설계한 Apple IIc의 프로그램 방법을 독학으로 깨우치고 당대의 PC 세계로 첫 발을 내디뎠다. 대학 시절 페드로는 유닉스와 오픈 소스의 세계에 들어간 이후 프로그램 세계에 푹 빠지게 되었다. 전문 프로그래머로 활동하면서 그는 대기업 통신회사, 은행, 호텔 계열사와 그 밖에 전산 시스템이 필요한 곳을 대상으로 비주얼베이직과 C, C++, 자바, PHP, 루비, 자바스크립트를 이용한 전산 시스템과 제품을 개발했다.
페드로는 초보자 시절부터 Node.js의 열렬한 팬이었고 그 결과 수많은 애플리케이션과, Fugue와 Alfred.js, Carrier, Nock 등 해당 분야에 많이 알려진 모듈을 작성했다.
번역 조효성
역자 조효성은 광운대학교 전자공학과를 졸업하고 동대학원 임베디드 소프트웨어 공학과에서 안드로이드와 블루투스를 전공했다. 현재는 오비고에서 웹 개발자로 활동하고 있는 노드에 관심이 많은 행복 개발자다. 행복한 HMI 웹 앱 개발팀에서 차량용 플랫폼에 올라가는 웹 앱을 개발하면서 많은 경험과 실력을 쌓고 있다. 앞으로 백엔드과 프론트엔드를 아우르는 전문 웹 개발자로 성장하는 것이 목표다.
목차
- 1장 Zombie.js로 시작하기
___소프트웨어와 사용자 인터페이스 테스트의 역사
______테스트 자동화 시대의 시작
______유닛 테스트 vs. 통합 테스트
______Zombie.js의 정의
___서버_측 DOM에 대한 이해
______Zombie.js는 헤드리스(Headless) 브라우저
___요약
2장 웹 앱 작성
___웹 앱 요구사항 정의
___Node.js와 Flatiron 설치
______Node.js 설치
______Flatiron설치와 애플리케이션 작성
___할 일 앱 작성
______데이터베이스 설치
______Node를 통한 CouchDB 접근
______애플리케이션 레이아웃
______프론트엔드 개발
______사용자 등록
______로그인과 세션 관리
______할 일 리스트
___파일 요약
___요약
3장 좀비와 모카 설치
___애플리케이션 매니페스트 변경
___테스트 환경 설정
___요약
4장 모카의 이해
___웹 애플리케이션 테스트 체계화
___후크(Hook) 이전과 이후의 사용
___비동기 후크 사용
______후크가 테스트 그룹과 상호 작용하는 방법
___assertion 모듈 사용
______assertion 메시지 변경
___비동기 테스트 실행
___요약
5장 좀비 브라우저 제어
___브라우저 구동은 언제 준비되는가?
______URL로 웹 페이지 방문할 때의 옵션
___엘리먼트 존재 유무 검사
___폼(form) 데이터 작성
___로그인 폼 페이지 테스트
___할 일 리스트 테스트
______할 일 리스트 페이지 테스트
______할 일 아이템 생성 테스트
______할 일 아이템 제거 테스트
___테스트 절차 종합하기
___요약
6장 사용자 상호작용 테스트
___라디오 버튼 제어
___사용자 상호작용 기능 테스트
___값 선택
___요약
7장 디버깅
___명시 테스트(specific test) 실행
______독립적 테스트 디버깅 출력기능 활성화
___브라우저의 자바스크립트 콘솔 창 활용
___브라우저 상태 값 일괄 출력
___전체 도큐먼트 로그 일괄 출력
___요약
8장 AJAX 테스트
___드래그 앤 드롭(drag-and-drop) 기능 구현
___요약
찾아보기
출판사 서평
★ 요약 ★
노드 텃 비디오 튜토리얼(Node Tuts video tutorial)로 이미 잘 알려진 페드로 테세이라가 집필한 책이다. 이 책에서 독자는 범용 웹 테스트 프레임워크를 지원하는 헤드리스 브라우저인 좀비와 UI 테스트에 적합한 모카를 이용하여 노드 기반의 웹 애플리케이션 UI를 테스트하는 과정에서 소스코드 레벨에서 테스트 시나리오 적용, 이슈 디버깅, 그리고 최종 결과 화면 표시를 손쉽게 따라할 수 있다.
★ 이 책에서 다루는 내용 ★
■ 모카를 이용한 테스트 절차 코드 작성
■ Node.js와 Flatiron.js를 이용한 웹 애플리케이션 작성
■ HTML 도큐먼트를 헤드리스 브라우저 좀비에 로드
■ 좀비를 이용한 사용자 이벤트 발생
■ 애플리케이션 동작 테스트를 위해 DOM에 쿼리 요청
■ 애플리케이션에 복잡한 기능의 이벤트 적용
■ 복합적인 사용자 상호작용과 AJAX 호출 발생과 테스트
■ 좀비 브라우저 상태 값 검사
★ 이 책의 대상 독자 ★
이벤트 기반 프로그래밍 경험이 있는 자바 개발자를 위한 책이다. 예를 들어, 이벤트 콜백 함수 설정과 AJAX 함수를 호출할 수 있는 웹 페이지 컨텍스트에서 자바스크립트를 사용할 때 좀 더 유연한 학습을 경험할 것이다. 실제로 Node.js 사용을 하는 과정에서 얻는 경험은 학습을 부드럽게 만들지만 절대적인 요구사항은 아니다.
★ 이 책의 구성 ★
1장 Zombie.js로 시작하기는 좀비의 동작 방법과 테스트할 수 있는 애플리케이션 타입을 설명한다.
2장 웹 앱 작성은 Node.js와 CouchDB, Flatiron.js를 이용해 간단한 웹 앱을 작성하는 방법을 설명한다.
3장 좀비와 모카 설치는 좀비와 모카를 사용한 웹 애플리케이션을 위한 테스트 환경의 기본 구조 생성 방법을 설명한다.
4장 모카의 이해는 모카를 이용해 비동기식 테스트 생성과 동작 방법을 설명한다.
5장 좀비 브라우저 제어는 좀비를 사용하여 HTML 도큐먼트 로드와 사용자 액션을 처리하는 시뮬레이션 브라우저를 만드는 방법을 설명한다.
6장 사용자 상호작용 테스트는 도큐먼트에서 이벤트 발생시키는 방법과 도큐먼트 제어 결과를 테스트하는 방법을 설명한다.
7장 디버깅은 좀비 브라우저 객체와 다른 기술을 이용하여 애플리케이션 내부 상태를 분석할 수 있는 방법을 설명한다.
8장 AJAX 테스트는 드래그 앤 드롭 기능을 구현하는 방법을 알려준다.
★ 저자 서문 ★
사용자 인터페이스 관련 테스트 자동화는 언제나 프로그램의 성스러운 영역이었다. 오늘날, 좀비(Zombie.js)와 모카(Mocha)를 이용하면 빠른 테스트 생성과 실행은 물론 적은 소스 수정에 대한 테스트까지 가능하다. 애플리케이션 개발을 할 때 코드 작성에 자신감을 높이고 범용 브라우저를 사용해야 하는 횟수를 줄여보자.
『노드로 하는 웹 앱 테스트 자동화』는 웹 애플리케이션을 버그에 강건하도록 유지시키면서 테스트를 자동화할 수 있는 빠르고 온전한 방법을 설명한다. 이 책을 보면 복잡한 사용자 입력 액션을 시뮬레이션하는 방법을 학습하고 애플리케이션의 정상 동작을 검증할 수 있다.
복잡한 사용자 상호작용과 AJAX 기능을 제공하는 Node.js를 이용하여 웹 애플리케이션을 작성할 수 있고, 마지막으로 명령어 창에서 애플리케이션의 테스트 전체를 실행할 수 있다. 프레임워크 역할을 하는 모카와 헤드리스(headless) 브라우저인 좀비를 채택한 애플리케이션을 대상으로 사용자 인터페이스 테스트를 생성할 수 있는데 이는 애플리케이션의 작은 변화를 만들 때마다 빠르게 테스트를 진행할 수 있다.
독자는 모듈 단위로 하나의 복잡한 테스트 절차를 생성해 보고, 간단한 것과 복잡한 사용자 상호작용 기능을 테스트할 수 있다.
★ 옮긴이의 말 ★
노드 플랫폼의 주요 프로그래머로서 Hands-on Node.js와 『Professional Node.js』를 출간한 페드로 테이세이라가 이번에는 노드에서 동작하는 웹 애플리케이션 UI의 테스트를 할 때 기존의 테스트 프레임워크인 PhantomJS와 SlimerJS 등과는 차원이 다른 좀비(ZombieJS)를 이용한 지침서를 내놓았다. 좀비는 경량화된 헤드리스 타입의 웹브라우저 역할을 수행하며 모카(Mocha), 노드와 연결되어 빠르고 자동화된 UI 테스트의 실행을 가능하게 한다.
이 책은 웹 애플리케이션 개발에 서툰 초보자부터 백엔드와 프론트엔드 기술을 섭렵한 개발자에 이르기까지 자신이 개발하거나 참여한 프로젝트의 전체 기능을 자동화된 형태로 테스트를 할 때 유용한 도움을 줄 수 있다. 1장, 2장, 3장을 통해 좀비, 노드, 모카의 기본 지식과 설치 방법이 상세하게 나와있어 숙련된 개발자에게는 지루할 수 있으나 초보 개발자는 이를 발판 삼아 좋은 개발 경험이 될 수 있을 것이다. 또한 테스트를 위한 예제 코드와 결과 내용을 자세히 서술하고 있어, 코드를 실습하는 과정에서 방향을 잃지 않고 끝까지 완성할 수 있도록 가이드를 제시하고 있다.
이 책의 5장과 7장은 웹 애플리케이션의 UI 테스트를 실행하기 위해 웹 앱을 작성하고 기능의 이슈가 있을 때 디버깅할 수 있는 방법과 엘리먼트의 유효성 검사 등 필드에서 일어날 만한 상황을 이해하기 쉬운 형태로 설명하고 있어 개발 경험에 도움이 될 것이다. 또한 이벤트 기반의 웹 앱에서 핵심 기능인 AJAX 요청 테스트의 설명은 짧지만, 마우스 이벤트(mousedown, mouseup 등)를 처리하는 핸들러 함수의 사용을 코드 레벨에서 손쉽게 접근할 수 있도록 8장에서 서술한다.
전반적으로 설명 내용이 쉽게 나와 있지만 초보자만을 위한 것은 아니다. 웹 개발자로서 테스트는 개발 경험과는 별도로 반드시 거쳐야 하는 과정이며, 테스트에 많은 시간이 소요된다는 점은 개발자라면 누구나 인정하는 사실이다. 따라서 이 책은 기존 테스트 프레임워크의 사용보다 빠르고 효과적이며 자동화된 테스트를 바라는 개발자에게 반드시 유용할 것이다.
기본정보
ISBN | 9788960774827 | ||
---|---|---|---|
발행(출시)일자 | 2013년 10월 23일 | ||
쪽수 | 176쪽 | ||
크기 |
188 * 235
* 20
mm
|
||
총권수 | 1권 | ||
시리즈명 |
acorn+PACKT
|
||
원서(번역서)명/저자명 | Using Node.js for UI Testing/Bennett, Ollie |
Klover 리뷰 (0)
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집 (0)
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
판매가 5,000원 미만 상품의 경우 리워드 지급 대상에서 제외됩니다. (2024년 9월 30일부터 적용)
구매 후 리뷰 작성 시, e교환권 100원 적립
-
반품/교환방법
* 오픈마켓, 해외배송 주문, 기프트 주문시 [1:1 상담>반품/교환/환불] 또는 고객센터 (1544-1900) -
반품/교환가능 기간
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내 -
반품/교환비용
-
반품/교환 불가 사유
(단지 확인을 위한 포장 훼손은 제외)
2) 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
예) 화장품, 식품, 가전제품(악세서리 포함) 등
3) 복제가 가능한 상품 등의 포장을 훼손한 경우
예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
4) 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
5) 디지털 컨텐츠인 ebook, 오디오북 등을 1회이상 ‘다운로드’를 받았거나 '바로보기'로 열람한 경우
6) 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
7) 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
8) 세트상품 일부만 반품 불가 (필요시 세트상품 반품 후 낱권 재구매)
9) 기타 반품 불가 품목 - 잡지, 테이프, 대학입시자료, 사진집, 방통대 교재, 교과서, 만화, 미디어전품목, 악보집, 정부간행물, 지도, 각종 수험서, 적성검사자료, 성경, 사전, 법령집, 지류, 필기구류, 시즌상품, 개봉한 상품 등 -
상품 품절
-
소비자 피해보상 환불 지연에 따른 배상
2) 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함
상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)
기분 좋은 발견
이 분야의 베스트
이 분야의 신간
-
LLMOps를 활용한 LLM 엔지니어링10% 25,200 원
-
랭체인과 RAG로 배우는 실전 LLM 애플리케이션 개발10% 25,200 원
-
스프링 부트 3 핵심 가이드10% 27,000 원
-
Do it! 스위프트로 아이폰 앱 만들기 입문10% 32,400 원
-
Kotlin in Action: 2/e10% 43,200 원