TDD(Test Driven Development)
TDD는 개발을 할 때 테스트에 주도권을 준다는 의미이다. 그래서 개발보다 테스트를 먼저 작성한 후에 테스트를 통과하는 코드를 작성하는 방식을 사용한다.
1.
단위 테스트: 작은 프로그램이나 클래스, 또는 루틴을 실행하는 것으로, 시스템의 완성과는 별개의 테스트이다.
2.
컴포넌트 테스트: 단위 테스트 때보다는 좀 더 크지만 소형인 프로그램을 테스트할 때 실행한다. 여러 개발자가 참여하는 클래스나 패키지가 해당되며, 아직 시스템의 완성과는 별개이다.
3.
통합 테스트: 여러 개발자가 만든 클래스들을 결합한 프로그램을 실행하는 단계이다. 테스트해야 하는 클래스가 두 개 이상이 될 때부터 시작해서 시스템 완성 때까지 진행한다.
4.
회귀 테스트: 이전에 통과한 테스트 집합을 이용해 결함을 찾는 방식이다. 이전에 실행했던 테스트 케이스를 반복하는 것을 말한다.
5.
시스템 테스트: 전체 소프트웨어 및 하드웨어 시스템과 통합된 최종적인 환경에서 실행하는 테스트이며, 저수준에서는 할 수 없는 보안, 성능, 자원 손실, 시간 문제 등을 테스트한다.
다음 코드는 버블 정렬을 향상시킨 코드이다. 배열의 길이만큼 반복되면서 인접한 두 수를 비교하는 중간에 이미 정렬이 되어버리면 그대로 멈춘 뒤 몇 번째 반복 차례에서 멈추었는지를 반환한다.
코드 보기
이 코드를 테스트 하기 위해서는 우선 반복이 몇 번째에 멈추는지 알고 있어야 한다. 예를 들어, 정수 배열 {10,50,30,20,40} 는 2번째 반복에서 정렬이 끝난다. 그러므로 메서드는 2를 반환해야 한다. 이에 대한 테스트 코드를 짜는 방법은 다음과 같다.
테스트 코드 생성하고 작성하는 법
테스트 코드 작성할 때 알아야 할 것들
@Test
@DisplayName("테스트 케이스")
void test() {
Assertions.assertAll(
() -> assertFalse(true, "Exception!"),
() -> {
ImprovedBubbleSort testObj = null;
assertNotNull(testObj, "Object is null!");
}
);
}
Java
복사