นอกเหนือจากเหล่า Software engineer, Solution Architect, DevOps, Infra, BA, SA, UX/UI team ที่ทำงานกันอย่างมืออาชีพ เลือกใช้ Technology Stack ที่เหมาะสมแล้ว ก็จะมีทีมที่เป็นเบื้องหลังทำหน้าที่คอยตรวจสอบ คอยเช็ค คอยหาบัค คอยทำ Performance ก่อนที่ทุกอย่างจะไปถึงมือลูกค้า นั่นก็คือ Quality Assurance (QA) นั่นเอง…
เนื่องด้วยผมได้มีโอกาสสัมภาษณ์เพื่อนร่วมงานในตำแหน่ง Quality Assurance ตั้งแต่ Head of QA จนถึง Junior จึงได้ข้อมูลมาพอสมควร
วันนี้ก็เลยอยากจะขอพาทุกท่านไปรู้จักกับทีมงานการตรวจสอบคุณภาพ Software ของ SCBTechX ที่พวกเราใช้งานกัน
Quality Assurance, Technology
Chantima Chantawiset หรือพี่มุ่ย เป็น Head of Quality Assurance ดูแลทีมทั้งหมดใน Digital platform ทั้ง Easy App, แม่มณี, SCB Connect รวมไปถึง Robinhood และอื่น ๆ
ทีมที่พี่มุ่ยดูนั้นก็จะมีสองส่วนหลัก ๆ ก็คือมีทั้ง Automate test และ Manual test พี่มุ่ยบอกว่า ไม่มี Automate 100% ในสารบบสักเท่าไหร่ เรายังมี Manual test อยู่ โดยเราจะเลือกว่าจะทํา Manual test หรือ Automate ตามความคุ้มค่า และความเหมาะสมของงาน เช่น ถ้างานไหนเขียน Automate test กินเวลาในการทำ และการทดสอบนานกว่าการทํา Manual ก็เลือกใช้ Manual คุ้มค่ากว่า
Quality Assurance คือใคร?
จะว่าไปตรงตัวก็คือ คนทดสอบระบบ แต่สำหรับเรา คนที่ทดสอบระบบไม่ใช่แค่ คนที่มานั่ง Execute Test กดปุ่ม กดหน้าจอ รายงานผล Pass/Fail แค่นั้น
เพราะ ถ้าเราพูดถึง Quality มัน คือ Mindset เพราะฉะนั้น QA role ของที่นี่เอง คือคนที่ Drive quality mindset คนที่สร้าง Awareness ให้กับคนในทีม ให้ทุกคน มี Awareness เรื่องของคุณภาพของ Software ที่เราทำออกมา ไม่ใช่แค่ Developer แต่คือทั้งทีม ตั้งแต่ PO, PM และ คนอื่นๆ เค้าก็ต้องมี Awareness เรื่องนี้ด้วยเช่นกัน ก็อาจจะมองว่าเป็นงานนึงที่ Challenge สำหรับ งาน QA เอง
เรืองของ Quality นั้นไม่ได้เกิดขึ้นตอนที่เราเริ่ม Dev เพราะปกติ เราจะ เริ่มเทสกันก็ตอน Developer ทำเสร็จ แต่หากทุกคนมี Mindset เรืองนี้ มันหมายถึงเราสามารถ Detect ปัญหา หรือเหมือนเราเจอ Defect ได้ต้ังแต่ตอนยังไม่เริ่ม เขียน Program เลย คือ ตั้งแต่เริ่มรับ Requirment ก็หา Bug ได้เลย เช่นเดียวกัน ในระหว่าง Dev หาก Dev มี Awareness เรืองนี้ เค้าก็จะเทสงานตัวเองก่อนส่งมาให้ QA มันจะเป็นงานที่เราส่งต่องานที่มี คุณภาพกันมาเป็น Step เลย ช่วยลด Bug หรือปัญหา ตอนเข้า Phase test จริง ๆ
ในมุมมองคิดว่าที่ตั้งใจจะเปลี่ยนแปลงวิธีการทำงาน ปัจจุบันเปลี่ยนไปกี่เปอร์เซ็นต์แล้ว
ประมาณครึ่งนึง จริง ๆ ยังไม่ถึงครึ่ง แต่เราก็มั่นใจว่า แนวทางที่เราวางไว้ 100% เนี่ย มันมีโอกาสเป็นไปได้ และในระหว่างทางเราก็ยังปรับเปลี่ยนวิธีการให้มันเหมาะสมกับองค์กร เพราะทุกอย่างที่เราเคยทำสำเร็จมาจากที่อื่น ก็อาจจะไม่สำเร็จ หรือใช้ไม่ได้กับที่นี่ เราก็ปรับกันต่อไปเพื่อให้มันได้ตามที่เราวางไว้ ข้อดีคือ ทุกคนให้ความร่วมมือและ Support วิธีการทำงานทีเราอยากเปลี่ยน
Technology Stack
- Mobile: XCUI (iOS), Espresso (Android), Flutter
- Web and API: Robot Framework, Cypress
- Load test: JMeter
แล้วก็มีการนำ Cypress เข้ามาใช้บ้างแล้วในส่วนของ Project Robinhood
อยากได้คนแบบไหนมาร่วมทีม
ถ้าถามถึงหัวหน้าก็ชอบหัวหน้าที่ให้อิสระในการคิดการตัดสินใจของเรา และคอยสนับสนุนลูกน้อง ต้องมี Direction แต่ไม่ต้องมี Instruction มีเป้าหมายให้เราแล้วเราทำงานหรือหาวิธีการเพื่อให้บรรลุเป้าหมายนั้นให้สำเร็จ
ถ้าเป็นเพื่อนร่วมงานก็อยากทำงานกับคนที่ Open minded คนเก่ง เพราะเราอยากเรียนรู้จากคนเก่งด้วย เพื่อนร่วมงานที่หัว Innovative เพราะทำงานด้วยแล้วรู้สีกสนุก
สำหรับน้อง ๆ พี่มักเจอบ่อยเวลาสัมภาษณ์น้อง ๆ มักจะตอบว่า ที่มาเป็น QA เพราะ เขียน Code ไม่เป็น ไม่ชอบ Coding ซึ่งทั้งที่มันเป็นพื้นฐานของการทำงานสายนี้นะ ส่วนตัวเลยพี่คิดว่า คนที่เป็น QA ควรได้ตรงนี้ ควรมี Logic ในการคิด และอย่างน้อยก็ควรชอบหรือมีใจที่จะเขียน Code ด้วย อาจจะไม่ต้องเขียนเก่งก็ได้ สำคัญคือมี Testing attiude ที่ดี น้องๆที่ เข้าใจการทำงานของ Software จริง ๆ ไม่ใช่แค่คิดว่า เป็น Tester คือมากด ๆ หน้าจอ เราต้องเข้าใจการทำงานของ Software จริง ๆ อยากให้เข้าใจว่า QA ไม่ใช่แค่ Test interface แล้ว Report defect เท่านั้น น้อง ๆ ในทีมก็ต้อง Analyse defect หรือ Issue ต่าง ๆ เองเป็น และที่สำคัญก็คือ สร้าง Quality awareness ให้กับทีม และก็เอาวิธีการทำงานหรือ Process ที่เราทำไป Educate ให้คนอื่นเข้าใจด้วย
ที่เราอยากได้คนที่เข้าใจและชอบเขียน Code เพราะว่างานเราต้องทำ Automate ด้วย สำหรับทีมพี่ คือ เขียนไม่ได้ไม่เป็นไร แต่ใจต้องได้ ต้องพร้อมที่จะเรียนรู้ “ไม่เก่งไม่เป็นไร แต่อย่าเป็นพวกนำ้เต็มแก้ว ต้องพร้อมเรียนรู้” จริง ๆ การเขียน Automate อาจจะไม่ได้ช่วยให้การเทสมันง่ายขึ้น แต่มันทำให้งานสนุกขึ้น จะช่วยลดเวลาที่เราทำงานซ้ำ เช่น Regression test ลง และเราจะได้มีเวลาไปเทสในส่วนอื่น ๆ หรือ ไปศึกษาเทคโนโลยีอื่น ๆ เพิ่มได้
ไปทำความรู้จักกับ QA Manager กันบ้าง
Juthamat Wuttieakanant (แพ็กกี้) Quality Assurance, Digital platforms เป็น QA Manager ดูแลทีม SCB Connect และทีม eAPI โดยมีน้อง ๆ ที่ดูแลอยู่ร่วม ๆ 20 คน
QA มันคือทุกคน คนชอบคิดว่า QA เป็น Quality owner แต่จริง ๆ แล้วมีหลายอย่างที่ QA ป้องกัน ไม่ได้ เวลาที่เจอ Bug ก็แก้ Bug เองไม่ได้ ถ้าหวังพึ่งแต่ QA ก็เหมือนรอให้ปัญหาเกิด แล้วค่อย แก้ แต่ถ้าทุกคนเป็น Quality owner เริ่มต้นตั้งแต่ Requirement ถ้าได้ Requirement มาดี Dev เอา Requirement มาเขียนโค้ดออกมาได้ดี มีคุณภาพ QA ก็จะ Ensure เหมือน End to end test ให้ ถ้าจะมองคือ ทุกคนเป็น Quality owner ทั้งหมด ถึงจะทําให้ทุกอย่างออกมาดีได้ แต่จะมี QA
เป็นพาร์ทนึงที่ช่วยให้ทุกคนตระหนักถึง ว่าเราต้อง Quality Concern ในส่วนไหน โดยจะเริ่มให้ Quality concern ตั้งแต่ Grooming ดู Requirement ว่าครบมั้ย Handle case error ครบมั้ย รวมถึงการ Concern ด้าน Performance, usability หรือ Compatibility ด้วยค่ะ
Technology Stack
ในส่วนของ SCB Connect พี่แพ็กกี้บอกว่า ตอนแรกเคยเอาไป Integrate กับ Appium แต่รู้สึกช้า และไม่ค่อยถูกต้อง เช่น บางที LINE ส่ง Text message มา แต่ใน LINE ไม่มี Element ให้ไปจับ เลยยากต่อการใช้ ปัจจุบันเลยหันมาใช้ Robot framework ยิง API เพื่อเอา Chatlog มาแทนซึ่งจะพิสูจน์ได้ ว่าลูกค้าได้ Message แน่นอน และเอา Detail message มาได้ด้วย
ในส่วน eAPI ทางทีมใช้ Katalon แต่ว่าก็เห็นข้อจำกัดของ Katalon ในการ Integrate CI/CD Pipeline ค่อนข้างมาก ปัจจุบันอยู่ในช่วงกำลัง Review tools ตัวอื่นในการนำมาใช้งานอยู่
เพราะอะไรถึงอยู่ SCB TechX
พี่ยังอยู่ในช่วงที่กําลังเรียนรู้ และที่นี่ ก็ทําให้พี่ได้เรียนรู้ การเป็น Manager มันเหมือนจะมีปัญหาให้เรา ได้แก้อยู่เสมอ และพี่ก็ยังสนุกกับการแก้ปัญหาพวกนี้อยู่ ทั้ง Technical issue ในทีม, Defect production, การ Communicate กับ Team อื่น และปัญหาอื่น ๆ พี่รู้สึกว่าได้ใช้สมอง ได้ใช้ พลังงานอย่างเต็มที่ มีสิ่งท้าทายตลอดเวลา และชอบที่ได้ถ่ายทอดความรู้ให้กับน้อง ๆ รู้สึก Success ที่เห็นน้อง ๆ สามารถเอาสิ่งที่เราสอนไปทํางานได้เอง ตัดสินใจบางสิ่งได้เอง เป็น Individual contributor ที่ดีของทีม
อยากได้คนแบบไหนมาร่วมทีม
อยากได้คนขยัน และ Self learner เช่น น้องในทีมตอนแรก แทบจะเขียน Automate test ไม่เป็นเลย แต่ด้วยความขยัน มีความรับผิดชอบ และหมั่นเรียนรู้ ตอนนี้ก็เขียนเป็นกันหมดแล้ว
พี่อยากให้มองว่างาน QA เราควรเป็นตัวแทนของผู้ใช้งาน เราควรกล้าออกความเห็นในสิ่งที่จะทำให้ Software ของเราดีขึ้น ทั้งใช้งานง่ายและทำงานได้ถูกต้อง เมื่อเราเจอ Defect เราต้องสามารถ Analyse ปัญหาเบื้องต้นได้ ว่าเกิดจากอะไร เป็น Human error หรือเกิดจากส่วนใดของระบบ เพื่อจะได้ให้ข้อมูลกับ Dev ให้ได้มากที่สุด ช่วยให้แก้ไขปัญหาได้รวดเร็ว ตรงจุด
สิ่งที่อยากจะฝากน้อง ๆ
อยากให้ QA กล้าพูด กล้าถาม ไม่มีคําถามโง่ ๆ ในโลกนี้
บทสัมภาษณ์ QA ที่ดูแล Easy
Phanupong Yampojana, Associate Quality Assurance น้องไทเกอร์ น้องอยู่กับเรามา 2 ปีกว่าแล้ว น้องดูแล Easy ในส่วนของ Flow registraration, Open Account ในทีมมี QA อยู่ด้วยกัน 3 คน 2 คนเป็น Associate มีพี่อีก 1 คนที่ดูแล เป็น Senior
QA ในความคิดของเรา เป็นอย่างไร
น้องบอกว่า ผมขอยกตัวอย่างจากรุ่นพี่คนนึงว่า อยากให้ลองนึกถึงการสร้างบ้าน โดยเรามี
PO เป็นเจ้าของบ้าน ที่บอกความต้องการของการสร้างบ้านหลังนี้
Application Design เป็นคนออกแบบบ้าน
Dev เป็นคนสร้างบ้าน
QA เป็นคนตรวจทานบ้าน
เราต้องรู้ความต้องการของเจ้าของบ้าน เพื่อที่จะได้รู้ว่า เราจะต้องตรวจตรงจุดไหนบ้าง ตรงไหนที่ไม่ตรงกับความต้องการของเจ้าของบ้าน เราก็ต้องตี Defect กลับไป เพื่อให้งานนั้นออกมามีคุณภาพ
Technology Stack
แบ่งเป็น 2 หัวข้อใหญ่ ๆ
- Mobile: XCUI (iOS), Espresso (Android)
- API Test: Robotframework, Postman, Charles
อยากได้คนแบบไหนมาร่วมทีม
ถ้าเป็น Associate ก็อยากได้คนที่มีใจเปิดกว้าง แล้วก็มีความละเอียดรอบคอบ
คือถ้าเราทำตัวเป็นน้ำเต็มแก้ว ไม่ว่าเราจะอยู่จุดไหนก็ตาม มันก็ยากที่เราจะรับอะไรใหม่ ๆ เพราะเทคโนโลยีมันไปไว ถ้าเราไม่เปิดรับสิ่งใหม่ เราก็จะย่ำอยู่กับที่
ถ้าเป็นหัวหน้า ก็อยากได้คนที่เข้าใจภาพรวมของโปรเจกต์ เราสามารถปรึกษาเค้าได้ สามารถคุยเรื่องเทคนิคอล หรือให้พี่เค้าช่วย Investigate ในสิ่งที่เราไม่เข้าใจกับเค้าได้
อยากฝากอะไรถึงผู้อ่านหรือคนที่สนใจอยากจะเป็น QA
ผมได้อะไรจากการมาเป็น QA หลายอย่าง ได้ทักษะด้านการสื่อสาร กล้าพูดคุย กล้าตั้งคำถาม นำมาประยุกต์ใช้กับตัวเอง รู้สึกว่าตัวเองมีความละเอียดรอบคอบมากขึ้น สังคมการทำงานของที่นี่ เจอแต่เพื่อน ๆ พี่ ๆ ที่ดี รับฟังความเห็นของเรา ให้การเคารพซึ่งกันและกัน เวลาเราเจอข้อผิดพลาดตรงไหน เราไม่มาโทษกันว่าใครเป็นคนทำ, ว่าใครผิด แต่เรามานั่งคุยกันว่าเราจะแก้ปัญหากันอย่างไร
สุดท้ายที่ขอฝากไว้ก็คือ ไม่ว่าเราจะเป็นอะไร สำหรับผมเราต้องหาตัวเองให้เจอก่อน ว่าสิ่งที่เราชอบเนี่ย มันตรงกับงานที่เราจะทำไหม ทุกอย่างคือฝึกกันได้ ถ้าเราตื่นขึ้นมาเพราะอยากทำงาน มันก็ต้องดีกว่าตื่นขึ้นมาเพราะต้องทำงาน, ไทเกอร์
Quality Assurance ไม่ใช่เพียงแค่คนนั่งทดสอบระบบ หรือนั่งปั่น Automate…
หากแต่เป็นผู้สร้าง Quality Awareness ให้กับผู้คนที่อยู่ใน Party ต่างหาก…
หากเรามี Quality Awareness อยู่ในตัว เราจะเห็นปัญหา และสามารถ Suggest ได้ตั้งแต่รับ Requirement แล้ว…
“พี่มุ่ย”