특히, 메소드가 목록에서 n 개의 항목을 선택하여 그 중 %가 하나의 기준을 충족시키고 b %가 초를 충족시키는 식으로 표시됩니다. 단순화 된 예제는 50 %가 'true'값을 갖는 속성과 50 % 'false'속성을 갖는 5 개의 항목을 선택하는 것입니다. 메소드가 반환 할 시간의 50 %는 2 true/3 false, 나머지 50 %는 3 true/2 false.랜덤 출력을 생성하는 단위 테스트 코드에 가장 좋은 방법은 무엇입니까?
통계적으로 말하자면, 이것은 100 회 이상의 실행에서 약 250 개의 true/250 false를 가져야한다는 것을 의미합니다. 그러나 임의성으로 인해 240/260은 전적으로 가능합니다.
단위 테스트를위한 가장 좋은 방법은 무엇입니까? 기술적으로 300/200가 가능할지라도, 이런 일이 발생하면 테스트가 실패 할 것입니다. 이런 경우에 대해 일반적으로 허용되는 허용 오차가 있습니까? 그렇다면 무엇이 그 값을 결정합니까?
편집 : 나는 일하고있는 코드에서 의사 난수 생성기를 사용하지 않고 시간이 지남에 따라 균형을 잡는 메커니즘을 사용하지 않는다. 다른 컴퓨터에서 생성됩니다. 시간이 지남에 따라 각 기준에 맞는 항목의 평균 수가 필요한 비율로 증가한다는 것을 증명할 수 있어야합니다.
예에서 atleast/정확히 50 % 또는 약 50 %를 원하십니까? 보다 구체적으로이 테스트의 임의성은 무엇입니까? – Gishu
당신이 실제로 단위 테스트를 작성하지 않았다고 생각합니다. 다른 컴퓨터에서 실행되는 서버를 테스트하는 경우 실제로는 시스템 테스트를 거치게됩니다. 이 서버에서 실행되는 클래스에 대한 단위 테스트가있는 경우 더 이상 상세한 시스템 테스트가 필요하지 않습니다. –
아니요, 요점은 알고리즘이 사용 된 장소와 관계없이 알고리즘이 시간의 2/3 50 %를 선택하고 나머지 3/2가이 간단한 예제에서 (이 간단한 예제에서) 확인하는 것입니다. 이것을 생산할 시스템이 하나도 없습니다. 하나의 머신에서 1000 번 실행하는 것은 전세계 100 대의 머신에서 10 번 실행되는 경우 적절하게 평균을 낼 것이라는 것을 증명하는 적절한 테스트로 간주됩니다. 따라서 유닛 테스트를 계획하는 이유입니다. – Flynn1179