แชร์เรื่องนี้
งาน Software Tester เป็นที่ต้องการของตลาดขนาดไหน
โดย Seven Peaks เมื่อ 24 ก.ค. 2023, 13:09:02
และเป็นงานที่เหมาะกับคุณหรือเปล่า?
การประกันคุณภาพซอฟต์แวร์คืออะไร
มาทำความเข้าใจกันก่อนว่า การประกันคุณภาพซอฟต์แวร์ คือกระบวนการหลีกเลี่ยงข้อผิดพลาดและป้องกันปัญหาที่อาจเกิดขึ้นในทุกสิ่งทุกอย่างที่เกี่ยวข้องกับวิศวกรรมซอฟต์แวร์ของโปรเจกต์ ทั้งในด้านขั้นตอนการทำงาน กิจกรรม และหลักการต่างๆ ที่เกี่ยวข้อง พูดง่ายๆ ก็คือ หน้าที่ของ 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 นั้นมีแต่จะเพิ่มขึ้นในอนาคต
ทำไมถึงจำเป็นต้องมีการทดสอบซอฟต์แวร์
โดยธรรมชาติแล้ว คนเรามักจะทำผิดพลาด นั่นจึงเป็นคำตอบที่ดีพอว่า “ทำไมถึงจำเป็นต้องมีการทดสอบซอฟต์แวร์” ซึ่งต่อไปนี้คือตัวอย่างข้อดีของการทดสอบซอฟต์แวร์ก่อนที่จะส่งให้ลูกค้าของคุณได้ใช้งาน
- มั่นใจได้ว่าซอฟต์แวร์ที่ได้รับการทดสอบอย่างเหมาะสมจะมีประสิทธิภาพการทำงานที่ดี
- เมื่อเป้าหมายของคุณคือการพัฒนาผลิตภัณฑ์คุณภาพสูงสำหรับผู้บริโภค
- ช่วยลดความร้ายแรงของปัญหาในการพัฒนาลง เช่น ข้อบกพร่อง หรือ บั๊ก
- ทำให้ซอฟต์แวร์ทำงานได้เสถียรและใช้งานง่ายยิ่งขึ้น
- ผลิตภัณฑ์ซอฟต์แวร์คุณภาพสูงจะช่วยประหยัดเวลาและงบประมาณได้
การประกันคุณภาพซอฟต์แวร์ กับ การทดสอบซอฟต์แวร์
คุณอาจได้ยินสองคำนี้มาก่อน แต่รู้ไหมว่าความแตกต่างระหว่างการประกันคุณภาพซอฟต์แวร์ กับ การทดสอบซอฟต์แวร์ คืออะไร
เมื่อเวลาผ่านไปอาจทำให้ความหมายของทั้งสองชื่อนี้ดูคล้ายคลึงกัน และยากที่จะบอกถึงความแตกต่างได้ ในแง่หนึ่งมันก็เหมือนกัน เพราะมีการนำมาใช้ในบริบทเดียวกันอยู่เสมอ แต่ในความเป็นจริงแล้ว หน้าที่ของทั้งสองนั้นแตกต่างกันอย่างมาก
การทดสอบซอฟต์แวร์ | การประกันคุณภาพซอฟต์แวร์ | |
---|---|---|
วิธีการทำงาน | แมนนวล/อัตโนมัติ | แมนนวล/อัตโนมัติ |
ความรับผิดชอบ |
|
|
เป้าหมาย | หาบั๊กให้เจอและระบุบั๊กร้ายแรงที่มีในระบบ |
|
ผลลัพธ์ | ปล่อยซอฟต์แวร์ออกสู่ตลาดพร้อมบั๊กที่น้อยลง | ปล่อยซอฟต์แวร์ที่มีคุณภาพสูงออกสู่ตลาด |
จากตารางข้างบนจะเห็นได้ว่ามีความแตกต่างระหว่างการประกันคุณภาพซอฟต์แวร์ กับ การทดสอบซอฟต์แวร์อย่างเห็นได้ชัด โดยเฉพาะอย่างยิ่งในด้านความรับผิดชอบ เป้าหมาย และผลลัพธ์ที่ต้องทำให้ได้
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 ที่ไม่ดี
ขั้นตอน |
|
ผลลัพธ์ที่คาดหวัง |
|
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 ที่ดีควรมีข้อมูลดังต่อไปนี้
- >ชื่อและหมายเลขบั๊ก
- ขั้นตอนการทำให้บั๊กแสดงผล
- ผลลัพธ์ที่คาดหวัง
- ผลลัพธ์จริงที่เกิดขึ้น
- หลักฐานยืนยันบั๊ก (ภาพ screenshot, วิดีโอ, ข้อความ)
- ความเร่งด่วนในการแก้ปัญหาหรือความรุนแรงของบั๊ก
5. การทดสอบแบบแมนนวลและแบบอัตโนมัติ
การทดสอบแบบแมนนวล
การทดสอบแบบแมนนวลนั้นเป็นอย่างที่ชื่อบอกไว้ คือต้องมีผู้ทดสอบมายืนยันผล ดังนั้นจึงต้องมีใครสักคนมาสังเกตการณ์เพื่อค้นหาว่ามีข้อผิดพลาดอะไรตรงไหน จุดประสงค์ของการทดสอบแบบแมนนวลคือการหาว่าบั๊กอยู่ตรงไหนและฟีเจอร์ต่างๆ มีปัญหาอะไรบ้าง
การทดสอบแบบอัตโนมัติ
ในการทดสอบแบบอัตโนมัตินั้น จะมีการเขียนสคริปต์เอาไว้ล่วงหน้าเพื่อรันการทดสอบแบบแบบอัตโนมัติ โดยจะเป็นการรันเพื่อเปรียบเทียบระหว่างผลลัพธ์ที่คาดหวังกับผลลัพธ์จริงที่เกิดขึ้น การรันแบบนี้จะใช้เครื่องมือ สคริปต์ และซอฟต์แวร์ ในการทำงาน เหมาะกับ test case ที่ต้องทดสอบซ้ำๆ หลายๆ ครั้งเป็นเวลานาน
อ่านข้อมูลเพิ่มเติมได้ที่ บทความแนะนำการเลือกระหว่างใช้การทดสอบแบบแมนนวลกับแบบอัตโนมัติ
อยากเป็น software QA engineer ที่ประสบความสำเร็จ ต้องทำอย่างไร
หากคุณสนใจ อยากประสบความสำเร็จในการเป็น software QA engineer ละก็ คุณควรพัฒนาทักษะในด้านต่อไปนี้
- รอบคอบ ใส่ใจในทุกรายละเอียด
- ช่างสังเกต และรู้จักตั้งคำถาม
- คิดนอกกรอบ
- ขยันและฝึกฝนอย่างสม่ำเสมอ
- เป็นผู้ฟังที่ดี
แชร์เรื่องนี้
- FinTech (11)
- การพัฒนาซอฟต์แวร์ (10)
- Expert Spotlight (8)
- อาชีพการงาน (8)
- Cloud (5)
- InsurTech (5)
- Mixpanel (5)
- Agile (4)
- Digital Transformation (4)
- JavaScript (4)
- QA (4)
- Trend (4)
- การพัฒนาแอปพลิเคชัน iOS (4)
- Android Developer (3)
- Azure (3)
- Banking (3)
- CSR (3)
- Hybrid App (3)
- IoT (3)
- Product-Centric Mindset (3)
- Seven Peaks Insights (3)
- Thought Leadership (3)
- การพัฒนาแอปฯ Android (3)
- การออกแบบ UX (3)
- บริษัท (3)
- เทคโนโลยีการเงินและการธนาคาร (3)
- .NET (2)
- AI (2)
- Cross-Platform Application (2)
- Data (2)
- Kotlin (2)
- Native App (2)
- ReactJS (2)
- digital marketing (2)
- การพัฒนาแอปฯ (2)
- งาน Product Owner (2)
- 5g (1)
- Android (1)
- AndroidX Biometric (1)
- Azure OpenAI Service (1)
- Biometrics (1)
- CI/CD (1)
- Customer Data Platform (1)
- Data and Analytics (1)
- Design Thinking (1)
- DevOps (1)
- Digital Healthcare (1)
- Digital ID (1)
- Digital Landscape (1)
- Digital Product (1)
- Digital Product Development (1)
- E-payment (1)
- E-wallet (1)
- Financial Inclusion (1)
- GraphQL (1)
- IT Outsourcing (1)
- MVP (1)
- MVVM (1)
- Metaverse (1)
- Morphosis (1)
- Node.js (1)
- Partner (1)
- Platform Engineering (1)
- Product Growth (1)
- Recruitment (1)
- SCB (1)
- SEO (1)
- Scrum Master (1)
- Software Engineer (1)
- Software Tester (1)
- Stripe (1)
- Swift (1)
- SwiftUI (1)
- Tech Meetup (1)
- Turnkey (1)
- UI (1)
- UX (1)
- UX Design (1)
- UX writing (1)
- Web-Debugging Tool (1)
- customer centric (1)
- iOS17 (1)
- waterfall (1)
- การจ้างงาน (1)
- การพัฒนาด้วย RabbitMQ (1)
- การพัฒนาระบบคลาวด์ (1)
- การออกแบบ Decorator Pattern (1)
- การใช้งาน C# (1)
- งาน Product Manager (1)
- งาน platform enginerring (1)
- ทำ Context API (1)
- ฟินเทค (1)
- ระบบการชำระเงิน (1)
- สร้าง brand loyalty (1)
- อีคอมเมิร์ซ (1)
- เขียนโค้ด React (1)
- เทคโนโลยี React (1)
- เพิ่ม conversion (1)
- เฟรมเวิร์ก (1)
- แดชบอร์ด (1)
- พฤศจิกายน 2024 (1)
- สิงหาคม 2024 (1)
- กรกฎาคม 2024 (2)
- มีนาคม 2024 (5)
- กุมภาพันธ์ 2024 (5)
- มกราคม 2024 (14)
- ธันวาคม 2023 (4)
- พฤศจิกายน 2023 (9)
- ตุลาคม 2023 (12)
- กันยายน 2023 (7)
- กรกฎาคม 2023 (4)
- มิถุนายน 2023 (3)
- พฤษภาคม 2023 (3)
- เมษายน 2023 (1)
- มีนาคม 2023 (1)
- พฤศจิกายน 2022 (1)
- สิงหาคม 2022 (4)
- กรกฎาคม 2022 (1)
- มิถุนายน 2022 (4)
- เมษายน 2022 (6)
- มีนาคม 2022 (3)
- กุมภาพันธ์ 2022 (6)
- มกราคม 2022 (3)
- ธันวาคม 2021 (2)
- ตุลาคม 2021 (1)
- กันยายน 2021 (1)
- สิงหาคม 2021 (3)
- กรกฎาคม 2021 (1)
- มิถุนายน 2021 (2)
- พฤษภาคม 2021 (1)
- มีนาคม 2021 (4)
- กุมภาพันธ์ 2021 (4)
- ธันวาคม 2020 (4)
- พฤศจิกายน 2020 (1)
- มิถุนายน 2020 (1)
- เมษายน 2020 (1)