เคยสงสัยกันมั้ยนะว่าตำแหน่ง Quality Assurance หรือ QA ของ THiNKNET มีหน้าที่อะไร แล้วทำอะไรกันบ้าง? สำหรับคนที่เรียนสายนี้มาก็น่าจะเคยได้ยินผ่านหูกันมาบ้าง แต่เดี๋ยววันนี้เราจะมาอธิบายว่า QA ปกติแล้ว เขาทำอะไรกัน
ประเด็นหลัก ๆ ของบทความนี้เลยนะ เราจะมาอธิบายตำแหน่ง QA คืออะไร และเวลาเราทำงานเนี่ย เราทำงานกันยังไง มา! ถ้าอยากรู้แล้วเดี๋ยวเราจะมาเล่าให้ฟัง
งาน QA คืออะไร ต้องทำหน้าที่อะไรบ้าง?
ขอแนะนำตัวก่อน เราชื่อ “หยง” ทำงานตำแหน่ง QA มาประมาณน่าจะ 2 ปีได้แล้วแหละ ขั้นตอนการทำงานของ QA ก็จะทำงานตามแผนผังที่แปะไว้ให้ด้านล่าง พวกเราก็จะมีหน้าที่ตรวจสอบคุณภาพของ Product ว่าตรงตามที่เราตกลงกันหรือเปล่า ต่อมาเราจะมาลงรายละเอียดในส่วนลึกกัน
ก่อนที่จะพูดถึงรายละเอียดเชิงลึกกัน เราขออธิบายเรื่องภาพรวมของงานที่เราทำไว้ตรงนี้ก่อนเลยแล้วกันว่า QA ที่นี่ เราจะถืองานคนละ Feature กัน อาจจะมีเกี่ยวข้องกันบ้าง ถ้ายกตัวอย่างเป็นโปรเจกต์ JobThai ที่เราถืออยู่ ก็คือตัว JobThai เนี่ยแบ่งย่อยออกไปได้อีกหลาย Feature ก็จะมีทีม Developer หรือทีม Dev ที่พัฒนาแต่ละส่วน แล้วเราก็จะเข้าไปทดสอบในแต่ละ Feature แล้วอาจจะมีผลกระทบกับ Feature ที่ QA อีกคนถืออยู่ก็ได้ ทีนี้เราจะมาอธิบายขั้นตอนการทำงานของ QA กันต่อเลยแล้วกัน
-
อันดับแรก… ทุกคนในทีมก็จะ Grooming Requirement มาวิเคราะห์ความต้องการ เพื่อเอามาออกแบบการทดสอบ โดยที่ Phase นี้จะมี Project-Co เป็นผู้นำประชุมการ Grooming Requirement ซึ่งตัว Requirement คือสิ่งที่เรารับโจทย์มาจากทีมอื่น หรือว่าเป็นสิ่งที่เราตั้งขึ้นมาเองในทีม เหมือนเป็นเป้าหมายว่าสุดท้ายแล้วงานจะออกมาเป็นแบบไหน
-
หลังจากที่ Grooming เสร็จ เราจะมา Planning กันต่อ ซึ่งเราจะมีทั้งรอบที่ Planning เฉพาะในทีม QA เอง และรอบที่ Planning และ Estimated Time ร่วมกับทีม Dev
-
เมื่อจบการ Grooming และ Planning แล้ว ต่อมาจะเป็นขั้นตอนสำคัญในการทดสอบ ซึ่งก็คือการเขียน Test Case นั่นเอง ซึ่ง Test Case จะมีทั้งแบบที่เป็น Manual Test และ Automated Test และ Test Case ที่เขียนนั้นก็ต้องผ่านการ Review จากสมาชิกในทีม
- ในส่วนของ Automated Test หลังจากที่เขียน Test Case เสร็จเรียบร้อยแล้ว เราจะมากำหนด ID ของแต่ละ Element ที่อยู่บนหน้า UI ให้กับทางทีม Dev เพื่อให้ Software QA และ Dev เข้าใจตรงกันว่าแต่ละ Element บนหน้าจอ UI มี ID อะไรบ้าง ซึ่งขั้นตอนนี้อาจจะมีหรือไม่มีก็ได้ อย่างไรก็ตามทางทีมจะใช้ขั้นตอนนี้
เพื่อลดระยะเวลาในการทำงาน เพราะถ้าหากเรามี ID ที่ตรงกันแล้ว ทางทีม Software QA จะสามารถเขียน Test Script พร้อมกับทีม Dev ที่เริ่ม Implement Feature ได้เลย จนกระทั่งถึงเวลาส่งงานตามที่ได้ทำการ Estimated ไว้ ก็จะได้ Run และใช้เวลา Refactor Test Script อีกนิดหน่อย ซึ่งทำให้ใช้เวลาน้อยกว่าเริ่มเขียน Test Script หลังจาก Dev Implement เสร็จ
-
ถึงเวลาทำ Automated Test กันแล้วจ้า นั่นก็คือการเขียน Test Script สำหรับทดสอบ ตามที่เราได้เขียน Test Case และวางแผนไว้ว่า Case ไหนเหมาะกับการเขียน Test Script บ้าง ส่วน Case อื่น ๆ ที่ไม่สามารถเขียน Test Script ได้เราก็จะ Manual Test ซึ่งในระหว่างนี้เราก็มีการ Review Test Script กันภายในทีมเรื่อย ๆ
-
หลังจากที่ Dev ทำการพัฒนาระบบเสร็จแล้ว ก็จะส่ง Local Site ให้เราทดสอบ เราก็จะได้ลอง Run Test Script ที่เราทำการ Implement ไว้ก่อนหน้านี้ว่าใช้ทดสอบจะเป็นยังไง และแน่นอนว่ามันจะ Fail เพราะตัว Script หา Element ไม่เจอ เพราะ Element ไม่ตรงกัน ซึ่งช่วงนี้จะเป็นช่วงที่เราทำการ Refactor Test Script เพื่อให้มันทำการทดสอบตามลำดับขั้นของ Test Case ที่มันควรจะเป็น
-
เมื่อเราทำการ Refactor เสร็จเรียบร้อยแล้ว เราก็สามารถ Run Test Script พร้อมกับ Manual Test ตาม Test Case ที่เราเขียนไว้ตอนแรกได้เลย แต่ถ้าเจอ Bug เราก็เอาข้อผิดพลาดของระบบไป Report ให้ทีม Dev ทำการแก้ไขจนกว่าจะทดสอบตาม Test Case แล้วผ่านทั้งหมด
อย่างไรก็ตามบางครั้งบางทีมอาจจะไม่ได้ทำตาม Flow การทำงานที่อธิบาย 100% บางครั้งมันก็ขึ้นอยู่กับปัจจัยอย่างอื่นด้วย ซึ่งบทความนี้ ถือว่าเป็นภาพรวมการทำงานของตำแหน่ง Software QA แบบคร่าว ๆ ซึ่งส่วนใหญ่ Software QA จะมีการติดต่องานกับทีม Dev เพื่อแจ้ง Bug/Defect ของระบบ และประสานกับทีม BA สำหรับตรวจสอบ Requirement กรณีมีการเปลี่ยนแปลง Requirement และสุดท้ายคือ Customer สำหรับให้ผู้ใช้งาน
ต่อมาเราจะพูดถึงเครื่องมือที่ใช้สำหรับทดสอบ ก็จะมีทั้ง Manual Test และก็ Automated Test ในส่วนนี้เรามาพูดถึง Script Test ที่เรา Implement กันว่าใช้อะไรบ้าง ซึ่งภาษาที่ใช้ก็จะเป็นภาษา Cypress และโปรแกรมที่จะใช้เป็น VS Code และ Project Repo ก็จะ Clone มาจาก Git เครื่องมือก็จะมีประมาณนี้ ซึ่งคนที่อยู่ในสายงาน IT อาจจะคุ้นเคยกับเครื่องมืออย่าง VS Code กับ Git กันบ้างแล้ว แต่ถ้าหากว่ายังไม่มีพื้นฐานภาษา Cypress ทางทีม Software QA ก็มี Workshop สำหรับเขียน Cypress เพื่อเรียนรู้ในการสร้าง Repo หรือติดปัญหาในการทำ Workshop ก็สามารถถามคนอื่น ๆ ในทีม Software QA ได้
ทำงานจากที่ไหนก็ได้ ทำได้จริงที่ THiNKNET
ตั้งแต่ COVID-19 ระบาด จากที่เราเคยต้องตื่นตั้งแต่เช้าแล้วออกเดินทางขึ้นรถ ลงเรือไปทำงานที่ออฟฟิศก็มีการปรับเปลี่ยนรูปแบบการทำงานมาเป็นแบบ Hybrid Workplace อธิบายก็คือมีทั้งเข้าออฟฟิศ และ Work from Anywhere ซึ่งที่ THiNKNET จะ Work from Anywhere เป็นหลัก และอาจจะมีเรียกเข้า Office บ้าง แล้วเครื่องมือในการติดต่อสื่อสารก็มีอยู่ 3 ช่องทาง คือ
-
Microsoft Team เป็นช่องทางหลักสำหรับติดต่อการทำงาน และประชุมกับทีมต่าง ๆ
-
Discord สำหรับพูดคุยกันทั่วไป และ Stand by เรื่องงาน ถ้าเหงา ๆ ก็เข้าไปคุยในนั้นได้
-
ZOOM จะใช้สำหรับจัดการประชุมใหญ่ และ Share เกร็ดความรู้ในการทำงานต่าง ๆ ตามกำหนดการ
หลังจากที่ไม่ได้เข้าออฟฟิศมาสักพักแล้ว ทำให้รู้สึกว่ามีเวลาให้กับตัวเองมากขึ้น ประมาณว่าเราเอาเวลาที่ใช้เดินทางไปบริษัทตอนเช้ามาชงกาแฟ ดูแลตัวเอง หรือทำอะไรอย่างอื่น โดยที่เราไม่ต้องเร่งรีบกับการเดินทางหรืออะไรก็ตาม ความอ่อนล้าจากการเดินทางก็ลดลง และยังได้ใช้ชีวิตกับครอบครัวได้มากขึ้นด้วยนะ ซึ่งเวลาเข้างานปกติของ THiNKNET จะเป็นเวลา 9.00-18.00 น. ของทุกวันจันทร์ถึงวันศุกร์ ซึ่งเราสามารถ Manage เวลาในการทำงานได้ หลังจากผ่านทดลองงานแล้ว ก็คือเวลาที่เข้างานช้าที่สุดตอน 10 โมงได้ และเลิกงานไวสุดตอน 4 โมงเย็น ขอแค่แต่ละสัปดาห์เข้างานให้ครบ 40 ชั่วโมงเท่านั้นก็พอ ถ้าหากว่าทำงานจันทร์ถึงศุกร์แล้วชั่วโมงไม่ครบก็มาทำต่อวันเสาร์-อาทิตย์ได้เช่นกันนะ
แนะนำคนที่สนใจงาน QA
สำหรับใครที่สนใจทำงานตำแหน่งนี้ ก็เตรียมตัวอ่านทบทวนเกี่ยวกับเรื่องการทดสอบ การเขียน Test Case และพวก V Model ซึ่งการเตรียมตัวเรื่องความรู้ก็จะประมาณนี้ ต่อมาก็จะเป็นเรื่องสุขภาพ ก่อนที่จะมาสอบหรือสัมภาษณ์ก็พักผ่อนให้เพียงพอ และเตรียมตัวมาให้พร้อม มั่นใจเต็มที่ก็เพียงพอแล้ว และถ้าตอนนี้ใครสนใจที่จะมาเป็นครอบครัว THiNKNET ในตำแหน่ง QA ก็สามารถสมัครได้ ที่นี่ เลยน้า
ทำความรู้จักตำแหน่งอื่น ๆ ใน THiNKNET ทั้งหมดได้ ที่นี่