Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

IOS Tech Blog

[IOS / Swift] Unit Test와 UI Test 본문

Swift

[IOS / Swift] Unit Test와 UI Test

KJ Song 2022. 11. 5. 20:51

TDD

TDD란?

- Test Driven Development : 테스트 주도 개발

- 테스트 주도 개발(Test-driven development TDD)은 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다. 개발자는 먼저 요구사항을 검증하는 자동화된 테스트 케이스를 작성한다. 그런 후에, 그 테스트 케이스를 통과하기 위한 최소한의 코드를 생성한다. 마지막으로 작성한 코드를 표준에 맞도록 리팩토링한다.

 

TDD의 장점과 단점

장점

  • 오류에 대해 신속하게 파악할 수 있으며 디버깅이 용이해진다
  • 문서를 대체할 수 있다
  • 코드를 작성하기 전에 설계에 대해 구체적으로 작성할 수 있다

단점

  • 단기적으로 봤을때 테스트 코드를 작성하는 데 시간이 소모된다
  • 100%의 안정성을 보장하지는 않는다

 

Unit Test

Unit Test

유닛 테스트는 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차다. 즉, 모든 함수와 메소드에 대한 테스트 케이스(Test case)를 작성하는 절차를 말한다

 

사용 방법

 

Unit Test를 사용하기 위해서는 Unit Test Target이 필요하다. ToDoCalendar Project의 Target을 만들어준다.

 

 

Target을 만들면 위와 같은 기본 Test Class가 생성된다.
애플 공식 문서에 있는 테스트 메서드 호출 순서도

  • setUp : 모든 테스트 메서드에서 실행 전에 정의하거나 초기화할 작업들을 모두 구현한다.
  • tearDown  : 테스트 메서드를 실행한 후에 정리하는 작업을 구현한다. (반복해서 테스트를 수행할 수 있도록 자원 정리) 

 

UI Test

UITest(User Interface Test)

- Unit Test처럼 특정 코드에 대한 내부 지식이 없어도 되고, mock이나 stub같은것도 필요없이 실제로 앱이랑 상호작용하는 테스트이다.

- UITest는 작은 변경으로 인해 테스트가 실패할 수 있기 떄문에 Unit Test보다 훨씬 취약하다.

- 하지만 그만큼 앱의 workflow가 의도한대로 작동한다는 훌륭한 증거가 되기도 한다.

 

사용 방법