หยุดความเชื่อเก่าๆ ได้แล้ว เพราะ Tester ยุคนี้ต้องเขียนโปรแกรมเป็นจ้า

SoftwareTestingWordle02

หลายคนน่าจะพอรู้ว่าอาชีพหลักที่ตอนนี้ผมทำงานหาเงินมาเลี้ยงพุงน้อยๆ อันใหญ่โตของผมก็คือ เป็น 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

photo
เล่มนี้แหละ จุดเริ่มต้น Tester

ด้วยความที่เข้าใจมาตลอดว่าการเป็น Tester นั้นไม่ต้องมานั่งเขียน Code หรอก เพราะเดี๋ยวพวกโปรแกรมเมอร์หรือเดเวลอปเปอร์เขาก็เป็นคนเขียนเอง ผ่านมาจนถึงตอนนี้ หากใครที่ยังคิดเหมือนกับที่ผมคิดในเวลานั้น ขอจงล้างความคิดออกไปเสียนะครับ เพราะมันจะทำให้ลำบากในการเป็นมนุษย์เงินเดือน!

ที่ผมบอกไปจริงทุกอย่างเพราะตอนนี้ Tester รวมทั้งผมเอง ก็ต้องมาหัดเขียนโปรแกรมกันแล้ว ซึ่งโปรแกรมเหล่านั้นก็เป็นสิ่งที่จะมาช่วยในการทำงานของเราทั้งหมด ซึ่งถ้าได้อ่านบล็อกตอนนึงของผมที่เขียนถึง Testing Type มีอะไรบ้าง ก็คือส่วนหนึ่งที่จะต้องใช้ครับ เพราะต้องยอมรับว่าทุกวันนี้การทำงานของเราเปลี่ยนไปด้วยวิธีการทำงานที่มีการเปลี่ยนแปลงตลอดเวลา ไม่เหมือนกับยุคก่อนที่เป็น Waterfall ที่ค่อยๆ ทำมากันเป็นกล่องๆ ถ้าเจ๊งก็เริ่มใหม่กันเลย

ภาพจาก www.the-software-tester.com
ภาพจาก www.the-software-tester.com

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

ดาวอไจล์ จาก wiki
ดาวอไจล์ จาก wiki

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

แล้วเราจะเขียนอะไรดีหล่ะ?

สำหรับตำแหน่ง QA ความต้องการเวลานี้แล้ว ไม่ว่าจะเป็นที่ Thomson Reuters เองหรือเป็นที่ไหนๆ ส่วนใหญ่แล้วเขาอยากได้คนที่มีความเชี่ยวชาญหรือสนใจด้าน Coding ในแง่การ Support นั่นก็คือเป็นมือปืนช่วยเขียน Code เพื่อใช้ในการทำเทสแบบอัตโนมัติ ซึ่งตอนนี้ก็มีใช้งานอยู่หลายอย่างไม่ว่าจะเป็น QC (Quality Center), QTP (QuickTest Professional), Selenium, Robot Framework, Load runner, Grinder (สำหรับสร้าง User ปริมาณมากๆ เพื่อใช้งานการทำ Load Testing) เป็นต้น

สร้าง user กระหน่ำซัมเมอร์เซลเพื่อทดสอบระบบด้วย Grinder
สร้าง user กระหน่ำซัมเมอร์เซลเพื่อทดสอบระบบด้วย Grinder

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

RIDE_1
หน้าจอตัวอย่างของ Robot Framework ที่ใช้งานได้ครอบจักรวาลสุดๆ ณ เวลานี้

แล้วพวกหนูจะไปรู้เรื่องได้ยังไง ที่มหา’ลัยก็ไม่สอนไม่ใช่เหรอ?

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

แต่ถ้ามหาลัยไม่สอน ตอนนี้โลกกว้างไกลครับ Google มี, YouTube มีสอนออกเยอะแยะครับ ผมเองก็ต้องมายอมรับสภาพตอนแก่ตัวปาไปเลข 3 แล้วต้องมานั่งหัดเขียนโปรแกรมใหม่หมดเลย ซึ่งทุกวันนี้ผมก็ยังต้องเขียน python เพื่อมาต่อกับ Robot Framework เพื่อใช้งานอยู่เลย

แล้วถ้าไม่เคยเรียนสักอย่าง แต่พอสนใจอยู่บ้างจะทำยังไงดี?

ใจเป็นสิ่งสำคัญครับ ไม่ว่าจะเรื่องอะไร ถ้าใจไม่อยากทุกอย่างก็จบ สำหรับในทีมที่อยู่ มีน้องหลายคนที่เข้ามาฝึกงาน แน่นอนว่าน้องเหล่านี้พอจะมีพื้นฐานมาบ้าง ก็สามารถทำได้อยู่แล้วครับ

แล้วพื้นฐานที่ว่า ควรมีอะไรบ้าง?

หากมี basic programming ทั่วไปอย่างภาษา Java, C++ ประมาณนี้ก็สามารถเขียนได้แล้ว บางอย่างก็ไม่ต้องใช้มากมายนัก แต่ที่สำคัญมากๆ คือขอให้มี Logic ในการคิดก็เป็นพอ

ทั้งหมดนี้ก็เป็นสิ่งที่อยากแนะนำสำหรับ คนที่คิดว่ามาเป็นตำแหน่งนี้เพราะไม่ต้องเขียนโปรแกรม มองมุมกลับปรับมุมมองสักนิด ก่อนจะคิดเลิกจับโปรแกรมมิงไปเสียหมด

…เพราะตำแหน่งไหนก็ไม่รอดพ้นการเขียนโปรแกรมหรอกคร้าบบบ

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.