หลายคนน่าจะพอรู้ว่าอาชีพหลักที่ตอนนี้ผมทำงานหาเงินมาเลี้ยงพุงน้อยๆ อันใหญ่โตของผมก็คือ เป็น Tester หรือ Software Tester หรือ Quality Engineer หรือ Quality Assurance Engineer (เรียกได้เยอะชิบเป๋ง แต่เงินเดือนเท่าเดิม ฮา…) ที่ Reuters Software Thailand ซึ่งตอนนี้ผมก็อยู่มาเข้าปีที่ 10 แล้ว เรียกได้ว่าเตะฝุ่นหลังจากเรียนจบแล้วก็เข้ามาทำงานที่นี่เลย
ตอนที่เรียนวิทย์คอม ที่ม.ขอนแก่นตอนนั้นยอมรับโดยดีว่าความรู้ที่เกี่ยวกับการเขียนโปรแกรมทั้งหลายทั้งมวลมีค่าเข้าใกล้ศูนย์มากเสียจริงๆ โปรแกรมที่เขียนได้ก็จะมีแค่ COBOL, Visual Basic เท่านี้ครับ เท่านี้จริงๆ นอกนั้นก็อาศัยลอกบ้าง (ต้องยอมรับตรงจุดนี้) เขียนแบบเด็กน้อยส่งไปบ้าง เกรดที่ออกมาก็ไม่ได้สวยหรูอะไรนักครับ จบออกมาด้วยเกรดนิยม 2.38 เท่านั้น
แต่สิ่งหนึ่งที่บอกผมว่าผมควรมาสายที่เกี่ยวข้องกับด้าน Tester ก็คือวิชา SAD หรือ SA (System Analysis and Design) ซึ่งในหนังสือเล่มนี้มีการพูดถึงการออกแบบการทดสอบโปรแกรมว่ามีวิธีไหนบ้าง ซึ่งตอนนั้นผมชอบมาก + ฝังใจมาก เพราะอาจารย์พี่ลูกเกด (อ.ดร.สุมณฑา เกษมวิลาศ) สอบแล็บวิชานี้ แล้วแกจับเทสโปรแกรมที่เขียนกันเป็นกลุ่ม เพราะแกทักให้ใส่ค่าพิสดารต่างๆ ไม่ว่าจะเป็น 0 -1 abc ทำให้แต่ละกลุ่มต้องกลับไปใส่ค่าดัก error กันแหลกลาญ ซึ่งผมจำได้ดีว่าวันสอบแล็บ เริ่มประมาณสายๆ จบที่ตี 2 มั้ง รวมทั้งโปรเจคจบที่ผมได้จับคู่กับเสี่ยดุ๊ก ธรรณพงษ์ ศิลาเณร ซึ่งผมก็ดูแลพวกหน้า User Interface และพวกเอกสารทั้งหลาย จากจุดนี้หล่ะที่ทำให้ผมสนใจที่จะเป็น Tester หรือไม่ก็เป็น SA
ด้วยความที่เข้าใจมาตลอดว่าการเป็น Tester นั้นไม่ต้องมานั่งเขียน Code หรอก เพราะเดี๋ยวพวกโปรแกรมเมอร์หรือเดเวลอปเปอร์เขาก็เป็นคนเขียนเอง ผ่านมาจนถึงตอนนี้ หากใครที่ยังคิดเหมือนกับที่ผมคิดในเวลานั้น ขอจงล้างความคิดออกไปเสียนะครับ เพราะมันจะทำให้ลำบากในการเป็นมนุษย์เงินเดือน!
ที่ผมบอกไปจริงทุกอย่างเพราะตอนนี้ Tester รวมทั้งผมเอง ก็ต้องมาหัดเขียนโปรแกรมกันแล้ว ซึ่งโปรแกรมเหล่านั้นก็เป็นสิ่งที่จะมาช่วยในการทำงานของเราทั้งหมด ซึ่งถ้าได้อ่านบล็อกตอนนึงของผมที่เขียนถึง Testing Type มีอะไรบ้าง ก็คือส่วนหนึ่งที่จะต้องใช้ครับ เพราะต้องยอมรับว่าทุกวันนี้การทำงานของเราเปลี่ยนไปด้วยวิธีการทำงานที่มีการเปลี่ยนแปลงตลอดเวลา ไม่เหมือนกับยุคก่อนที่เป็น Waterfall ที่ค่อยๆ ทำมากันเป็นกล่องๆ ถ้าเจ๊งก็เริ่มใหม่กันเลย
และยุคนี้เป็นยุคที่เราต้องปรับตัวใหม่ด้วยระบอบการทำงานแบบใหม่ที่เรียกว่า Agile ที่เรียกกันว่าเราต้องทำงานกันแบบ Dynamic หรือพร้อมรับการเปลี่ยนแปลงของความต้องการจากลูกค้าผู้น่ารัก (ลูกค้าจริงๆ, เมเนเจอร์, ทีมอื่นที่ใช้งานระบบของเรา) เลยทำให้การทำงานนั้นไม่สามารถที่จะนั่งรอให้เสร็จทีละกล่องได้ มีแต่ว่าจะต้องทำกันวันต่อวัน หรือทำกันเป็นแบบรอบต่อรอบ ซึ่งการที่จะทำนั้น เทสเตอร์คงไม่ต้องมานั่งเสียเวลาในการต้องมาทดสอบโปรแกรมแบบเดิมๆ อยู่ทุกวันอย่างแน่นอน เพราะขืนทำอย่างนั้นก็คงไม่ต้องทำอะไรกินกันพอดี
ดังนั้นแล้วจึงเป็นที่มาของ Tester จะต้องสามารถสร้างบางสิ่งที่จะช่วยอำนวยความสะดวกในการเทสต์กว่าที่จะต้องมานั่งเทสต์เองทั้งหมดทุกๆ วัน ซึ่งนั่นก็หมายถึงว่าต้องเขียนโปรแกรมอะไรสักอย่างเพื่อที่จะมาช่วยในการเทสต์ด้วยการใช้พลังงานต่อวันน้อยที่สุด หรือทำให้มันเป็น Automate มากที่สุดนั่นเอง และนี่เองคือจุดที่เทสเตอร์จะต้องมานั่งเขียนโปรแกรมเพื่อคุณภาพชีวิตที่ดีของตัวเอง
แล้วเราจะเขียนอะไรดีหล่ะ?
สำหรับตำแหน่ง QA ความต้องการเวลานี้แล้ว ไม่ว่าจะเป็นที่ Thomson Reuters เองหรือเป็นที่ไหนๆ ส่วนใหญ่แล้วเขาอยากได้คนที่มีความเชี่ยวชาญหรือสนใจด้าน Coding ในแง่การ Support นั่นก็คือเป็นมือปืนช่วยเขียน Code เพื่อใช้ในการทำเทสแบบอัตโนมัติ ซึ่งตอนนี้ก็มีใช้งานอยู่หลายอย่างไม่ว่าจะเป็น QC (Quality Center), QTP (QuickTest Professional), Selenium, Robot Framework, Load runner, Grinder (สำหรับสร้าง User ปริมาณมากๆ เพื่อใช้งานการทำ Load Testing) เป็นต้น
สำหรับบางเครื่องมือนั้นจะเป็นลักษณะการเทสหน้าจอเว็บไซต์แล้ว ซึ่งก็ต้องสงสัยแน่ๆ ว่า มันก็แค่จับหน้าจอไม่ใช่เหรอ คำตอบคือมันไม่ได้มีแค่นั้นครับ เพราะเบื้องหลังของมันแล้วเราจะต้องทำการเขียนโปรแกรมหรือกำหนดค่าต่างๆ ในแต่ละเทสเคสให้ตรงตามกับสิ่งที่ต้องการทดสอบระบบครับ …และแน่นอนว่าถ้าเป็นแบบหน้าจอนั้นก็จะทำได้อยู่แค่นั้น จะไม่สามารถใช้งานกับแอพประเภทอื่นๆ ได้ เราก็ต้องดิ้นรนหาวิธีอื่นๆ ต่อไป
แล้วพวกหนูจะไปรู้เรื่องได้ยังไง ที่มหา’ลัยก็ไม่สอนไม่ใช่เหรอ?
ที่รู้ๆ มา มีบางทีเปิดสอนแล้วนะครับสำหรับบางมหาวิทยาลัย เปิดเป็นรายวิชาเลยด้วย ซึ่งถ้าจะให้ผมบอกก็ต้องบอกว่าโชคดีมากครับ เพราะของพวกนี้ไม่ใช่แค่เทสเตอร์ทำเท่านั้น เหล่าโปรแกรมเมอร์ก็ต้องรู้เรื่องด้วยเช่นกัน
แต่ถ้ามหาลัยไม่สอน ตอนนี้โลกกว้างไกลครับ Google มี, YouTube มีสอนออกเยอะแยะครับ ผมเองก็ต้องมายอมรับสภาพตอนแก่ตัวปาไปเลข 3 แล้วต้องมานั่งหัดเขียนโปรแกรมใหม่หมดเลย ซึ่งทุกวันนี้ผมก็ยังต้องเขียน python เพื่อมาต่อกับ Robot Framework เพื่อใช้งานอยู่เลย
แล้วถ้าไม่เคยเรียนสักอย่าง แต่พอสนใจอยู่บ้างจะทำยังไงดี?
ใจเป็นสิ่งสำคัญครับ ไม่ว่าจะเรื่องอะไร ถ้าใจไม่อยากทุกอย่างก็จบ สำหรับในทีมที่อยู่ มีน้องหลายคนที่เข้ามาฝึกงาน แน่นอนว่าน้องเหล่านี้พอจะมีพื้นฐานมาบ้าง ก็สามารถทำได้อยู่แล้วครับ
แล้วพื้นฐานที่ว่า ควรมีอะไรบ้าง?
หากมี basic programming ทั่วไปอย่างภาษา Java, C++ ประมาณนี้ก็สามารถเขียนได้แล้ว บางอย่างก็ไม่ต้องใช้มากมายนัก แต่ที่สำคัญมากๆ คือขอให้มี Logic ในการคิดก็เป็นพอ
ทั้งหมดนี้ก็เป็นสิ่งที่อยากแนะนำสำหรับ คนที่คิดว่ามาเป็นตำแหน่งนี้เพราะไม่ต้องเขียนโปรแกรม มองมุมกลับปรับมุมมองสักนิด ก่อนจะคิดเลิกจับโปรแกรมมิงไปเสียหมด
…เพราะตำแหน่งไหนก็ไม่รอดพ้นการเขียนโปรแกรมหรอกคร้าบบบ