QC - unit test

whybein·2020년 3월 15일
0
post-thumbnail

위코드 부트캠프에서 진행한 세션 중 일부를 요약한 내용입니다.

 

1. 소프트웨어 시스템 테스트 종류

 
소프트웨어 시스템 테스트는 크게 3가지 방법으로 나눌 수 있습니다.

  • UI Testing / End-To-End Testing
  • Integration Testing
  • Unit Testing

 

UI Testing은 실행하기 쉽지만 비용이 많이 들고(인력 및 시간) 부정확하며 자동화가 어렵습니다.
Integration Testing은 그 다음으로 공수가 많이 들어갑니다.

위 세가지 테스트 중 Unit testing이 가장 쉬우며 자동화가 가능하고 효과가 좋습니다.

 


2. Unit Test

 
Unit Test는 테스트 할 수 있는 가장 작은 단위를 테스트 하는 코드를 작성해서 테스트 하는 것을 말합니다. 주로 함수와 메소드 단위로 테스트합니다.

 

파이썬과 장고

파이썬에서는 pytest모듈이 포함돼 있으며 장고에서는 기본적으로 unittest모듈을 사용합니다.

 

유형 3가지

테스트의 유형은 세 가지로 나눌 수 있습니다.

  • 1 : 성공 경우
  • 0 : 예외 처리의 경우
  • -1 : 실패 경우

 

일반 원칙

  • unit test는 독립적으로 해야하며 다른 테스트에 영향이 가면 안됨
  • 테스트는 빠르게 할 수 있어야함(외부 연결하는 부분은 마킹으로 처리)
  • 코드를 수정하고 저장할 때마다 하는 것이 좋음
  • 그날의 코딩 시작과 마무리를 테스트로 한다면 코드에 대한 자신감을 얻을 수 있음
  • 코드를 디버깅할 때 가장 먼저 할 일은 버그를 찝어내는 테스트를 작성하는 것
  • 테스트 함수에는 길고 자세하게 써야 함
  • 무언가 잘못돼 코드를 뜯어 고칠 때 코들 짠 사람과 다른 사람들에게 매우 유용함
  • 테스트 코드는 새로운 개발자들을 위한 안내서로서도 활용 가능함

 

그 외

  • 실제 코드에 소요되는 시간만큼 테스트 코드를 짜는데 시간을 써야할 수 있음
  • 테스트 자동화에도 필요하지만 테스트를 짜면서 코드 리뷰를 할 수 있으며 더 깊게 알게 되는 것도 많음
  • 미국에 비해 한국에서는 아직 Unit Test의 중요성이 덜 부각 되었음
profile
Back-End Developer

0개의 댓글