เทคนิคการทดสอบซอฟต์แวร์พร้อมตัวอย่างการออกแบบกรณีทดสอบ
⚡ สรุปอย่างชาญฉลาด
เทคนิคการทดสอบซอฟต์แวร์ช่วยออกแบบกรณีทดสอบที่ดีขึ้น โดยลดความจำเป็นในการดำเนินการ ขณะเดียวกันก็เพิ่มขอบเขตให้สูงสุด ระบุเงื่อนไขที่ยากจะเข้าใจได้ด้วยวิธีการแบบแมนนวลที่มีโครงสร้าง วิธีการแบบกล่องดำเหล่านี้ เช่น การวิเคราะห์ค่าขอบเขต (Boundary Value Analysis) และการแบ่งส่วนความเท่าเทียม (Equivalence Partitioning) จะจัดลำดับความสำคัญของขอบเขตและการแบ่งส่วนเพื่อการตรวจสอบความถูกต้องอย่างมีประสิทธิภาพ เทคนิคเหล่านี้ช่วยเสริมข้อจำกัดในการทดสอบที่ครอบคลุม โดยนำหลักการพื้นฐานมาใช้เพื่อเพิ่มความน่าเชื่อถือ

เทคนิคการทดสอบซอฟต์แวร์คืออะไร?
เทคนิคการทดสอบซอฟต์แวร์ช่วยให้คุณออกแบบกรณีทดสอบได้ดีขึ้น เนื่องจากการทดสอบแบบละเอียดถี่ถ้วนเป็นไปไม่ได้ เทคนิคการทดสอบด้วยตนเองจึงช่วยลดจำนวนกรณีทดสอบที่ต้องดำเนินการ พร้อมกับเพิ่มความครอบคลุมของการทดสอบ เทคนิคเหล่านี้ช่วยระบุเงื่อนไขการทดสอบที่ยากต่อการระบุ เทคนิคการทดสอบซอฟต์แวร์สามารถแบ่งออกเป็นประเภทต่างๆ ได้ดังนี้:
- การวิเคราะห์มูลค่าขอบเขต
- การแบ่งชั้นความเท่าเทียมกัน
- การทดสอบตามตารางการตัดสินใจ
- การเปลี่ยนแปลงของรัฐ
- เกิดข้อผิดพลาดในการคาดเดา
👉 ลงทะเบียนเข้าร่วมโครงการทดสอบซอฟต์แวร์สดฟรี
หลักการ 7 ประการของเทคนิคการทดสอบซอฟต์แวร์
เทคนิคการทดสอบซอฟต์แวร์ปฏิบัติตามหลักการชุดหนึ่งเพื่อดำเนินกระบวนการทดสอบ หลักการทั้ง 7 ประการนี้จะช่วยแนะนำนักทดสอบในการวางแผน ออกแบบ และดำเนินการทดสอบอย่างมีประสิทธิภาพ หลักการเหล่านี้ช่วยให้มั่นใจได้ว่าการทดสอบจะมีจุดมุ่งหมาย มีประสิทธิภาพ และสอดคล้องกับเป้าหมายของโครงการ
หลักการ 7 ประการของเทคนิคการทดสอบซอฟต์แวร์ ได้แก่ การทดสอบแสดงให้เห็นถึงการมีอยู่ของข้อบกพร่อง การทดสอบอย่างละเอียดเป็นไปไม่ได้ การทดสอบในระยะเริ่มต้นช่วยประหยัดเวลาและต้นทุน ข้อบกพร่อง Clusterความขัดแย้งของยาฆ่าแมลง การทดสอบขึ้นอยู่กับบริบท และความเข้าใจผิดว่าไม่มีข้อผิดพลาด คุณสามารถคลิกตามนี้ ลิงค์ เพื่อเรียนรู้เพิ่มเติม
AI กำลังเปลี่ยนแปลงเทคนิคการทดสอบซอฟต์แวร์แบบดั้งเดิมอย่างไร
AI กำลังปฏิวัติการทดสอบซอฟต์แวร์ด้วยการแนะนำ ระบบอัตโนมัติ การคาดการณ์ และความสามารถในการปรับตัว มันเปิดใช้งาน การสร้างกรณีทดสอบอัตโนมัติ จากภาษาธรรมชาติโดยใช้ LLMs สคริปต์การรักษาตัวเอง ที่ปรับให้เข้ากับการเปลี่ยนแปลง UI และ การวิเคราะห์ข้อบกพร่องเชิงคาดการณ์ โดยอิงจากข้อมูลในอดีต AI ยังรองรับ การจัดลำดับความสำคัญตามความเสี่ยง การทดสอบภาพ และ การดำเนินการทดสอบแบบอัตโนมัติ ภายในท่อ CI/CD ผ่าน อินเทอร์เฟซภาษาธรรมชาติ นักทดสอบสามารถสร้างเคสแบบสนทนาได้ ซึ่งจะช่วยเร่งกระบวนการทำงานให้เร็วขึ้น โดยพื้นฐานแล้ว AI ช่วยให้การทดสอบ ฉลาดกว่า เร็วกว่า และยืดหยุ่นกว่า ลดความพยายามด้วยตนเองพร้อมทั้งปรับปรุงความแม่นยำและการครอบคลุมในแอปพลิเคชันที่ทันสมัยและมีการเปลี่ยนแปลงอยู่ตลอดเวลา
เทคนิคการทดสอบซอฟต์แวร์
การวิเคราะห์มูลค่าขอบเขต (BVA)
การวิเคราะห์ค่าขอบเขต (Boundary Value Analysis) อาศัยการทดสอบที่ขอบเขตระหว่างพาร์ติชัน ซึ่งประกอบด้วยค่าสูงสุด ค่าต่ำสุด ค่าภายในหรือภายนอกขอบเขต ค่าทั่วไป และค่าความคลาดเคลื่อน
หลักฐานเชิงประจักษ์แสดงให้เห็นว่าข้อบกพร่องจำนวนมากเกิดขึ้นใกล้กับเงื่อนไขขอบเขต มากกว่าค่าช่วงกลาง ข้อบกพร่องนี้รู้จักกันในชื่อ BVA และให้กรณีทดสอบที่เลือกไว้ซึ่งใช้ค่าขอบเขต
เทคนิคการทดสอบแบบกล่องดำนี้ช่วยเสริมการแบ่งพาร์ติชันแบบเท่าเทียม (Equivalence Partitioning) โดยมุ่งเน้นไปที่กรณีขอบ (edge case) ของช่วงอินพุตเดียวกัน เทคนิคการทดสอบซอฟต์แวร์นี้ยึดหลักการที่ว่า หากระบบทำงานได้อย่างถูกต้องสำหรับค่าขอบเขต ก็มีแนวโน้มที่จะทำงานได้กับค่าทั้งหมดภายในช่วงนั้น
แนวทางการวิเคราะห์ค่าขอบเขต
- หากเงื่อนไขอินพุตถูกจำกัดไว้ระหว่างค่า x และ y ดังนั้นควรออกแบบเคสทดสอบโดยใช้ค่า x และ y รวมถึงค่าที่อยู่เหนือและใต้ x และ y
- หากเงื่อนไขอินพุตมีค่าจำนวนมาก ควรพัฒนากรณีทดสอบเพื่อใช้ค่าต่ำสุดและค่าสูงสุด ในกรณีนี้ ค่าที่สูงกว่าและต่ำกว่าค่าต่ำสุดและค่าสูงสุดก็จะถูกทดสอบด้วย
- ใช้แนวทาง 1 และ 2 กับเงื่อนไขผลลัพธ์ ซึ่งจะให้ผลลัพธ์ที่สะท้อนค่าต่ำสุดและค่าสูงสุดที่คาดหวัง นอกจากนี้ยังทดสอบค่าที่ต่ำกว่าหรือสูงกว่าค่าที่กำหนดอีกด้วย
ตัวอย่าง:
Input condition is valid between 1 to 10 Boundary values 0,1,2 and 9,10,11
การแบ่งชั้นความเท่าเทียมกัน
การแบ่งพาร์ติชันคลาสความเท่าเทียม (Equivalence Class Partitioning) จะแบ่งชุดเงื่อนไขอินพุตออกเป็นกลุ่มที่คาดว่าจะทำให้เกิดพฤติกรรมที่คล้ายคลึงกัน วิธีการทดสอบซอฟต์แวร์นี้จะแบ่งโดเมนอินพุตของโปรแกรมออกเป็นคลาสข้อมูลที่ควรออกแบบกรณีทดสอบ
แนวคิดเบื้องหลังเทคนิคการออกแบบกรณีทดสอบนี้คือ กรณีทดสอบที่มีค่าตัวแทนของแต่ละคลาสจะเท่ากับการทดสอบค่าใดๆ ก็ตามในคลาสเดียวกัน วิธีนี้ช่วยให้คุณสามารถระบุคลาสสมมูลที่ถูกต้องและไม่ถูกต้องได้
ตัวอย่าง:
เงื่อนไขอินพุตถูกต้องระหว่าง
1 to 10 and 20 to 30
ดังนั้นจึงมีคลาสความเท่าเทียมกันห้าคลาส
--- to 0 (invalid) 1 to 10 (valid) 11 to 19 (invalid) 20 to 30 (valid) 31 to --- (invalid)
คุณเลือกค่าจากแต่ละคลาส เช่น
-2, 3, 15, 25, 45
อ่านเพิ่มเติมเกี่ยวกับ – การวิเคราะห์ค่าขอบเขตและการทดสอบการแบ่งส่วนความเท่าเทียมกัน
การทดสอบตามตารางการตัดสินใจ
ตารางการตัดสินใจ หรือที่รู้จักกันในชื่อตารางสาเหตุ-ผล เทคนิคการทดสอบซอฟต์แวร์นี้ใช้สำหรับฟังก์ชันที่ตอบสนองต่อข้อมูลอินพุตหรือเหตุการณ์ต่างๆ ร่วมกัน ตัวอย่างเช่น ในสถานการณ์การตรวจสอบความถูกต้องของแบบฟอร์ม ปุ่ม "ส่ง" จะทำงานหลังจากกรอกข้อมูลที่จำเป็นครบถ้วนแล้วเท่านั้น
งานแรกคือการระบุฟังก์ชันการทำงานที่ผลลัพธ์ขึ้นอยู่กับชุดข้อมูลอินพุตรวมกัน หากมีชุดข้อมูลอินพุตรวมกันจำนวนมาก ให้แบ่งชุดข้อมูลนั้นออกเป็นกลุ่มย่อยที่เล็กลง ซึ่งจะเป็นประโยชน์ในการจัดการตารางการตัดสินใจ
สำหรับทุกฟังก์ชัน คุณต้องสร้างตารางและแสดงรายการชุดค่าผสมของอินพุตและเอาต์พุตที่เกี่ยวข้องทั้งหมด วิธีนี้จะช่วยระบุเงื่อนไขที่ผู้ทดสอบมองข้าม
ต่อไปนี้เป็นขั้นตอนในการสร้างตารางการตัดสินใจ:
- เกณฑ์อินพุตเป็นแถว
- ป้อนกฎทั้งหมดในคอลัมน์
- เติมตารางด้วยการผสมผสานอินพุตที่แตกต่างกัน
- ในแถวสุดท้าย ให้จดบันทึกเอาต์พุตเทียบกับชุดอินพุต
ตัวอย่าง:ปุ่มส่งในแบบฟอร์มติดต่อจะเปิดใช้งานเมื่อผู้ใช้ป้อนข้อมูลทั้งหมดแล้วเท่านั้น
การเปลี่ยนแปลงของรัฐ
ในเทคนิคการเปลี่ยนสถานะ การเปลี่ยนแปลงเงื่อนไขอินพุตจะเปลี่ยนสถานะของแอปพลิเคชันที่กำลังทดสอบ (AUT) เทคนิคการทดสอบนี้ช่วยให้ผู้ทดสอบสามารถทดสอบพฤติกรรมของ AUT ได้ ผู้ทดสอบสามารถดำเนินการนี้ได้โดยป้อนเงื่อนไขอินพุตต่างๆ ตามลำดับ ในเทคนิคการเปลี่ยนสถานะ ทีมทดสอบจะให้ค่าทดสอบอินพุตทั้งบวกและลบเพื่อประเมินพฤติกรรมของระบบ
แนวปฏิบัติสำหรับการเปลี่ยนสถานะ:
- การเปลี่ยนสถานะควรใช้เมื่อทีมทดสอบกำลังทดสอบแอปพลิเคชันสำหรับชุดค่าอินพุตที่จำกัด
- ควรใช้เทคนิคการออกแบบกรณีทดสอบเมื่อทีมทดสอบต้องการทดสอบลำดับเหตุการณ์ที่เกิดขึ้นในแอปพลิเคชันที่อยู่ระหว่างการทดสอบ
ตัวอย่าง:
ในตัวอย่างต่อไปนี้ ผู้ใช้สามารถเข้าสู่ระบบได้สำเร็จเมื่อป้อนรหัสผ่านที่ถูกต้องภายในสามครั้ง หากผู้ใช้ป้อนรหัสผ่านไม่ถูกต้องในครั้งแรกหรือครั้งที่สอง ระบบจะแจ้งให้ผู้ใช้ป้อนรหัสผ่านอีกครั้ง หากผู้ใช้ป้อนรหัสผ่านไม่ถูกต้อง 3 ครั้งrd เมื่อดำเนินการเสร็จสิ้นบัญชีจะถูกบล็อค
แผนภาพการเปลี่ยนสถานะ
ในแผนภาพนี้ เมื่อผู้ใช้ระบุหมายเลข PIN ที่ถูกต้อง ผู้ใช้จะถูกย้ายไปยังสถานะที่ได้รับสิทธิ์การเข้าถึง ตารางต่อไปนี้สร้างขึ้นจากแผนภาพด้านบน
ตารางการเปลี่ยนสถานะ
| รหัส PIN ที่ถูกต้อง | PIN ไม่ถูกต้อง | |
|---|---|---|
| S1) เริ่มต้น | S5 | S2 |
| ส2) 1st ความพยายาม | S5 | S3 |
| ส3) 2nd ความพยายาม | S5 | S4 |
| ส4) 3rd ความพยายาม | S5 | S6 |
| S5) ให้สิทธิ์การเข้าถึงแล้ว | - | - |
| S6) บัญชีถูกบล็อก | - | - |
ในตารางข้างต้น เมื่อผู้ใช้ป้อนรหัส PIN ที่ถูกต้อง สถานะจะเปลี่ยนเป็น "สิทธิ์การเข้าถึง" และหากผู้ใช้ป้อนรหัสผ่านไม่ถูกต้อง ผู้ใช้จะถูกย้ายไปยังสถานะถัดไป หากผู้ใช้ทำแบบเดียวกัน 3rd เวลาเขาจะเข้าสู่สถานะถูกบล็อกบัญชี
เกิดข้อผิดพลาดในการคาดเดา
เกิดข้อผิดพลาดในการคาดเดา เป็นเทคนิคการทดสอบซอฟต์แวร์ที่ผู้ทดสอบใช้ประสบการณ์และสัญชาตญาณเพื่อคาดการณ์ข้อผิดพลาดที่อาจเกิดขึ้นในโค้ด เทคนิคนี้เน้นที่ประสบการณ์เป็นหลัก โดยนักวิเคราะห์การทดสอบจะใช้ประสบการณ์ของตนเองเพื่อคาดเดาส่วนที่เป็นปัญหาของแอปพลิเคชันการทดสอบ ดังนั้น นักวิเคราะห์การทดสอบจึงต้องมีทักษะและประสบการณ์เพื่อให้สามารถคาดเดาข้อผิดพลาดได้ดีขึ้น
เทคนิคนี้จะนับรายการข้อผิดพลาดที่อาจเกิดขึ้นหรือสถานการณ์ที่มีแนวโน้มเกิดข้อผิดพลาด จากนั้นผู้ทดสอบจะเขียน กรณีทดสอบ เพื่อเปิดเผยข้อผิดพลาดเหล่านั้น ในการออกแบบกรณีทดสอบโดยอิงตามเทคนิคการทดสอบซอฟต์แวร์นี้ นักวิเคราะห์สามารถใช้ประสบการณ์ที่ผ่านมาเพื่อระบุเงื่อนไขต่างๆ ได้
แนวทางการคาดเดาข้อผิดพลาด:
- การทดสอบควรใช้ประสบการณ์ก่อนหน้าในการทดสอบแอปพลิเคชันที่คล้ายกัน
- ความเข้าใจในระบบที่ทดสอบ
- ความรู้เกี่ยวกับข้อผิดพลาดในการใช้งานทั่วไป
- จำพื้นที่ที่มีปัญหาก่อนหน้านี้
- ประเมินข้อมูลประวัติและผลการทดสอบ
ข้อดีและข้อจำกัดของเทคนิคการทดสอบ
ข้อดี:
- ปรับปรุงการครอบคลุมการทดสอบและรับรองการตรวจสอบการทำงานของซอฟต์แวร์ที่กว้างขึ้น
- เพิ่มประสิทธิภาพการตรวจจับข้อบกพร่องโดยกำหนดเป้าหมายไปที่พื้นที่ที่มีความเสี่ยงสูงหรือมีแนวโน้มเกิดข้อผิดพลาด
- Promoการออกแบบการทดสอบอย่างเป็นระบบ ช่วยลดความซ้ำซ้อนและการทับซ้อน
- ช่วยระบุปัญหาในระยะเริ่มต้นของ SDLC ซึ่งจะช่วยลดต้นทุนโครงการโดยรวม
- ลดความซับซ้อนของการทดสอบด้วยวิธีการเช่น BVA และ Equivalence Partitioning
- เพิ่มความน่าเชื่อถือของซอฟต์แวร์และความเชื่อมั่นของผู้มีส่วนได้ส่วนเสียต่อคุณภาพผลิตภัณฑ์
ข้อ จำกัด :
- ไม่มีเทคนิคเดียวที่จะรับประกันการตรวจจับข้อบกพร่องได้สมบูรณ์
- เทคนิคบางอย่างขึ้นอยู่กับประสบการณ์และการตัดสินใจของผู้ทดสอบเป็นอย่างมาก
- อาจมองข้ามปัญหาด้านการบูรณาการ การใช้งาน หรือประสิทธิภาพในโลกแห่งความเป็นจริง
- ข้อจำกัดด้านเวลาและทรัพยากรอาจจำกัดการใช้งานอย่างละเอียดถี่ถ้วน
- วิธีการบางอย่างให้การสนับสนุนการทำงานอัตโนมัติที่จำกัด ส่งผลให้ความสามารถในการปรับขนาดลดลง
จะเลือกเทคนิคการทดสอบอย่างไรให้เหมาะสม?
การเลือกเทคนิคการทดสอบซอฟต์แวร์ที่เหมาะสมต้องสอดคล้องกับรายละเอียดเฉพาะของโครงการเพื่อให้มั่นใจถึงประสิทธิภาพและความครอบคลุม ปัจจัยต่างๆ เช่น รูปแบบการพัฒนา ความเสี่ยง และทรัพยากร ล้วนเป็นแนวทางในการเลือกสรร ในฐานะผู้เชี่ยวชาญด้านการทดสอบซอฟต์แวร์ ผมจึงแนะนำให้ผสมผสานเทคนิคต่างๆ เข้าด้วยกันเพื่อผลลัพธ์ที่ดีที่สุด วิธีนี้จะช่วยป้องกันไม่ให้เกิดการพึ่งพาวิธีการเดียวมากเกินไป
- สอดคล้องกับวัตถุประสงค์: จับคู่เทคนิคกับเป้าหมาย เช่น ฟังก์ชัน ประสิทธิภาพการทำงาน หรือความต้องการด้านความปลอดภัย
- ประเมินความเสี่ยง: ให้ความสำคัญกับพื้นที่ที่มีความเสี่ยงสูงด้วยวิธีการตามความเสี่ยงเพื่อการตรวจสอบที่ตรงเป้าหมาย
- เหมาะกับสถาปัตยกรรมและโมเดล: เลือกใช้แนวทางที่เป็นมิตรต่อความคล่องตัวในระบบแบบวนซ้ำหรือแบบหลายชั้น
- ข้อจำกัดความสมดุล: พิจารณาเวลา งบประมาณ ทักษะ และเครื่องมือสำหรับการดำเนินการที่เป็นไปได้


