ข้ามไปที่เนื้อหาหลัก

ยังงง กับ คำว่า Test Driven Development (TDD) คืออะไร ?

 " เอ้!.. TDD คืออะไร "

ความหมายของ TDD 

            

            คำว่า "TDD" เป็นคำย่อของ Test Driven Development เป็นรูปแบบหรือกระบวนการพัฒนาซอฟต์แวร์เพื่อช่วยลดข้อผิดพลาด แล้วได้โค๊ดที่มีประสิทธิภาพ โดยการลดบั๊กต่างๆ ที่อาจจะเกิดขึ้น ที่ตรงกับความต้องการของลูกค้า 

ประวัติของ TDD
            TDD เริ่มใช้ในในปี 1990 โดย Kent Beck ผู้คิดค้น TDD ใช้กับ Extreme Programming  และได้เริ่มใช้ตัว TEST ที่สร้างขึ้นมาเอง  
    ในปี ในปี 1997 ทางหน่วยงาน Junit.org ทีมงานของ Beck และ Erich Gamma พัฒนา TDD ชื่อ JUnit framwork  เพื่อทำให้การเขียน TEST และเรียกใช้งานคำสั่ง TEST นั่นง่ายมากขึ้น และนับจากนั้น JUnit ก็ได้พัฒนาไปใช้กับภาษาอื่นๆ อีกหลายภาษาา เช่น .NET , C++ , Python , PHP เป็นต้น ซึ่งเป็นที่เรียกกันอย่างแพร่หลายในชื่อ xUnit Frameworks

วงจรการพัฒนาซอฟต์แวร์ Test Driven Development (TDD Model)



ภาพแสดงวงจรการพัฒนาซอฟต์แวร์แบบ TDD

    ตามภาพวงจรของการพัฒนาซอฟต์แวร์แบบ TDD ประกอบด้วย 3 ส่วน ดังนี้ 
            1. Red เป็นการเขียน Test Case ที่มีความผิดพลาดจะกำหนดให้เป็นสีแดง ทำการแก้ไขโค๊ดให้มีถูกต้อง
            2. Green เมื่อ Test Case ผ่านแล้วจะมีสีเขียว ก็สามารถนำไปพัฒนาโค๊ดใช้งานจริง
            3. Refactor เป็นส่วนการปรับปรุงโค๊ดให้สมบูรณ์และถูกต้อง 

" น่าจะรู้จัก TDD จากความหมายนี้ "

        TDD หมายถึง   "กระบวนการพัฒนาซอฟต์แวร์โดยอาศัยข้อกำหนดของซอฟต์แวร์ที่จะถูกแปลงเป็นกรณีทดสอบก่อนที่ซอฟต์แวร์จะได้รับการพัฒนาอย่างสมบูรณ์ และติดตามการพัฒนาซอฟต์แวร์ทั้งหมดโดยการทดสอบซอฟต์แวร์ซ้ำๆ กับกรณีทดสอบทั้งหมด ซึ่งต่างจากการพัฒนาซอฟต์แวร์ก่อนและกรณีทดสอบที่สร้างขึ้นในภายหลัง"

ประโยชน์ของ TDD มีอะไรบ้าง
  • ระบบทำงานตาม Requirement ของลูกค้า 
  • ลดการการเขียนโค้ด เพราะทีมงานได้เขียน Test Case และทำการ Runผ่าน เขียนเท่าที่จำเป็น
  • ช่วยลดความก Defect และ Effort ในการพัฒนาได้
  • ช่วยลดความซับซ้อนของ Code และช่วยให้ Code อ่านได้ง่ายขึ้นเพราะมี Phase ที่ Refactor อยู่ตลอดเวลา

" ขั้นตอนการทำ  TDD มีอะไรบ้าง ทำอย่างไง"

ภาพแสดง Work Flow TDD

ภาพขั้นตอนการทำ TDD อย่างละเอียด


ในการขั้นตอนการใช้งานตามรูปแบบ TDD ในภาพ มีรายละเอียด ดังนี้

  1. การวางแผนและเขียนเทส Test 
  2. รันเทสที่สร้าง 
  3. การเขียน Code
  4. รันเทสอีกครั้ง
  5. Refactor Code 
การพัฒนาซอฟต์แวร์ระหว่าง TDD Model กับ  Agile Sprint Model


มีรายละเอียดขั้นตอน 

เปรียบเทียบการพัฒนาซอฟต์แวร์ระหว่าง TDD Model กับ V-shape Model

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

Interactive เทคโนโลยีเชิงโต้ตอบเปลี่ยนโลกเข้าสู่ยุค Metaverse

เทคโนโลยี Interactive คืออะไร คำนิยามของ เทคโนโลยี Interactive ที่สร้างและพัฒนาขึ้นสำหรับโปรแกรมหรือแอพลิเคชั่นที่เป็น Real-Time เรียกง่ายๆว่า Real-Time Programming (RTP) โดยเน้นไปยังผู้ใช้หรือมนุษย์นั้นเอง จะประกอบไปด้วย 2 องค์ประกอบ คือ ส่วนแรก เทคโนโลยี Interactive เข้าทำการเปลี่ยนแปลรูปร่าง ขนาด และรูปแบบ ซึ่งมาจาก web service อุปกรณ์ sensor ผ่านคอมพิวเตอร์ และมือถือ เป็นผสมผสานระหว่างระบบดิจิทัลและแอนนาล๊อกเข้าด้วยกัน ผ่านปุ่ม สไลด์เดอร์ หรือสวิทซ์ เพื่อการควบคุมในส่วนควบคุมทั้งหมด ที่เรียกว่า Control panel  ส่วนที่ 2  แอพลิเคชั่นที่ทำงานแบบ Real Time Application ถูกออกแบบในแนวคิดหลักของเทคโนโลยี Real Time  อ้างอิง https://interactiveimmersive.io/blog/beginner/02-interactive-technology/ เทคโนโลยีเชิงโต้ตอบที่เน้นการสร้างต้นแบบที่เร็วขึ้น มีประโยชน์อย่างมากในแอปพลิเคชันและประสบการณ์การสร้างต้นแบบ  ประเภทของเทคโนโลยี Interactive  มี 6 ประเภท 1. IoT เป็นแนวคิดจะเปลี่ยนบริการทุกบริการให้อยู่บนเครือข่ายอินเทอร์เน็ต และสามารถเชื่อมต่อเข้ากับแอพลิเคชั่นทุกแอ...

Routing Protocol คืออะไร มีประโยชน์อย่างไร ทำหน้าที่อะไร

 Routing Protocol คืออะไร มีประโยชน์อย่างไร ทำหน้าที่อะไร         ในกระบวนการเชื่อมต่อระบบเครือข่ายจะมีกระบวนการหรือกฏหนึ่งที่ทำหน้าที่ในการเชื่อมต่อระบบเครือข่ายตั้งแต่ 2 ระบบขึ้นไป เพื่อให้สามารถติดต่อสื่อสารข้อมูลระหว่างกันได้ กระบวนการนี้เรียกว่า Routing Protocol            Routing Protocol  คือ Protocol มีหน้าที่สำหรับการแลกเปลี่ยนข้อมูลเส้นทางสำหรับอุปกรณ์ค้นหาเส้นทาง หรือ Router ข้อมูลที่ส่งไปเป็น routing information ระหว่างอุปกรณ์เครือข่ายต่างๆที่ทำงานในระดับ Network Layer (Layer 3) เพื่อส่งข้อมูลแพ็กเก็จจาก ผ่านตัว Router ไปยัง IP ปลายทางได้ หรือผ่าน Router ตัวไหน โดยตรวจสอบจากได้จาก routing table หรือตารางเส้นทางนั้นเอง  ประเภทของ Routing Protocol   Interior gateway Protocol  มี 2 Type คือ   Type 1  Link State Routing Protocols Open Shortest Path Frist ( OSPF) Intermediate System to Intermediate System (IS-IS) Type 2 Distance-Vector Routing Protocols Routing Information Pro...