Technology

Automated Testing กับการพัฒนาโปรแกรม

By Arnon Puitrakul - 11 มกราคม 2016

Automated Testing กับการพัฒนาโปรแกรม

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

Automated Testing

แต่ด้วยความซับซ้อนที่มากขึ้นเรื่อย ๆ ของโปรแกรมที่เราออกแบบ ทำให้ความเสี่ยงที่จะผิดพลาดนั้นย่อมสูงขึ้นตามไปด้วยเช่นกัน แต่ในปัจจุบันตอนนี้เลยมีคำว่า Automated Testing เกิดขึ้นมา เพื่อลดข้อผิดพลาดของมนุษย์ (Human Error) ที่อาจจะเกิดได้ในการพัฒนาโปรแกรม และการทดสอบ

ทำไมต้องใช้ Automated Testing

ในช่วงแรก ๆ ของการพัฒนา โปรแกรมของเราอาจจะมีขนาดที่ไม่ใหญ่มาก (ย้ำว่า ช่วงแรก ๆ จริง ๆ) อาจจะมี Components หรือ ระบบย่อย ๆ ข้างใน อยู่แค่ไม่กี่ตัว ทำให้เราสามารถทำ Manual Testing ได้ง่าย และความผิดพลาดก็อาจจะเกิดขึ้นได้น้อย
เอาล่ะครับ หลังจากที่เราพัฒนาโปรแกรมไปเรื่อย ๆ Components ที่มีอยู่ระบบของเราก็จะบานขึ้นไปเรื่อย ๆ งานงอกสิครับ !! เพราะว่า เวลาเราทำ Test ที เราก็ต้องทำให้กับ Components ทุกอัน เลยทำให้ยุ่งกันเข้าไปใหญ่เลย
ปัญหายังไม่หมดแค่นี้หรอกนะ (ยังมีอีกเหรอ !!) ปัญหาข้างต้นถือว่าเป็นเรื่องจิ๊บ ๆ ไปเลย ถ้าหลังจากที่เรา Deploy โปรแกรมที่เราเขียนไปแล้ว แต่พอเวลาผ่านไป เราต้องการที่จะเพิ่ม Feature หรือขยายโปรแกรมของเราไปเรื่อย ๆ เราบอกเลยว่า มันไม่มีทางเลยที่เราจะใช้ Resource ในการทำเท่าเดิม เพราะว่า ระบบใหญ่ขึ้น เราต้องเขียน Test มากขึ้นอีก ทำให้เราต้องใช้ คนเยอะขึ้น และเวลาที่มากขึ้นในการทำงานอีก สิ่งที่งอกตามมานั่นก็คือ ค่าใช้จ่าย

"ก็ซื้อ Resource มาถวายมันซะ !!"

แต่ลองนึกถึงโลกแห่งความเป็นจริง เราต้องเลิกมโนก่อนว่า เรามีเงินเยอะขนาดนั้นเลยเหรอที่จะซื้อ Resource เติมให้กับระบบที่หิวโหยแบบสุด ๆ ราคาของมันก็ไม่ถูกเลย ใช่มั้ยครับ ?
เพราะฉะนั้น การพัฒนาโปรแกรมในสเกลที่ใหญ่ เราจะต้องคำนึงถึงหลาย ๆ เรื่อง ไม่ว่าจะเป็น เทคโนโลยีที่ใช้, Target Platform, ความยากง่ายในการดูแล และที่สำคัญคือเรื่อง Performace
ลองคิดดูว่า ถ้ามีบริษัท A บอกว่า โปรแกรมแบบนี้ใช้ Resource 20 หน่วย แต่ บริษัท B บอกว่า "เฮ้ย โปรแกรมเราก็ทำได้เหมือนกันนะ แต่ใช้ Resource แค่ 10 หน่วยเองนะ" หรืออาจจะบอกว่า "โอกาที่ระบบเราจะล่ม มีน้อยกว่านะ" เราก็ต้องเลือกโปรแกรมของบริษัท B ใช่มั้ยครับ !!
ฉะนั้นแล้วการทำ Manual Testing ในระบบที่มีสเกลค่อนข้างใหญ่ถึงใหญ่สั_ ๆ ผมถือว่าเป็นเรื่องที่สามารถสร้างหายนะได้เลยล่ะ ถึงจะบอกว่า "เฮ้ย เราทำได้ !!" แต่แทนที่เราจะมีสมาธิกับการสร้างโปรแกรมออกมา มันก็จะกลายเป็นต้องมามีสมาธิและเวลากับการทำ Testing ซะงั้น

วิธีแก้ !!

Automated Testing

การแก้ปัญหาง่าย ๆ สำหรับคนที่กำลังประสบปัญหา เรื่องการเสียเวลาในการทำ Testing หรือโปรแกรมเรามี Bug เต็มไปหมด ผมขอแนะนำให้เริ่มหันหน้าไปใช้ Automated Testing Tool บ้าง (ย้ำว่า บ้าง !) จากประสบการณ์แล้ว การใช้ Automated Testing Tool สามารถลดเวลาในการพัฒนาโปรแกรมของเราไปได้เยอะมาก ๆ เลย
ซึ่งในปัจจุบันนี้ Tool ที่ช่วยให้เราสามารถทำ Automated Testing นั้นผุดขึ้นมาเป็นดอกเห็ดเลย ก็อยู่ที่ความเชี่ยวชาญ หรือ Skill ที่ฝึกมาของแต่ล่ะคน แล้วเอามันเข้ามาใช้ใน Workflow จะทำให้เราสามารถทำงานได้ราบรื่นขึ้น และไม่ต้องมาห่วงหน้าพะวงหลัง และปวดตับว่า ทำไปแล้วโปรแกรมมันจะพังมั้ย !
แล้วถามว่า Manual Testing หายไปไหนล่ะ ? จริง ๆ แล้ว เราก็ไม่สามารถชใช้ Testing แบบ Automated ได้ทั้งหมด 100% เต็มหรอก เราก็อาจจะต้องพึ่งการทำ Manual Testing อยู่เหมือนเดิมแหละ แต่ว่า เราอาจจะ (ไม่อาจจะสิ !!) ลดความสำคัญของ Manual Testing ลง แล้วไปโฟกัสกับการใช้ Automated Testing มากกว่า

สรุป

จากที่พูดมาทั้งหมด ผมอยากจะบอกนักพัฒนาที่ยังใช้ Manual Testing ล้วน ๆ 100% อยู่ ให้ลองหันมาใช้ Testing แบบ Automated บ้างเพื่อให้สามารถโฟกัสกับตัว Main ของตัวโปรแกรมที่เรากำลังออกแบบ และ Implement อยู่ จะได้ใช้เวลากับการ Test เท่าเดิม ก็เหมือนกับเราพูดว่า ใช้เวลาเท่าเดิมแต่ทำงานได้มากขึ้นเลยแหละ ไม่กล่าวเกินจริงเลย อยากรู้เพิ่มลองเข้าไปอ่านบทความด้านล่างดู น่าจะทำให้เราเข้าใจมากขึ้นว่า ทำไม Automated Testing ถึงสำคัญขนาดนั้น How Importany is Test Automation in Software Project

Read Next...

รวมวิธีการ Backup ข้อมูลที่ทำได้ง่าย ๆ ที่บ้าน

รวมวิธีการ Backup ข้อมูลที่ทำได้ง่าย ๆ ที่บ้าน

การสำรองข้อมูลเป็นเรื่องสำคัญมาก ๆ อารมณ์มันเหมือนกับเราซื้อประกันที่เราก็ไม่คาดหวังว่าเราจะได้ใช้มันหรอก แต่ถ้าวันที่เราจำเป็นจะต้องใช้การมีมันย่อมดีกว่าแน่นอน ปัญหาคือเรามีวิธีไหนกันบ้างละที่สามารถสำรองข้อมูลได้ วันนี้เราหยิบยกวิธีง่าย ๆ ที่สามารถทำได้ที่บ้านมานำเสนอกัน...

Trust ความเชื่อมั่น แต่ทำไมวงการ Cyber Security ถึงมูฟออนไป Zero-Trust กัน

Trust ความเชื่อมั่น แต่ทำไมวงการ Cyber Security ถึงมูฟออนไป Zero-Trust กัน

คำว่า Zero-Trust น่าจะเป็นคำที่น่าจะเคยผ่านหูผ่านตามาไม่มากก็น้อย หลายคนบอกว่า มันเป็นทางออกสำหรับการบริหาร และจัดการ IT Resource สำหรับการทำงานในปัจจุบันเลยก็ว่าได้ วันนี้เราจะมาเล่าให้อ่านกันว่า มันคืออะไร และ ทำไมหลาย ๆ คนคิดว่า มันเป็นเส้นทางที่ดีที่เราจะมูฟออนกันไปทางนั้น...

แปลงเครื่องคอมเก่าให้กลายเป็น NAS

แปลงเครื่องคอมเก่าให้กลายเป็น NAS

หลังจากเราลงรีวิว NAS ไป มีคนถามเข้ามาเยอะมากว่า ถ้าเราไม่อยากซื้อเครื่อง NAS สำเร็จรูป เราจะสามารถใช้เครื่องคอมเก่าที่ไม่ได้ใช้แล้วมาเป็นเครื่อง NAS ได้อย่างไรบ้าง มีอุปกรณ์ หรืออะไรที่เราจะต้องติดตั้งเพิ่มเติม วันนี้เราจะมาเล่าให้อ่านกัน...

รีวิว Ugreen Nexode Pro Charger ที่เบา กระทัดรัดที่สุด

รีวิว Ugreen Nexode Pro Charger ที่เบา กระทัดรัดที่สุด

เมื่อปีก่อน เรารีวิว Adapter 100W จาก UGreen ที่เคยคิดว่ามันเล็กกระทัดรัด น้ำหนักเบา พกพาง่ายที่สุดไปแล้ว ผ่านมาปีนึง เรามาเจออีกตัวที่มันดียิ่งกว่าจากฝั่ง Ugreen เช่นเดียวกันในซีรีย์ Nexode Pro วันนี้เรากดมาใช้เอง 2 ตัวคือขนาด 65W และ 100W จะเป็นอย่างไร อ่านได้ในบทความนี้เลย...