Top

[헤드리스 브라우저와 모카를 활용한]
노드로 하는 웹 앱 테스트 자동화

  • 원서명Using Node.js for UI Testing (ISBN 9781782160526)
  • 지은이페드로 테세이라
  • 옮긴이조효성
  • ISBN : 9788960774827
  • 15,000원
  • 2013년 10월 23일 펴냄
  • 페이퍼백 | 176쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

노드 텃 비디오 튜토리얼(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 테스트는 AJAX 요청 방법과 결과 코드가 적용된 웹 페이지의 기능 테스트를 설명한다.

저자/역자 소개

지은이 소개

페드로 테세이라 (Pedro Teixeira)

풍부한 오픈소스 경험과 많은 Node.js 모듈을 개발한 프로그래머다. 약 14년 전 소프트웨어 공학과를 졸업한 후 컨설턴트와 프로그래머 그리고 세계적으로 잘 알려진 Node.js 단체 멤버로서 왕성한 활동을 하고 있다. Node.js 플랫폼을 주도하는 서비스(PaaS) 프로바이더 기업 노데지수(Nodejitsu)의 수석 프로그래머이자 노드 펌(Node Firm)의 공동 설립자다. 그는 유명한 노드 텃 스크린캐스트(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 등 해당 분야에 많이 알려진 모듈을 작성했다.

지은이의 말

사용자 인터페이스 관련 테스트 자동화는 언제나 프로그램의 성스러운 영역이었다. 오늘날, 좀비(Zombie.js)와 모카(Mocha)를 이용하면 빠른 테스트 생성과 실행은 물론 적은 소스 수정에 대한 테스트까지 가능하다. 애플리케이션 개발을 할 때 코드 작성에 자신감을 상승시키고 범용 브라우저를 사용해야 하는 횟수를 줄여보자.

『노드로 하는 웹 앱 테스트 자동화』는 웹 애플리케이션을 버그에 강건하도록 유지시키면서 테스트를 자동화할 수 있는 빠르고 온전한 방법을 설명한다. 이 책을 보면 복잡한 사용자 입력 액션을 시뮬레이션하는 방법을 학습하고 애플리케이션의 정상 동작을 검증할 수 있다. 복잡한 사용자 상호작용과 AJAX 기능을 제공하는 Node.js를 이용하여 웹 애플리케이션을 작성할 수 있고, 마지막으로 명령어 창에서 애플리케이션의 테스트 전체를 실행할 수 있다. 프레임워크 역할을 하는 모카와 헤드리스(headless) 브라우저인 좀비를 채택한 애플리케이션을 대상으로 사용자 인터페이스 테스트를 생성할 수 있는데 이는 애플리케이션의 작은 변화를 만들 때마다 빠르게 테스트를 진행할 수 있다.

독자는 모듈 단위로 하나의 복잡한 테스트 절차를 생성해 보고, 간단한 것과 복잡한 사용자 상호작용 기능을 테스트할 수 있다.

옮긴이 소개

조효성

광운대학교 전자공학과를 졸업하고 동대학원 임베디드 소프트웨어 공학과에서 안드로이드와 블루투스를 전공했다. 현재는 오비고에서 웹 개발자로 활동하고 있는 노드에 관심이 많은 행복 개발자다. 행복한 HMI 웹 앱 개발팀에서 차량용 플랫폼에 올라가는 웹 앱을 개발하면서 많은 경험과 실력을 쌓고 있다. 앞으로 백엔드과 프론트엔드를 아우르는 전문 웹 개발자로 성장하는 것이 목표다.

옮긴이의 말

노드 플랫폼의 주요 프로그래머로서 『Hands-on Node.js』와 『Professional Node.js』를 출간한 페드로 테세이라가 이번에는 노드에서 동작하는 웹 애플리케이션 UI의 테스트를 할 때 기존의 테스트 프레임워크인 PhantomJS와 SlimerJS 등과는 차원이 다른 좀비(ZombieJS)를 이용한 지침서를 내놓았다. 좀비는 경량화된 헤드리스 타입의 웹브라우저 역할을 수행하며 모카(Mocha), 노드와 연결되어 빠르고 자동화된 UI 테스트의 실행을 가능하게 한다.

이 책은 웹 애플리케이션 개발에 서툰 초보자부터 백엔드와 프론트엔드 기술을 섭렵한 개발자에 이르기까지 자신이 개발하거나 참여한 프로젝트의 전체 기능을 자동화된 형태로 테스트를 할 때 유용한 도움을 줄 수 있다. 1장, 2장, 3장에 좀비, 노드, 모카의 기본 지식과 설치 방법이 상세하게 나와있어, 숙련된 개발자에게는 조금 지루할 수 있으나 초보 개발자는 이를 발판 삼아 좋은 개발 경험이 될 수 있을 것이다. 또한 테스트를 위한 예제 코드와 결과 내용을 자세히 서술하고 있어, 코드를 실습하는 과정에서 방향을 잃지 않고 끝까지 완성할 수 있도록 가이드를 제시한다.

이 책의 5장과 7장은 웹 애플리케이션의 UI 테스트를 실행하기 위해 웹 앱을 작성하고 기능의 이슈가 있을 때 디버깅할 수 있는 방법과 엘리먼트의 유효성 검사 등 필드에서 일어날 만한 상황을 이해하기 쉬운 형태로 설명하므로 개발 경험에 도움이 될 것이다. 또한 이벤트 기반의 웹앱에서 핵심 기능인 AJAX 요청 테스트의 설명은 짧지만, 마우스 이벤트(mousedown, mouseup 등)를 처리하는 핸들러 함수의 사용을 코드 레벨에서 손쉽게 접근할 수 있는 방법에 대해 8장에서 서술한다.

전반적으로 설명 내용이 쉽게 나와 있지만 초보자만을 위한 것은 아니다. 웹 개발자로서 테스트는 개발 경험과는 별도로 반드시 거쳐야 하는 과정이며, 테스트에 많은 시간이 소요된다는 점은 개발자라면 누구나 인정하는 사실이다. 따라서 이 책은 기존 테스트 프레임워크의 사용보다 빠르고 효과적이며 자동화된 테스트를 바라는 개발자에게 매우 유용할 것이다.

목차

목차
  • 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) 기능 구현
  •   요약

도서 오류 신고

도서 오류 신고

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

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

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