เป็นเวลาหลายปีที่ฉันอยู่ภายใต้การเข้าใจผิดที่ฉันไม่มีเวลาพอที่จะเขียนการทดสอบหน่วยสำหรับโค้ดของฉัน เมื่อฉันเขียนข้อสอบพวกเขาป่องๆสิ่งที่หนักซึ่งกระตุ้นให้ฉันคิดว่าฉันควรจะเขียนบททดสอบเมื่อฉันรู้ว่าพวกเขาต้องการเท่านั้น
จากนั้นฉันก็เริ่มใช้การทดสอบพัฒนาและฉันพบว่ามันเป็นการเปิดเผยที่สมบูรณ์ ตอนนี้ผมเชื่อมั่นว่าผมไม่ได้มีเวลาที่ไม่ได้ที่จะเขียนการทดสอบหน่วย
จากประสบการณ์ของผมโดยการพัฒนากับการทดสอบในใจคุณท้ายด้วยอินเตอร์เฟซที่สะอาดชั้นเรียนเน้นมากขึ้นและโมดูลและโดยทั่วไปมากขึ้นSOLIDรหัสทดสอบ
ทุกครั้งที่ฉันทำงานกับรหัสดั้งเดิมที่ไม่มีการทดสอบหน่วยและต้องทำการทดสอบด้วยตนเองฉันคิดอยู่เสมอว่า "นี่จะเร็วกว่านี้มากถ้ารหัสนี้มีการทดสอบหน่วยอยู่แล้ว" ทุกครั้งที่ฉันต้องลองและเพิ่มฟังก์ชั่นการทดสอบหน่วยในการเขียนโค้ดด้วยการมีเพศสัมพันธ์สูงฉันคิดอยู่เสมอว่า
เปรียบเทียบและเปรียบเทียบสถานีทดลองสองแห่งที่ฉันสนับสนุน หนึ่งได้รับรอบในขณะที่และมีรหัสมรดกในขณะที่อื่น ๆ ค่อนข้างใหม่
เมื่อเพิ่มฟังก์ชันการทำงานลงในแล็บเก่ามักจะเป็นกรณีของการลงไปที่ห้องแล็บและใช้เวลาหลายชั่วโมงในการทำงานผ่านความหมายของฟังก์ชันที่พวกเขาต้องการและฉันจะเพิ่มฟังก์ชันการทำงานนั้นได้อย่างไรโดยไม่กระทบต่อหน้าที่อื่น ๆ รหัสไม่ได้ถูกตั้งค่าให้ใช้การทดสอบแบบออฟไลน์ดังนั้นทุกอย่างจะต้องได้รับการพัฒนาออนไลน์ ถ้าฉันพยายามพัฒนาแบบออฟไลน์แล้วฉันจะจบลงด้วยวัตถุจำลองมากกว่าที่จะสมเหตุสมผล
ในห้องแล็บที่ใหม่กว่าฉันมักจะสามารถเพิ่มฟังก์ชั่นการใช้งานโดยการพัฒนาแบบออฟไลน์ที่โต๊ะทำงานของฉันเยาะเย้ยเฉพาะสิ่งที่จำเป็นต้องใช้ในทันทีและจากนั้นใช้เวลาสั้น ๆ ในห้องแล็บ บรรทัด
เพื่อความชัดเจนและตั้งแต่@ naught101ถาม ...
ฉันมักจะทำงานกับซอฟต์แวร์ควบคุมการทดลองและการเก็บข้อมูลพร้อมการวิเคราะห์ข้อมูลเฉพาะกิจดังนั้นการผสมผสาน TDD กับการควบคุมการแก้ไขช่วยให้บันทึกการเปลี่ยนแปลงทั้งในฮาร์ดแวร์การทดสอบพื้นฐานและการเปลี่ยนแปลงข้อกำหนดในการรวบรวมข้อมูลเมื่อเวลาผ่านไป
แม้ในสถานการณ์ของการพัฒนารหัสสำรวจอย่างไรก็ตามฉันสามารถเห็นประโยชน์ที่สำคัญจากการทำข้อสมมติฐานพร้อมกับความสามารถในการดูว่าสมมติฐานเหล่านั้นมีวิวัฒนาการอย่างไรเมื่อเวลาผ่านไป