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

ยังงง กับ คำว่า 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

ความคิดเห็น

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

Anvil แฟลต์ฟอร์ม สำหรับ Python Full Stack มีครบ จบในเครื่องมือเดียว

Anvil แฟลต์ฟอร์ม สำหรับ Python Full Stack มีครบ จบในเครื่องมือเดียว Avil เป็นแฟลต์ฟอร์มสำหรับสร้างเว็บแอพลิเคชั่น ด้วยภาษา python สามารถใช้งานทั้ง HTML CSS JavaScript SQL ทั้งหมดนี้รวมในเครื่องมือที่ชื่อว่า Anvil Python ใช้สำหรับรันบนบราวเซอร์ เซอร์เวิรส์ และสร้าง UI ด้วยวิธีการ Drag-and-Drop เพียงลากวาง UK และยังสามารถเชื่อมต่อและใช้งาน Database  และยังสามารถ Integration กับแฟลต์ฟอร์มอื่นๆ ได้อีกด้วย โครงสร้างของ Anvil  การออกแบบง่ายๆ ด้วย drag-and-drop ใช้ python เป็น client-side และรันบน บราวเซอร์ Server-side รันบน Anvil Server สามารถใช้ Database ต่างๆ เพื่อเก็บข้อมูล สามารถรัน python บนเครื่องและตอบโต้กับแอปพลิเคขั่นไดด้

TomCat สำหรับติดตั้ง แก้ไข คอนฟิก ใช้งาน JSP

Apache Tomcat เป็น  HTTP Server ที่มีความสามารถนำภาษาจาวามาใช้งานได้  สามารถใช้เทคโนโลยีของภาษาจาวาที่เรียกว่า Java Servlet  และ Java Server Page (JSP)  Tomcat เป็นโปรแกรม Open-Source  อยู่ภายใต้การดูแลของ Apache Software Foundation  (ซึ่งเป็นผู้สร้าง Apache HTTP Server ที่เป็นที่นิยมใช้กันอย่างแพร่หลาย)  สามารถอ่านรายละเอียดของ Tomcat ได้ที่  http://tomcat.apache.org  โดยเลือกหัวข้อ “ Documentation”  และเลือก “Tomcat 7.0” ขั้นตอนการติดตั้ง Tomcat เรียงลำดับดังนี้

อะไรคือ NPU (Neural Processing Unit) มีความสำคัญอย่างไร แนวคิดมาจากไหน

ความหมาของคำว่า NPU (Neural Processing Unit)  NPU (Neural Processing Unit) คือ หน่วยประมวลผลโครงข่ายประสาทที่สร้างมาเพื่อใช้งานด้านปัญญาประดิษฐ์ เป็นหน่วยประมวลผลพิเศษที่ออกแบบมาเพื่อใช้ในแนวคิดของการเรียนรู้ของเครื่อง (Machine Learning) ของคอมพิวเตอร์โดยเฉพาะ ทำให้การประมวลผล AI ทรงประสิทธิภาพเพิ่มขึ้นจากเดิมของ TPU GPU และ CPU เช่น การจดจำภาพ, วิเคราะห์เสียง, หรือการแปลภาษา ทำได้รวดเร็วและประหยัดพลังงานกว่า CPU/GPU ทั่วไป โดยทำงานคล้ายโครงข่ายประสาทของมนุษย์ และพบได้ทั้งในสมาร์ตโฟน, คอมพิวเตอร์ (PC), และอุปกรณ์ AI อื่นๆ ในอนาคต เพื่อเร่งความเร็วของการทำงานของ AI สามารถจัดการงานและปัญหาที่ซับซ้อนได้อย่างมีประสิทธิภาพ  ประวัติความเป็นมาของ NPU (Neural Processing Unit)  ตั้งแต่ปี 1970 เป็นต้นมาเราได้ใช้เริ่มมีการใช้หน่วยการประมวลผลแบบดั้งเดิม คือ หน่วยประมวลผลกลาง (CPU) ถือเป็น "สมอง" และเป็นกลไกการทำงานของคอมพิวเตอร์ ดังนั้นซีพียู CPU ประมวลผลงานคำนวณแบบดั้งเดิมส่วนใหญ่มีหน้าที่รับผิดชอบการทำงานของแอปพลิเคชันให้มีศักยภาพหลากหลายเพิ่มมาเรื่อย แม้ว่าจะมีหลายประเภท แต่โดยทั่...