적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

Swift iOS 앱 개발/iOS

XCTest 로 Unit Test 하는 법 + TDD

hongssup_ 2023. 4. 24. 09:58
반응형

1. Unit Test 

2. Xcode에서 XCTest 활용하기

3. TDD 

 

1. 단위 테스트 Unit Test

단위 테스트 Unit Test 란?

유닛 테스트(unit test)는 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차다.

테스트 케이스(Test case) 작성을 통해서 언제라도 코드 변경으로 인해 문제가 발생할 경우, 단시간 내에 이를 파악하고 바로 잡을 수 있도록 해준다.

 

단위테스트 장점

  • 문제점 발견
    유닛 테스트의 목적은 프로그램을 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지 검사하고 확인하는 것이다. 이를 통해 문제 발생 시 어느 부분이 잘못되었는지 정확하고 빠르게 확인할 수 있게 해주고, 프로그램의 안정성이 높아지며 디버깅 시간을 단축시킬 수 있다. 
  • 변경이 쉽다
    유닛 테스트를 믿고 언제든지 리팩토링을 할 수 있고, 리팩토링 후에도 해당 모듈이 의도대로 잘 작동하는지 확인할 수 있다. (= 회귀 테스트 Regression Testing) 어떻게 코드를 고치더라도 문제점을 금방 파악할 수 있고 수정된 코드가 정확하게 동작하는지 쉽게 알 수 있게 되므로 프로그래머들은 더욱 더 의욕적으로 코드를 변경할 수 있게 된다.
  • 통합이 간단 → 유닛 자체의 불확실성을 제거해주므로 bottom-up(상향식) 테스트 방식에서 유용하다. 각 모듈을 검증하고 모듈들을 합쳐서 다시 검증하는 통합 테스트에서 더욱 효율적이다.

 

2. Xcode에서 XCTest 활용하기

Xcode에서 XCTest 활용하기

 

Test 클래스 실행하는 방법

1. Product\Test 또는 Command + U  사용해서 모든 테스트 클래스를 실행

2. 테스트 네비게이터에서 화살표 버튼을 클릭

3. 다이아몬드 버튼을 클릭한다.

모든 테스트가 성공하면, 다이아몬드는 녹색으로 바뀌게 되고 체크 표시가 나타난다.

 

3. 테스트 주도 개발 TDD

TDD란?

테스트 주도 개발 Test Driven Development

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

작성해야하는 프로그램에 대한 테스트를 먼저 작성하고  테스트를 통과할  있도록 실제 프로그램의 코드를 작성

테스트에 요구사항이 제대로 동작함을 입증할 있는 코드를 작성하고 테스트를 만족하는 실제 프로그램을 써나가는

 

왜 하는가?

먼저 테스트를 먼저 작성하고 실제 코드를 작성하기 때문에 테스트 되지 않는 코드가 없어진다. 즉, 프로그램의 모든 코드가 테스트되기 때문에 버그의 발생 가능성이 줄어든다.

그리고 테스트가 작성되어 있으면 프로그램에 여러 가지 변경 작업을 변경으로 인해 다른 부분에서 예상치 못한 문제가 발생하는 것을 쉽게 알아차릴 있으므로 변경 작업을 두려움 없이 쉽게 있게 되어 개발 과정의 유연성이 높아진다. 그래서 최종적으로 생산성 향상에 기여한다.

 

 


참고 :

mini.log - TDD Xcode에서 XCTest 활용하기

 

 

 

728x90
반응형