개발자 테스트와 테스트 자동화의 중요성
모듈 품질이 좋아짐
차후 모듈 수정이나 개선시에 개발 속도 향상
테스트를 꾸준히 잘하려면?
디자인과 구현이 잘 되어 있어야 한다(의존성을 줄이는 것이 핵심)
테스트를 꼭 해야 하는건 아니다 (Where, Oh Where To Test)
어느 레벨에서 테스트를 진행해야 하는가?
시스템 테스트가 좋은가? 유닛 테스트가 좋은가?
=> 핵심은 Cost(비용), Stability(안정성), Reliability(신뢰성)
Cost(비용)
테스트 작성 비용
유지보수 비용
테스트 수행 시간
테스트를 적고 빠르게 만들 수록 좋다
=> 테스트 스크립트 최소화, Mock 사용 최소화
Stability(안정성)
잘못된 피드백의 비용
Stable한 결과를 얻는데 드는 비용 고려
=> UI는 테스트 스크립트 X
Reliability(신뢰성)
문제가 있을 만한 곳을 테스트하라
모든 부분을 테스트할 수 없다
문제가 있을 확률 x 버그로 인한 비용
개발자의 경험과 직관, 운에 의존
=> 로직이 복잡한 부분, 수동 테스트가 어려운 부분 철저하게 테스트
동시성 검정은 철저히
믿을 수 있는 모듈은 대충대충 겸사겸사 테스트
Mock 사용 최소화
Mock을 안 만들면서 Unit Test 하는 방법
=> Bottom Up Testing
Top Down: 전체 요구사항을 만족하는 설계를 하고 각 필요한 부분을 세부적으로 만들어감
Bottom Up: 현제 도메인을 추상화한 라이브러리. 이것을 이용하여 전체 모양을 갖추어 감
출처: 박종석 / 넥슨코리아
http://ndcreplay.nexon.com/NDC2013/sessions/NDC2013_0024.html
'NDC > Dev' 카테고리의 다른 글
[NDC 2016] 구형맵에서는 어떻게 길을 찾아야 하나요? (0) | 2023.01.17 |
---|---|
[NDC 2016] 유니티, iOS에서 LINQ 사용하기 (0) | 2023.01.15 |
[NDC 2014] 멀티쓰레드 프로그래밍이 왜이리 힘드나요? (0) | 2022.10.18 |
[NDC 2014] 파이썬과 친구들 (0) | 2021.12.06 |
[NDC2013] 라이브 프로젝트에서 C++로 테스트 주도 개발하기 (0) | 2021.11.13 |