โดยส่วนตัวฉันเชื่อว่าจะได้รับประโยชน์มากมายจาก TDD (โดยไม่ต้องปฏิบัติตาม TDD) โดย:
- เขียนทั้งผู้โทรและรหัสcalleeในเวลาเดียวกัน (ไม่เกิน 24 ชั่วโมงอย่างแน่นอน)
- และใช้สิ่งนั้นเพื่อส่งผลต่อการออกแบบส่วนต่อประสาน (วัตถุการเรียกใช้เมธอดและพารามิเตอร์)
- สำหรับส่วนประกอบที่ต้องการอัลกอริธึม / รหัสที่ซับซ้อนให้พิจารณาการใช้งานในอัลกอริทึมที่เรียบง่าย แต่ถูกต้องก่อนแม้ว่าจะมีประสิทธิภาพน้อยกว่า (หรือโง่หรือทำงานได้เฉพาะในสถานการณ์ที่แคบกว่า)
- วิธีการทดสอบที่ง่ายมากจะใช้ทั้งอัลกอริธึมและเปรียบเทียบผลลัพธ์
- เมื่อพบข้อผิดพลาด (โดยวิธีใด ๆ ) ในส่วนหนึ่งของรหัสส่วนหนึ่งของรหัสนั้นสมควรที่จะได้รับการทดสอบมากยิ่งขึ้น นี่หมายถึงการทำการทดสอบที่ซับซ้อนกว่า TDD จะเรียกร้อง (ขึ้นอยู่กับเหตุผลที่ข้อบกพร่องเกิดขึ้นในกลุ่ม )
TDD ดูเหมือนว่าคุณจะต้องมีสวยล้างทำความเข้าใจในสิ่งที่ฟังก์ชั่นที่คุณวางแผนที่จะดำเนินการหรือสิ่งที่ต้องการคุณวางแผนที่จะตอบสนองโดยการใช้รหัส ในบางสถานการณ์มีความเข้าใจปัญหาน้อยเกินไป สิ่งนี้น่าจะเรียกว่าSpike solution ภายในขอบเขตของโซลูชัน Spike นี้สามารถใช้ TDD ได้เนื่องจากปัญหาได้ถูก จำกัด ให้อยู่ในระดับที่จัดการได้ เมื่อมี Spikes สองสามเสร็จแล้วแต่ละส่วนครอบคลุมปัญหาบางอย่างของปัญหาต้นฉบับหนึ่งสามารถเริ่มทำงานในการแก้ปัญหาอย่างเต็มรูปแบบและการใช้ TDD ณ จุดนั้นอาจเป็นไปได้เพราะความเข้าใจที่ดีขึ้น
แก้ไข:
หลังจากอ่านหน้านี้อย่างถี่ถ้วน
ในขณะที่มันเป็นไปได้ที่จะทดสอบฟังก์ชั่นเคอร์เนลส่วนใหญ่ในไดรเวอร์ทดสอบ "testbed" สิ่งที่ "ฉ่ำ" จริงๆเช่นการจัดการขัดจังหวะการส่งกระบวนการหรือการจัดการหน่วยความจำอาจไม่สามารถทดสอบได้ --- จากhttp://wiki.osdev.org/Unit_Testing
พวกเขาจะบอกว่าอย่างชัดเจนมากที่สุดส่วนที่ทดสอบและบางส่วนต้องใช้ชนิดที่แตกต่างของการทดสอบ: ทดสอบความเครียด