บทความและข่าวสาร | Seven Peaks Insights

งาน Software Tester เป็นที่ต้องการของตลาดขนาดไหน

และเป็นงานที่เหมาะกับคุณหรือเปล่า?

Are software testers in demand
 
คุณกำลังมองหางานใหม่ที่เกี่ยวกับการทดสอบซอฟต์แวร์และประกันคุณภาพ (QA) อยู่หรือเปล่า เราอยากให้คุณได้รู้ข้อมูลจากทีม QA ของ Seven Peaks Software โดยตรงที่จะมาตอบคำถามที่หลายคนอยากรู้อย่างเช่น “งาน Software Tester เป็นที่ต้องการของตลาดไหม” และ “การประกันคุณภาพซอฟต์แวร์ กับ การทดสอบซอฟต์แวร์ แตกต่างกันอย่างไร” ถ้าคุณอยากรู้แล้วเรามาเริ่มกันเลย

การประกันคุณภาพซอฟต์แวร์คืออะไร

มาทำความเข้าใจกันก่อนว่า การประกันคุณภาพซอฟต์แวร์ คือกระบวนการหลีกเลี่ยงข้อผิดพลาดและป้องกันปัญหาที่อาจเกิดขึ้นในทุกสิ่งทุกอย่างที่เกี่ยวข้องกับวิศวกรรมซอฟต์แวร์ของโปรเจกต์ ทั้งในด้านขั้นตอนการทำงาน กิจกรรม และหลักการต่างๆ ที่เกี่ยวข้อง พูดง่ายๆ ก็คือ หน้าที่ของ software QA engineer คือการทดสอบว่าซอฟต์แวร์หรือแอปพลิเคชันนั้นๆ ทำงานได้ดี มีประสิทธิภาพ ใช้งานง่าย และมีความปลอดภัยแค่ไหน

software tester เป็นที่ต้องการของตลาดไหม

เมื่อรู้แล้วว่า software QA คืออะไร คุณอาจจะสงสัยว่า “งาน software tester เป็นที่ต้องการของตลาดหรือเปล่า” ไม่ต้องกังวล เรามีคำตอบ

ในปี 2022 ความต้องการ software tester และ software QA ได้รับการคาดการณ์ว่าจะเติบโตขึ้นอย่างต่อเนื่องถึง 25% ในอีก 10 ปีข้างหน้า เหตุผลที่เป็นอย่างนั้นก็เพราะว่าการใช้งานผลิตภัณฑ์ซอฟต์แวร์ของธุรกิจต่างๆ ที่สูงขึ้นนั่นเอง บริษัทมากมายต้องการตรวจสอบให้มั่นใจว่าซอฟต์แวร์ของพวกเขาทำงานได้ดี และไม่มีปัญหาเมื่ออยู่ในมือผู้ใช้ ยิ่งไปกว่านั้น พวกเขายังต้องการ software QA engineer เพื่อให้เข้ามาแก้ไขปัญหาความล้มเหลวในการปล่อยซอฟต์แวร์สู่ตลาด รวมถึงปรับปรุงระบบ IT ให้ดียิ่งขึ้น

ด้วยการเติบโตอย่างต่อเนื่องของการใช้งานเทคโนโลยีในทุกสาขาธุรกิจ เราสามารถพูดได้ว่า ความต้องการ software QA engineer และ software tester นั้นมีแต่จะเพิ่มขึ้นในอนาคต

ทำไมถึงจำเป็นต้องมีการทดสอบซอฟต์แวร์

โดยธรรมชาติแล้ว คนเรามักจะทำผิดพลาด นั่นจึงเป็นคำตอบที่ดีพอว่า “ทำไมถึงจำเป็นต้องมีการทดสอบซอฟต์แวร์” ซึ่งต่อไปนี้คือตัวอย่างข้อดีของการทดสอบซอฟต์แวร์ก่อนที่จะส่งให้ลูกค้าของคุณได้ใช้งาน

  • มั่นใจได้ว่าซอฟต์แวร์ที่ได้รับการทดสอบอย่างเหมาะสมจะมีประสิทธิภาพการทำงานที่ดี
  • เมื่อเป้าหมายของคุณคือการพัฒนาผลิตภัณฑ์คุณภาพสูงสำหรับผู้บริโภค
  • ช่วยลดความร้ายแรงของปัญหาในการพัฒนาลง เช่น ข้อบกพร่อง หรือ บั๊ก
  • ทำให้ซอฟต์แวร์ทำงานได้เสถียรและใช้งานง่ายยิ่งขึ้น
  • ผลิตภัณฑ์ซอฟต์แวร์คุณภาพสูงจะช่วยประหยัดเวลาและงบประมาณได้

mmexport1654782170596-scaled


การประกันคุณภาพซอฟต์แวร์ กับ การทดสอบซอฟต์แวร์

คุณอาจได้ยินสองคำนี้มาก่อน แต่รู้ไหมว่าความแตกต่างระหว่างการประกันคุณภาพซอฟต์แวร์ กับ การทดสอบซอฟต์แวร์ คืออะไร

เมื่อเวลาผ่านไปอาจทำให้ความหมายของทั้งสองชื่อนี้ดูคล้ายคลึงกัน และยากที่จะบอกถึงความแตกต่างได้ ในแง่หนึ่งมันก็เหมือนกัน เพราะมีการนำมาใช้ในบริบทเดียวกันอยู่เสมอ แต่ในความเป็นจริงแล้ว หน้าที่ของทั้งสองนั้นแตกต่างกันอย่างมาก

 
  การทดสอบซอฟต์แวร์ การประกันคุณภาพซอฟต์แวร์
วิธีการทำงาน แมนนวล/อัตโนมัติ แมนนวล/อัตโนมัติ
ความรับผิดชอบ
  • ทำ test case
  • รายงานบั๊กที่พบเจอในซอฟต์แวร์
  • ทำ test case
  • ปรับปรุงและพัฒนาเพื่อเพิ่มคุณภาพผลิตภัณฑ์
เป้าหมาย หาบั๊กให้เจอและระบุบั๊กร้ายแรงที่มีในระบบ
  • ส่งมอบผลิตภัณฑ์ที่มีคุณภาพสูงหลังจากที่ผ่านกระบวนการประกันคุณภาพซอฟต์แวร์แล้ว
  • ป้องกันไม่ให้เกิดบั๊กขึ้นในซอฟต์แวร์
  • เน้นตอบสนองความพึงพอใจของผู้ใช้ด้วยคุณภาพของผลิตภัณฑ์และประสบการณ์ที่ดี
ผลลัพธ์ ปล่อยซอฟต์แวร์ออกสู่ตลาดพร้อมบั๊กที่น้อยลง ปล่อยซอฟต์แวร์ที่มีคุณภาพสูงออกสู่ตลาด
 


จากตารางข้างบนจะเห็นได้ว่ามีความแตกต่างระหว่างการประกันคุณภาพซอฟต์แวร์ กับ การทดสอบซอฟต์แวร์อย่างเห็นได้ชัด โดยเฉพาะอย่างยิ่งในด้านความรับผิดชอบ เป้าหมาย และผลลัพธ์ที่ต้องทำให้ได้

software tester มีหน้าที่ในการหาบั๊กให้เจอก่อนที่ผู้ใช้จะพบเมื่อพวกเขาใช้งานจริง พร้อมกับตรวจสอบเพื่อทำรายงานเกี่ยวกับประสิทธิภาพของซอฟต์แวร์ ในขณะที่ software QA engineer จะกังวลเกี่ยวกับการควบคุมวงจรชีวิตของผลิตภัณฑ์มากกว่า พวกเขาต้องแน่ใจว่าซอฟต์แวร์นั้นมีคุณภาพตรงตามมาตรฐานหรือตรงตามความต้องการของลูกค้าจริงๆ

หลักการทำงานคร่าวๆ ของการทดสอบซอฟต์แวร์

1. Test plan

Test plan คือเอกสารที่บอกรายละเอียดของการทดสอบ ได้แก่

  • วัตถุประสงค์ของการทดสอบ
  • ขอบเขตของการทดสอบ
  • ตารางบอกรายละเอียดของกิจกรรมที่ต้องการจะทำ
  • ทรัพยากรที่ต้องการ เช่น กำลังคนและเครื่องมือทางเทคนิค

ความสำคัญของ test plan

  • ช่วยให้คนที่อยู่นอกทีม เช่น business manager, developer, และลูกค้าเข้าใจการทดสอบโปรเจกต์ได้ง่ายขึ้น
  • ช่วยให้มีแนวทางในการคิดวางแผนงาน
  • บันทึกข้อมูลส่วนที่สำคัญๆ เช่น การประมาณค่าและขอบเขตของการทดสอบ เอาไว้เป็นข้อมูลอ้างอิง
 

2. Test cases

Test case คือชุดของการปฏิบัติงานเพื่อตรวจสอบว่าฟีเจอร์หรือฟังก์ชันนั้นๆ ของซอฟต์แวร์ทำงานเป็นอย่างไร ซึ่งประกอบด้วยสิ่งต่างๆ ต่อไปนี้

  • ลำดับ test case
  • รายละเอียด test case
  • ข้อมูลที่ทำการทดสอบ
  • ขั้นตอนการทดสอบ
  • ผลลัพธ์ที่คาดหวัง
  • ผลลัพธ์จริง
  • สรุปผลการทดสอบ

สิ่งที่ test engineer เน้นเป็นพิเศษคือการเปรียบเทียบระหว่าง ผลลัพธ์ที่คาดหวัง กับ ผลลัพธ์จริง

 

ตัวอย่าง test case ที่ดี

 
ลำดับ test case รายละเอียด ข้อมูลที่ทำการทดสอบ ผลลัพธ์ที่คาดหวัง ผลลัพธ์จริง สรุปผลการทดสอบ
1 เช็กการตอบสนองเมื่อกรอกอีเมลและรหัสผ่านที่ถูกต้อง

Nit9@gmail.com

Password: 1234590!

ควรจะล็อกอินสำเร็จ ล็อกอินสำเร็จ ผ่าน
2 เช็กการตอบสนองเมื่อกรอกอีเมลและรหัสผ่านที่ถูกต้อง

Nit9@gmail.com

Password: 1234590!

ควรจะล็อกอินสำเร็จ ล็อกอินไม่สำเร็จ ไม่ผ่าน
3 เช็กการล็อกอินด้วยข้อมูลของลูกค้าที่ถูกต้อง

Nit23@gmail.com

Password: 12390ki14

ผู้ใช้ควรล็อกอินสำเร็จ

ล็อกอินสำเร็จ ผ่าน
4 เช็กการล็อกอินด้วยข้อมูลของลูกค้าที่ไม่ถูกต้อง

Nit23@gmail.com

Password: 123908!4a

ผู้ใช้ควรล็อกอินไม่สำเร็จ

ล็อกอินไม่สำเร็จ ผ่าน

 


ตัวอย่าง test case ที่ไม่ดี

 

ขั้นตอน
  1. เปิดใช้ฟังก์ชัน “ค้นหาและแทนที่ข้อมูล”
  2. กรอกข้อความจากไฟล์เอกสารเป็นตัวพิมพ์เล็กในช่องค้นหา
  3. กรอกข้อความที่เป็นตัวพิมพ์เล็กและพิมพ์ใหญ่ปนกัน
ผลลัพธ์ที่คาดหวัง
  1. ตรวจสอบว่าข้อความที่เป็นตัวพิมพ์เล็กนั้นถูกแทนที่ด้วยข้อความที่เป็นตัวพิมพ์เล็กและพิมพ์ใหญ่ปนกันหรือไม่
 

3. Test scenarios

Test scenario คือ ข้อมูลที่อธิบายว่าฟังก์ชันของแอปพลิเคชันที่จะทำการทดสอบมีอะไรบ้าง ซึ่ง test scenario หนึ่งอาจครอบคลุม test case เพียงรายการเดียวหรือมากกว่านั้นก็ได้


ความแตกต่างระหว่าง test scenario กับ test case

Test scenario นั้นมีความกว้างและครอบคลุมความเป็นไปได้ที่หลากหลาย ในขณะที่ test case จะมีความเฉพาะเจาะจงมากกว่า

ดูได้จากตัวอย่างต่อไปนี้

สำหรับ test scenario ที่ต้องการเช็กฟังก์ชันการล็อกอินนั้น มีความเป็นไปได้ที่จะสามารถทำ test case ได้หลายรายการ เช่น

  • Test case 1: เช็กผลลัพธ์ในการกรอกชื่อผู้ใช้และรหัสผ่านที่ถูกต้อง
  • Test case 2: เช็กผลลัพธ์ในการกรอกชื่อผู้ใช้และรหัสผ่านที่ไม่ถูกต้อง
  • Test case 3: เช็กการตอบสนองเมื่อไม่มีการกรอกข้อมูลในช่องชื่อผู้ใช้ แล้วกดปุ่มล็อกอิน รวมถึงเคสอื่นๆ อีกมากมาย
 

4. Bug report

bug report เป็นรายงานที่มีข้อมูลเกี่ยวกับความผิดปกติของซอฟต์แวร์หรือเว็บไซต์และสิ่งที่ต้องแก้ไข

bug report ที่ดีควรมีข้อมูลดังต่อไปนี้

  1. >ชื่อและหมายเลขบั๊ก
  2. ขั้นตอนการทำให้บั๊กแสดงผล
  3. ผลลัพธ์ที่คาดหวัง
  4. ผลลัพธ์จริงที่เกิดขึ้น
  5. หลักฐานยืนยันบั๊ก (ภาพ screenshot, วิดีโอ, ข้อความ)
  6. ความเร่งด่วนในการแก้ปัญหาหรือความรุนแรงของบั๊ก
 

5. การทดสอบแบบแมนนวลและแบบอัตโนมัติ

การทดสอบแบบแมนนวล

การทดสอบแบบแมนนวลนั้นเป็นอย่างที่ชื่อบอกไว้ คือต้องมีผู้ทดสอบมายืนยันผล ดังนั้นจึงต้องมีใครสักคนมาสังเกตการณ์เพื่อค้นหาว่ามีข้อผิดพลาดอะไรตรงไหน จุดประสงค์ของการทดสอบแบบแมนนวลคือการหาว่าบั๊กอยู่ตรงไหนและฟีเจอร์ต่างๆ มีปัญหาอะไรบ้าง

การทดสอบแบบอัตโนมัติ

ในการทดสอบแบบอัตโนมัตินั้น จะมีการเขียนสคริปต์เอาไว้ล่วงหน้าเพื่อรันการทดสอบแบบแบบอัตโนมัติ โดยจะเป็นการรันเพื่อเปรียบเทียบระหว่างผลลัพธ์ที่คาดหวังกับผลลัพธ์จริงที่เกิดขึ้น การรันแบบนี้จะใช้เครื่องมือ สคริปต์ และซอฟต์แวร์ ในการทำงาน เหมาะกับ test case ที่ต้องทดสอบซ้ำๆ หลายๆ ครั้งเป็นเวลานาน

อ่านข้อมูลเพิ่มเติมได้ที่ บทความแนะนำการเลือกระหว่างใช้การทดสอบแบบแมนนวลกับแบบอัตโนมัติ

 

อยากเป็น software QA engineer ที่ประสบความสำเร็จ ต้องทำอย่างไร

หากคุณสนใจ อยากประสบความสำเร็จในการเป็น software QA engineer ละก็ คุณควรพัฒนาทักษะในด้านต่อไปนี้

  • รอบคอบ ใส่ใจในทุกรายละเอียด
  • ช่างสังเกต และรู้จักตั้งคำถาม
  • คิดนอกกรอบ
  • ขยันและฝึกฝนอย่างสม่ำเสมอ
  • เป็นผู้ฟังที่ดี

คุณต้องการเติบโตในฐานะ software QA engineer กับเราใช่ไหม?
ดูตำแหน่งที่เราเปิดรับสมัครได้ที่นี่
ดูตำแหน่งที่เปิดรับ