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

แนวทางที่ดีสำหรับการทดสอบแบบอัตโนมัติ

$
0
0

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

ต้องเข้าใจเกี่ยวกับการทดสอบขั้นพื้นฐานก่อน

ความรู้พื้นฐานมันสำคัญมาก ๆ เช่น การทดสอบคืออะไร ลองให้คนในทีมเขียนลงกระดาษสิ แล้วจะเข้าใจได้ทันทีว่าเป็นอย่างไร จากนั้นก็ว่าด้วยเรื่องของ Test Matuarity Model (TMM) ซึ่งเป็น framework ว่าด้วยเรื่องของ test management process ที่สำคัญต้องเข้าใจด้วยว่า ทำไมถึงต้องทดสอบ ถ้ายังไม่เข้าใจ นั่นคือปัญหา ที่ทุกคนในทีมต้องเข้าใจร่วมกัน ที่สำคัญ ความหมายของการทดสอบแต่ละอย่าง ก็สรุปกันให้ชัดเจน เช่น Unit test Regression test Integration test UAT Non-functional test ว่าเมื่อใดควรใช้ ใช้อะไร ทำอย่างไร เพื่อให้สามารถนำไปใช้ใน testing priocess ได้อย่างถูกต้องเหมาะสม เพื่อให้ได้ผลลัพธ์ที่ดีขึ้น

ทำไมต้องทดสอบแบบอัตโนมัติด้วย ?

เราจะได้ยินว่า การทดสอบแบบอัตโนมัตินั้น มันช่วยลดเวลาและค่าใช้จ่ายลงไปอย่างมาก ช่วยทำให้ระบบงานมีคุณภาพที่ดีขึ้น แต่จะเป็นไปไม่ได้เลย ถ้าไม่เลือกเครื่องมือที่เหมาะสมกัยงาน กับคนมาใช้งาน คำถามที่น่าสนใจคือ ทำไมถึงเลือกใช้เครื่องมือตัวนั้นตัวนี้ ทั้ง ๆ ที่มีเครื่องมืออื่น ๆ อีกมากมาย อย่าบอกนะว่า ใคร ๆ เขาก็ใช้ อย่าบอกนะว่า หน้าสั่งมา อย่าบอกนะว่า พอดีที่บริษัทซื้อไว้แล้ว ใช้ ๆ ไปเถอะ
หัวใจคือ ต้องเริ่มที่คน (People) คนจะเป็นคนคิดและวางขั้นตอนการทำงาน (Process) จากนั้นจึงเลือกเครื่องมือที่เหมาะสมกับคนและขั้นตอนมาใช้งาน (Tool)

เมื่อพร้อมแล้ว ทำการศึกษาที่ทำความเข้าใจกับเครื่องมือซะ

คำถามคือ ใครบ้างที่ควรรู้และเข้าใจ ตอบง่าย ๆ คือ ทุกคนที่เกี่ยวข้องนั่นเอง ติดตั้งและปรับแต่งพวก configuration ต่าง ๆ ให้พร้อม และลงมือสร้างมันขึ้นมา คิดมากไปเสียเวลา ลงมือทำดีกว่านะ เริ่มจาก test case ง่าย ๆ ไม่ซับซ้อนกัน เพื่อทำให้เราคุ้นชินกับเครื่องมือที่เลือก ค่อย ๆ ทำไป กำลังใจจะดีขึ้น จำนวนของ test case จะมากขึ้นเอง จากนั้นเริ่มไปหา test case ที่ยากและซับซ้อนขึ้น นี่คือบททดสอบสำคัญว่า เราพร้อมหรือยัง มันทำให้เรารู้ว่าจุดอ่อน จุดแข็งของเราเป็นอย่างไร เพื่อพัฒนาและปรับปรุงให้ดีขึ้น
บอกไว้เลยว่า เริ่มต้นที่ว่ายากแล้ว ที่เหลือนั้นยากกว่ามาก

อย่าลืม Refactor หรือทำการปรับปรุงโครงสร้างของ test case ด้วยละ

ปัญหาที่เจอบ่อยมาก ๆ สำหรับทีมที่มีชุดการทดสอบจำนวนมาก ๆ คือ การดูแลรักษา ซึ่งมันไม่ได้ต่างจาก source code ของระบบดลย ดังนั้นให้ทำการปรับปรุง test case ให้ดีขึ้นอย่างต่อเนื่อง ตัวอย่างเช่น สิ่งที่ทำงานซ้ำ สิ่งที่ทำงานช้า สิ่งที่มักก่อให้เกิดความผิดพลาด
ที่สำคัญอย่างลืมปรับปรุงขั้นตอนทำงานให้ดีขึ้นด้วยนะ

อย่าลืมนำชุดการทดสอบแบบอัตโนมัติไปใส่ในขั้นตอนการทำงานด้วย

ชุดการทดสอบควรทำงานแบบอัตโนมัติ เมื่อระบบงานมีการเปลี่ยนแปลงเสมอ ยกตัวอย่างเช่น เมื่อ source code มีการเปลี่ยนแปลง เมื่อมีการ deploy ระบบใหม่ เมื่อมีการแก้ไข bug เมื่อมีการเพิ่มหรือแก้ไขชุดการทดสอบ

อย่าลืมเก็บชุดการทดสอบต่าง ๆ ไว้ใน version control system ด้วย

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

สุดท้ายแล้ว ต้องเรียนรู้อยู่อย่างสม่ำเสมอ (Keep learning)

ทั้งเรื่องความรู้เกี่ยวกับการทดสอบ ทั้งเรื่องความรู้เรื่องขั้นตอน ทั้งเรื่องของเครื่องมือ ซึ่งผมคิดว่า มันคือหัวใจหรือกุญแจสำคัญของความสำเร็จเลยนะ

Viewing all articles
Browse latest Browse all 1997

Trending Articles