에서 엄격 캡쳐 테스트 사례에 대한 단위 테스트
-
08-06-2019 - |
문제
이제 우리는 간단한 함수 정의에서 의사의 언어입니다.
List<Numbers> SortNumbers(List<Numbers> unsorted, bool ascending);
우리는 전달에서는 숫자를 지정하는 부울을 오름차순 또는 내림차순으로 정렬 순서입니다.에 반환을,우리는 얻을 정렬된 목록을의 숫자가 있습니다.
내 경험에 어떤 사람들은 더 나은에서 캡처하는 경계 조건보다는 다른 사람입니다.이 질문은"어떻게 알 수 있을 때는'짓'를 캡처하 테스트 사례"?
우리가 시작할 수 있는 목록은 경우에는 지금과 몇몇 똑똑한 사람 것입니다 의심 할 여지없이 생각하는'한'더 경우에는 적용되지 않습니다 어떤 이전.
해결책
지 않아 너무 많은 시간을 낭비하려고 생각의 모 경계 조건입니다.귀하의 테스트를 할 수 없을 잡아 모 버그를 처음.아이디어를 테스트 매우 좋, 한 다음 각 시간을 버그 가 표면,새로운 테스트를 위해 특별히는 버그 당신에게서 듣고 그것을 다시합니다.
다른 참고 싶게 만들에 대한 코드 검사 도구입니다.에서 같은 언어는 C#또는 자바의 많은 get/set 및 이와 유사한 방법은,당신 지 촬영 한 100%범위입니다.즉,당신은 너무 많은 시간을 낭비하에 대한 테스트를 작성하는 사소한 코드입니다.당신 만 원하는 100%범위에서 복잡한 사업 논리입니다.는 경우 귀하의 전체 코드베이스에 가까운 70-80%범위에,당신은 좋은 일을하고있다.는 경우에 당신의 코드 검사 도구를 사용 여러 개의 적용 지표,최고의 중 하나는'블록 적용'하는 조치의 적용 범위의 기본 블록'.다른 유형은 클래스와 방법을 적용(는 제공하지 않으로 많은 정보)과 라인 범위(선택할 때 더 많은 유연성을 제공합 곡물).
다른 팁
어떻게 알 수 있을 때는'짓'를 캡처하 테스트 사례?
당신은하지 않습니다.당신이 얻을 수 있습니 100%를 제외한 대부분의 사소한 경우입니다.또한 100%검사(의 라인 경로,다)당신이 말해주지 않으면 당신은 모든 경계 조건입니다.
가장 중요한 것은,테스트되지 않은 경우 쓰기고 합니다. 각 시간에 당신이 버그를 발견하고,쓰고 추가적인 테스트입니다. 체크인 실패하는 원래 체크 프로그램과 함께 프로그램을 수정 및 추가 테스트를 설정합니다.
에서 발췌 예술의 소프트웨어를 테스트 여 Glenford J.마이어스:
- 는 경우에는 입력 조건을 지정하는 값의 범위 작성 테스트 사례에 대한 끝의 범위,그리고 잘못된 입력의 테스트 사례한 상황에서 그냥 넘어서 끝납니다.
- 는 경우에는 입력 조건을 지정한 값을 쓰 테스트 사례에 대한 최소 및 최대 수의 값이고 하나 아래를 넘어 이러한 값입니다.
- 사용 지침서 1 위해 각각 출력 상태입니다.
- 사용 지침서 2 위해 각각 출력 상태입니다.
- 만약 입력이나 출력 프로그램은 주문정에 주의를 집중하는 첫 번째와 마지막 요소의 설정합니다.
- 또한,사용하여 당신의 독창성을 검색에 대한 다른 경계 조건
(나만 붙여 최소한 저작권을 이유입니다.)
포인트 3.4.위에서 매우 중요합니다.사람들을 잊지하는 경향이 경계 조건에 대한 출력이 있습니다.5.괜찮습니다.6.정말 도움이 되지 않:-)
짧은 시험
이보다 더 어려운 그것은 보인다.마이어스 제공 테스트:
프로그램을 읽는 세 개의 정수 값을 입력합니다.세 값을 나타내의 길이의 측면은 삼각형이다.프로그램이라는 메시지를 표시하는지 여부를 나타내는 삼각형은 부,이등변,또는 정삼.
을 기억하는 부 삼각형 중 하나는 두 개의 측면은 동등한 반면 이등변삼각형은 동일한 두면,그리고 정삼각형은 세 가지 측면의 동일한 길이 있습니다.또한,각 반대 동등한 측면에서 이등변삼각형 또는 동등한(그것은 또한 다음과 같습니다면 반대의 동일한 삼각형의 각도는 동일),그리고 모든 각도에서는 정삼각형이 같습니다.
쓰의 테스트 사례.얼마나 많은 있습니까?마이어 요 14 에 대한 질문에 당신의 테스트 설정과 보고서는 고도의 자격을 갖춘 전문가 프로그램 평균 7.8 가능한 14.
실용적인 관점에서,내가 목록을 만들의 테스트는 믿을 통과해야하기 전에 합격입니다.나는 이러한 테스트 및 자동화가 가능합니다.에 기반한 시간이 얼마나 나가 추정한 작업 또는 시간이 얼마나 나에게 주어진 기간 연장을 테스트 범위를 포함하는 품목과해야 하는 이전에 합격입니다.물론,인해야는 주관적이다.그 후 업데이트 자동화 테스트로 버그를 발견되었습니다.
@스
나는 당신이 그것을 못을 박았,코드 범위를 보는 것이 중요하를 보시려면 어떻게"done"당신은,그러나 내가 생각하는 100%비트 비현실적인 목표가 있었다.을 위해 노력 75-90%줄 것이다 당신은 매우 좋은 범위에 바다로 가지 않고...지 않 테스트에 대한 순수 위해 타격의 100%기 때문에,그 시점에서 당신은 단지 당신의 시간을 낭비하고 있다.
좋은 코드 검사 도구를 정말 도움이 됩니다.
100%범위는 것을 의미하지 않는 그것은 확실히 적절하게 테스트,하지만 그것은 좋은 지표이다.
습니다.Net NCover 의 아주 좋은,하지만 더 이상 오픈 소스입니다.
@마이크톤- 그래도 해야되었다"고 범위"-우리는 목표 80%최소한,과거에 대한 95%그것은 일반적으로 체감이 있는 경우에 특히 벨트'n'중괄호 코드입니다.