블랙박스 테스트

사용자 입장에서의 테스트이므로, 코드 내부 구현 사항을 알지 못한 채 기능의 정상적인 동작을 평가

화이트박스 테스트

프로그래머가 직접 자신이 작성한 코드의 기능을 확인하기 위해 실시하는 테스트, 코드 내부의 모든 동작을 알고 있는 상태에서 진행하므로 버그 발견 가능

이상적으로는 두 테스트 모두 골고루 촘촘하게 이루어져야 한다

TDD란 다음의 절차를 따르는 개발방식.

테스트 케이스 작성 → 코드 작성하며 테스트 케이스 통과시키기 → 새로운 테스트 케이스 작성, 보충 → 이 과정 계속 반복

벤치마킹

golang에서 자체적으로 지원하는 코드 성능 측정 모듈이다.

...
func fibonacchi(n int) int {
	if n < 0 {
		return 1
	}
	
	if n < 2 {
		return n
	}

	return fibonacchi(n - 2) + fibonacchi(n - 1) 
}