why not
의미 있는 테스트 작성하기(30일차) 본문
<테스트 작성의 정석>
1. 테스트의 4가지 종류
1-1. 단위 테스팅(Unit testing)
- 하나의 모듈/컴포넌트/클래스가 기대한대로 동작하는지, 제공하는 기능들을 테스트하는 것
- 대상 컴포넌트에서 의존하는 일부 대상은 목(mock) 객체를 이용하여 테스트 하기 편한 환경을 구축할 수 있다.
- 개발자가 작성
- 자동화된 테스팅
1-2. 통합 테스팅(Integration testing)
- 두 개 이상의 모듈이 잘 연동/연결이 되었는지 테스팅.
- 모듈 간에 발생하는 메시지나 에러를 검증하는 단계
- e.g. 3rd party API를 호출하면 어떤 응답을 기대하는지 테스팅
- 개발자가 작성
- 자동화된 테스팅
1-3. E2E 테스팅(End-to-end testing)
- 실제 사용자가 이용하는 환경과 최대한 유사하게 만들어 사용자의 경험을 전반적으로 테스팅
- 사용자의 입장에서 시스템이 기능을 올바르게 제공하는지 테스팅
- e.g. 시나리오: 사용자가 ‘그룹 생성하기' 버튼을 클릭하면 해당 페이지로 리다이렉팅 된다.
- QA 조직이 따로 있을 경우, 개발자가 아닌 QA 전문가가 작성하곤 한다.
- 자동화된 테스팅
1-4. 인수 테스팅(Acceptance testing)
- 시스템이 주어진 요구사항을 잘 충족하는지 테스팅
- 자동화된 테스팅이 아니라 사람이 수동으로 테스팅
2. 테스트 작성 순서
- 단위 테스트 -> 통합 테스트 -> E2E 테스트
- 좁은 범위부터 시작해서 넓은 범위까지 테스트!
3. 테스트의 영역
- 프론트 엔드, 백엔드 등
- 프론트엔드 테스트도 의미가 있을까?
- 사용자가 소프트웨어를 사용하는 방식을 테스팅 하는 것
- 예를 들면 A 버튼을 누르면 사용자 이름과 휴대폰 번호를 기입할 수 있는 입력 창
- 기능에 대한 테스팅을 할 때 의미가 있다.
- 사용자가 소프트웨어를 사용하는 방식을 테스팅 하는 것
4. 의미 있는 테스트 작성하기
4-1. 반드시 테스트 해야할 것
- 사용자 요구사항(user requirement)이 모두 테스트 케이스화 되어있는가?
- 백엔드의 인터페이스를 테스트할 경우, 잘못된 input을 입력했을 때, 예상된 응답을 내려주는가? (에러코드 vs Exception을 throw)
- 프론트엔드에서 사용자가 이용할 기능이 동작하는가?
- 기능 테스트에 초점을 맞춰야 합니다!
- 페이지에 중요한 버튼이 렌더링 되는가?
- 해당 버튼을 클릭하면 예상한대로 동작하는가?
4-2. 테스트 하지 않아도 되는 것
- 모든 라인을 반드시 테스트하지는 않아도 된다.
- 페이지가 반응성(responsiveness web)인지 테스트
- e.g. “PC 에서는 버튼이 화면 중앙에, 모바일에서는 버튼 위치가 화면 하단에 있어야 한다”
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
* 필수 삽입 링크 : http://bit.ly/3Y34pE0
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
'Today I Learn > 환급 챌린지' 카테고리의 다른 글
TDD(Test-Driven Development) 활용 (29일차) (0) | 2023.03.20 |
---|---|
Dutch pay 서비스에서 이용할 기술셋 7 (28일차) (0) | 2023.03.19 |
Dutch pay 서비스에서 이용할 기술셋 6 (27일차) (0) | 2023.03.18 |
Dutch pay 서비스에서 이용할 기술셋 5 (26일차) (0) | 2023.03.17 |
Dutch pay 서비스에서 이용할 기술셋 4 (25일차) (0) | 2023.03.16 |