Javascript Test

입사 후 2년동안...

들어 본 적은 있지만...

요구사항 분석

INPUT & OUTPUT 정의

백엔드 개발 (PHP)

REST Client를 이용한 테스트

프론트 개발 (javascript)

console.log 를 통한 테스트

요구사항 분석

INPUT & OUTPUT 정의

백엔드 개발 (PHP)

REST Client를 이용한 테스트

프론트 개발 (javascript)

console.log 를 통한 테스트

요구사항 분석

INPUT & OUTPUT 정의

백엔드 개발 (PHP)

REST Client를 이용한 테스트

프론트 개발 (javascript)

console.log 를 통한 테스트

요구사항 분석

INPUT & OUTPUT 정의

백엔드 개발 (PHP)

REST Client를 이용한 테스트

프론트 개발 (javascript)

console.log 를 통한 테스트

요구사항 분석

INPUT & OUTPUT 정의

백엔드 개발 (PHP)

REST Client를 이용한 테스트

프론트 개발 (javascript)

console.log 를 통한 테스트

요구사항 분석

INPUT & OUTPUT 정의

백엔드 개발 (PHP)

REST Client를 이용한 테스트

프론트 개발 (javascript)

console.log 를 통한 테스트

요구사항 분석

INPUT & OUTPUT 정의

백엔드 개발 (PHP)

REST Client를 이용한 테스트

프론트 개발 (javascript)

console.log 를 통한 테스트

while

}

(

) {

true

무한루프를 벗어나보자

개발하는 사람이 수고로우면

기획자가 편하고

개발자가 편하면

기획자가 수고롭다

Javascript: Test

테스트를 해야 하는 이유

1. 리팩토링은 테스트 없이는 불가능하다.

리팩토링은 동작을 보장하지 않으면 완전히 불가능하며,  동작 없이는 불가능하다.

2. 단지 코드 동작을 검증만 하는 것이 아니다.

테스트를 거치지 않으면 코드가 깨진 것을 깨닫지 못한다.

3. 버그를 일찍 발견할 수 있다.

검수 단계에서 버그를 발견한다면 고치려는 비용이 더 크게 발생한다.

4. 피드백 루프가 더 엄격해진다.

테스트가 없다면 코드가 작동한다고 가정하거나 수동으로 확인할 수 밖에 없다.

Javascript: Test

여러 가지 테스트 유형

1. 수동 테스트

2. 종단 간 테스트

수동 테스터가 최종 사용자게에 제공되는 환경으로, 수행할 수 있는 실제 상호작용을

자동화 하는것을 의미한다.

3. 단위 테스트

파일, 모듈, 클래스, 객체 등 단위의 입력 및 출력 동작에 초점을 둔다.

4. 기능 테스트

새로 만든 기능을 테스트할 때 사용한다. 가장 먼저 작성하면 좋다.(TDD)

Javascript: Test

테스트

확신

리팩토링

품질

코드에 확신을 갖는 기본은 테스트고, 확신은 리팩토링의 기본이다.

그리고 리팩토링은 우리 목표인 품질의 기본이 된다.

Javascript: Test

테스트

확신

리팩토링

품질

Javascript: Test

요구사항

표준 카드 묶음 52장에서 다섯 장의 카드 집합을 부여하고

해당 집합 이름을 출력하는 프로그램을 만들어라

Javascript: Test

모든 case 를 체크하는 function 작성

Javascript: Test

이러한 테스트는 초기에는 코드에 확신을 갖게 하지만

테스트가 추가될수록 좌절감만 느끼게 한다

Javascript: Test

조건을 추적하기 위해 모든 함수에서 false return

Javascript: Test

중복을 계산하는 함수를 추가

Javascript: Test

중복을 계산하는 함수를 추가

Javascript: Test

중복 검사 함수를 재사용 했지만 좋아보이지는 않음

버그를 고쳐야 할까?

다른 기능들을 구현해야 할까?

Javascript: Test

모든 가능성에 대한 순서도

Javascript: Test

테스트 주도 개발로 다시..

Javascript: Mocha

Mocha

회식을 안했더라면...

테스트 러너를 지원하는 테스트 프레임워크

Appendix

테스트를 어떻게 시작할것인가...

1. 버그를 찾는다.

2. 버그를 고쳤을 때 통과할만한 테스트를 작성한다.

3. 테스트를 통과할 때까지 코드를 수정한다.

Appendix

테스트를 어떻게 시작할것인가...

테스트로 100%의 코드 커버리지를 만들 필요가 없다

없는 것보다 하나라도 있는게 더 낫다...

Appendix

무엇을 테스트 해야하는지...

...

Appendix

정말 TDD를 하는지...

...

JavaScript: Test

By Jaewoo KIM

JavaScript: Test

REFACTORING JAVASCRIPT

  • 388