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

Software testing ความรู้ สำหรับ Tester ผู้ทดสอบ เป็นส่วนสำคัญในการ test โปรแกรม การ ทดสอบโปรแกรมมีความรู้แนะนำไว้ในหมวดนี้

Moderators: mindphp, ผู้ดูแลกระดาน

User avatar
tsukasaz
PHP VIP Members
PHP VIP Members
Posts: 11945
Joined: 18/04/2012 9:39 am

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

Post by tsukasaz »

ทำความรู้จัก Software 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 ทุกหน่วย แต่มุ่งเน้นส่วนที่มีผลกระทบต่อระบบ
- ใช้ข้อมูลทดสอบที่มีความใกล้เคียงกับการใช้งานจริง
- ครอบคลุมทุกเส้นทางการทำงานส่วนที่เป็นเงื่อนไขและวนลูป
- ดำเนินการอย่างต่อเนื่องและสม่ำเสมอ

PHP Framework
- PHPUnit https://phpunit.de/index.html
- SimpleTest http://simpletest.org/index.html
- Lime (Symfony) http://trac.symfony-project.org/wiki/Li ... gFramework

ตัวอย่างการทำ Unit Testing (แบบ Basic ไม่ใช้ Framework)

Code: Select all

<?php
$value = 'Hello Mindphp ';
echo (isset($value)) ? 'Pass' : 'Fail' ;
echo '<br />';

unset($value);
echo (isset($value)) ? 'Pass' : 'Fail' ;
 ?>
Output

Code: Select all

Pass
Fail
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 24672
Joined: 22/09/2008 6:18 pm
Contact:

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

Post by mindphp »

ดู Python Unit test ได้ที่
https://www.mindphp.com/forums/viewtopic ... 85&t=24533
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Software testing”

Who is online

Users browsing this forum: No registered users and 4 guests