저장소 테스트에 대한 요구 사항으로도 단위 테스트에 대한 최소 백분율 코드 적용을 의무화해야한다면 무엇입니까?
당신이 당신의 대답에 어떻게 도달했는지 설명하십시오 (당신이 한 모든 것이 숫자를 고르면 나 혼자서 할 수 있었을 것입니다).
저장소 테스트에 대한 요구 사항으로도 단위 테스트에 대한 최소 백분율 코드 적용을 의무화해야한다면 무엇입니까?
당신이 당신의 대답에 어떻게 도달했는지 설명하십시오 (당신이 한 모든 것이 숫자를 고르면 나 혼자서 할 수 있었을 것입니다).
답변:
Alberto Savoia의이 글은 그 질문에 정확하게 답합니다 (그것에 아주 재미있는 방식으로)!
http://www.artima.com/forums/flat.jsp?forum=106&thread=204677
테스트 범위에 대한 Testivus
어느 날 아침, 프로그래머는 위대한 주인에게 물었습니다.
“일부 단위 테스트를 작성할 준비가되었습니다. 어떤 코드 범위를 목표로 삼아야합니까?”
위대한 주인이 대답했다.
"범위에 대해 걱정하지 말고 좋은 테스트를 작성하십시오."
프로그래머는 미소를 지으며 절을하고 떠났다.
...
그날 나중에 두 번째 프로그래머가 같은 질문을했습니다.
위대한 주인은 끓는 물 냄비를 가리키며 말했습니다.
“그 냄비에 몇 쌀의 쌀을 넣어야합니까?”
프로그래머가 당황스럽게 보며 대답했다.
“어떻게 말할 수 있습니까? 먹이를 줄 사람의 수, 배고픈 사람, 다른 음식을 제공하는 것, 사용할 수있는 쌀의 양 등에 달려 있습니다.”
“정확하게”라고 위대한 주인이 말했습니다.
두 번째 프로그래머는 미소를 지으며 절을하고 떠났다.
...
하루가 끝날 무렵, 세 번째 프로그래머가 와서 코드 범위에 대해 같은 질문을했습니다.
"80 % 이상!" 주인이 맹렬한 목소리로 대답하여 주먹을 탁자 위에 두드렸다.
세 번째 프로그래머는 미소를 지으며 절을하고 떠났다.
...
이 마지막 답변 후, 젊은 견습생이 위대한 주인에게 다가 갔다.
“훌륭한 주인님, 오늘 저는 코드 적용에 관한 동일한 질문에 세 가지 다른 답변을 들었습니다. 왜?"
위대한 주인이 의자에서 일어 섰습니다.
"나와 함께 신선한 차를 마시고 그것에 대해 이야기합시다."
그들이 뜨거운 녹차를 마시면서 컵을 채운 후 위대한 주인이 대답하기 시작했습니다.
“첫 번째 프로그래머는 새롭고 테스트를 시작했습니다. 지금은 코드가 많고 테스트가 없습니다. 그는 갈 길이 멀다. 현재 코드 범위에 초점을 맞추는 것은 우울하고 쓸모가 없습니다. 그는 테스트를 작성하고 실행하는 데 익숙해지는 것이 좋습니다. 그는 나중에 보험 적용에 대해 걱정할 수 있습니다.”
반면에 두 번째 프로그래머는 프로그래밍과 테스트에 모두 상당한 경험이 있습니다. 냄비에 쌀을 몇 개나 넣어야하는지 대답하면서 필요한 검사 량은 여러 가지 요인에 달려 있으며, 그녀는 내가하는 것보다 더 잘 알고 있다는 사실을 알게되었습니다. 결국 그녀의 코드입니다. . 하나의 단순하고 답이 없으며, 그녀는 진실을 다루고 그와 함께 일할만큼 똑똑합니다.”
젊은 견습생은 이렇게 말했습니다.“단순한 대답이 없다면 왜 세 번째 프로그래머에게 '80 % 이하로 대답하셨습니까? '
위대한 주인은 그의 배가 너무 강하게 크게 웃었고, 녹차보다 더 많이 마셨다는 증거가 위아래로 퍼졌다.
"세번째 프로그래머는 간단한 답변 만 원합니다 – 간단한 답변이없는 경우에도…
젊은 견습생과 어리석은 위대한 주인은 명상적인 침묵 속에서 차를 마셨다.
100 % 적용 범위를 목표로하는 경우 (모든 기능의 100 % 테스트 대신) Code Coverage는 잘못된 측정 기준입니다.
따라서 자신이나 개발자가 자신의 코드를 통해 모든 경로를 철저히 준수해야합니다. 실용적이고 마법의 100 % 적용 범위를 쫓지 마십시오. 코드를 추가하면 90 % 이상의 적용 범위를 보너스로 받아야합니다. 코드 커버리지를 사용하여 놓친 코드 덩어리를 강조 표시하십시오 (TDD를 사용하는 경우에는 발생하지 않아야합니다.
코드 적용 범위는 크지 만 기능 적용 범위가 훨씬 좋습니다. 나는 내가 쓰는 모든 한 줄을 다루는 것을 믿지 않습니다. 그러나 나는 내가 제공하고자하는 모든 기능에 대해 100 % 테스트 범위를 작성한다고 믿습니다.
테스트에서 다루지 않은 코드가 있는지는 신경 쓰지 않지만 코드를 리팩터링하고 다른 동작을하게 될지 걱정합니다. 따라서 100 % 기능 범위가 유일한 목표입니다.
받아 들여진 대답은 좋은 지적입니다. 모든 프로젝트에 표준으로 적합한 단일 숫자는 없습니다. 그러한 표준이 필요없는 프로젝트가 있습니다. 제 생각에 수용 된 답변이 부족한 부분은 주어진 프로젝트에 대해 어떻게 결정을 내릴 수 있는지 설명하는 것입니다.
그렇게하겠습니다. 저는 테스트 엔지니어링 전문가가 아니며 더 많은 정보에 대한 답변을 보게되어 기쁩니다.
첫째, 왜 그러한 표준을 먼저 적용하고 싶습니까? 일반적으로 프로세스에 경험적 신뢰를 도입하려고 할 때. "경험적 확신"이란 무엇입니까? 글쎄, 진짜 목표 정확성 . 대부분의 소프트웨어의 경우 모든 입력에서이를 알 수 없으므로 코드가 잘 테스트 되었다고 말합니다 . 이것은 더 잘 알려져 있지만 여전히 주관적인 표준입니다. 표준을 충족했는지 여부에 대해 항상 논의 할 수 있습니다. 이러한 토론은 유용하고 발생해야하지만 불확실성을 드러냅니다.
코드 적용 범위 는 객관적인 측정입니다. 일단 적용 범위 보고서를 보면 표준을 충족했는지 여부에 대한 모호성이 없습니다. 정확성을 증명합니까? 전혀 그렇지는 않지만 코드가 얼마나 잘 테스트되었는지와 분명한 관계가 있으며, 이는 정확성에 대한 신뢰를 높이는 가장 좋은 방법입니다. 코드 적용 범위는 우리가 관심을 갖는 측정 할 수없는 특성에 대한 측정 가능한 근사치입니다.
경험적 표준이 가치를 추가 할 수있는 몇 가지 구체적인 사례 :
코드 적용 범위는 단일 메트릭이 아닙니다. 적용 범위를 측정하는 방법에는 여러 가지가 있습니다. 표준을 설정할 수있는 것은 어느 표준을 만족시키기 위해 사용하고 있는지에 따라 다릅니다.
표준을 설정하는 데 사용할 수있는 두 가지 일반적인 측정 항목을 예로 사용하겠습니다.
if
가있는 경우 두 분기를 모두 평가 했습니까? 이렇게하면 코드 의 논리적 적용 범위 를 더 잘 이해할 수 있습니다. 코드에서 가능한 경로 중 몇 개를 테스트 했습니까?
다른 측정 항목이 있습니다 (줄 적용 범위는 명령문 적용 범위와 유사하지만 예를 들어, 여러 줄 명령문에 대해 다른 숫자 결과를 생성합니다. 조건부 적용 범위 및 경로 적용 범위는 분기 적용 범위와 유사하지만, 프로그램 실행이 발생할 수 있습니다.)
마지막으로, 원래 질문으로 돌아갑니다. 코드 적용 표준을 설정하면 그 숫자는 무엇입니까?
이 시점에서 우리가 시작할 근사치에 대해 이야기하고 있음을 분명히 알기 때문에 우리가 선택한 숫자는 본질적으로 근사치입니다.
어떤 숫자를 선택할 수 있습니다 :
실제로 80 % 미만의 숫자는 보지 못했고 숫자를 설정할 사례를 상상하기가 어렵습니다. 이러한 표준의 역할은 정확성에 대한 신뢰를 높이는 것이며 80 % 미만의 숫자는 특히 자신감을 불러 일으키지는 않습니다. (예, 이것은 주관적이지만 다시 한 번 표준을 설정할 때 주관적인 선택을 한 다음 앞으로 객관적인 측정을 사용하는 것이 좋습니다.)
위의 내용은 정확성이 목표라고 가정합니다. 코드 범위는 정보 일뿐입니다. 다른 목표와 관련이있을 수 있습니다. 예를 들어, 유지 보수성에 관심이있는 경우 느슨한 결합에 관심이있을 수 있습니다. 느슨한 결합은 테스트 가능성에 의해 입증 될 수 있으며, 코드 커버리지에 의해 (특정 방식으로) 측정 될 수 있습니다. 따라서 코드 커버리지 표준은 "유지 보수성"의 품질을 근사화하기위한 경험적 기초를 제공합니다.
내가 가장 좋아하는 코드 범위는 별표로 100 %입니다. 별표는 특정 줄을 "카운트하지 않는"줄로 표시 할 수있는 도구를 선호하기 때문에 발생합니다. "계산 된"라인의 100 %를 커버하면 완료됩니다.
기본 프로세스는 다음과 같습니다.
이렇게하면 나와 공동 작업자가 새 코드를 추가하거나 나중에 테스트를 변경하는 경우 중요한 내용을 놓쳤는 지 알려주는 밝은 선이 있습니다. 적용 범위가 100 % 아래로 떨어졌습니다. 그러나 다양한 테스트 우선 순위를 처리 할 수있는 유연성도 제공합니다.
// @codeCoverageIgnore
커버리지에서 제외됩니다.
공유하고 싶은 테스트 범위에 대한 또 다른 열망이 있습니다.
우리는 트위터를 통해 700 단위 테스트로 20 %의 코드 범위 만 가지고있는 거대한 프로젝트를 가지고 있습니다 .
Scott Hanselman 은 지혜로운 말로 대답했습니다 .
20 %가 맞습니까? 사용자가 가장 많이 이용하는 코드를 나타내는 것이 20 %입니까? 테스트를 50 개 더 추가하고 2 % 만 추가 할 수 있습니다.
다시, 그것은 코드 범위 답변 에 대한 내 Testivus 로 돌아갑니다 . 냄비에 밥을 얼마나 넣어야합니까? 때에 따라 다르지.
단위 테스트가 처음부터 개발을 주도한 잘 설계된 시스템의 경우 85 %가 매우 적습니다. 테스트 가능하도록 설계된 소규모 수업은 그보다 더 잘 다루기가 어렵지 않아야합니다.
이 질문을 다음과 같이 무시하는 것은 쉽습니다.
사실이지만 코드 범위에 대해 몇 가지 중요한 사항이 있습니다. 내 경험상이 지표는 올바르게 사용될 때 실제로 매우 유용합니다. 나는 모든 시스템을 보지 못했으며 실제 범위를 추가하는 코드 범위 분석을보기 어려운 곳에 많은 시스템이 있다고 확신합니다. 코드는 다르게 보일 수 있으며 사용 가능한 테스트 프레임 워크의 범위는 다를 수 있습니다.
또한, 나의 추론은 주로 매우 짧은 테스트 피드백 루프에 관한 것입니다. 가장 짧은 피드백 루프를 개발하는 제품의 경우 클래스 테스트에서 프로세스 간 신호에 이르는 모든 것을 다루는 매우 유연합니다. 전달 가능한 하위 제품을 테스트하는 데 일반적으로 5 분이 걸리며 이러한 짧은 피드백 루프의 경우 실제로 테스트 결과 (특히 여기에서보고있는 코드 범위 메트릭)를 사용하여 저장소에서 커밋을 거부하거나 수락 할 수 있습니다.
코드 커버리지 메트릭을 사용할 때 반드시 충족되어야하는 고정 된 (임의의) 백분율을 가져서는 안됩니다. 이렇게한다고해서 코드 커버리지 분석의 실질적인 이점은 제 생각에는 없습니다. 대신 다음 측정 항목을 정의하십시오.
새로운 코드는 LWM보다 높지 않고 HWM보다 낮은 경우에만 추가 할 수 있습니다. 즉, 코드 적용 범위 를 줄일 수 없으며 새로운 코드를 적용해야합니다. 내가 말해야한다고 말해야하는 것을 주목하라 (아래 설명).
그러나 이것이 더 이상 사용하지 않는 오래된 잘 테스트 된 쓰레기를 치울 수 없다는 것을 의미하지 않습니까? 그렇기 때문에 이런 것들에 대해 실용적이되어야합니다. 규칙을 위반해야하는 상황이 있지만 일반적인 일상적인 통합을 위해서는 이러한 메트릭스가 매우 유용하다는 경험이 있습니다. 다음 두 가지 의미를 내포합니다.
테스트 가능한 코드가 승격됩니다. 새 코드를 추가 할 때는 코드를 테스트 할 수 있도록 노력해야합니다. 테스트 케이스로 코드를 모두 처리해야하기 때문입니다. 테스트 가능한 코드는 일반적으로 좋은 것입니다.
레거시 코드에 대한 테스트 범위는 시간이 지남에 따라 증가하고 있습니다. 새 코드를 추가하고 테스트 사례로 처리 할 수없는 경우 LWM 규칙을 피하기 위해 일부 기존 코드를 다루려고 시도 할 수 있습니다. 때때로 필요한 부정 행위는 레거시 코드의 적용 범위가 시간이 지남에 따라 증가 할 것이라는 긍정적 인 부작용을 제공하여 실제로 이러한 규칙을 엄격하게 시행하는 것처럼 보입니다.
그리고 피드백 루프가 너무 길면 통합 프로세스에서 이와 같은 것을 설정하는 것이 실용적이지 않을 수 있습니다.
코드 커버리지 메트릭의 두 가지 일반적인 이점에 대해서도 언급하고 싶습니다.
코드 적용 범위 분석은 정적 코드 (예 : Lint)와 달리 동적 코드 분석의 일부입니다. 동적 코드 분석 중에 발견 된 문제점 (purify 제품군, http://www-03.ibm.com/software/products/en/rational-purify-family 와 같은 도구 )은 초기화되지 않은 메모리 읽기 (UMR)와 같은 문제입니다. 메모리 누수 등. 이러한 문제는 코드가 실행 된 테스트 케이스에 의해 커버되는 경우에만 발견 될 수 있습니다 . 테스트 사례에서 다루기가 가장 어려운 코드는 일반적으로 시스템의 비정상 사례이지만 시스템이 정상적으로 실패하기를 원하면 (예 : 충돌 대신 오류 추적) 비정상 사례를 다루는 데 약간의 노력을 기울일 수 있습니다. 동적 코드 분석에서도 마찬가지입니다. 약간의 불운으로 UMR은 segfault 또는 더 나쁜 결과를 초래할 수 있습니다.
사람들은 새로운 코드를 100 % 유지하는 데 자부심을 갖고 다른 구현 문제와 비슷한 열정으로 테스트 문제에 대해 토론합니다. 이 기능을보다 테스트 가능한 방식으로 작성하려면 어떻게해야합니까? 이 비정상적인 사건 등을 다루려고 어떻게 할 것입니까?
그리고 완전성에 대한 부정적인.
이것이 완벽한 세계라면 코드의 100 %가 단위 테스트에 의해 커버 될 것입니다. 그러나 이것은 완벽한 세상이 아니기 때문에 당신이 원하는 시간의 문제입니다. 결과적으로 특정 비율에 중점을 두지 말고 중요한 영역에 더 집중하는 것이 좋습니다. 코드가 잘 작성된 경우 (또는 적어도 합리적인 팩시밀리) API가 다른 코드에 노출되는 몇 가지 핵심 사항이 있습니다.
이러한 API에 대한 테스트 노력에 집중하십시오. API가 1) 잘 문서화되어 있고 2) 문서와 일치하는 테스트 사례가 작성되어 있는지 확인하십시오. 예상 결과가 문서와 일치하지 않으면 코드, 설명서 또는 테스트 사례에 버그가있는 것입니다. 모두 수의사에게 좋습니다.
행운을 빕니다!
많은 상점은 테스트를 중요하게 생각하지 않으므로 적어도 0 이상인 경우 가치에 대한 인식이 있습니다. 따라서 0이 아닌 것은 많은 수가 0이므로 나쁘지 않습니다.
.Net 세계에서 사람들은 종종 80 %를 합리적으로 인용합니다. 그러나 그들은 솔루션 수준에서 이것을 말합니다. 프로젝트 수준에서 측정하는 것을 선호합니다 .Selenium 등을 사용하는 경우 30 %가 UI 프로젝트에 적합하거나 수동 테스트, 데이터 계층 프로젝트에 대해 20 %는 괜찮을 수 있지만 95 % 이상은 비즈니스에 매우 적합 할 수 있습니다 완전히 필요하지 않은 경우 규칙 계층. 따라서 전체 적용 범위는 60 % 일 수 있지만 중요한 비즈니스 논리는 훨씬 더 높을 수 있습니다.
나는 또한 이것을 들었다 : 100 %를 열망하고 당신은 80 %를 칠 것이다; 80 %를 목표로하면 40 %에 도달합니다.
결론 : 80:20 규칙을 적용하고 앱의 버그 수를 안내하십시오.
코드 범위는 또 다른 지표입니다. 그 자체로 매우 오해의 소지가 있습니다 ( www.thoughtworks.com/insights/blog/are-test-coverage-metrics-overrated 참조 ). 따라서 목표는 100 % 코드 적용 범위를 달성하는 것이 아니라 응용 프로그램의 모든 관련 시나리오를 테스트하는 것입니다.
체크인 기준으로 85 %가 좋은 출발점이 될 것입니다.
테스트 대상 서브 시스템 / 컴포넌트의 중요도에 따라 운송 기준으로 다양한 고급 바를 선택했을 것입니다.
나는 cobertura를 사용하며, 백분율에 관계없이 cobertura-check 작업의 값을 최신 상태로 유지하는 것이 좋습니다. 최소한 totallinerate 및 totalbranchrate를 현재 적용 범위 바로 아래로 올리 되이 값을 낮추지 마십시오 . 또한 Ant 빌드 실패 특성을이 태스크와 연관 시키십시오. 적용 범위가 부족하여 빌드가 실패하면 다른 사람이 추가 한 코드는 알고 있지만 테스트하지 않은 것입니다. 예:
<cobertura-check linerate="0"
branchrate="0"
totallinerate="70"
totalbranchrate="90"
failureproperty="build.failed" />
내 코드가 충분히 단위 테스트되지 않았다고 생각하고 다음에 무엇을 테스트해야할지 잘 모르겠 으면 다음 테스트 대상을 결정하는 데 도움이됩니다.
단위 테스트에서 적용 범위를 늘리면이 단위 테스트의 가치가 있다는 것을 알고 있습니다.
이것은 적용되지 않는 코드, 50 % 적용 또는 97 % 적용되는 코드에 적용됩니다.
자동 수락 테스트, 다른 통합 테스트 및 단위 테스트의 조합을 사용하는 BDD를 선호합니다. 나에게 대한 질문은 자동화 된 테스트 스위트의 목표 범위가 무엇인지에 대한 것입니다.
그 외에도 대답은 방법론, 언어 및 테스트 및 적용 범위 도구에 따라 다릅니다. Ruby 또는 Python에서 TDD를 수행 할 때는 100 % 적용 범위를 유지하는 것이 어렵지 않으며 그렇게하는 것이 좋습니다. 90 % 적용 범위보다 100 % 적용 범위를 관리하는 것이 훨씬 쉽습니다. 즉, 커버리지 갭을 작성하는 것이 훨씬 쉽고 (TDD를 잘 수행 할 때 커버리지 갭이 드물고 일반적으로 시간 가치가있는 경우) 도달하지 않은 커버리지 갭 목록을 관리하는 것보다 훨씬 쉽습니다. 발견되지 않은 코드의 지속적인 배경으로 인한 회귀
답은 프로젝트 히스토리에 따라 다릅니다. 위의 방법은 처음부터 그런 방식으로 관리되는 프로젝트에서 실용적이라는 것을 알았습니다. 나는 큰 레거시 프로젝트의 적용 범위를 크게 개선했으며 그럴만 한 가치가 있었지만 테스트되지 않은 오래된 코드는 올바르게 이해하기에 충분하지 않기 때문에 모든 적용 범위 간격을 채우는 것이 실용적이지 못했습니다. 빨리.
이 수수께끼에 대한 나의 대답은 테스트 할 수있는 코드의 100 % 라인 적용 범위와 테스트 할 수없는 코드의 0 % 라인 적용 범위를 갖는 것입니다.
파이썬에서 현재 .py 모듈을 app1 /과 app2 /의 두 폴더로 나누는 것입니다. 단위 테스트를 실행할 때 두 폴더의 적용 범위를 계산하고 app1이 100 % 적용 범위인지 시각적으로 확인하십시오 ( 언젠가 자동화 해야 함 ). app2의 범위는 0 %입니다.
이 숫자가 표준과 다름을 알면 적용 범위가 표준을 준수하도록 조사하고 코드 디자인을 변경합니다.
이것은 라이브러리 코드의 100 % 라인 적용 범위를 달성 할 것을 권장 할 수 있음을 의미합니다.
또한 때때로 app2 /를 검토하여 코드를 테스트 할 수 있는지 확인하고 app1 /으로 코드를 옮길 수 있는지 확인합니다.
이제는 프로젝트의 규모에 따라 크게 다를 수 있기 때문에 집계 범위에 대해 걱정하지 않지만 일반적으로 70 %에서 90 % 이상을 보았습니다.
파이썬을 사용하면 적용 범위를 측정하는 동안 자동으로 앱을 실행할 수있는 연기 테스트를 고안 할 수 있어야하며 연기 테스트와 단위 테스트 수치를 결합하면 100 %의 합병을 얻을 수 있습니다.
다른 관점에서 적용 범위보기 : 명확한 제어 흐름을 갖춘 잘 작성된 코드는 다루기 가장 쉽고 읽기 쉽고 가장 버그가 적은 코드입니다. 명확성과 적용 성을 염두에두고 코드를 작성하고 코드와 병행하여 단위 테스트를 작성하면 최상의 결과를 얻을 수 있습니다.
제 생각에는 "얼마나 많은 시간이 있느냐에 달려 있습니다"라고 대답합니다. 나는 100 %를 달성하려고 노력하지만 시간이 없어도 소란을 피우지 않습니다.
단위 테스트를 작성할 때 생산 코드를 개발할 때 착용하는 모자와 다른 모자를 착용합니다. 테스트 된 코드가 무엇을 주장하고 그것을 깨뜨릴 수있는 상황에 대해 생각합니다.
나는 보통 다음 기준 또는 규칙을 따릅니다.
단위 테스트는 내 코드의 예상되는 동작에 대한 문서 형식이어야합니다. 특정 입력이 주어진 예상 출력과 클라이언트가 잡기를 원할 수있는 예외가 발생했습니다 (내 코드 사용자는 무엇을 알아야합니까?)
단위 테스트를 통해 아직 생각하지 못한 조건을 발견 할 수 있습니다. (코드를 안정적이고 강력하게 만드는 방법은 무엇입니까?)
이 두 규칙이 100 % 적용 범위를 생성하지 않으면 적용됩니다. 그러나 시간이 있으면 발견되지 않은 블록과 라인을 분석하고 단위 테스트가없는 테스트 사례가 있는지 또는 불필요한 코드를 제거하기 위해 코드를 리팩터링해야하는지 결정합니다.
응용 프로그램에 따라 크게 다릅니다. 예를 들어 일부 응용 프로그램은 단위 테스트를 할 수없는 GUI 코드로 구성됩니다.
이는 현재 애플리케이션 개발 라이프 사이클의 단계에 따라 달라집니다.
한동안 개발을 해왔고 이미 구현 된 코드가 많고 코드 커버리지에 대해 생각해야한다는 것을 깨닫고 있다면 현재 커버리지 (있는 경우)를 확인한 다음 해당 기준을 사용하여 각 스프린트 (또는 스프린트 기간의 평균 상승)마다 마일스톤을 설정합니다. 즉, 최종 사용자 가치를 계속 제공하면서 코드 부채를 감당해야합니다 (최소한 제 경험상 테스트를 늘린 경우 최종 사용자는 1 비트를 신경 쓰지 않습니다) 새로운 기능이 표시되지 않는 경우 적용 범위).
귀하의 도메인에 따라 95 %를 불합리한 것은 아니지만 평균적으로 85 %에서 90 %의 평균 사례를 보겠다고 말해야합니다.
올바른 코드 적용 범위의 가장 좋은 증상은 단위 테스트를 수정하는 데 도움이되는 구체적인 문제의 양이 생성 한 단위 테스트 코드의 크기와 합리적으로 일치한다는 것입니다.