Tag Archives: automate testing

Test Diary: ไม่มี automate unit test นี่ปวดตับเหลือหลาย

พักสายตาจากการทำงาน แล้วมาสะดุดกับข้อความที่น้องคนหนึ่งทรี่เป็น programmer เขียนข้อความโยนขึ้นมาบน Twitter ไว้ตามรูป

อ่านดูแล้วถูกใจมากๆ ที่ Programmer และ Developer หลายๆ คนทำเรื่องพวกนี้ แต่ก็ยังมีอีกหลายๆ คนที่อยากจะทำ แต่ไม่รู้ว่าจะทำยังไง หรือใช้ Tool อะไร เท่าที่เจอมา เอ๊ะอะ อะไรก็มองหา Tool เลย แต่มองข้ามเรื่องของทฤษฎี และหลักการออกแบบวิธีทดสอบ Unit Testing ซึ่งก็ไม่ค่อยมีใครสอนอีกเหมือนกันในระดับมหาวิทยาลัย

แบบนี้มันต้องจัด!!!

 

 

Manual vs. Automated Testing

สวัสดีค่ะ วันนี้ผู้เขียนใคร่อยากจะนำประสบการณ์จากที่ได้ทำงานด้าน software testing มาเล่าให้ฟัง
กับหนึ่งคำถามที่มักเกิดขึ้นในใจเมื่อจะทดสอบระบบ ควรใช้ Manual Testing หรือ Automated Testing
ในการทดสอบระบบ? ก่อนขึ้นต้องทำความรู้จักการทดสอบทั้ง 2 ประเภทก่อน

Manual Testing
->  การทดสอบโดยไม่ใช้เครื่องคอมพิวเตอร์
->  เหมาะกับงานที่ทดสอบเพียงครั้งเดียวหรือรอบเดียว
Automated Testing
->  การทดสอบด้วยเครื่องคอมพิวเตอร์
->  เหมาะกับงานทดสอบประเภทที่ต้องทำซ้ำ ๆ  เช่น regression testing

ไม่ว่าคุณจะเลือกทดสอบแบบ Manual  หรือ Automated อย่าลืมที่จะทำ test case หรือ test script
ก่อนเสมอ เพราะจะช่วยให้คุณสามารถ test ได้อย่างครบถ้วนตาม requirement ของผู้ใช้ระบบ

การทดสอบแบบ Autometed หากพิจาณากันดี ๆ จะใช้เวลาในการทำมากกว่า Manual Testing
เพราะจะต้องเสียเวลาทำ script ก่อน perform test และเกิดความยุ่งยากตอนทำ script ยิ่งถ้าคุณ
ไม่ชำนาญ tool ที่ใช้พอเป็นอันว่าจะต้องเสียเวลาลองถูกลองผิด หรือแม้กระทั่งจะชำนาญ tool ที่ใช้อยู่แล้ว
ก็ไม่ได้หมายความว่า เมื่อ record script แล้วจะสามารถ re-run script ได้เลย ผู้เขียนเคยมีประสบการณ์
ทดสอบระบบ software package ตอนที่ record  scriptระบบจะเริ่มจาก page ที่ 1 ไปยัง page ที่ 2
และ page ที่ 3 ตามลำดับ แต่เมื่อทำการ re-run script อีกรอบ ระบบเริ่มจาก page 2 และ page ที่ 3 เลย
เพราะ page ที่ 1 จะแสดงเฉพาะการเข้าใช้งานครั้งแรก เป็นอันว่าต้องแก้ไข script กันจนหน้ามืดเหมือนกัน

การทดสอบแบบ manual มีความสะดวกและรวดเร็ว เพราะไม่ต้องเสียเวลาในการทำ script แค่คุณมี test case
หรือ test script และระบบที่จะทดสอบ เท่านั้นคุณก็ perform test ได้เลย การทำ manual test สามารถ
ทำได้ค่อนข้างละเอียดกว่าแบบ automated ด้วยเหตุผลที่ว่า ช่วงขณะที่ทำ perform test หากต้องการที่
จะทำการทดสอบเพิ่มเติมสามารถทำได้ทันที แต่ถ้าเป็น automated ต้องเสียเวลากลับไปแก้ไข script
แต่ถ้าหากระบบเกิดมี change requirement หลังจาก production แล้ว ซึ่งถ้า requierment นั้นเกิด
impact กับ core function และมีเหตุให้ต้อง manual อีกรอบบอกได้เลยว่า เตรียมหน้ามืดได้เหมือนกัน

ถึงแม้จะเลือกการทดสอบระบบแบบ Automated Testing  ก็ควรทำ Manual Testing ก่อน
เพราะการทำ Manual Testing ก่อน จะช่วยลด bug ที่จะเกิดขึ้นในระบบ
และยังช่วยให้ script ที่ใช้ run ไม่เกิดสะดุดเวลา re-run script

โดยส่วนตัวผู้เเขียนชอบทำ Manual Testing มากกว่า เพราะสามารถทดสอบได้ละเอียดกว่า
หากต้องตัดสินใจว่าควรเลือกการทดสอบแบบ Manual Testing หรือ Automated Testing
คุณคงต้องพิจารณาหลายปัจจัยเหมือนกัน เช่น เงื่อนไขของเวลา , ความซับซ้อนของระบบที่จะทดสอบ
คำสั่งจากเบื้องบน หรือปัจจัยอื่น ๆ  ซึ่งปัจจัยต่าง ๆ เหล่านี้ อาจมีส่วนช่วยคุณตัดสินใจว่า
ว่าควรใช้ Manual Testing หรือ Automated Testing ถึงจะเหมาะกับการทดสอบระบบของคุณ