테스트하기
강 성 일
Do Test
Test?
Test?
프로그램이 정상적으로
동작하는가에 대한 검증 과정.
ex) 개발 사양
구구단 8단을 출력하는
프로그램을 만들어주세요.
테스트하는 개발
테스트하는 개발
테스트하는 개발
테스트하는 개발
1. 화면구성
2. 이메일 빈 경우 체크
3. 비밀번호 빈 경우 체크
4. 로그인 동작
5. 회원가입 버튼 동작
6. 카카오 계정 로그인 동작
7. 비밀번호 재설정 동작
8. 디바이스 사이즈 대응 확인
테스트하는 개발
로그인 화면
초기 화면
회원가입 화면
프로그램은 많은 기능들이
유기적으로 연결되어 있다.
테스트하는 개발
테스트하는 개발
화면이 대략
30~40개
테스트하는 개발
???????????
프로그램은 언젠가는 고쳐야한다.
그게 기획자의 농간이던 아니던간에
테스트하는 개발
QA
테스트하는 개발
이슈 리포트
테스트를 자동화하기
unittest, Test::Unit, GoogleTest, …
자동 테스트 개발
장점
1. 버그 검출이 쉽다
모든 기능이 자동으로 테스트 됨
2. 소스코드 품질 향상
Refactoring을 기피하지 않게 됨.
3. 테스트 비용의 감소
테스트 하는데에 시간이 줄어 개발 효율성 up
자동 테스트 개발
1.기획
2.개발
3.테스트코드 작성
4.테스트
일반적인 개발 프로세스
자동 테스트 개발
Test Coverage
얼마나 많은 코드가 테스트 되고 있는가 지표.
(테스트 되는 코드 양)
(전체 코드 양)
테스트 주도 개발
codecov.io
테스트 주도 개발
github.com/python/cpython
자동 테스트 개발
Test Coverage
얼마나 많은 코드가 테스트 되고 있는가 지표.
(테스트 되는 코드 양)
(전체 코드 양)
Test Driven Development
테스트 주도 개발
1.기획
2.테스트 코드 작성
3.개발
4.테스트
테스트 주도 개발
HTTP/2 서버 만들기
테스트 주도 개발
HTTP/1.0 서버부터 차근차근 만들기
테스트 주도 개발
RFC 1945가 기획서
테스트 주도 개발
ABNF
테스트 주도 개발
parsing하는 코드 테스트 코드
테스트 주도 개발
Failed
테스트 주도 개발
실제 구현 중...
테스트 주도 개발
Passed
테스트 주도 개발
parsing하는 코드
이를 테스트하는
정상적 상황의 코드
테스트 주도 개발
Failed
테스트 주도 개발
실제 구현 중...
테스트 주도 개발
Passed
테스트 주도 개발
ex) 개발 사양
유저의 패스워드가
강력한가 판단하는 프로그램
1. 특수문자 파악
2. 길이 8자리 이상
3. 대/소문자 포함
테스트 주도 개발
단점
귀찮다.
Thanks.

[SWMaestro 100+ 발표자료] 테스트하기