Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

Regression Testing คืออะไร ?

$
0
0

regression

regression เช้านี้อ่านเจอบทความเรื่อง What is Regression Testing ? ทำการอธิบายเกี่ยวกับ Regression testing ว่าคืออะไร ? มีเป้าหมายเพื่ออะไร ? และจะลงมือทำการทดสอบเมื่อใด ? จึงทำการสรุปการอ่านไว้นิดหน่อย

Regression Testing คืออะไร ?

เป็นการทดสอบชนิดหนึ่งใน Functional testing ใช้สำหรับการตรวจสอบปัญหาที่เกิดขึ้นมาจาก การเพิ่มหรือแก้ไข code ของระบบ เพื่อหาว่าต้นเหตุของปัญหาอยู่ที่ไหน เพื่อยืนยันว่าการเพิ่มหรือแก้ไขสามารถแก้ไขปัญหาได้ หรือไม่ส่งผลกระทบต่อการทำงานของระบบ

คำถามต่อมาคือ Functional testing มันคืออะไรล่ะ ?

เป็นการทดสอบ และ เป็นขั้นตอนที่ถูกสร้างขึ้นมาเพื่อ ใช้ยืนยันว่าแต่ component ของระบบ ทำงานร่วมกันได้อย่างถูกต้องตามความต้องการที่ตกลงไว้ร่วมกัน โดยเน้นที่การทดสอบจาก interface ของระบบงาน เพื่อทำให้มั่นใจว่าระบบงานนั้นสามารถทำงานได้อย่างเหมาะสมกับผู้ใช้งาน เช่น ถ้าเป็นระบบ Web application ก็เน้นไปที่ User Interface บน browser ถ้าเป็นระบบ API ก็เน้นไปที่การใช้งานผ่าน API Functional testing ประกอบไปด้วยการทดสอบชนิดต่าง ๆ ดังนี้
  • Smoke testing
  • Sanity testing
  • Integration testing
  • Acceptance testing
  • Regression testing

คำถามต่อมาคือ ทำ Regression testing ตอนไหน ?

Regression testing เป็นการทดสอบที่สำคัญมาก ๆ ของการพัฒนา software จะลงมือทำเมื่อ
  • ทำการ release ระบบ หรือ feature ใหม่ ๆ
  • เมื่อทำการแก้ไขข้อผิดพลาดต่าง ๆ ที่สำคัญ
ถ้าจะให้ดีมาก ๆ ชุดการทดสอบของ Regression testing นั้น ควรทำการทดสอบอยู่อย่างบ่อย ๆ ควรทำการทดสอบอย่างรวดเร็ว เพื่อทำให้เรารู้ปัญหาได้อย่างรวดเร็ว เพื่อทำให้เราแก้ไขปัญหาได้อย่างรวดเร็ว ถ้าจะให้ดีมากขึ้นไปอีก ให้เริ่มต้นทำตั้งแต่วันแรกของการพัฒนาเลย เริ่มจากง่าย ๆ ก่อนเป็นดีที่สุด บางคนอาจจะบอกว่า เป็นไปไม่ได้หรอก แต่ผมขอแนะนำว่า ให้ลองทำเถอะนะ
คำว่าเป็นไปไม่ได้ มันคืออะไร ? ไม่เคยทำ หรือ ทำไม่เป็น หรือ ... ดังนั้นลงมือทำเถอะครับ ถ้าไม่ลงมือทำสักทีจะทำเป็นหรือไง ?

เนื่องจากทุกการเปลี่ยนแปลงของระบบล้วนมีความเสี่ยง !!

ดังนั้นสิ่งที่นักพัฒนาต้องตอบให้ได้คือ
  1. สิ่งที่สร้างและแก้ไขไปนั้น มันทำงานได้อย่างถูกต้องหรือไม่ ?
  2. สิ่งที่สร้างและแก้ไขไปนั้น มันไม่ส่งผลกระทบต่อการทำงานในส่วนอื่น ๆ หรือไม่ ?
ยิ่งถ้าทีมพัฒนามีระบบพวก Continuous Integration และ Continuous Delivery ด้วยแล้ว แนะนำให้นำเอา Regression testing เข้ามาอยู่ในระบบนี้เสมอ เพราะว่าจะทำการทดสอบทุกครั้ง เมื่อ code มีการเปลี่ยนแปลง ซึ่งมันแจ่มมาก ๆ และควรทำอย่างแรงนะครับ แสดงการทำงานดังรูป what-is-regression-testing

สุดท้ายแล้ว ถ้าเราต้องการป้องกันความผิดพลาด

ก็ต้องทำการค้นหาความผิดพลาดให้รวดเร็วที่สุดนั่นเอง เนื่องจากยิ่งค้นหาได้ช้า ค่าใช้จ่ายสำหรับการแก้ไขก็ยิ่งแพงนะครับ และลด ละ เลิกการ debug เถอะนะ หรือว่าคนจริงต้องแก้ไขข้อผิดพลาดบน Production กันนะ !! https://www.youtube.com/watch?v=75wa8Lx4yc4

Viewing all articles
Browse latest Browse all 1997

Trending Articles