나는 무엇을 Andrew이 썼는지에 동의하지만 대답에 다른 각도를 더하고 싶었습니다. 그런 논의에서 꽤 자주 빠져 있다고 생각합니다.
귀하의 팀은 제품을 만들고 있으며 귀사는이 노력을 통해 최상의 가치를 창출하고자합니다.
처음에는 테스트로 인해 속도가 느려질 것이라고 생각할 수 있습니다. 시스템은 간단하고 누구나 이해하므로 모든 시간을 낭비합니다. 시험을 치는 데 드는 돈의 가치가 거의없는 것처럼 느껴질 수도 있습니다. 그러나 제품 개발에 대한 장기적인 관점을 채택한다면 이는 분명히 잘못된 것입니다. 그러나 내가 개종자에게 설교 할 때 나는 여기서 멈출 것이다.
그러나 질문에 대답 할 때 동일한 사고 방식을 채택하면 실제로 상황에 따라 대답이 달라질 수 있습니다.
이 P(bug | test)
가 bug
의 확률을 표시하자 당신이 test
를 실행 제공, C(test)
테스트를 실행의 비용을 표시하자 C(bug)
는을 표시하자 : 내 생각을 설명하기 위해 단순화 된 수학 모델을 사용하는거야 버그 비용.특정 버그 *에 초점을 맞출 경우
, 다음 최소화하려면 :
는
P(bug | test_1)*C(bug) + C(test_1) ... P(bug | test_n)*C(bug) + C(test_n)
스위트 룸은 n
테스트로 구성 곳.
테스트 비용을 무시한다면 테스트가 많을수록 좋습니다. 그러나 테스트는 유지되고 실행되어야하기 때문에 비용이 0이 아닙니다. 이것은 당신이 장단점을 가지고 있음을 의미하며 여기서 U 커브 최적화를 수행하고 있습니다 (picture과 같은 비트로 릴리스 및 유지 비용 간의 최적 절충점을 찾으려고합니다).
실제 비용은 특정 도메인, 제품 영역 및 테스트 유형에 따라 크게 달라집니다.
당신이 뱅킹에 들어가는 경우, 버그 비용이 엄청날 수 있으므로 테스트 비용이 줄어 듭니다. 그러나 음악에 대한 추천 엔진을 작성하는 경우 몇 시간 동안 꺼져있는 제안은 문제가되지 않습니다. 사실, 후자의 경우에는 다른 알고리즘을 사용하여 자유롭게 실험하고 반복적으로 반복 할 수있는 능력이 필요하기 때문에 테스트 비용이 버그 비용을 과도하게 부담 할 수 있습니다.
특정 제품에 대해 작업하게됩니다. 그것조차도 균질하지 않습니다. 다른 제품보다 더 중요한 제품 영역이 있습니다. 트위터를 예로 들어 보겠습니다. 사람들이 트위터에 짹짹이거나로드 할 수 없다면 큰 문제가 될 것입니다. 다른 한편, "제안을 따르는 사용자"가 비어 있으면 제품에 미치는 영향은 훨씬 적습니다.
마지막으로 테스트 비용이 일정하지 않습니다. 그러나 이전에 말했듯이, 그것은 무시할 수 없으므로주의 깊게 고려할 필요가 있습니다. 테스트 변경 범위가 좁아서 생산 변경에 대한 자신감이 부족하고 테스트 실행 시간이 너무 길어 사람들이 끊임없이 구축하고 거의 작업하지 않는다고 불평하는 곳에서 일하면서 두 곳 모두에서 일했습니다.
마지막으로 한 가지. 실패에 대한 탄력성으로 구축하는 것이 좋으며 - 버그를 저해 할 수 있습니다.