ย้อนไปเมื่อสัก 10 ปีก่อนใครที่เรียนสายคอมพิวเตอร์มา ทุกคนที่เรียนจบจะถูกมองว่าเค้าจะต้องมาทำอาชีพที่เรียนว่า โปรแกรมเมอร์ (Programmer) หรือคนเขียนโปรแกรมแทบจะทั้งสิ้น ทุกวันนี้ก็ยังมีคนเข้าใจอย่างนั้น แต่ที่จริงแล้วการเรียนไม่ว่าจะ IT, ComScience หรือจะเป็น Com Engineer ก็มีอาชีพหลากหลายที่รอรับนอกจาก Programmer อาทิ ผู้ควบคุมดูแลระบบ Network Admin, นักวิเคราะห์ระบบ System Analyst, ผู้ดูแลฐานข้อมูล Database Admin หรือกระทั่ง Programmer ก็ยังแตกตามภาษาไป C, C++, .Net, Java
แต่ช่วง 10 ปีนี้ได้มีตำแหน่งอีกตำแหน่งนึงผุดขึ้นมา แต่ไม่ค่อยเป็นที่แพร่หลายนักในตอนนั้น เรียกว่า Tester ครั้งแรกที่ผมได้ยินก็คือการมา roadshow ของ 2 บริษัทที่มารับนักศึกษาปี 4 ไปทำงานกับบริษัทเค้า ผมไม่รู้ scope เท่าไหร่นอกจากเข้าใจไปเองว่า…
“อ่อ Tester ก็คือคนเทสโปรแกรม หา bug หาเจอแล้วก็บอก programmer แค่นั้นก็จบ”
สารภาพเลยว่า ณ ตอนนั้นด้วยความที่ผม Code ง่อยมาก อย่างอื่นก็เข้าขั้นแย่ ยกเว้นตอนนั้นที่ชอบคือวิชา System Analyse เลยสนใจตำแหน่งนี้มากๆ น่าจะตอบโจทย์ non-coding person อย่างผมได้
…จนมาเมื่อทำงานจริงๆถึงได้รู้ว่ามันต้องทำเยอะกว่านั้นเยอะมากกกกกกกกกจริงๆ
พูดมาซะยาว เรามารู้จัก Tester กันดีกว่าครับ
Tester หรือ Software tester หรือ Quality Assurance Engineer หรือ Quality Engineer (หลายชื่อจริงๆ แล้วแต่บริษัทจะเรียกชื่อ) คือ คนที่มีหน้าที่ตรวจสอบคุณภาพของ software ที่ถูกผลิตขึ้นมาโดย programmer โดยใช้วิธีการ test ต่างๆ เพื่อให้มั่นใจว่า software ที่จะไปถึงมือลูกค้า มีคุณภาพและปราศจากข้อผิดพลาดหรือผิดพลาดน้อยที่สุด ข้อผิดพลาดเรารู้จักกันว่า bug นั่นเอง
สำหรับบริษัททั่วไป ตำแหน่ง Tester จะถูกควบรวมอยู่ในร่างเดียวกับ Programmer นั่นคือ Code เอง Test เอง Fix เองในร่างเดียว และส่วนใหญ่ก็จะ test เฉพาะส่วนที่ทำงานได้ปกติเท่านั้น ส่วนที่อาจจะเกิดขึ้น เช่น user กรอกค่าผิด หรือกดปุ่มผิดไปเจอข้อความ error, โปรแกรมปิดตัวเองไปเลย (program crash) หรือร้ายแรงที่สุดคือทำให้ระบบปฏิบัติการ (Operating System) เสียหาย หรือเจ๊งไปเลย ทุกอย่างเป็นไปได้หมดครับ
เพื่อป้องกันสิ่งที่จะเกิดขึ้นต่อหน้าลูกค้า (user) เราจึงต้องมีคนที่เรียกว่า Tester ซึ่งที่ไม่ได้เกี่ยวข้องกับการ code program มา test ระบบนั้นๆ โดยต้องรายงานสิ่งที่ test ตามความเป็นจริง ไม่มีบิดเบือน (non bias) Tester จึงมีความสำคัญนะครับ แต่ในความเป็นจริงแล้วมักถูกมองและให้ความสำคัญเป็นทีมสุดท้าย และให้เวลาใน project น้อยที่สุดเนื่องจากใช้เวลาไปกับการ coding เกินซะส่วนใหญ่
หน้าที่ทั่วไปของ Tester ที่ทำๆกันทุกวันนี้เค้าทำอะไรกันบ้าง
- คิดกรณีที่ทำให้การทำงานของระบบหรือ application ทุกกรณีที่เป็นไปได้ว่าจะเกิดขึ้น – design test cases
- เขียนขั้นตอนการ test โดยคิดว่าคนอื่นสามารถอ่านแล้วเข้าใจ – create / produce test cases
- ติดตั้งระบบเพื่อใช้ในการ test – setup environment
- ทำ test script ในกรณีที่ตกลงกันว่าจะทำ – produce test script / test automation
- เริ่มการ test ระบบ – execute testing
- เขียนสรุปผลการ test เพื่อรายงานให้ผู้ที่เกี่ยวข้องรู้ – produce test report
ต่อไปจะว่าถึงคุณสมบัติคร่าวๆ เท่าที่ผมจะนึกออกสำหรับคนที่อยากเป็น Tester อาจดูคล้ายๆ qualification เวลาสมัครงาน ซึ่งผมก็ว่าใช่เลยหล่ะ ฮ่าๆ
- อยากรู้อยากเห็น
- ชอบลองผิดลองถูก
- คิดต่าง คิดนอกกรอบ
- ชอบงานเอกสารพอตัว — งานนี้เขียน document เยอะพอสมควรนะครับทั้งเขียน test case, test steps และ test report
- หากมี skill coding ได้ก็จะดี เพราะจะช่วยให้เราลดแรงงานในการมา run test นั่นคือการผลิต test script สำหรับการ run แบบซ้ำๆทุกๆวัน ถือเป็น optional นะครับ ถ้ามีก็จะดีมาก เพราะตอนนี้มีน้อยจริงๆ
- Teamwork สำคัญมาก ฉายเดี่ยวมักไม่ค่อยประสบความสำเร็จกับตัวเองครับไม่ว่างานไหน
ไม่มีความคิดเห็น:
แสดงความคิดเห็น