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

ขอโทษนะ !! ยังจะทดสอบแบบ Manual เป็นหลักกันอยู่อีกหรือ ?

$
0
0

Manual-testing

manual-vs-automated-testing-which-of-them-is-in-demand การสร้างชุดของ Automated test หรือ การทดสอบแบบอัตโนมัติ มันทำได้ยากมาก ๆ โดยเฉพาะพวกระบบ Legacy หรือ ระบบที่อยู่มาอย่างยาวนาน หรือ ระบบที่ไม่ได้เขียน Automated test มาตั้งแต่เริ่มต้น รวมทั้งยังพบว่า ทีมพัฒนาส่วนใหญ่จะไม่ลงทุนเพื่อเขียนอีกต่างหาก เนื่องจากคิดว่า เราคงทำไม่ได้หรอก เนื่องจากคิดว่า มันสิ่งเปลืองเวลา เนื่องจากคิดว่า ระบบของเรามันแตกต่าง เนื่องจากคิดว่า ระบบที่เราสร้างมันไม่สามารถเขียน Automated test ได้หรอกนะ ซึ่งเป็นแนวคิดที่ไม่ถูกต้อง และ นำไปสู่หายนะในที่สุด ทำไมนะ ? บทความนี้ นำข้อมูลมาจาก Blog เรื่อง MANUAL TEST IS UNSUSTAINABLE

ลองย้อนกลับไปดูช่วงเริ่มต้นพัฒนาระบบดูสิ

จะพบว่าการทดสอบแบบ Manual มันทำได้ง่ายมาก ๆ มันใช้เวลาในการทดสอบน้อยมาก แต่เมื่อมันค่อย ๆ เกิดการเปลี่ยนแปลง เมื่อระบบใหญ่ขึ้น การทดสอบแบบ Manual จะใช้เวลานานขึ้น และ ยากขึ้น และดูเหมือนว่า การทดสอบแบบ Manual มันกลับกลายเป็นปัญหา เพราะว่า ไม่สามารถทดสอบได้ครบทุก ๆ feature นั่นหมายความว่า เราไม่สามารถหาปัญหา หรือ ความผิดพลาด ทั้งหมดได้ นั่นหมายถึง คุณภาพของระบบที่พัฒนา มันย่อมไม่ดีใช่ไหม ? นั่นหมายถึง คุณภาพของระบบที่พัฒนา มันไม่ยั่งยืนใช่ไหม ? ปล. บางที่ก็แก้ไขที่ปลายเหตุ ด้วยการเพิ่มคนทดสอบไปสิ !! บางที่ก็กลับไปกดดัน ให้ทดสอบดี ๆ และคาดหวังผลลัพธ์ที่สุดยอด !! สิ่งที่มักพบเจออยู่เป็นประจำ คือ Feature ใหม่ทำงานได้ แต่ feature เก่ากลับทำงานไม่ได้ Bug เก่าที่เคยแก้ไขไปแล้ว กลับมาอีกครั้งหนึ่ง วนแบบนี้ไปเรื่อย ๆ ไม่จบไม่สิ้น แต่ไม่เคยจำกัน  ทำไมนะ !!

ปัญหามันมาจาก ความสามารถในการพัฒนา และ ทดสอบ มันมีเท่าเดิม

แสดงดังรูป assume-dev-is-propotional-to-test ดังนั้น เมื่อ feature ที่พัฒนาจำนวนมากขึ้นอย่างต่อเนื่อง แต่ความสามารถในการทดสอบแบบ Manual กลับเท่าเดิม ทำให้ไม่สามารถทดสอบได้ครบทุก feature ตั้งแต่เริ่มต้นจนถึงล่าสุด !! แสดงดังรูป manual-test-is-unsustainable ผลที่เกิดขึ้นตามมา มันมักจะพบเจอช่วงท้าย ๆ ของการพัฒนา !! นั่นคือ ไฟไหม้ไงล่ะ ซึ่งทุกคนต้องมาช่วยกันดับไฟ แต่มักจะพบว่า ทุกคนจะถูกไฟเผามากกว่า ปล. เรามักจะต้อง WAR Room ขึ้นมา เพื่อแก้ไขปัญหาเหล่านี้ มีใครคุ้น ๆ บ้างนะ ขนาดของห้องนี้ มันขึ้นอยู่กับขนาด และ งบประมาณของระบบนั่นเอง แสดงดังรูป untested-code-gap เราจะพบว่า feature หรือ code ที่ไม่ถูกทดสอบนั้น มันส่งผลต่อ productivity เสมอ มันส่งผลต่อ การประมาณการ เสมอ มันส่งผลต่อ การวางแผน และ คาดการล่วงหน้า เสมอ พบว่า เราไม่ชอบวิธีการที่จะหา Bug ได้ง่าย ๆ แต่เราชอบวิธีการที่ซ่อน หรือ หา Bug ยาก ๆ !! ดังนั้น วิธีการที่เลือก มันจึงพาทุก ๆ คนเข้าสู่ mode การดับไฟ และ ผจญเพลิง ตลอดเวลา ดังนั้น คุณยังจะทำการทดสอบแบบ Manual เป็นหลักกันอยู่อีกหรือ ? คุณยังจะทดสอบอยู่ปลายน้ำของการพัฒนากันอยู่อีกหรือ ? คุณยังจะทำการแก้ไข Bug ต่าง ๆ ที่เดียวเยอะ ๆ กันอยู่อีกหรือ ? คุณยังจะสร้างระบบงานที่ไม่ยั่งยืนแบบนี้อยู่อีกหรือ ? คุณจะยังพัฒนาระบบงานกันแบบนี้อยู่อีกหรือ ? สำหรับตัวผมเอง ตอบได้เลยว่า ไม่แน่นอน
ลองถามตัวคุณเองสิว่า เรายังจะมาพูด หรือ อ้างว่า เราไม่มีเวลา มาสร้าง Automated test หรอกนะ กันอยู่อีกหรือไง ?

Viewing all articles
Browse latest Browse all 1997

Trending Articles