สำหรับ TDD ทดสอบการทดสอบ "ดี" ให้บริการที่ลูกค้าต้องการ ; ฟีเจอร์ไม่จำเป็นต้องสอดคล้องกับฟังก์ชั่นและนักพัฒนาไม่ควรสร้างสถานการณ์การทดสอบในสุญญากาศ
ในกรณีของคุณ - ฉันคาดเดา - 'ฟีเจอร์' คือฟังก์ชั่นพอดีจะจำลองข้อมูลอินพุตภายในการยอมรับข้อผิดพลาดบางอย่าง เนื่องจากฉันไม่รู้ว่าคุณกำลังทำอะไรอยู่ฉันกำลังทำอะไรอยู่ หวังว่ามันจะเป็นการวิเคราะห์
ตัวอย่างเรื่อง:
ในฐานะ [X-Wing Pilot] ฉันต้องการ [ไม่เกิน 0.0001% พอดีกับข้อผิดพลาด] เพื่อให้ [คอมพิวเตอร์เป้าหมายสามารถโจมตีพอร์ตไอเสียของ Death Star เมื่อเคลื่อนที่ด้วยความเร็วเต็มที่ผ่านหุบเขาลึก]
ดังนั้นคุณจะไปคุยกับนักบิน (และคอมพิวเตอร์เป้าหมายถ้ามีความรู้สึก) ก่อนอื่นคุณพูดถึงสิ่งที่ 'ปกติ' แล้วพูดถึงสิ่งผิดปกติ คุณพบว่าสิ่งที่สำคัญในสถานการณ์นี้สิ่งที่เป็นเรื่องธรรมดาสิ่งที่ไม่น่าเป็นไปได้และสิ่งที่เป็นไปได้
สมมติว่าโดยปกติคุณจะมีหน้าต่างครึ่งวินาทีบนข้อมูล telemetry เจ็ดช่อง: ความเร็ว, ระยะพิทช์, หมุน, หันเห, เวกเตอร์เป้าหมาย, ขนาดเป้าหมายและความเร็วเป้าหมายและค่าเหล่านี้จะคงที่หรือเปลี่ยนแปลงเชิงเส้น โดยปกติคุณอาจมีช่องทางน้อยลงและ / หรือค่าอาจเปลี่ยนแปลงอย่างรวดเร็ว ดังนั้นด้วยกันคุณมากับการทดสอบบางอย่างเช่น:
//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
ตอนนี้คุณอาจสังเกตเห็นว่าไม่มีสถานการณ์สำหรับสถานการณ์เฉพาะที่อธิบายไว้ในเรื่อง ปรากฎว่าหลังจากพูดคุยกับลูกค้าและผู้มีส่วนได้ส่วนเสียอื่น ๆ เป้าหมายในเรื่องดั้งเดิมนั้นเป็นเพียงตัวอย่างสมมุติฐาน การทดสอบจริงมาจากการสนทนาที่ตามมา สิ่งนี้สามารถเกิดขึ้นได้ เรื่องควรเขียนใหม่ แต่ไม่จำเป็นต้องเป็น [เนื่องจากเรื่องราวเป็นเพียงตัวยึดตำแหน่งสำหรับการสนทนากับลูกค้า]