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를 하는지...
...