JavaScript Testing [버그 없는 웹을 위한 자바스크립트 코드 테스트와 디버깅]
- 원서명JavaScript Testing Beginner's Guide (ISBN 9781849510004)
- 지은이리앙 유시안 유진
- 옮긴이최광민
- ISBN : 9788960775398
- 25,000원
- 2014년 03월 31일 펴냄 (절판)
- 페이퍼백 | 312쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 소프트웨어 테스팅
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
요약
이 책에는 실전에서 유용하게 활용할 수 있는 70여 가지 이상의 자바스크립트 테스팅 예제가 실려 있다. 이 책에 실린 예제들을 따라 하다 보면, 버그 없고 견고한 웹을 구성하기 위한 자바스크립트 코드를 테스트하는 데 필요한 이론적 배경 지식은 물론, 테스트와 디버깅을 수행하는 데 필요한 도구 사용법, 자바스크립트 코드 최적화 방법 등을 익힐 수 있다. 그리고 자바스크립트를 처음 공부하는 초보자도 쉽게 따라 할 수 있도록 웹을 구성하는 세 가지 요소인 HTML과 CSS, 자바스크립트의 문법도 함께 설명한다.
이 책에서 다루는 내용
■ HTML과 CSS, 자바스크립트 사이의 관계
■ 자바스크립트 오류의 여러 가지 종류
■ 자바스크립트 임시 테스트 수행
■ 자바스크립트 코드 검증
■ 테스트에 관련된 여러 가지 개념
■ 테스트 계획 수립과 실행
■ 자바스크립트 예외 처리를 활용해 더 복잡한 코드를 테스트하는 방법
■ 자바스크립트를 활용한 사용자 인터페이스 테스트 수행
■ 구글 크롬과 자바스크립트 디버거, 파이어폭스의 벵크맨(Venkman) 확장기능 등의 도구를 이용한 코드 디버깅
■ Sahi와 QUnit, JsLitmus를 사용한 테스트 과정 자동화
이 책의 대상 독자
초보 자바스크립트 개발자나 자바스크립트를 HTML, CSS와 함께 사용해본 경험이 있는 초보 개발자
이 책의 구성
1장. 자바스크립트 테스팅에서는 HTML, CSS 등의 웹 개발 구성 요소들을 살펴보고, 그 안에서 자바스크립트의 역할과 가장 자주 접하게 될 에러의 종류를 살펴본다.
2장. 자바스크립트에서의 임시 테스팅과 디버깅에서는 간단한 임시 테스트 용도의 자바스크립트 프로그램을 작성하면서 자바스크립트 프로그램에 임시 테스트를 하는 이유와 가장 많이 사용되는 자바스크립트의 기능을 알아본다.
3장. 문법 검증에서는 검증된 자바스크립트 코드를 작성하는 방법을 설명한다. 3장을 마치고 나면, 자바스크립트 개발자로서 기술을 향상시킬 뿐만 아니라 자바스크립트 코드를 테스트하는 데 있어서 검증의 역할은 무엇인지 좀 더 깊이 이해할 수 있다.
4장. 테스트 계획하기에서는 테스트 계획 수립의 중요성과 테스트 수행에 사용되는 전략과 개념을 살펴보고, 간단한 테스트 계획을 수립하면서 테스트 계획을 세운다는 것이 어떤 의미인지 체험해본다.
5장. 테스트 계획 실행하기에서는 수립된 테스트 계획을 실행에 옮겨본다. 4장에서 배운 이론을 적용하여 버그를 찾고 수정하는 과정을 실습을 통해 익힌다.
6장. 더 복잡한 코드 테스트하기에서는 코드를 테스트하는 정교한 방법을 살펴본다. 코드를 테스트하는 데 자바스크립트 내장 에러 객체를 사용하는 방법과 콘솔의 로그를 사용하는 방법, 임의의 메시지를 작성하는 방법, 에러를 잡는 방법을 살펴본다.
7장. 디버깅 도구에서는 작성한 코드가 수동으로 테스트하기에 너무 크고 복잡할 경우 사용할 수 있는 방법을 알아본다. 인터넷 익스플로러 8과 파이어폭스 3.6, 크롬 5.0, 사파리 4.0, 오페라 10을 비롯한 시중에서 인기 있는 웹 브라우저가 제공하는 디버깅 도구의 도움을 받아 본다.
8장. 테스팅 도구에서는 서로 다른 브라우저 및 플랫폼 간 호환이 가능한 무료 테스팅 도구를 사용하여 테스트를 자동화하는 방법을 살펴본다. 사용자 인터페이스에 대한 테스트와 테스트 자동화 및 경고(assertion)를 이용하는 방법과 벤치마킹(benchmarking) 테스트에 대해서도 알아본다.
목차
목차
- 1장 자바스크립트 테스팅
- 자바스크립트는 웹 페이지의 어느 부분에 적합한가?
- HTML의 내용
- 실습 예제 - HTML 문서 작성
- 속성을 이용하여 HTML 엘리먼트에 스타일 적용하기
- HTML 엘리먼트에 id와 class 이름 지정하기
- CSS
- ID와 클래스 이름을 이용해 HTML 엘리먼트를 참조하고 스타일 적용하기
- 클래스 선택자와 ID 선택자의 차이점
- 클래스 선택자와 ID 선택자의 다른 용도
- 모든 CSS 속성의 목록
- 자바스크립트 문법
- 자바스크립트 이벤트
- 문서에서 엘리먼트 찾기
- 정리
- 불러오기 오류
- 부분적으로 올바른 자바스크립트
- 실행시간 오류
- 논리 오류
- 객체와 변수, 함수의 이름이 올바른지 확인하라
- 문법이 올바른지 확인하라
- 코드를 작성하기 전에 계획을 세워라
- 코드의 정확성을 확인하라
- 적절한 텍스트 편집기를 선택해 오류를 방지하라
- 기능 테스트를 이용해 웹 브라우저 간의 차이점 테스트하기
- 폼 값에 접근하기
- 폼의 값에 접근하는 그밖의 기법
- 코드를 시각적으로 검사하기
- alert()을 이용해 코드의 동작 확인하기
- alert()을 이용해 어떤 값이 사용되는지 확인하기
- 덜 요란한 방법으로 어떤 코드에서 어떤 값을 사용하는지 알아내기
- 유효하지만 잘못 된 코드 | 검증으로 찾을 수 없는 오류
- 유효하지 않지만 원하는 대로 동작하는 코드
- 유효하지 않고 제대로 동작하지도 않는 코드 | 검증이 아니면 찾아내기 힘든 오류
- 자바스크립트를 작성하기 전에 HTML과 CSS를 먼저 검증하자
- 코드를 검증하지 않으면 어떤 일이 생길까?
- 컬러 코딩 편집기로 검증 오류 찾기
- 유효한 코드의 검증 경고를 수정해야 할까?
- 검증 경고를 수정하지 않으면 어떻게 될까?
- use strict 구문 누락 오류
- ++의 잘못된 사용
- 정의하지 않은 함수 오류
- 너무 많은 var 구문 사용
- <\/를 사용해야 할 곳에 </ 사용하기
- ===를 사용해야 할 곳에 == 사용하기
- 정의하지 않은 alert
- HTML 이벤트 핸들러 사용 지양하기
- 수정 사항 요약
- 애자일 방법론
- 실전에서의 애자일 방법론과 소프트웨어 생명주기
- 분석과 설계
- 구현과 테스팅
- 배치
- 유지보수
- 코드가 의도하는 바가 무엇인가
- 코드가 요구사항을 만족하는지 테스트하기
- 사용자의 잘못된 행동 테스트하기
- 기능적 요구사항 테스트
- 비기능적 요구사항 테스트
- 수용 테스트
- 블랙 박스 테스트
- 사용성 테스트
- 경계 값 테스트
- 등가 분할
- 베타 테스트
- 화이트 박스 테스트
- 분기 테스트
- 파레토 테스트
- 단위 테스트
- 웹 페이지 테스트
- 성능 테스트
- 통합 테스트
- 회귀 테스트: 코드 변경 후에 테스트 적용하기
- 테스트 계획
- 버전 부여하기
- 테스트 전략
- 버그 보고 양식
- 예제 테스트 계획 정리
- 이벤트 핸들러 결합하기
- 이름 충돌
- 다른 사람이 만든 라이브러리도 테스트해야 할까?
- 라이브러리 코드에 수행하는 테스트의 종류
- 성능 테스트
- 프로파일링 테스트
- 라이브러리의 GUI와 위젯 부가 기능 테스트
- throw 구문
- try catch, finally 구문
- 오류 객체
- RangeError 객체
- ReferenceError 객체
- TypeError 객체
- SyntaxError 객체
- URIError 객체
- EvalError 객체
- 오류 메시지
- 임의의 메시지 작성하기
- 열기
- 사용자 인터페이스 훑어보기
- IE 디버깅 도구를 활용한 디버깅 기초
- 자바스크립트 디버깅하기
- 크롬을 이용한 디버깅
- 사용자 인터페이스 훑어보기
- 드래곤플라이 사용하기
- 드래곤플라이 시작하기
- Inspection과 Call Stack
- Continue, Step Into, Step Over, Step Out과 오류 시 정지하기
- 드래곤플라이 설정
- 파이어폭스의 뱅크맨 확장기능 사용하기
- 뱅크맨 자바스크립트 디버거 확장기능 설치하기
- 뱅크맨 실행
- 사용자 인터페이스 훑어보기
- Breakpoints와 Call Stack
- Local Variables와 Watches
- Sahi로 더 복잡한 테스팅 수행하기
- 실제 상황에서 QUnit 적용하기
- 다양한 상황에서의 고급 경고 테스트
- JSLitmus로 더 복잡한 테스팅하기