TDD의 경우 "좋은"테스트 는 고객이 원하는 테스트 기능을 테스트 합니다 . 기능이 반드시 기능에 해당하는 것은 아니며 개발자가 진공 상태에서 테스트 시나리오를 작성해서는 안됩니다.
귀하의 경우-추측하고 있습니다- '기능'은 fit 함수가 특정 오류 허용 오차 내에서 입력 데이터를 모델링한다는 것입니다. 나는 당신이 실제로 무엇을하고 있는지 전혀 모르기 때문에 무언가를 만들고 있습니다. 잘만되면 그것은 analgous이다.
이야기 예 :
[X-Wing Pilot]으로서 [0.0001 % 이하의 맞춤 오차]를 원하지 않아 [대상 캐년을 통해 최고 속도로 이동할 때 대상 컴퓨터가 데스 스타의 배기 포트에 닿을 수 있음]
따라서 조종사 (및 경우에 따라 대상 컴퓨터)와 대화하십시오. 먼저 '정상적인 것'에 대해 이야기하고 비정상에 대해 이야기하십시오. 이 시나리오에서 실제로 중요한 것, 일반적인 것, 가능성이없는 것 및 가능한 것만 알아냅니다.
일반적으로 속도, 피치, 롤, 요, 목표 벡터, 목표 크기 및 목표 속도의 7 가지 원격 측정 데이터 채널에 대해 0.5 초의 기간이 있으며이 값은 일정하거나 선형으로 변한다고 가정합니다. 비정상적으로 채널 수가 적거나 값이 빠르게 변경 될 수 있습니다. 따라서 함께 다음과 같은 몇 가지 테스트를 수행합니다.
//Scenario 1 - can you hit the side of a barn?
Given:
all 7 channels with no dropouts for the full half-second window,
When:
speed is zero
and target velocity is zero
and all other values are constant,
Then:
the error coefficient must be zero
//Scenario 2 - can you hit a turtle?
Given:
all 7 channels with no dropouts for the full half-second window,
When:
speed is zero
and target velocity is less than c
and all other values are constant,
Then:
the error coefficient must be less than 0.0000000001/ns
...
//Scenario 42 - death blossom
Given:
all 7 channels with 30% dropout and a 0.05 second sampling window
When:
speed is zero
and position is within enemy cluster
and all targets are stationary
Then:
the error coefficient must be less than 0.000001/ns for each target
이제 이야기에 설명 된 특정 상황에 대한 시나리오가 없음을 알 수 있습니다. 고객 및 다른 이해 관계자와 이야기를 나눈 후, 원래 이야기의 목표는 단지 가상의 예일뿐입니다. 실제 테스트는 다음 논의에서 나왔습니다. 이런 일이 일어날 수 있습니다. 스토리를 다시 작성해야하지만 스토리는 고객과의 대화를위한 자리 표시 자이므로 반드시 수행 할 필요는 없습니다.