กรณีทดสอบเสมือนจริงสำหรับคุณลักษณะแต่ละอย่างถูกสร้างขึ้นและทดสอบก่อนที่ซอฟต์แวร์จะเปิดตัว และหากการทดสอบล้มเหลว จะมีการเขียนโค้ดใหม่ (หรือเขียนใหม่หรือแพตช์) เพื่อให้ผ่านการทดสอบ และทำให้โค้ดเรียบง่ายและปราศจากจุดบกพร่อง
Test Driven Development (TDD) เริ่มต้นด้วยการออกแบบและพัฒนาการทดสอบสำหรับคุณลักษณะเล็กๆ น้อยๆ ในแอปพลิเคชัน เฟรมเวิร์ก TDD สั่งให้นักพัฒนาเขียนโค้ดใหม่ก็ต่อเมื่อการทดสอบอัตโนมัติล้มเหลว วิธีการนี้หลีกเลี่ยงการทำซ้ำรหัส โมดูล TDD ที่สมบูรณ์คือการพัฒนาเพื่อการทดสอบ
Test Driven Development (TDD) ถือกำเนิดขึ้นโดยเป็นส่วนหนึ่งของกระบวนทัศน์การออกแบบซอฟต์แวร์ขนาดใหญ่ที่เรียกว่า Extreme Programming (XP) ซึ่งเป็นส่วนหนึ่งของวิธีการพัฒนาซอฟต์แวร์แบบ Agile
แนวคิดง่ายๆ ของ TDD คือการเขียนและแก้ไขการทดสอบที่ล้มเหลวก่อนที่จะเขียนโค้ดใหม่ (ก่อนการพัฒนา) สิ่งนี้จะช่วยหลีกเลี่ยงการทำซ้ำโค้ด เนื่องจากเราเขียนโค้ดจำนวนเล็กน้อยในแต่ละครั้งเพื่อให้ผ่านการทดสอบ (การทดสอบไม่มีอะไรมากไปกว่าเงื่อนไขข้อกำหนดที่เราต้องทดสอบเพื่อให้เป็นไปตามเงื่อนไขเหล่านั้น)
การพัฒนาโดยใช้การทดสอบเป็นกระบวนการของการพัฒนาและเรียกใช้การทดสอบอัตโนมัติก่อนการพัฒนาแอปพลิเคชันจริง ดังนั้น บางครั้ง TDD จึงถูกเรียกว่า Test First Development
ก่อนที่จะเขียนโค้ดใหม่ โปรแกรมเมอร์ต้องสร้างการทดสอบหน่วยที่ล้มเหลวก่อน จากนั้นโปรแกรมเมอร์หรือคู่สามีภรรยาหรือม็อบจะสร้างโค้ดที่เพียงพอเพื่อตอบสนองความต้องการนั้น เมื่อการทดสอบผ่าน โปรแกรมเมอร์สามารถ refactor โครงการ ทำการปรับปรุงโดยไม่ต้องเปลี่ยนลักษณะการทำงาน
ในขณะที่ TDD มุ่งเน้นไปที่การโต้ตอบของโปรแกรมเมอร์ในระดับหน่วย แต่ก็มีวิธีการยอดนิยมอื่น ๆ เช่น การพัฒนาที่ขับเคลื่อนด้วยการทดสอบเพื่อการยอมรับ (ATDD) หรือการพัฒนาที่ขับเคลื่อนด้วยพฤติกรรม (BDD) ซึ่งมุ่งเน้นไปที่การทดสอบที่ลูกค้าสามารถเข้าใจได้
วิธีการเหล่านี้เกี่ยวข้องกับการสร้างตัวอย่างในโลกแห่งความเป็นจริงโดยเป็นการทดสอบร่วมกันระหว่างเจ้าหน้าที่ฝ่ายวิศวกรรมและลูกค้าก่อนเขียนโค้ด จากนั้นเรียกใช้การทดสอบหลังจากเขียนโค้ดเพื่อแสดงให้เห็นว่าโค้ดนั้นถูกนำไปใช้จริง การทราบการทดสอบล่วงหน้าช่วยปรับปรุงคุณภาพของครั้งแรก ATDD และ BDD กำหนดให้นักพัฒนา ผู้ทดสอบ และฝ่ายธุรกิจทำงานร่วมกันเพื่อจินตนาการและหารือเกี่ยวกับซอฟต์แวร์และผลที่ตามมาก่อนที่จะสร้างโค้ด
การพัฒนาที่ขับเคลื่อนด้วยการทดสอบสามารถสร้างแอปพลิเคชันคุณภาพสูงโดยใช้เวลาน้อยกว่าวิธีการแบบเก่าที่เป็นไปได้ การนำ TDD ไปใช้ให้ประสบความสำเร็จนั้น นักพัฒนาและผู้ทดสอบต้องคาดการณ์ล่วงหน้าอย่างแม่นยำว่าแอปพลิเคชันและฟังก์ชันการใช้งานจะถูกนำไปใช้อย่างไรในโลกแห่งความเป็นจริง
TDD สร้างชุดทดสอบการถดถอยเป็นผลข้างเคียงที่สามารถลดการทดสอบด้วยตนเองของมนุษย์ การค้นหาปัญหาก่อนหน้านี้ นำไปสู่การแก้ปัญหาที่รวดเร็วขึ้น ลักษณะที่มีระเบียบแบบแผนของ TDD ช่วยให้มั่นใจได้ถึงความครอบคลุมและคุณภาพในครั้งแรกที่สูงกว่ามาก กว่าวงจรรหัสแบบแบ่งขั้นตอนแบบคลาสสิก > ทดสอบ > แก้ไข > ทดสอบซ้ำ เนื่องจากการทดสอบดำเนินการในช่วงต้นของวงจรการออกแบบ เวลาและเงินที่ใช้ในการแก้ไขจุดบกพร่องในภายหลังจึงลดลง
ประโยชน์ที่คาดว่าจะได้รับ:
TDD ต้องใช้ทักษะอย่างมากในการประสบความสำเร็จ โดยเฉพาะอย่างยิ่งในระดับหน่วย ระบบเดิมหลายระบบไม่ได้สร้างขึ้นโดยคำนึงถึงการทดสอบหน่วยเป็นหลัก ทำให้ไม่สามารถแยกส่วนประกอบสำหรับการทดสอบได้
นอกจากนี้ โปรแกรมเมอร์จำนวนมากยังขาดทักษะในการแยกและสร้างโค้ดที่สะอาด สมาชิกในทีมทุกคนต้องสร้างและดูแลการทดสอบหน่วย มิฉะนั้นจะล้าสมัยอย่างรวดเร็ว และองค์กรที่กำลังมองหา TDD จะต้องลงทุนเวลา ช้าลงเล็กน้อยตอนนี้เพื่อให้เร็วขึ้นในภายหลัง
สุดท้าย เช่นเดียวกับวิธีการอื่นๆ ผลลัพธ์สุดท้ายของ TDD จะดีเท่ากับการทดสอบที่ใช้ ความแม่นยำที่ดำเนินการ และขอบเขตที่เลียนแบบเงื่อนไขที่ผู้ใช้ผลิตภัณฑ์ขั้นสุดท้ายพบ
ข้อผิดพลาดทั่วไป:
TDD ช่วยให้โปรแกรมเมอร์ทำตามขั้นตอนเล็ก ๆ เมื่อเขียนซอฟต์แวร์ การทดสอบเขียนขึ้นก่อนที่จะทดสอบฟังก์ชันการทำงาน และตรวจสอบให้แน่ใจว่าแอปพลิเคชันนั้นเหมาะสมสำหรับการทดสอบ ทำการทดสอบโค้ดจำนวนเล็กน้อยเพื่อตรวจจับข้อผิดพลาดที่เกิดขึ้นในโค้ดที่ทดสอบ จากนั้นใช้ฟังก์ชันการทำงาน สิ่งนี้เรียกว่า "รีแฟกเตอร์สีเขียวสีแดง" โดยสีแดงหมายถึงความล้มเหลวและสีเขียวแสดงว่าผ่าน ขั้นตอนเหล่านี้จะถูกทำซ้ำ เป้าหมายแรกของโปรแกรมเมอร์คือการมุ่งเน้นไปที่งานที่ทำอยู่และเอาชนะมันให้ได้
Ercole Palmeri
ภาคกองทัพเรือเป็นมหาอำนาจทางเศรษฐกิจระดับโลกอย่างแท้จริง ซึ่งได้มุ่งหน้าสู่ตลาดมูลค่า 150 พันล้าน...
เมื่อวันจันทร์ที่แล้ว Financial Times ได้ประกาศข้อตกลงกับ OpenAI FT อนุญาติให้ทำข่าวระดับโลก...
ผู้คนนับล้านชำระค่าบริการสตรีมมิ่ง โดยจ่ายค่าธรรมเนียมการสมัครสมาชิกรายเดือน เป็นความเห็นทั่วไปที่คุณ...
Coveware by Veeam จะยังคงให้บริการตอบสนองต่อเหตุการณ์การขู่กรรโชกทางไซเบอร์ต่อไป Coveware จะนำเสนอความสามารถในการนิติเวชและการแก้ไข...