
สวัสดียามค่ำวันพฤหัสบดีที่ 5 มีนาคม 2552 หลังจากอิ่มหมีพีมัน แอบพุงกางมาจากอาหารมื้อเย็นแล้วนั้น ก็นั่ง Build อารมณ์อยู่พักใหญ่ๆ เลยจนกระทั่งนิ้วทั้งสิบเริ่มที่จะขยับได้ดี ก็ค่อยๆ เยื้องย่างมานั่งที่เก้าอี้ แล้วจัดการจรดปลายนิ้วเพื่อทำการ update เรื่องลงใน We Love Bug สักหน่อยครับเพื่อนพ้องน้องพี่
ปัญหาด้าน Performance และ Stability ขึ้นนั้น ปัญหาเหล่านั้นมักจะไม่ใช่ปัญหาเล็กๆ และส่วนใหญ่จะส่งผลกระทบโดยรวมกับการทำงาน และให้บริการของ Software โดยตรง ซึ่งไม่ใช่เรื่องสนุกในการเข้าไปวิเคราะห์ เพื่อหาสาเหตุ รวมทั้งแก้ไขปัญหา Performance และ Stability ของ Software เมื่ออยู่บนระบบ Production
เมื่อ Software เกิดปัญหา Performance และ Stability ขึ้นนั้น ส่วนใหญ่มักจะส่งผลต่อ Functionality ของ Software ด้วยเช่นกัน ผลกระทบที่เกิดขึ้นนั้นจากประสบการณ์ที่ผ่านมาทั้งโดยตรงกับตัวผู้เขียนเอง และประสบการณ์จากเพื่อนพ้องน้องพี่ในแวดวง Software Tester และ Software Development มักจะส่งผลโดยตรงกับความเชื่อมั่นของผู้ใช้บริการ และภาพลักษณ์ขององค์กรโดยตรง
เมื่อเกิดปัญหาขึ้น จะต้องรับผิดชอบร่วมกันหมดทุกๆ คน ที่เกี่ยวข้องกับ Software นั้น เพราะว่าในทุกๆ ขั้นตอนของการพัฒนา Software (Software Development Life Cycle หรือ SDLC) จะต้องให้ความสำคัญกับเรื่องของ Performance และ Stability ของ Software ร่วมกัน มิใช่ความผิดของใครคนใดคนหนึ่ง
จากประสบการณ์ที่ผ่านมาในการทำ Performance Testing และจากการพูดคุยกับเหล่า Software Testers หลายๆ คนที่รู้จักกัน ส่วนใหญ่ก็จะเริ่มทำ Performance Testing หลังจากเสร็จสิ้นในส่วนของ System Testing, Integration Testing และ Regression Testing เพื่อให้ Code สมบูรณ์ที่สุด และกำจัด Defects ต่างๆ ที่จะส่งผลต่อการทำงานของระบบให้มากที่สุด
แต่นั่นอาจจะสายเกินไปหากผลการทดสอบ Performance Testing แสดงให้เห็นว่าคุณกำลังเผชิญหน้ากับปัญหาเรื่อง Performance และ Stability ของ Software หรือ Application ยิ่งปัญหานั้นส่งผลกระทบต่อการทำงานหลักของ Software หรือ Application นั้นอย่างจัง นั่นก็หมายถึงทีมพัฒนา Software หรือ Application ทุกๆ คนจะต้องลงมาช่วยกันวิเคราะห์ เพื่อหาสาเหตุ และหาทางแก้ไข เพื่อให้ปัญหานั้นถูกแก้ไข เพื่อให้ Software หรือ Application สามารถให้บริการได้อย่างถูกต้อง และเสถียรติ
ดังนั้น Performance Testing ควรจะต้องเริ่มทำตั้งแต่เริ่มต้นกระบวนการพัฒนา Software หรือ Application ไปจนกระทั่งสิ้นสุดการพัฒนา เพื่อจะได้แก้ไข และป้องกัน ปัญหาต่างๆ ที่จะส่งผลต่อ Performance และ Stability ของ Software หรือ Application นั้น ในทุกๆ ขั้นตอนของการพัฒนา ดีกว่าที่จะมาเจอเข้าตอนทำ Performance Testing โดยทีม Test
ขั้นตอนแรกสุดของการพัฒนาระบบ หรือแอพพลิเคชั่น ซึ่งควรจะให้ความสำคัญในเรื่องของความต้องการ (Requirement) ที่จะมีผลต่อ Performance และStability ของ Software หรือApplication เช่น จำนวนผู้ใช้ที่จะเข้ามาใช้บริการ หรือ Response Time ที่ต้องการ เป็นต้น เพราะข้อมูลเหล่านั้น จะเป็นค่าของการตรวจวัดความสามารถของระบบ หรือแอพพลิเคชั่นเมื่อทดสอบ Performance Testing
ต้องยอมรับกันว่าระบบ หรือแอลพลิเคชั่นที่เสร็จสิ้นการพัฒนาออกมาแล้วนั้นคุณภาพในส่วนของ Performance และ Stability ต่ำ เนื่องมาจากการมองข้าม หรือละเลยในการออกแบบให้ครอบคลุมในส่วนของ Performance และ Stability ของ Software หรือApplication รวมทั้งการออกแบบระบบ หรือแอพพลิเคชั่น เพื่อให้รองรับการขยายตัว (Scalability) เมื่อมีจำนวนผู้ใช้งานมีจำนวนมากขึ้น
ดังนั้นการป้องกันปัญหาที่จะเกิดขึ้น ณ ขั้นตอนการออกแบบนั่นเป็นส่วนสำคัญส่วนหนึ่งด้วยเช่นกัน เพราะหากปัญหาต่างๆ มาถูกตรวจพบ ณ ขั้นตอนของการทดสอบ Performance Testing และสาเหตุของปัญหาเกิดจากการออกแบบระบบที่ผิดพลาด การแก้ไขที่จะเกิดขึ้นก็ไม่ต่างจากกลับไปเริ่มต้น ณ จุดแรกของการพัฒนาระบบ หรือแอพพลิเคชั่นใหม่
ในทุกๆ ขั้นตอนเริ่มต้นพัฒนาระบบ หรือแอพพลิเคชั่น หากสามารถเริ่มต้นที่จะทำการทดสอบ Performance Testing ได้ตั้งแต่ขั้นตอนนี้ เป็นสิ่งที่ดีในการตรวจพบปัญหา และดำเนินการแก้ไข ณ ตั้งแต่ต้น
การวางแผนการทดสอบ และออกแบบการทดสอบ นั้นควรจะวางแผน และออกแบบกานทดสอบอย่าให้ความสำคัญเพียงแต่ในส่วนของระบบ หรือแอพพลิเคชั่นนั้นๆ เพียงอย่างเดียว ควรจะต้องให้พิจารณา, วางแผน และออกแบบการทดสอบให้ครอบคลุมส่วนของ System Infrastructure ในส่วนของเครื่อง Servers, ค่า Configurations และระบบ Network
การเลือกข้อมูลที่จะถูกใช้การทดสอบ (Test Data) ก็เป็นสิ่งที่จะต้องให้ความสำคัญด้วยเช่นกัน ควรจะพิจารณาเลือกข้อมูลที่จะนำมาใช้จากข้อมูลจริงที่จะเกิดขึ้นจากการใช้งานของผู้ใช้ที่จะเกิดขึ้นจริง
ขั้นตอนของการดำเนินการทดสอบ Performance Testing นั้นจะเกิดขึ้นซ้ำๆ เมื่อปัญหาที่ถูกตรวจพบได้ถูกดำเนินการแก้ไข Tester ต้องดำเนินการทดสอบซ้ำเพื่อตรวจสอบว่าปัญหานั้นๆ ได้ถูกแก้ไข และไม่ก่อให้เกิดผลกระทบอื่นๆ เกิดขึ้น รวมทั้งไล่ล่าหาปัญหาใหม่ๆ ที่จะเกิดขึ้น และส่งผลกระทบกับระบบ หรือแอพพลิเคชั่นเพิ่มเติม เนื่องจากการแก้ไขส่วนเล็กๆ ใดๆ ของระบบ หรือแอพพลิเคชั่น ไม่ว่าจะเป็นในส่วนของ Coding, Query ของการใช้งาน Database หรือการปรับ Configurations ของเครื่อง Servers สามารถจะสร้างปัญหา และผลกระทบตามมา หากไม่ได้พึงระวังในส่วนของผลกระทบที่เกิดขึ้นจากการแก้ไข และส่งผลให้ไม่ผ่านตามเกณฑ์การทดสอบ Performance Testing ที่ได้ถูกกำหนดไว้
ร่ายยาวมาเลยทีเดียวสำหรับ ตอน เริ่มทำเมื่อ หลายๆ ท่าน อาจจะมีมุมมองที่ไม่เหมือนกัน หรือผ่านพบประสบการณ์ในการทำ Performance Testing มา ก็ยินดีที่จะได้รับคำแนะนำ หรือแสดงความคิดเห็นกันนะครับ
ในตอนต่อไปเราจะมาคุยกันว่า Performance Testing ใครที่เกี่ยวข้องบ้าง มิใช่มีแค่ Tester เท่านั้นครับพี่น้อง
2 Responses to Performance Testing นั้น…สำคัญไฉน ตอน เริ่มทำเมื่อ
catzaa
May 28th, 2009 at 12:15 am
ก๊อกๆ มีใครเคยใช้ Open STA บ้างหรือเปล่าคะ? แบบว่า มือใหม่หัดเทส นะค่ะ และต้องหัดใช้แบบเร่งด่วนนะคะ
Zyracuze
May 29th, 2009 at 12:52 pm
K.catzaa,
ยังไม่เคยได้เข้าไปลองเลยครับตัว Open STA แต่น่าสนใจดี
จะให้น้องๆ ในทีมลงไปลอง แล้วมาแชร์ประสบการณ์กันดีกว่า