2016-10-19 3 views
0

우리는 어플리케이션 유닛을 테스트했으며 로봇을 사용하여 기본 기능을 검증하는 두 가지 시스템 테스트가 있습니다. 오이를 사용하여 실행하는 작은 오이 (Gherkin)의 .feature 파일과 같은 비즈니스 요구 사항 (수락 테스트)도 있습니다.단위 테스트는 오이 수용 테스트

우리는 나머지 기능을 사용하여 통합 테스트로 구현하기 시작했습니다. 모든 기능이 기본 기능에 적합했습니다. 문제는 더 자세한 시나리오를 구현하는 것입니다. 검증해야 할 일부 사항은 DB에 저장되지 않거나 끝점에서 반환되지 않습니다.

단위 테스트로 이러한 시나리오를 구현하여이 기능을 테스트하는 것이 정말 쉽지만 좋은 연습인지 확실하지 않습니다.

답변

0

나는 "BDD를 사용하는 것과 동시에 단위 테스트를 사용해도 괜찮습니까?"라고 질문합니다.

제 생각에는 이것들이 서로 보완하는 두 가지 기술이라는 것입니다. 하나의 기술을 사용하는 것이 더 쉬운 경우 해당 기술을 해당 특정 경우에 사용하십시오.

작동중인 소프트웨어를 제공하는 모든 것을 사용하십시오. 작업 소프트웨어는 특정 도구를 사용하지 않고 목표입니다.

+0

그건 내가 의미하는 것이 아닙니다.내 질문은 "acceptance tests suite의 일부로 단위 테스트를하는 것이 좋습니다"입니다. 기본적으로 "acceptance tests는 블랙 박스 테스트 여야합니다"라는 말로 요약 할 수 있습니다. 비즈니스 요구 사항 중 하나에 대해 단일 장치가 단독으로 책임이있는 경우 별도로 테스트하는 것이 좋으며 또는 어쨌든 전체 응용 프로그램을 테스트해야합니까? –

+1

그렇다면 내 대답은 예스입니다. 특정 재산의 존재를 보장하기 위해 단일 단위 테스트를 갖는 것이 좋습니다. 문제가 이제 신뢰 문제로 바뀝니다. 이해 관계자가 단일 단위 테스트, 즉 유효성을 검증 할 수없는 테스트가이 속성이 항상 사실로 유지되는지 확인합니다. 그들이 이러한 상황에 만족한다면, 계속해서 사용하십시오. –

1

나는 당신과 사업간에 앞뒤로 갈 필요가 있다고 생각한다. 일반적으로 해피 패스/네거티브 시나리오에서 기능이 엔드 투 엔드로 작동하는지 입증하기 위해 몇 가지 통합 테스트를 거치지 만, 비용이 많이 들고 (시간이 많이 걸리고, 특히 통합 테스트를 실행할 때). 그게 모든 시나리오를 다루는 단위 테스트입니다. 이를 비즈니스에 전달하면 합격 기준의 각 하나를 통합 테스트로 구현하는 대신 자신의 판단을 신뢰하는 법을 배울 수 있습니다.

0

단위 테스트로 이러한 시나리오를 구현하여이 기능을 테스트하는 것이 정말 쉽지만 좋은 연습인지 확실하지 않습니다.

구현되지 않은 경우 가능한 한 빨리 수행하는 것이 좋습니다.하지만 테스트 범위에주의해야합니다. 또한 오이를 사용하여 단위 테스트 노력을 돕는 데 아무런 문제가 없지만 단위 테스트를 더 큰 범위 허용 테스트로 만드는 실수에 빠지지 마십시오. 가능한 한 직접적으로 유지하십시오. 그런 다음 코드는 아마 더해야

우리가 DB에 지속 또는 엔드 포인트

에 의해 반환되지 않습니다 확인해야 할 몇 가지 :

당신은 이러한 시나리오 중 일부의 복잡성을 언급 다양한 수준에서 테스트 가능/유지 보수 가능. 몇 가지 기술을 사용하여이를 달성 할 수 있습니다. 사용하는 언어에 따라 mockito spy과 유사한 도구를 사용하여 객체의 상호 작용을 간첩 할 수 있습니다. 그렇지 않으면 검사 할 방법이 없지만 Unit 및 Mock 검사와 같은 적절한 검사 범위에서 수행하는 것이 좋습니다.

또한 주어진 흐름의 다른 부분을 다른 테스트 레벨로 커버하면 완벽하다고 생각해보십시오. 이상적으로는 단위 테스트로 대부분을 다룰 것입니다.

단위 테스트에서 가장 복잡한 단위 부분을 계속 유지하면서도 비즈니스에서 요구하는 수준보다 높은 수용 시나리오를 유지하면서도 테스트에서 깊은 주장을하지는 않지만 요구할 수 있습니다.