ทำความรู้จัก Unit Testing
ดาวใช้งานดาวใช้งานดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

ทำความรู้จัก Unit Testing

        Unit testing เป็นวิธีการทดสอบการทำงานของซอฟแวร์ในแต่ละหน่วย ซึ่งคำว่าหน่วยคือส่วนของการทำงานที่เล็กที่สุดที่สามารถทดสอบได้ ดำเนินการโดยใช้วิธีการทดสอบแบบ White Box Testing ถ้าเขียนซอฟแวร์ในรูปแบบเชิงวัตถุ หน่วยที่ทดสอบอาจจะเป็น method function หรือ module ก็ได้ โดยทั่วไปการทำงานของหน่วยที่นำมาทดสอบจะมีการรับค่าเข้าไปเพื่อประมวลผลแล้วส่งผลลัพท์ออกมา การทดสอบด้วย Unit testing จะตรวจสอบกระบวนการดังกล่าวว่าเป็นไปตามที่ออกแบบไว้หรือไม่
 

Unit testing ควรทำตอนไหน

            Unit testing ควรทำเป็นลำดับแรกของการทดสอบและจะดำเนินการก่อนที่จะไปขั้นตอน Integration testing
 

Unit testing ใครเป็นคนทำ

            โดยปกตินักพัฒนาซอฟแวร์ (Developer) หรือทีมจะเป็นผู้ดำเนินการ แต่บางครั้งก็อาจจะมอบหมายให้ Software Tester
 

ประโยชน์ของ Unit testing

            - ช่วยค้นหาและลด Bug ที่จะก่อให้เกิดปัญหาลง
            - เพิ่มความมั่นใจปรับหรือแก้ไขโค้ด หากทำ Unit testing ไว้ดีข้อผิดพลาดที่เกิดจากการแก้ไขโค้ดจะถูกดักจับได้ทันที
            - พัฒนาซอฟแวร์ได้เร็วขึ้น บางคนอาจจะมองว่าการทำ Unit testing ต้องใช้เวลามากขึ้น แต่ถ้าคิดในระยะยาวที่ต้องมีการทดสอบซ้ำๆ
              ระหว่างมี กับ ไม่มี Unit testing อย่างไหนจะใช้เวลาทดสอบมากกว่ากัน
            - เป็นคู่มือทำให้ทราบการทำงานของแต่ละส่วน ต้องใส่ข้อมูลอะไรเข้าไปและจะออกมาเป็นอะไร
            - เพิ่มความน่าเชื่อถือให้กับซอฟแวร์
 

Unit testing ที่ดีต้องมีอะไรบ้าง

            - ครอบคลุมการทำงานที่สำคัญในทุกหน่วย
            - ควรจะทำงานแบบอัตโนมัติและทำซ้ำได้
            - ทำงานได้เร็ว
            - ใช้งานง่าย ทุกคนควรจะสามารถใช้งานมันได้
            - มีความน่าเชื่อถือ
 

เทคนิคการทำ Unit testing

            - หาเครื่องมือ หรือ Framework สำหรับภาษาที่พัฒนา
            - ไม่จำเป็นต้องสร้าง Unit testing ทุกหน่วย แต่มุ่งเน้นส่วนที่มีผลกระทบต่อระบบ
            - ใช้ข้อมูลทดสอบที่มีความใกล้เคียงกับการใช้งานจริง
            - ครอบคลุมทุกเส้นทางการทำงานส่วนที่เป็นเงื่อนไขและวนลูป
            - ดำเนินการอย่างต่อเนื่องและสม่ำเสมอ