BDD(Behavior Driven Development)BDD는 TDD에 기반을 두고 있는 행동 주도 개발 방법으로 테스트 보단 행위에 중점을 두고 개발하는 방법이다.TDD와 BDD 차이점 BDD는테스트케이스 자체가 요구사항이 되도록 하는 개발 방법이다.이미 작성된 요구사항이나 기획서가 있다면 그걸 따라 BDD 방법으로 테스트 케이스를 작성해 TDD보다 빠르게 테스트를 작성하고 검증할 수 있다. TDD, BDD는 상호보완적인 관계다.각자 장점을 살려 테스트를 작성할 때 두 방법을 동시에 사용할 수 있다. BDD로 시나리오를 검증하고, TDD로 시나리오에 사용되는 모듈들을 검증하는 방식으로 사용하면 좋다.BDD 작성BDD 방법으로 테스트 케이스 작성할 땐 요구사항을 받아 설계하는 사람과의 협업, 소통을 ..
TDD(Test-Driven Development)TDD는 테스트 주도 개발로 소프트웨어 개발 프로세스 중 하나다.요구사항을 검증하는 자동화된 테스트 케이스를 먼저 작성하고, 테스트를 통과하기 위한 최소한의 코드를 작성한다. 마지막으로 표준에 맞게 작성한 코드를 리팩토링한다.기존 프로세스는 [ 요구사항 분석 -> 설계 -> 개발 -> 테스트 -> 배포 ] 의 사이클을 가지고 있는데, 소비자의 요구사항이 명확하지 않거나 수정사항이 생겼을 경우 설계를 처음부터 고쳐야 하는 경우가 발생한다. 초기 설계는 바로 완벽하게 나오긴 힘들기 때문에, 수정사항을 통해 코드가 수정, 추가, 제거 되는 과정에서 중복되는 또는 불필요한 코드가 남아 후에 재사용이 어려워지고 유지보수도 힘들게 된다.TDD프로세스는 테스트를 먼저..
UITestUITest는 UnitTest와 다르게 한 화면에 있는 UI의 동작을 검증하는 테스트를 작성할 수 있다.UnitTest에선 동작별로 잘 작동하는지 테스트를 작성했다면UITest는 화면에 들어오는 입력에 UI가 잘 존재하는지를 테스트 할 수 있다.import XCTestfinal class MyUITests: XCTestCase { override func setUpWithError() throws { continueAfterFailure = false } override func tearDownWithError() throws { } func testExample() throws { let app = XCUIApplication() ..
Test?작성한 코드가 의도한대로 작동하는지 검증하는 과정UI 표시UI Layout 설정API RequestUserDefaults 저장/가져오기 등테스트 종류Unit Test - 특정 함수, 메소드의 동작에 대한 테스트 (오늘 알아볼 것)UI Test - UI 표시 / UI Action에 대한 테스트Test CoverageXCTest 프레임워크를 사용해서 테스트를 작성할 수 있다.테스트 작성 % 도 TestCoverage로 볼 수 있다.TestCoverage - Project에서 몇%의 코드에 대해서 테스트가 작성되어 있는지 나타낸 숫자.사용방법은 간단하다. Edit Scheme에서 Test > Options에 Code Coverage 체크 끝.TestCoverage 사용 - App의 안정성을 확인하는 ..