당신의 말처럼 "실제로 얼마나 많은 시간이 걸릴지에 따라 달라집니다"라는 질문에 대답하기가 쉽지 않습니다. 여기에 몇 가지 의견이 있지만 다음과 같습니다
시험 실시 후 :없음
프로그래머로서, 당신은 서로 상단에 쌓아 여러 마감 시간과 비용이 많이 부족한 자원입니다. 이렇게 효과적으로, 이것은 결코 시험하지 않는다는 것을 의미합니다. 한 코드 덩어리를 구현 한 후에는 다음 코드 덩어리로 넘어 가서 "시간이있을 때"(시간이 없다) 테스트를 작성하기 위해 다시 돌아 오는 것을 의미합니다.
언급 한 문제도 있습니다. 코드가 작성된 후 모든 테스트를 수행하고 테스트에서 근본적으로 잘못된 것을 발견하면 다시 돌아가서 모든 코드와 모든 테스트를 수정해야합니다.
테스트 구현 동안 : 당신이 그것을 위해 리듬을 일단예
이 방법은 실제로 정말 도움이됩니다. 약간의 클래스를 작성한 다음 단위 테스트를 작성하고 완료 될 때까지 테스트 및 코드를 지속적으로 수정하십시오. 나는 실제로 테스트없이 코드를 작성하는 것보다 실제로 빠르다 고 생각한다.
또한 큰 프로젝트에서 작업 할 때 특히 유용합니다. 모듈 테스트를 실행하여 작은 모듈이 작동하는지 즉시 확인하십시오. 작은 모듈이 작동하는지 확인하기 위해 전체 응용 프로그램을 빌드하고로드하는 데 몇 분이 걸릴 수 있습니다. 또한 집중력을 방해 할 수 있습니다 (최소 10 분 소요).
무엇을 테스트하려면 다음가능한 한 많이
100 % 테스트 커버리지는 아마 실제 적이 없다. 그러나 절대적으로 프로그램의 중요한 부분, 수학적 계산 또는 많은 비즈니스 논리를 수행하는 것들을 테스트하십시오. 가능한 한 남은 부분을 모두 테스트하십시오. "toString()"함수를 테스트 할 이유가 없습니다. 비즈니스 논리 나 그 어떤 것에 비판적인 것이 아니라면 말입니다.
또한 테스트는 가능한 한 간단하게하십시오. 입력 및 출력 만하십시오. 대부분의 테스트 기능은 2 ~ 3 행입니다. 너무 많은 조합이 있기 때문에 기능을 테스트하기가 어렵다면 기능을 조금씩 분해해야 할 수도 있다는 신호입니다. 가장자리 사례와 "불가능한"시나리오를 테스트하십시오.
너무 많은 질문 :) - 자동화 된 테스트는 작동해야하는 모든 테스트 케이스를 시뮬레이트 할 필요가 없습니다. 통합 테스트 케이스는 종단 간 자동화 테스트에서 다룰 수 있습니다. 그리고 네, 당신이 원하는 모든 코드를 테스트해야합니다. – Gishu