2

내가 끝내는 대부분의 공연은 유닛 테스트가 거의 없거나 전혀 없습니다. 일반적으로 단위 테스트로 설명되는 것은 실제로 통합 테스트이며 개발자 시스템에서 거의 실행되지 않습니다. 나는 보통 두 사람의 차이를 설교하고 사람들이 매우 집중된 단위 테스트를 작성하고 나중을 위해 통합 테스트를 남겨 두도록 노력하여 전도를 시작합니다. 즉 충분한 사람들이 단위 테스트를 작성하여 통합 작성에 옮길 수 있습니다. 테스트. 수락 또는 시스템 수준 테스트는 일반적으로 개발자가 수동으로 처리 한 다음 품질 관리 부서에서 처리합니다.단위, 통합 또는 수락 테스트에 더 집중합니까?

제 질문은 애자일 환경 밖에서 작업 할 때 단위, 통합 및 수락 테스트에 얼마나 많은 노력을 기울 였는지, 그리고 가장 많은 가치를 보았습니까?

답변

1

매우 자주이 질문에 대한 답은 극단적입니다. 당신이 거의 100 % 범위를 가져야하거나 단위 테스트가 어리 석다는 것처럼 ...

나는 균형을 찾아야한다고 생각합니다.

클래스의 논리가 실패 할 수 있다는 의심의 여지가있는 곳에 단위 테스트를 사용하십시오. 단위 테스트는 격리 된 클래스에서 수행해야하므로 클래스에서 사용하는 서비스를 모의 할 필요가 있음을 의미합니다. 단위 테스트를 통해 클래스가 여전히 예상대로 작동하기 때문에 리팩터링을 수행하는 것이 안전 할 것입니다.

응용 프로그램이 제대로 작동하는지 확인하려면 통합 테스트가 필요합니다. 단위 테스트 수를 가질 수는 있지만 응용 프로그램이 올바르게 작동한다는 것을 의미하지는 않습니다.

동의 테스트와 관련하여 전적으로 동의합니다. 끝 (스프린트)에서 수행하고 부분적으로 수동으로 수행해야합니다.

0

나는 그것을 혼합 할 수 없다고 생각합니다. 설명 된 각각의 테스트에는 다른 목표가 있습니다.

단위 테스트는 개발자 대상입니다. 그것들은 모듈의 구현에 앞서 또는 병렬로 모듈 테스트를 작성하여 모듈이 작동하는지 또는 모든 인터페이스와 요구 사항이 충족되는지 확인합니다.

통합 테스트는 테스트 센터에서 개발 한 후에 수행됩니다. 개발 중에는 단위 테스트와 같이 단일 모듈을 테스트하지 않습니다. 통합 테스트는 여러 모듈 간의 상호 작용을 다루고 있습니다.

수락 테스트에는 종종 고객이 모든 요구 사항이 충족되고 기능이 지정된대로 구현되었는지 확인해야합니다.

+0

왜 테스트 센터에서 개발 한 후에 통합 테스트를 수행한다고합니까? 통합 테스트는 개발자 테스트가 될 수 있으며, 단일 유닛 만 다루지는 않습니다. – tddmonkey

+0

맞습니다. 대부분의 경우 개발자는 테스터가 될 것입니다. 그러나 개발과 테스트가 다른 사람에 의해 수행되는 것이 가장 좋습니다. 개발자는 그가 중립적 인 사람처럼 작성한 응용 프로그램에 대해 완전히 다른 견해를 가지고 있습니다. – Alexander

+0

통합 테스트는 항상 팀 리드가있는 상태에서 (또는 팀 리더와 통신하면서) 수행되어야합니다. 이유를 설명하기 위해 답을 수정했습니다. –

2

처음부터 단위 테스트를 시도합니다. 나는 세계에서 가장 큰 TDD 팬은 아니지만, 실제로는 단위 테스트에서 하프 톤을 사용합니다. 필자는 일부 마술 요정이 모든 단위 테스트가 작동하기 때문에 통합 테스팅이 날아가는 색으로 진행될 것이라고 확신하지는 않지만 꽤 가까이 다가 간다고 생각하지 않습니다.

수용 테스트의 경우 단위 테스트가 통과 (또는 실패 할 것으로 예상되는 경우 실패) 할 때까지는 어떤 것을 보지 않을 것입니다. 나는 단위 테스트의 완전한 부족을 받아 들일 것이라는 많은 경우를 생각할 수 없다. 애플리케이션의 일부 핵심 라이브러리가 업데이트되면 어떻게 될까요?

많은 사람들이 단위 테스트가 개발자 중심적이며 정확할 것이라고 주장합니다. 그러나, 단위 테스트의 부족 자체에 모든 지표입니다 ..수용 테스트를하고있는 한 개발자 :) 될 일이 특히

편집 :

통합 테스트는 나에게 중요하다. 우리는 일반적으로 매우 엄격한 사양으로 물건을 만듭니다. 통합 테스트가 실패하면 (이전에 통과 한 후) 스코프 크리프의 강력한 표시기가 실패합니다. 그런 일이 생기면 누군가 그것을 고치기 전에 약간의 소음을 만들어야합니다.

+0

+1 마법의 요정 문장. – Epaga

1

단위 테스트는 벽의 개별 벽돌을 테스트하는 것과 같고 기능/통합 테스트는 안정성을 위해 전체 벽을 테스트하는 것과 같습니다.

단위 테스트는 개발자가 예상 한대로 클래스를 수행하고 있는지 확인하는 데 필요합니다.

기능/통합 테스트는 실제로 특정 기능을 제공한다는 "큰 그림"목표를 놓치지 않도록하기 위해 필요합니다.

그래서 IMHO, 모두이 반드시 필요하며 ROI 관점에서 둘 중 하나를 남겨 두는 것이 좋습니다.

관련 문제