Screen Shot 2558-08-17 at 11.30.56 AM
เมื่อนักพัฒนา software ได้นำแนวคิด Test-Driven Development ( TDD ) มาใช้งาน
เพื่อป้องกันไม่ให้เกิดข้อผิดพลาด หรือ ให้เกิดน้อยที่สุด
ก่อนที่จะส่งไปให้ทางทีม tester ทำการทดสอบต่อไป

มันจึงมีคำถามว่า
ดังนั้น เราไม่จำเป็นต้องมี tester ก็ได้นะ !!!

มาดูหนึ่งความคิดเห็นกันหน่อย

การทดสอบของนักพัฒนา หรือ programmer test นั้น
มันเพียงเพื่อบอกว่า คิดอย่างไร ?

สิ่งที่คิดออกมาในรูปแบบของ code ว่า
code มันทำงานถูกต้องดังที่คาดหวังหรือไม่ ?
ต้องการสร้าง code ที่มีคุณภาพสูง
และลดความผิดพลาดลงให้เหลือน้อยที่สุด

แต่การทดสอบแบบนี้ มันไม่ได้บอกว่า
code ที่สร้างขึ้นมานั้น มันจะตรงกับความต้องการของลูกค้า หรือ customer test นะ

ทาง Tester และ ทีมทั้งหมด ไม่มีข้อยกเว้น

มีหน้าที่รับผิดชอบ เพื่อทำให้มั่นใจว่า software/product ที่สร้างขึ้นมานั้น
มันตรงกับสิ่งที่ผู้ใช้งาน หรือ ลูกค้าต้องการหรือไม่
ซึ่งมันเป็นการทดสอบที่ต่างจาก programmer test อย่างมาก

เนื่องจากมันคือการทดสอบที่มากกว่า code
ต้องทดสอบการทำงานร่วมกันของ module ต่าง ๆ
แน่นอนว่า จะเกิดการทดสอบซ้ำไปซ้ำมา
ดังนั้น tester จึงจำเป็นต้องนำ Automated testing มาใช้
เพื่อลดงานที่มันซ้ำ ๆ และไปทำการทดสอบส่วนอื่น ๆ ที่สำคัญต่อไป

Tester จึงต้องมีความสามารถมากกว่า manual test
ทั้งการเขียน script และ exploratory testing
รวมทั้งสามารถนำ Acceptance Test-Driven Development (ATDD) มาประยุกต์ใช้งานได้

จะเห็นได้ว่า สิ่งต่าง ๆ มันเปลี่ยนแปลงไปอย่างมาก

แต่เปลี่ยนไป เพื่อให้ทุกสิ่งมันดีขึ้นกว่าเดิม
เพื่อให้ทุกอย่างมันทำงานแบบอัตโนมัติมากขึ้น
เพื่อลดการทำงานที่ซ้ำ ๆ ลงไป
เพื่อลดเวลาและค่าใช้จ่ายการ re-test และ regression test ลงไป
เพื่อลดจำนวนข้อผิดพลาดลงไป
เพื่อลดการทดสอบแบบ manual ที่มันแสนจะน่าเบื่อของใครหลาย ๆ คนลงไป

แต่อย่าลืมว่า
Manual test ก็ไม่ได้หายไปนะครับ !!

ทั้งหมดนี้ เพื่อบอกว่า

ในโลกของการพัฒนา software มันมีการปรับปรุงอยู่ตลอดเวลา
ปรับปรุงจาก การทดสอบหลังจากที่เขียน code เสร็จ
มาเป็นเขียนการทดสอบก่อนเขียน code
ปรับปรุงจาก การทดสอบแบบ manual มาเป็น automate
และทุกคนมีหน้าที่รับผิดชอบเรื่องคุณภาพของระบบ

ดังนั้นเราทุกคน ต้องเรียนรู้ ฝึกฝน กันอยู่อย่างเสม่ำเสมอนะ
ห้ามย่ำอยู่กับที่นะครับ …

คุณมีความคิดเห็นอย่างไร ต่อคำถามนี้บ้าง ?