![IT insight : Performance Testing](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAACpAQAAAAC5DD0HAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAACdFJOUwAAdpPNOAAAAAJiS0dEAAHdihOkAAAAB3RJTUUH5wIJDh8G7vob0QAAAB1JREFUWMPtwTEBAAAAwqD1T20ND6AAAAAAAAA4Mhm/AAFocd1NAAAAAElFTkSuQmCC)
ถ้าถามว่า Performance Testing จำเป็นต้องทำทุกองค์กรมั้ย คำตอบคืออยู่ที่ Product ขององค์กรว่าจะมีการใช้งานของ Users จำนวนมากหรือน้อย มี Response Time ที่ดีหรือไม่ เพราะองค์กรก็จำเป็นต้องรักษาประสบการณ์ที่ดีและสร้างความเชื่อมั่นให้ลูกค้า การทำ Performance Testing ก็มีเพื่อแก้ปัญหาในเรื่องนี้
IT Insight: Performance Testing จำเป็นสำหรับทุกโปรเจกต์ไหม แล้วต้องใช้ Tools อะไรบ้าง? (EP.2)
เราได้รู้ไปแล้วว่า Performance Testing คืออะไรจากบทความที่แล้ว IT Insight: Performance Testing คืออะไร มี Test กี่ชนิดที่ต้องทำ? (EP.1) บทความนี้จะพาคุณไปเจาะลึกว่าตำแหน่งนี้มีความสำคัญอย่างไรบ้าง จำเป็นไหมว่าทุกโปรเจกต์ต้องมีการทำ Performance Test รวมไปถึง Tools ต่างๆ ที่ต้องใช้นั้นมีอะไรบ้าง โดย Guest Speaker คุณอภิรักษ์ พรายแก้ว หรือ คุณนิว ปัจจุบันทำงานในตำแหน่ง Performance Test Lead ที่บริษัทยักษ์ใหญ่แห่งหนึ่งซึ่งมีชื่อเสียงด้านอีคอมเมิร์ซและธุรกิจค้าปลีก ดำเนินการสัมภาษณ์โดย คุณ Dollada Puangsod หรือคุณการ์ตูน ที่ปรึกษาและผู้เชี่ยวชาญด้านการสรรหาบุคลากรในสายงานไอทีจาก Cathcart Technology
มี Tools อะไรที่แนะนำสำหรับการทำ Test บ้าง?
มี Tools 2 ตัวหลักๆ ที่นิยมใช้สำหรับ Performance Testing ก็คือ JMeter กับ LoadRunner ถือเป็นตัวฮิตที่ติดอันดับต้นๆ ของตลาด โดยความแตกต่างก็คือ
-JMeter:
เป็น Free-non license จึงเป็นที่นิยมมากกว่า โดยมีลักษณะเป็น JAVA Scripting ในการทำ Performance Test ข้อดีของ Free-non license ก็คือมีผู้ใช้เยอะ ทำให้มี Support Community ที่กว้างกว่า ทำให้สามารถเรียนรู้ด้วยตัวเองได้ นอกจากนี้ยังสามารถทำ Virtual Users ได้แบบ Unlimited สร้างขึ้นได้ไม่จำกัดีอกด้วย
แต่ข้อเสียคือมี Protocol การใช้งานที่ไม่หลากหลายเท่าไหร่ อาจจะเหมาะกับการทำ Webservice, API, ทำหน้าเว็บ แต่จะไม่เหมาะกับการทำ Mobile App
-LoadRunner:
เป็น Tool ที่มี License และราคาค่อนข้างสูง มี Protocol Support ที่หลากหลาย ทั้งส่วนที่เป็นเว็บและ Mobile มีฟังก์ชันการทำงานเยอะ สะดวกต่อการใช้งาน มี User Interface ใช้งานง่ายและมี Tools ให้ใช้เยอะมาก แต่มีข้อจำกัดก็คือ สามารถใช้ได้ตามจำนวน Virtual Users คือซื้อมาเท่าไหร่ ก็จะ Limit ที่เท่านั้น
ซึ่งเราจะเลือกใช้ Tools แบบไหนนั้นก็ขึ้นอยู่ที่การดีไซน์ของเราว่าจะใช้ไปเพื่อทำอะไร เพื่อเลือกใช้ Tools ให้เหมาะสมและตอบโจทย์มากที่สุด
แล้วทุกโปรเจกต์ควรต้องทำ Performance Test มั้ยหรือไม่จำเป็น?
Performance Test นั้นช่วยในการ Predict ตัวระบบของเราเองเมื่อต้องเจอกับสถานการณ์ต่างๆ เพื่อให้เห็นปัญหา แก้ไขและหลีกเลี่ยงสถานการณ์นั้นได้ทันเมื่อใช้งานจริง เช่น เวลาที่เกิดระบบช้าหรือระบบล่ม และถ้าถามว่าจำเป็นต้องทำทุกองค์กรมั้ย คำตอบคืออยู่ที่ Product ขององค์กรว่าจะมีการใช้งานของ Users จำนวนมากหรือน้อย มี Response Time ที่ดีหรือไม่ เพราะองค์กรก็จำเป็นต้องรักษาประสบการณ์ที่ดีและสร้างความเชื่อมั่นให้ลูกค้า การทำ Performance Testing ก็มีเพื่อแก้ปัญหาในเรื่องนี้
โดยอันดับแรกเราต้องรู้ก่อนว่า เราจะมีผู้ใช้งานระบบทั้งหมดเท่าไหร่ ถ้ามีจำนวนน้อยและไม่มีความจำเป็นต้องให้ระบบตอบสนองเร็ว ก็ไม่มีความจำเป็นต้องทำ Performance Testing ก็ได้ แต่ให้ลองพิจาณาจาก Apps Users ว่าคุ้มค่าที่จะลงทุนหรือไม่
คุณนิวสรุปให้เราเข้าใจง่ายๆ ว่า
–Performance Test เน้น Knowledge ในเชิง Technical
–Manual/ Automation Test เน้น Knowledge ในเชิง Business
มี Challenge อะไรบ้างสำหรับการทำ Performance Testing?
ปัญหาที่พบบ่อยคือเรื่องการจำลอง Test Data และปริมาณข้อมูลให้สมจริง รวมไปถึง Environment ที่ใช้ทำ บางที่ใช้ได้ไม่เพียงพอเพราะมีข้อจำกัด หรือออกแบบมาไม่สมจริง หรือการหา Bottle Neck ของระบบก็เป็นอีก Challenge หนึ่ง เพราะเวลา Perform ไม่ดี เราก็ต้องไปค้นหาอีกครั้ง Analysis ว่าสาเหตุที่ทำให้ผลเป็นแบบนี้อยู่ตรงไหนและเกิดจากจากอะไร
แล้วอะไรคือสิ่งที่ท้าทายที่สุด?
สิ่งที่ท้าทายคือความหลากหลายไม่จำเจ เพราะการทำ Performance Tseting ต้องเจอ Application มาจากหลากหลาย Platform ได้เรียนรู้ Technology ใหม่ๆ ถ้าได้ทำ Performance Test ในหลายๆ Business ก็จะทำให้เรามีประสบการณ์ ทำได้ครอบคลุม และมีประสิทธิภาพสูง อีกเรื่องที่ท้าทายคือตำแหน่งนี้อาศัยทักษะการ Presentation และ Communication สูงมาก เพราะเราต้องทำ Report ออกมา และติดต่อกับหลาย Party มากๆ
ฝากถึงคนที่อยากเริ่มก้าวเข้าสู่เส้นทาง Performance Test สักนิด
คุณนิวมองว่าตำแหน่งนี้ยังถือว่ามีค่อนข้างน้อย ส่วนใหญ่ไปเป็น Automated/ Manual Test กันหมด อย่างแรกคือการรู้จักตัวเองก่อนว่าชอบอะไร แล้วเอาตัวเองเข้าไปอยู่ในสภาพแวดล้อมที่ใช่ เพราะถ้าได้ทำในสิ่งที่ชอบ เราก็จะทำมันออกมาได้ดี สั่งสมประสบการณ์ไปได้เรื่อยๆ ก็จะทำให้เชี่ยวชาญและเก่งขึ้น หมั่นศึกษาค้นคว้าเพิ่มเติมเยอะๆ และทำงานที่ครอบคลุมได้หลายอย่าง ก็จะยิ่งช่วยทำให้เป็นที่ต้องการของตลาดมากยิ่งขึ้น
ฟัง Podcast สำหรับ Episode นี้ของเราได้ที่นี่ :
–Tech Hustle Thailand EP.14
–Captivate EP.14
Article by Thanisorn Boonchote