Software QA ทำอะไรบ้าง? ไปรู้จักกับฝ่าย QC แห่งโลกซอฟต์แวร์กันเลย
Jul 1, 2022
Software QA คือใคร? ทำอะไรบ้าง? ต่างกับ Tester ยังไง? หาคำตอบทั้งหมดได้ที่นี่
Software Tester หรือที่คนชอบเรียกกันว่า Software QA หมายถึงอาชีพนักทดสอบคุณภาพของซอฟต์แวร์ ซึ่งจะทำหน้าที่เป็นผู้ที่คอยตรวจสอบป้องกันความบกพร่องของซอฟต์แวร์ในบริษัทต่างๆ ให้สามารถใช้งานได้อย่างราบรื่นตรงวัตถุประสงค์ของผู้พัฒนา อาชีพนี้อาจเป็นอาชีพที่ฟังดูไม่ค่อยเป็นที่นิยมเท่ากับอาชีพสายเทคอื่นๆ แต่ต้องยอมรับว่าสำหรับบริษัทใดๆ ก็ตามที่มีการให้บริการด้านซอฟต์แวร์แก่ผู้อื่น (Software as a Service [SaaS]) จำเป็นจะต้องมีผู้ทดสอบโปรแกรมอย่าง Software Tester เป็นส่วนหนึ่งของทีมนักพัฒนาอย่างเลี่ยงไม่ได้
ทำความรู้จักกับอาชีพ Software tester หรือ Software QA ขั้นเบื้องต้น
Software Tester หรือ Software QA (ชื่อเต็ม Software Quality Assurance) ถูกเรียกกันในภาษาไทยว่า นักทดสอบคุณภาพซอฟต์แวร์ นักทดสอบโปรแกรมคอมพิวเตอร์ หรือนักทดสอบระบบ พวกเขาเปรียบเสมือนแผนก QC ของบริษัทที่ผลิตสินค้าอุปโภคบริโภค ขอบเขตงานของ Software QA จะมีประมาณนี้
- ตรวจสอบและรับประกันว่าซอฟต์แวร์ที่ทางบริษัทได้พัฒนาออกมา มีประสิทธิภาพมากพอ
- คิดและนำเสนอ Requirement ของตัวโปรแกรมให้ตรงกับวัตถุประสงค์ของการพัฒนา ทำงานร่วมกับผู้ว่าจ้างหรือทีมพัฒนาธุรกิจ และทีมพัฒนาซอฟต์แวร์
- ตรวจสอบซอฟต์แวร์ที่พัฒนาออกมาว่ามีฟังก์ชันตรงกับ Requirement ไหม
- รับผิดชอบในเรื่องการค้นหา Bug และข้อบกพร่องต่างๆ ของซอฟต์แวร์ อาจเป็นแค่คนดูแลหรือลงไปตรวจสอบด้วยตนเองก็ได้
แล้วอาชีพ Tester เหมือนหรือต่างกับ QA อย่างไร
“Software QA กับ Tester ต่างกันอย่างไรกันแน่?”
ด้วยชื่อที่คล้ายกันมาก บางที่จะบอกว่าสองอาชีพนี้ก็คืออาชีพเดียวกัน แต่จะมีบางตำราเช่นกันที่กำหนดให้ขอบเขตงานของคนที่เป็น QA กับ Tester ต่างกัน โดยสำหรับ QA จะมีขอบเขตงานที่ค่อนข้างกว้างกว่า ดังนี้
| QA | Tester | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | | มีขอบเขตค่อนข้างกว้าง ต้องรับผิดชอบทุกส่วนของการประเมินคุณภาพซอฟต์แวร์ ตั้งแต่การคิด Requirement ร่วมกับทีมธุรกิจ ตลอดจนวิธีการ เครื่องมือ ขอบเขตระยะเวลาในการตรวจสอบ | ขอบเขตงานอยู่ที่การดูว่าโค้ดที่ทีมนักพัฒนาเขียนขึ้นสามารถใช้งานได้ไหม หรือมี Bug/Defect ภายในตัวโปรแกรมหรือไม่ | | นอกจากต้องรู้กระบวนการทดสอบคุณภาพของซอฟต์แวร์ ยังต้องมีความรู้ในเรื่องอุตสาหกรรมและธุรกิจที่เป็นผู้ใช้งานซอฟต์แวร์นั้นๆ ด้วย | ไม่จำเป็นต้องมีความรู้ในแง่ธุรกิจ แต่ต้องแม่นยำในเรื่องการใช้เครื่องมือตรวจสอบข้อบกพร่องของโปรแกรม | | ดูแลทุกกระบวนการของการตรวจสอบซอฟต์แวร์ตั้งแต่ - Unit Testing - Integration Tests - Functional Tests - User Acceptance Tests - Usability Tests/UI Tests | ดูแลแค่ในสวน Unit Testing และ Integration Tests | | ทำงานเป็นส่วนหนึ่งของทีมนักพัฒนา ทำงานร่วมกับทีมธุรกิจขององค์กรและทีมนักพัฒนา | ทำงานเป็นส่วนหนึ่งของทีมพัฒนาหรือภายใต้ QA เท่านั้น |
Software QA ต้องทำอะไรบ้าง
อย่างที่บอกไปว่า QA จะเป็นคนที่คอยวางแผนและตรวจสอบการทำงานของซอฟต์แวร์ ดังนั้น หน้าที่หลักของพวกเขาจะเป็นการทดสอบการทำงานในส่วนต่างๆ ของโปรแกรม ซึ่งรายละเอียดของสิ่งที่ต้องตรวจสอบมีดังนี้
- Unit Tests เป็นการทดสอบหน่วยย่อยต่างๆ ในตัวซอฟต์แวร์ เพื่อหา Bug หรือ Defect ให้เจอให้ไวที่สุด มักจะทำทันทีที่ทำการโค้ดหน่วยย่อยนั้นๆ เสร็จ เพื่อตรวจสอบว่าการโค้ดโปรแกรมถูกต้องและสามารถใช้งานได้อย่างมีคุณภาพหรือไม่
- Integration Tests เป็นการตรวจสอบว่าโค้ดที่มีการเขียนขึ้นใหม่บนโปรแกรมสามารถทำงานเข้ากับตัว Codebase ที่มีอยู่ก่อนหน้าได้ไหม หรือสามารถนำไปใช้งานได้หรือไม่หากต้องนำไปเชื่อมกับโค้ดส่วนอื่นบนโปรแกรม
- Functional Tests เป็นการตรวจสอบคุณสมบัติของฟังก์ชันบนซอฟต์แวร์ที่ถูกเขียนขึ้น จึงเน้นไปที่การดูฟีเจอร์หลักว่ามีครบและตรงกับเป้าประสงค์การพัฒนาซอฟต์แวร์ขึ้นมาหรือไม่ อาจกล่าวได้ว่าเป็นการทดสอบระบบเพื่อจุดประสงค์ในเชิงธุรกิจมากกว่าเรื่องการทำงานของโปรแกรม
- User Acceptance Tests เมื่อมั่นใจว่าซอฟต์แวร์ถูกพัฒนามาตรงกับจุดประสงค์ในเชิงธุรกิจแล้ว ก่อนที่จะปล่อยผลิตภัณฑ์ Software QA ก็ต้องทำการทดสอบซอฟต์แวร์กับตัว End User เช่นกัน เพื่อตรวจว่าฟังก์ชันต่างๆ บนซอฟต์แวร์ที่ถูกพัฒนามาตรงกับที่ผู้ใช้งานต้องการจริงๆ
- Usability Tests/UI Tests Software QA จำเป็นต้องมีความรู้เรื่อง UX และ UI บ้างบางส่วน เพื่อที่จะได้เช็กได้ว่าโปรแกรมที่ออกแบบตอบสนองความต้องการตัวผู้ใช้ได้ดีขนาดไหน ในขั้นนี้อาจต้องมีการประเมินลักษณะการโต้ตอบและระยะเวลาที่ใช้ระหว่างตัวผู้ใช้กับซอฟต์แวร์ในแต่ละส่วน ตามปกติการทดสอบนี้มักจะเป็นขั้นสุดท้ายก่อนจะปล่อยผลิตภัณฑ์ออกสู่ตลาด
เรื่องที่ต้องรู้หากอยากเป็นหากอยากเป็น QA, Software Tester หรือ Tester
นอกเหนือจากทักษะพื้นฐานด้านการอ่าน-เขียนโค้ด และการเข้าใจภาษาคอมพิวเตอร์ต่างๆ ผู้ที่อยากเป็น QA/Software Tester หรือ Tester มีสิ่งที่ต้องรู้เบื้องต้นดังนี้
- เข้าใจคำสั่งเบื้องต้นของ Linux Command
- มีความรู้พื้นฐานในเรื่อง Databased และ SQL
- มีประสบการณ์ใช้งานใน Test Management Tools มาบ้างในระดับหนึ่ง รวมถึงรู้วิธีการใช้ Automated Testing Tools ต่างๆ เช่น OpenTest, Selenium หรือ Apache JMeter เป็นต้น
- รู้วิธีการใช้งาน Defect Tracking Tools เพื่อค้นหา Bug และข้อผิดพลาดในโปรแกรม เช่น Bugzilla เป็นต้น
อยากทำงานด้านนี้ต้องเรียนอะไร
อย่างที่เห็นว่าการทำงานเป็นนักทดสอบระบบจำเป็นต้องมีพื้นฐานต่อยอดมาจากการเป็นโปรแกรมเมอร์ คือต้องอ่านโค้ดเป็น เข้าใจโครงสร้างของภาษาคอมพิวเตอร์ ดังนั้นแล้ว ใครที่ทราบว่าตัวเองอยากจะทำงานเป็น Software Tester ในระดับอุดมศึกษาก็จำเป็นที่จะต้องเลือกเรียนในคณะหรือสาขาที่มีการเปิดสอนหลักสูตรด้านไอที ซึ่งเราขอแนะนำให้ศึกษาจากประมวลเนื้อหาหลักสูตรของแต่ละมหาวิทยาลัยประกอบเพื่อความแม่นยำ
อย่างไรก็ตาม หากคนที่กำลังอ่านบทความชิ้นนี้เรียนจบมาแล้วและรู้สึกอยากเปลี่ยนสายงาน แต่ไม่ได้จบจากคณะสายตรงและไม่มีประสบการณ์เลย เราแนะนำว่าเดี๋ยวนี้มีคอร์สออนไลนที่มีคุณภาพมากมายรอให้ทุกคนได้ค้นพบ ไม่ต้องกลับไปลงเรียนใหม่หลายปีให้เสียเวลาก็สามารถย้ายสายได้เช่นกัน
อาจสรุปได้ว่าที่ไหนมีการพัฒนาซอฟต์แวร์ ที่นั่นย่อมมี Software QA หรือ Tester ทำงานอยู่ ดังนั้นแล้วนี่ถือเป็นโอกาสที่ดีมากสำหรับใครก็ตามที่อยากทำงานนี้ หากใครที่เข้ามาอ่านแล้วรู้สึกสนใจอยากเรียนรู้พื้นฐานเพื่อไปต่อยอดในสายอาชีพนี้ ทาง TechUp มีคอร์สฝึกสอนทักษะที่จำเป็นต่อการทำงานในสายเทคทั้งหมด ทั้ง Technical Skills, Soft Skills, English Skills และ Career Skills ให้ผู้เรียนมีความพร้อมทันทีหลังเรียน พร้อมกับช่วยเหลือผู้เรียนในขั้นตอนการหางานด้วย หากใครสนใจลองดูรายละเอียดคอร์สของเราได้เลยที่นี่