문제

.NET 또는 Java 프로젝트라고 말하는 단위 테스트 사례를 생성하는 좋은 도구가 있습니까? 거의 100% 코드 범위를 포괄하는 단위 테스트 케이스를 생성합니다. 테스트 사례의 수는 코드의 순환 복잡성에 직접 비례 할 수 있습니다 (루프의 중첩 및 조건이 높을수록 사이클로 음성 복잡성이 높을수록 테스트 사례 세트가 더 커집니다. 나는 그것이 완전히 작동 할 것으로 기대하지는 않지만 (유닛 테스트를 작성하고 생성 된 후에 실행할 것입니다), 수정해야 할 테스트 케이스에서 템플릿 스타일을 가질 수 있다고 말할 것입니다. 의도 한 요구에 맞는 사례. 그러나 적절한 설정 및 분해 방법이 있어야하며 종속성이 있으면 단위 테스트를위한 모의 개체를 사용해야하는지 여부를 감지하기에 충분합니다. 그렇다면 존재하는 도구가 있습니까?

도움이 되었습니까?

해결책

.NET의 경우 Microsoft가 있습니다 PEX .NET 4.0의 주류가되기를 바랍니다. 코드 계약. 채널 9 비디오를 보는 것이 좋습니다.

이런 종류의 일은 매우 데이터 중심 클래스에 매우 좋다는 사실을 알 수 있습니다. 파서 등. 시작하십시오 그럼에도 불구하고 당신의 무기고에 가질 수있는 유용한 도구입니다.

다른 팁

C# (또는 .net)의 경우, PEX 그 도구 일 수 있습니다. 그것은 IL 레벨에서 작동하며 모든 지점으로 강제로 강요하려고 시도합니다. BCL 등의 광범위한 버그를 성공적으로 밝혀 냈습니다.

반복적 인 것처럼 보이지만 임의의 테스트 생성 프레임 워크에도 관심이있을 수 있습니다. 연구 결과에 따르면 커버리지를 기반으로 체계적인 접근 방식보다 버그를 찾는 데 효과적 일 수 있습니다.

체크 아웃 Randoop .NET와 Java의 경우. 다소 임의의 메소드 호출 시퀀스를 생성하고 계약, 충돌 등을 점검하여 작동합니다.

또한 빠른 확인, 예 : Java, Scala, F#의 경우. PEX와 더 유사하며, 즉 사양 또는 매개 변수화 된 단위 테스트를 제공하며, 도구는 여러 생성 된 입력 인수를 확인합니다.

나는이 "매개 변수화 된"단위 테스트를 작성하는이 "매개 변수화 된"방법이 실제로 60% 이상에서 훨씬 더 자연스럽고 더 많은 버그를 발견한다는 것을 발견했습니다.

Java의 경우 확인할 수 있습니다 Evosuite, 오픈 소스이며 현재 활동적입니다 (면책 조항, 저는 기고자 중 하나입니다). 또한 관련이 있습니다 의문 더 많은 도구 목록.

Java의 경우 시도하십시오 주니트 툴. 좋은 문서와 함께 자체 Eclipse 플러그인이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top