สายงานด้าน IT หรือ Outsource IT ในปัจจุบัน มีหลายอาชีพเป็นที่ต้องการตัวมาก แต่ยังมีอีกหนึ่งสายงาน ที่แม้จะไม่ค่อยได้ยินชื่อ หรือเป็นที่รู้จักมากนัก แต่ก็เป็นตำแหน่งที่สำคัญไม่แพ้กัน นั่นก็คือ Software Tester แล้วตำแหน่งงานนี้คืออะไร มีหน้าที่แบบไหน Hocco จะพาไปเจาะลึกถึงคำตอบเหล่านั้น พร้อมกับทักษะอะไรบ้างที่พวกเขาควรจะต้องมีเพื่อจะเป็นที่ต้องการขององค์กรต่าง ๆ
Software Tester คืออะไร ตำแหน่งสำคัญที่แทบทุกบริษัทต้องการตัว
Software Testing หรือการทดสอบซอฟต์แวร์นั้น ก็คือ กระบวนการการประเมิน และปรับปรุงคุณภาพซอฟต์แวร์ของบริษัท เพื่อค้นหาข้อผิดพลาด หรือข้อบกพร่องของซอฟต์แวร์ ให้ปรากฎออกมาเพื่อหาแนวทางอุดช่องโหว่ของปัญหาที่เกิดขึ้น หรืออาจเกิดขึ้นให้ได้นั่นเอง
สำหรับอาชีพ Tester หรือ Software Tester หรือ Quality Assurance Engineer หรือ Quality Engineer นั้น จริง ๆ ทั้งหมดนี้ก็คืออาชีพเดียวกันทั้งหมด โดยพื้นฐานหน้าที่ของอาชีพนี้ก็คือ คนที่มีหน้าที่ตรวจสอบคุณภาพของซอฟตแวร์ที่ถูกผลิตขึ้นมาโดยโปรแกรมเมอร์ หรือนักพัฒนาซอฟต์แวร์ ซึ่งทำการ Test ระบบต่าง ๆ และตรวจสอบหาข้อบกพร่องข้อผิดพลาดของซอฟต์แวร์ เพื่อตรวจสอบให้ดีว่าซอฟต์แวร์ที่เราส่งออกไปให้ลูกค้านั้น มีข้อผิดพลาดอะไรตรงไหนหรือไม่ เพื่อหาวิธีแก้ไขปัญหาให้ทันท่วงที
ทักษะจำเป็นของ Software Tester
แน่นอนว่า ไม่ใช่ใครก็ได้ที่จะสามารถมาทำงานนี้ได้ เพราะคนที่จะทำอาชีพนี้ได้นั้น จะต้องมีทักษะความเชี่ยวชาญต่าง ๆ อยู่ก่อนแล้ว ซึ่งได้แก่
- ความรู้พื้นฐานทางด้าน Software Testing- มีทักษะด้านการตรวจรับและทดสอบระบบงานซอฟต์แวร์ที่ดี- การวิเคราะห์ Requirement- การออกแบบ Test Case- การ Test ข้อมูล Scenario- Mobile Testing- Business Analysis- Performance Testing- Security Testing- Automation Testingหน้าที่ของ Software Tester
งานตำแหน่งนี้ทำอะไรบ้างนั้น จะมีดังนี้
1. วิเคราะห์ความต้องการในการทดสอบคุณภาพของซอฟต์แวร์
2. วางแผนการทดสอบตามเป้าหมาย
3. เขียน Test Script เพื่อใช้เป็นแผนในการ Test ระบบ
4. ออกแบบ Test Case หรือ Test Scenario เพื่อจำลองเหตุการณ์ที่อาจจะเกิดขึ้นตอนใช้โปรแกรม และเป็นการช่วยตรวจสอบความลื่นไหล รวมไปถึงความผิดปกติของโปรแกรมที่กำลัง Test
5. สร้าง Test Case หรือ Test Scenario เพื่อตรวจสอบแต่ละขั้นตอน และส่งมอบให้กับลูกค้า โดย Test Case จะต้องเข้าใจง่าย เพื่อให้ลูกค้าที่เป็น User สามารถใช้งานได้อย่างเข้าใจ
6. เตรียมและติดตั้ง Test Environment Test Scenario และ Test Data เพื่อใช้ในการทดสอบระบบ
7. สรุปผลการ Test ระบบ และส่งให้ Developer หรือผู้ที่เกี่ยวข้องจัดการแก้ไขปัญหาต่อไป
8. ในบางบริษัท Tester อาจจะต้องเป็นคนทำคู่มือการใช้งานโปรแกรมเหล่านั้นด้วย
รูปแบบการ Testing ของอาชีพนี้
รูปแบบการ Testing จะมีอยู่ 2 รูปแบบด้วยกัน คือแบบ Manual Testing และ Automated Testing ซึ่งมีรายละเอียด ดังนี้
Manual Testing
Manual Testing ก็คือการ Manual Test หรือเป็นการจำลองว่าเราคือผู้ใช้ หรือ User เพื่อกรอกข้อมูล และทำรายการทีละขั้นตอนตาม Test Script ที่ได้ออกแบบไว้ จะต้องทำการ Test ตามแผนที่วางไว้ ถ้าเป็นโปรเจคหรืองานใหญ่ ๆ ก็จะทำให้ใช้เวลาในการทำงานมากขึ้น เพราะการใช้ Manual Test จะต้องใช้แรงงานบุคลากรที่ทำหน้าที่ Testing เข้ามา Test เองทีละเรื่องทีละ Step ทำให้ใช้เวลาค่อนข้างนาน แต่ทั้งนี้ทั้งนั้น การทำ Manual Testing จะทำให้เห็นถึงข้อบกพร่องได้อย่างชัดเจน และสามารถส่งเรื่องต่อเพื่อทำการแก้ไข และนำมา Re-Test อีกรอบได้อย่างทันที
ข้อดีของ Manual Testing
- คุ้มค่าในระยะสั้น มีประสิทธิภาพการทำงานสูง
- ประหยัด Cost หรือลงทุนน้อยกว่า Automated Test
- สามารถหาข้อบกพร่องได้อย่างชัดเจน เนื่องจากใช้แรงงานบุคลากรมาทำการ Test ในแต่ละ Case
ข้อเสียของ Manual Testing
- ใช้เวลานานในการ Test ค่อยข้างมาก เพราะเป็นการใช้คนมาคอยทำ Test และต้องทำซ้ำ ๆ ไปมาจนกว่าจะไม่เจอข้อผิดพลาด
- ไม่สามารถเปรียบเทียบหรือทำการ Test ข้อมูลที่มีจำนวนที่เยอะมากหลายพันข้อมูลได้เท่ากับ Automated Testing
Automated Testing
Automated Testing คือการ Test โดยใช้ Tool สำหรับ Test ทำงานด้วยตัวเอง เช่น การเขียนโค้ดขึ้นมาเพื่อให้คอมพิวเตอร์หรือโปรแกรมนั้น ๆ Run Test ด้วยตนเอง โดยไม่ต้องใช้แรงงานคนในการทำ Test ซึ่งวิธีนี้จะช่วยลดเวลาในการ Manual Test แต่อาจจะต้องมีการเขียนโค้ดทำสคลิป เพื่อรัน Test แบบ Auto Test นั่นเอง ทำให้ Automated Testing จึงไม่เหมาะกับโปรเจคสั้น ๆ เช่น โปรเจคที่ใช้เวลาเพียงแค่ 3 เดือน เพราะว่าส่วนใหญ่แล้ว เวลาที่เราเสียไปกับการเตรียมการจะมากกว่าที่เราจะได้รับกลับมา
ข้อดีของ Automated Testing
- ถ้าเราต้อง Run Test ซ้ำ ๆ Automated Testing จะใช้งานได้ดีกว่าไม่ต้องใช้เวลานาน เพราะใช้โปรแกรมที่เขียนโค้ดไว้นั้น Run Test ให้เองอัตโนมัติ
- ในการ Test แต่ละครั้งสามารถสร้าง User จำนวนมากขึ้นมาทำการ Test พร้อมกันได้ในเวลาเดียวกัน
- จะใช้เวลาในการ Test สั้นกว่า Manual Testing เนื่องจากมีระบบ Auto ที่ได้มีการเขียนโค้ดไว้แล้ว
ข้อเสียของ Automate Test
- ลงทุนสูงในช่วงเริ่มต้น เพราะจำเป็นต้องจ้างบุคคลที่มีความสามารถในการเขียนโค้ด ซึ่งจะต้องรู้ภาษาคอมที่หลากหลายมาทำการเขียนโค้ดสคริปต่าง ๆ เพื่อ Run Test Case
- ต้องใช้ผู้ที่มีทักษะในการเขียนโปรแกรม Test อย่างดี
- Automate Test ไม่สามารถทำได้ทุกงาน บางครั้งก็ต้องใช้ Manual Test หรือจำเป็นต้องมี Software Tester มาคอยดูแล
ทักษะที่จำเป็นของ Software Tester ที่จะทำให้ต้องตาองค์กรต่าง ๆ
Hard Skill ที่ต้องฝึกฝนอยู่ไม่ให้ขาดตกบกพร่อง
- Foundation of Testing ต้องรู้พื้นฐานการ Test ระบบซอฟต์แวร์ต่าง ๆ
- Testing the Software Life Cycle เพราะระบบของซอฟต์แวร์นั้นไม่มีวันหยุดนิ่ง การหมั่นเรียนรู้และหาข้อมูลเกี่ยวกับเทคโนโลยีอยู่เสมอ
- Static Technique ต้องมีเทคนิคและทักษะการตรวจสอบและอ่านสถิติอย่างแม่นยำ
- Test Design Techniques เทคนิคออกแบบการ Test ต่าง ๆ
- Test Management การจัดการระบบต่าง ๆ
- รู้จัก Tools for support Testing อันได้แก่ระบบเครื่องมือที่ต้องใช้ในการ Test
- เข้าใจในเรื่องของระบบจัดการลูกค้า ต้องแก้ไขข้อมูลส่วนตัวของลูกค้าเป็นด้วย
- ต้องมีความรู้ความเข้าใจในเรื่องของแอปพลิเคชัน แพลตฟอร์ม และปลั๊กอินต่าง ๆ
Soft Skill ที่ช่วยเพิ่มมูลค่าให้กับ Software Tester
- ทักษะการคิดแบบเป็นเหตุเป็นผลและคิดนอกกรอบ (Logical and Lateral Thinking)
- ทักษะการแก้ไขปัญหา (Problem Solving)
- ทักษะการรายงานผลและสื่อสาร (Reporting and Communication)
- ทักษะการจัดการงานแบบโปรเจค (Project Management)
สรุป
Software Tester คือ อาชีพที่ต้องตรวจสอบความถูกต้องของซอฟต์แวร์ หลังจากการทำงานของโปรแกรมเมอร์ เพื่อหาข้อผิดพลาดของงานโดยใช้วิธีการ Test ต่าง ๆ เพื่อให้มั่นใจว่าซอฟต์แวร์ที่จะไปถึงมือลูกค้ามีคุณภาพ ปราศจากข้อผิดพลาดหรือผิดพลาดน้อยที่สุด และมีโอกาสเติบโตไปได้ไกล ซึ่งหากไม่ไปตรงสาย ก็สามารถที่จะเติบโตในตำแหน่งอื่นในสายงานไอทีได้ ด้วยความรู้พื้นฐานด้านโปรแกรม ความสามารถในการคิดวิเคราะห์ ความเข้าใจกระบวนการทำงานของโปรแกรมและธุรกิจ สามารถทำให้คนในสายงานอาชีพนี้ต่อยอดไปทำตำแหน่งอื่นได้อีกมากมาย
ซึ่งหนึ่งในบริการของ Hocco เรามีบริการในด้าน Software Engineer ที่ใช้เทคโนโลยีที่มีประสิทธิภาพ ซึ่งช่วยให้มั่นใจได้ว่าซอฟต์แวร์ของคุณจะมีความปลอดภัย ได้มาตรฐาน และเกิดประโยชน์สูงสุด โดยเราได้เลือกใช้การบริหารจัดการ และกระบวนการพัฒนาที่ดี เหมาะกับธุรกิจของคุณ เพื่อให้ลูกค้าได้รับซอฟต์แวร์ที่สามารถใช้งานได้จริง และช่วยให้ธุรกิจของคุณบรรลุเป้าหมายที่วางไว้ได้
อ้างอิง
https://th.jobsdb.com/th-th/articles/software-tester/
https://mindphp.com/บทความ/software-project-manage/9404-how-important-is-software-tester.html
https://www.aware.co.th/it-jobs/th/งาน-software-tester-คืออะไร-มีหน้าที่อ/
0 Comment