ประเภทของการทดสอบซอฟต์แวร์ (100 ตัวอย่าง)

⚡ สรุปอย่างชาญฉลาด

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

  • หมวดหมู่การทดสอบ: ประเภทของการทดสอบซอฟต์แวร์แบ่งออกเป็น การทดสอบเชิงฟังก์ชัน การทดสอบที่ไม่เกี่ยวข้องกับฟังก์ชัน การทดสอบเชิงโครงสร้าง และการทดสอบที่เกี่ยวข้องกับการเปลี่ยนแปลง โดยแต่ละประเภทมีวัตถุประสงค์ในการตรวจสอบความถูกต้องที่แตกต่างกัน
  • ประเภททั่วไป: การทดสอบหน่วย การทดสอบการบูรณาการ การทดสอบระบบ และการทดสอบการยอมรับ เป็นระดับการทดสอบพื้นฐานที่ใช้ในโครงการส่วนใหญ่
  • แนวทางเฉพาะทาง: เทคนิคต่างๆ เช่น การทดสอบเจาะระบบ (penetration testing), การทดสอบแบบฟัซซ์ (fuzz testing) และการทดสอบแบบมิวเทชัน (mutation testing) มุ่งเป้าไปที่คุณลักษณะด้านคุณภาพเฉพาะ เช่น ความปลอดภัยและการครอบคลุมของโค้ด
  • แบบแมนนวลกับแบบอัตโนมัติ: การทดสอบสามารถดำเนินการได้ทั้งแบบด้วยตนเองหรือผ่านเครื่องมืออัตโนมัติ ขึ้นอยู่กับข้อกำหนดของโครงการ งบประมาณ และข้อจำกัดด้านระยะเวลา
  • AI ในการทดสอบ: ปัญญาประดิษฐ์กำลังเปลี่ยนแปลงการทดสอบซอฟต์แวร์ผ่านการสร้างชุดทดสอบอัตโนมัติ การทำนายข้อบกพร่องอย่างชาญฉลาด และสคริปต์ทดสอบที่แก้ไขตัวเองได้
  • ความคุ้มครองที่ครอบคลุม: คู่มือนี้ครอบคลุมประเภทการทดสอบซอฟต์แวร์ 105 ประเภท พร้อมคำจำกัดความ ทีมที่รับผิดชอบ และลิงก์ไปยังบทเรียนโดยละเอียดสำหรับการเรียนรู้เชิงลึก

ประเภทของการทดสอบซอฟต์แวร์

ประเภทการทดสอบซอฟต์แวร์คืออะไร?

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

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

ประเภทของการทดสอบซอฟต์แวร์

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

ประเภทของการทดสอบซอฟต์แวร์

  1. การทดสอบการยอมรับ: การทดสอบอย่างเป็นทางการดำเนินการเพื่อพิจารณาว่าระบบเป็นไปตามเกณฑ์การยอมรับหรือไม่ และเพื่อให้ลูกค้าสามารถระบุได้ว่าจะยอมรับระบบหรือไม่ โดยปกติแล้วลูกค้าจะดำเนินการ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบการยอมรับ
  2. การทดสอบการเข้าถึง: เป็นการทดสอบประเภทหนึ่งที่ใช้ประเมินความเหมาะสมของผลิตภัณฑ์สำหรับผู้พิการ (เช่น ผู้พิการทางการได้ยิน การมองเห็น ความพิการทางสติปัญญา เป็นต้น) โดยกระบวนการประเมินผลจะดำเนินการโดยผู้พิการเอง อ่านเพิ่มเติมได้ที่นี่ การทดสอบการช่วยสำหรับการเข้าถึง
  3. การทดสอบที่ใช้งานอยู่: ประเภทของการทดสอบประกอบด้วยการแนะนำข้อมูลการทดสอบและการวิเคราะห์ผลการดำเนินการ โดยปกติจะดำเนินการโดยทีมทดสอบ
  4. การทดสอบแบบคล่องตัว: แนวปฏิบัติการทดสอบซอฟต์แวร์ที่เป็นไปตามหลักการของ Agile manifesto โดยเน้นการทดสอบจากมุมมองของลูกค้าที่จะใช้ระบบ โดยปกติจะดำเนินการโดยทีมงาน QA อ่านเพิ่มเติมเกี่ยวกับ การทดสอบเปรียว
  5. การทดสอบอายุ: ประเภทของการทดสอบที่ประเมินความสามารถของระบบในการดำเนินการในอนาคต กระบวนการประเมินดำเนินการโดยทีมทดสอบ
  6. การทดสอบเฉพาะกิจ: การทดสอบดำเนินการโดยไม่มีการวางแผนและจัดทำเอกสาร – ผู้ทดสอบพยายาม 'หยุด' ระบบโดยการสุ่มลองใช้ฟังก์ชันการทำงานของระบบ ดำเนินการโดยทีมทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบเฉพาะกิจ
  7. การทดสอบอัลฟ่า: การทดสอบอัลฟ่าคือการทดสอบซอฟต์แวร์ประเภทหนึ่งที่ดำเนินการที่ไซต์ของนักพัฒนาเพื่อระบุจุดบกพร่อง ปัญหาการใช้งาน และช่องว่างด้านการทำงานก่อนจะปล่อยผลิตภัณฑ์สำหรับการทดสอบเบต้า โดยเกี่ยวข้องกับผู้ทดสอบภายใน เช่น นักพัฒนาและทีม QA และบางครั้งอาจเลือกผู้ใช้ปลายทางในสภาพแวดล้อมที่มีการควบคุม อ่านเพิ่มเติมได้ที่ การทดสอบอัลฟ่า
  8. การทดสอบการยืนยัน: ประเภทของการทดสอบประกอบด้วยการตรวจสอบว่าเงื่อนไขยืนยันข้อกำหนดของผลิตภัณฑ์หรือไม่ ดำเนินการโดยทีมทดสอบ
  9. การทดสอบ API: เทคนิคการทดสอบคล้ายกับ Unit Testing โดยกำหนดเป้าหมายไปที่ระดับโค้ด การทดสอบ Api แตกต่างจากการทดสอบหน่วยตรงที่โดยทั่วไปแล้วจะเป็นงาน QA ไม่ใช่งานของนักพัฒนา อ่านเพิ่มเติมเกี่ยวกับ การทดสอบ API
  10. การทดสอบทุกคู่: วิธีการทดสอบแบบผสมผสานที่ทดสอบการรวมพารามิเตอร์อินพุตแบบแยกที่เป็นไปได้ทั้งหมดที่เป็นไปได้ ดำเนินการโดยทีมทดสอบ
  1. การทดสอบอัตโนมัติ: เทคนิคการทดสอบที่ใช้เครื่องมือการทดสอบอัตโนมัติเพื่อควบคุมการตั้งค่าสภาพแวดล้อม การดำเนินการทดสอบ และการรายงานผลลัพธ์ ดำเนินการโดยคอมพิวเตอร์และใช้ภายในทีมทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบอัตโนมัติ
  2. การทดสอบเส้นทางพื้นฐาน: กลไกการทดสอบซึ่งนำมาซึ่งการวัดความซับซ้อนเชิงตรรกะของการออกแบบตามขั้นตอน และใช้เป็นแนวทางในการกำหนดชุดเส้นทางการดำเนินการพื้นฐาน ซึ่งใช้โดยทีมทดสอบในการกำหนดกรณีทดสอบ อ่านเพิ่มเติมได้ที่ การทดสอบเส้นทางพื้นฐาน
  3. การทดสอบความเข้ากันได้แบบย้อนหลัง: วิธีการทดสอบที่ตรวจสอบพฤติกรรมของซอฟต์แวร์ที่พัฒนาขึ้นด้วยสภาพแวดล้อมการทดสอบเวอร์ชันเก่า ดำเนินการโดยทีมงานทดสอบ
  4. การทดสอบเบต้า: การทดสอบขั้นสุดท้ายก่อนเผยแพร่แอปพลิเคชันเพื่อวัตถุประสงค์ทางการค้า โดยทั่วไปจะทำโดยผู้ใช้ปลายทางหรือผู้อื่น
  5. การทดสอบเกณฑ์มาตรฐาน: เทคนิคการทดสอบที่ใช้ชุดตัวแทนของโปรแกรมและข้อมูลที่ออกแบบมาเพื่อประเมินประสิทธิภาพของฮาร์ดแวร์และซอฟต์แวร์คอมพิวเตอร์ในการกำหนดค่าที่กำหนด ดำเนินการโดยทีมทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบเกณฑ์มาตรฐาน
  6. การทดสอบการรวม Big Bang: เทคนิคการทดสอบซึ่งจะรวมแต่ละโมดูลโปรแกรมเฉพาะเมื่อทุกอย่างพร้อมเท่านั้น ดำเนินการโดยทีมทดสอบ
  7. การทดสอบความสามารถในการพกพาแบบไบนารี: เทคนิคที่ทดสอบแอปพลิเคชันปฏิบัติการสำหรับการพกพาข้ามแพลตฟอร์มระบบและสภาพแวดล้อม โดยปกติเพื่อให้เป็นไปตามข้อกำหนด ABI ดำเนินการโดยทีมทดสอบ
  8. การทดสอบค่าขอบเขต: เทคนิคการทดสอบซอฟต์แวร์ที่การทดสอบได้รับการออกแบบให้รวมตัวแทนของค่าขอบเขต ดำเนินการโดยทีมทดสอบ QA อ่านเพิ่มเติมเกี่ยวกับ การทดสอบค่าขอบเขต
  9. การทดสอบการรวมจากล่างขึ้นบน: ในการทดสอบการรวมจากล่างขึ้นบน โมดูลที่ระดับต่ำสุดจะได้รับการพัฒนาก่อน และโมดูลอื่นๆ ที่ไปสู่โปรแกรม 'หลัก' จะถูกรวมและทดสอบทีละรายการ โดยปกติจะดำเนินการโดยทีมทดสอบ
  10. การทดสอบสาขา: เทคนิคการทดสอบโดยทุกสาขาในซอร์สโค้ดของโปรแกรมได้รับการทดสอบอย่างน้อยหนึ่งครั้ง นี้จะกระทำโดยนักพัฒนา
  11. การทดสอบความกว้าง: ชุดทดสอบที่ใช้ฟังก์ชันการทำงานเต็มรูปแบบของผลิตภัณฑ์แต่ไม่ได้ทดสอบคุณลักษณะโดยละเอียด ดำเนินการโดยทีมทดสอบ
  12. การทดสอบกล่องดำ: วิธีการทดสอบซอฟต์แวร์ที่ยืนยันการทำงานของแอปพลิเคชันโดยไม่ต้องมีความรู้เฉพาะเกี่ยวกับโค้ด/โครงสร้างภายในของแอปพลิเคชัน การทดสอบขึ้นอยู่กับข้อกำหนดและฟังก์ชันการทำงาน ดำเนินการโดยทีมงาน QA อ่านเพิ่มเติมเกี่ยวกับ การทดสอบกล่องดำ
  13. การทดสอบที่ขับเคลื่อนด้วยโค้ด: เทคนิคการทดสอบที่ใช้เฟรมเวิร์กการทดสอบ (เช่น xUnit) ที่อนุญาตให้ดำเนินการทดสอบหน่วยเพื่อตรวจสอบว่าส่วนต่างๆ ของโค้ดทำงานตามที่คาดไว้ภายใต้สถานการณ์ต่างๆ หรือไม่ ดำเนินการโดยทีมพัฒนา
  14. การทดสอบความเข้ากันได้: เทคนิคการทดสอบที่ตรวจสอบประสิทธิภาพของซอฟต์แวร์ในสภาพแวดล้อมฮาร์ดแวร์/ซอฟต์แวร์/ระบบปฏิบัติการ/เครือข่ายเฉพาะ โดยทีมทดสอบจะเป็นผู้ดำเนินการ อ่านเพิ่มเติมได้ที่ การทดสอบความเข้ากันได้
  15. การทดสอบเปรียบเทียบ: เทคนิคการทดสอบซึ่งเปรียบเทียบจุดแข็งและจุดอ่อนของผลิตภัณฑ์กับเวอร์ชันก่อนหน้าหรือผลิตภัณฑ์ที่คล้ายคลึงกัน สามารถทำได้โดยผู้ทดสอบ นักพัฒนา ผู้จัดการผลิตภัณฑ์ หรือเจ้าของผลิตภัณฑ์ อ่านเพิ่มเติมได้ที่ การทดสอบส่วนประกอบ
  16. การทดสอบส่วนประกอบ: เทคนิคการทดสอบคล้ายกับการทดสอบหน่วย แต่มีระดับการบูรณาการที่สูงกว่า การทดสอบจะดำเนินการในบริบทของแอปพลิเคชัน แทนที่จะทดสอบเพียงวิธีเฉพาะโดยตรง สามารถทำได้โดยทีมทดสอบหรือพัฒนา
  17. การทดสอบการกำหนดค่า: เทคนิคการทดสอบที่กำหนดการกำหนดค่าฮาร์ดแวร์และซอฟต์แวร์ขั้นต่ำและเหมาะสมที่สุด และผลของการเพิ่มหรือแก้ไขทรัพยากร เช่น หน่วยความจำ ดิสก์ไดรฟ์ และ CPU โดยปกติจะดำเนินการโดยวิศวกรทดสอบประสิทธิภาพ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบการกำหนดค่า
  18. การทดสอบความครอบคลุมของสภาพ: ประเภทของการทดสอบซอฟต์แวร์โดยดำเนินการแต่ละเงื่อนไขโดยกำหนดให้เป็นจริงและเท็จในแต่ละวิธีอย่างน้อยหนึ่งครั้ง โดยทั่วไปจะทำโดยทีมทดสอบระบบอัตโนมัติ
  19. การทดสอบการปฏิบัติตามข้อกำหนด: ประเภทของการทดสอบที่ตรวจสอบว่าระบบได้รับการพัฒนาตามมาตรฐาน ขั้นตอน และแนวปฏิบัติหรือไม่ โดยปกติจะดำเนินการโดยบริษัทภายนอกที่นำเสนอแบรนด์ "Certified OGC Compliant"
  20. การทดสอบพร้อมกัน: การทดสอบแบบหลายผู้ใช้มุ่งเป้าไปที่การพิจารณาผลกระทบของการเข้าถึงโค้ดแอปพลิเคชัน โมดูล หรือบันทึกฐานข้อมูลเดียวกัน โดยปกติจะทำโดยวิศวกรด้านประสิทธิภาพ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบพร้อมกัน
  21. การทดสอบความสอดคล้อง: กระบวนการทดสอบว่าการใช้งานเป็นไปตามข้อกำหนดที่เป็นพื้นฐาน โดยปกติจะดำเนินการโดยทีมทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบความสอดคล้อง
  22. การทดสอบที่ขับเคลื่อนด้วยบริบท: เทคนิคการทดสอบแบบ Agile ที่สนับสนุนการประเมินโอกาสในการทดสอบอย่างต่อเนื่องและสร้างสรรค์โดยคำนึงถึงข้อมูลที่เป็นไปได้ที่เปิดเผยและคุณค่าของข้อมูลนั้นต่อองค์กรในช่วงเวลาที่กำหนด โดยปกติจะดำเนินการโดยทีมทดสอบ Agile
  1. การทดสอบการแปลง: การทดสอบโปรแกรมหรือขั้นตอนที่ใช้ในการแปลงข้อมูลจากระบบที่มีอยู่เพื่อใช้ในระบบทดแทน โดยปกติจะดำเนินการโดยทีมงาน QA
  2. การทดสอบความครอบคลุมการตัดสินใจ: ประเภทของการทดสอบซอฟต์แวร์ที่ดำเนินการแต่ละเงื่อนไข/การตัดสินใจโดยการตั้งค่าเป็นจริง/เท็จ โดยทั่วไปจะทำโดยทีมทดสอบระบบอัตโนมัติ
  3. การทดสอบแบบทำลายล้าง: การทดสอบประเภทหนึ่งที่ทำการทดสอบจนกว่าชิ้นงานจะเสียหาย เพื่อทำความเข้าใจสมรรถนะเชิงโครงสร้างหรือพฤติกรรมของวัสดุภายใต้ภาระที่แตกต่างกัน โดยปกติแล้วจะดำเนินการโดยทีมควบคุมคุณภาพ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบแบบทำลายล้าง
  4. การทดสอบการพึ่งพา: ประเภทการทดสอบที่ตรวจสอบข้อกำหนดของแอปพลิเคชันสำหรับซอฟต์แวร์ที่มีอยู่แล้ว สถานะเริ่มต้น และการกำหนดค่า เพื่อรักษาฟังก์ชันการทำงานที่เหมาะสม โดยปกติจะดำเนินการโดยทีมทดสอบ
  5. การทดสอบแบบไดนามิก: คำที่ใช้ในวิศวกรรมซอฟต์แวร์เพื่ออธิบายการทดสอบพฤติกรรมไดนามิกของโค้ด โดยทั่วไปจะดำเนินการโดยทีมทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบแบบไดนามิก
  6. การทดสอบโดเมน: เทคนิคการทดสอบกล่องสีขาวซึ่งประกอบด้วยการตรวจสอบว่าโปรแกรมยอมรับเฉพาะอินพุตที่ถูกต้องเท่านั้น โดยทั่วไปแล้วจะทำโดยทีมพัฒนาซอฟต์แวร์และบางครั้งจะทำโดยทีมทดสอบอัตโนมัติ
  7. การทดสอบการจัดการข้อผิดพลาด: ประเภทการทดสอบซอฟต์แวร์ซึ่งกำหนดความสามารถของระบบในการประมวลผลธุรกรรมที่ผิดพลาดได้อย่างเหมาะสม โดยปกติแล้วจะดำเนินการโดยทีมทดสอบ
  8. การทดสอบแบบครบวงจร: เช่นเดียวกับการทดสอบระบบ เกี่ยวข้องกับการทดสอบสภาพแวดล้อมแอปพลิเคชันที่สมบูรณ์ในสถานการณ์ที่เลียนแบบการใช้งานจริง เช่น การโต้ตอบกับฐานข้อมูล การใช้การสื่อสารเครือข่าย หรือการโต้ตอบกับฮาร์ดแวร์ แอปพลิเคชัน หรือระบบอื่น ๆ ตามความเหมาะสม ดำเนินการโดยทีมงาน QA อ่านเพิ่มเติมเกี่ยวกับ การทดสอบแบบครบวงจร
  9. การทดสอบความทนทาน: ประเภทของการทดสอบที่ตรวจสอบหน่วยความจำรั่วหรือปัญหาอื่นๆ ที่อาจเกิดขึ้นจากการดำเนินการเป็นเวลานาน โดยปกติจะดำเนินการโดยวิศวกรด้านประสิทธิภาพ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบความทนทาน
  10. การทดสอบเชิงสำรวจ: เทคนิคการทดสอบกล่องดำที่ดำเนินการโดยไม่มีการวางแผนและการบันทึกข้อมูล โดยทั่วไปแล้วจะทำโดยผู้ทดสอบด้วยตนเอง อ่านเพิ่มเติมได้ที่ การทดสอบเชิงสำรวจ
  11. การทดสอบการแบ่งพาร์ติชันที่เท่ากัน: เทคนิคการทดสอบซอฟต์แวร์ที่แบ่งข้อมูลอินพุตของหน่วยซอฟต์แวร์ออกเป็นพาร์ติชันของข้อมูลที่สามารถรับกรณีทดสอบได้ โดยปกติจะดำเนินการโดยทีมงานควบคุมคุณภาพ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบการแบ่งพาร์ติชันที่เท่ากัน
  12. การทดสอบการฉีดข้อผิดพลาด: องค์ประกอบของกลยุทธ์การทดสอบที่ครอบคลุมซึ่งช่วยให้ผู้ทดสอบมุ่งความสนใจไปที่ลักษณะที่แอปพลิเคชันภายใต้การทดสอบสามารถจัดการกับข้อยกเว้นได้ ดำเนินการโดยทีมงาน QA
  13. การทดสอบการตรวจสอบอย่างเป็นทางการ: การกระทำเพื่อพิสูจน์หรือหักล้างความถูกต้องของอัลกอริทึมที่ตั้งใจไว้ซึ่งเป็นพื้นฐานของระบบโดยคำนึงถึงข้อกำหนดหรือคุณสมบัติอย่างเป็นทางการบางอย่าง โดยใช้วิธีการทางคณิตศาสตร์อย่างเป็นทางการ โดยปกติแล้วจะดำเนินการโดยทีม QA
  14. การทดสอบการทำงาน: ประเภทของการทดสอบกล่องดำที่ใช้กรณีทดสอบตามข้อมูลจำเพาะของส่วนประกอบซอฟต์แวร์ที่ทดสอบ ดำเนินการโดยทีมทดสอบ อ่านเพิ่มเติม การทดสอบสมรรถนะ
  15. การทดสอบฟัซ: เทคนิคการทดสอบซอฟต์แวร์ที่ให้ข้อมูลที่ไม่ถูกต้อง ไม่คาดคิด หรือสุ่มให้กับอินพุตของโปรแกรม ซึ่งเป็นพื้นที่พิเศษของการทดสอบการกลายพันธุ์ การทดสอบ Fuzz ดำเนินการโดยทีมทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบฟัซ
  16. การทดสอบกอริลลา: เทคนิคการทดสอบซอฟต์แวร์ที่เน้นการทดสอบอย่างหนักในโมดูลใดโมดูลหนึ่งโดยเฉพาะ ดำเนินการโดยทีมประกันคุณภาพ โดยปกติจะทำการทดสอบเต็มรูปแบบ
  17. สีเทา Box การทดสอบ: การรวมกันของสีดำ Box และขาว Box วิธีการทดสอบ: การทดสอบซอฟต์แวร์เทียบกับข้อกำหนดโดยใช้ความรู้เกี่ยวกับกลไกการทำงานภายในของซอฟต์แวร์นั้น สามารถดำเนินการได้โดยทีมพัฒนาหรือทีมทดสอบก็ได้
  18. การทดสอบกล่องกระจก: การทดสอบแบบ White Box คล้ายกับการทดสอบโดยใช้ความรู้เกี่ยวกับตรรกะภายในของโค้ดแอปพลิเคชัน โดยทีมพัฒนาเป็นผู้ดำเนินการ
  19. การทดสอบซอฟต์แวร์ GUI: กระบวนการทดสอบผลิตภัณฑ์ที่ใช้อินเทอร์เฟซผู้ใช้แบบกราฟิก เพื่อให้แน่ใจว่าเป็นไปตามข้อกำหนดที่เป็นลายลักษณ์อักษร โดยปกติแล้วทีมทดสอบจะทำสิ่งนี้ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบซอฟต์แวร์ GUI
  20. การทดสอบโลกาภิวัตน์: วิธีการทดสอบที่ตรวจสอบฟังก์ชันการทำงานที่เหมาะสมของผลิตภัณฑ์ด้วยการตั้งค่าวัฒนธรรม/สถานที่ใดๆ โดยใช้อินพุตสากลทุกประเภทที่เป็นไปได้ ดำเนินการโดยทีมทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบโลกาภิวัตน์
  21. การทดสอบการรวมแบบไฮบริด: เทคนิคการทดสอบที่ผสมผสานเทคนิคการรวมจากบนลงล่างและจากล่างขึ้นบนเพื่อใช้ประโยชน์จากการทดสอบประเภทนี้ โดยปกติจะดำเนินการโดยทีมทดสอบ
  22. การทดสอบการรวมระบบ: ขั้นตอนในการทดสอบซอฟต์แวร์ซึ่งมีการรวมโมดูลซอฟต์แวร์แต่ละตัวและทดสอบเป็นกลุ่ม โดยปกติจะดำเนินการโดยทีมทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบการผสานรวม
  23. การทดสอบอินเทอร์เฟซ: การทดสอบดำเนินการเพื่อประเมินว่าระบบหรือส่วนประกอบส่งข้อมูลและควบคุมซึ่งกันและกันอย่างถูกต้องหรือไม่ โดยปกติจะดำเนินการโดยทั้งทีมทดสอบและทีมพัฒนา อ่านเพิ่มเติมเกี่ยวกับ การทดสอบอินเทอร์เฟซ
  24. ติดตั้ง/ถอนการติดตั้งการทดสอบ: งานรับรองคุณภาพที่เน้นที่สิ่งที่ลูกค้าจะต้องทำเพื่อติดตั้งและตั้งค่าซอฟต์แวร์ใหม่ให้สำเร็จ ซึ่งอาจรวมถึงกระบวนการติดตั้ง/ถอนการติดตั้งทั้งหมด บางส่วน หรืออัปเกรด และโดยปกติแล้วจะทำโดยวิศวกรทดสอบซอฟต์แวร์ร่วมกับผู้จัดการการกำหนดค่า
  25. การทดสอบความเป็นสากล: กระบวนการที่ทำให้แน่ใจได้ว่าฟังก์ชันการทำงานของผลิตภัณฑ์จะไม่เสียหาย และข้อความทั้งหมดจะถูกส่งออกอย่างเหมาะสมเมื่อใช้ในภาษาและสถานที่ที่แตกต่างกัน โดยปกติจะดำเนินการโดยทีมทดสอบ
  26. การทดสอบระหว่างระบบ: เทคนิคการทดสอบที่เน้นไปที่การตรวจยืนยันว่าการเชื่อมต่อระหว่างแอปพลิเคชันทำงานได้อย่างถูกต้อง โดยทั่วไปแล้วจะทำโดยทีมทดสอบ
  27. การทดสอบที่ขับเคลื่อนด้วยคำหลัก: หรือที่เรียกว่าการทดสอบที่ขับเคลื่อนด้วยตารางหรือการทดสอบคำที่กระทำ เป็นวิธีการทดสอบซอฟต์แวร์สำหรับการทดสอบอัตโนมัติที่แยกกระบวนการสร้างการทดสอบออกเป็นสองขั้นตอนที่แตกต่างกัน: ขั้นตอนการวางแผนและขั้นตอนการนำไปใช้งาน สามารถใช้โดยทีมทดสอบแบบแมนนวลหรือแบบอัตโนมัติ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบที่ขับเคลื่อนด้วยคำหลัก
  28. โหลดการทดสอบ: เทคนิคการทดสอบที่ส่งความต้องการระบบหรืออุปกรณ์และวัดการตอบสนอง โดยปกติจะดำเนินการโดยวิศวกรด้านประสิทธิภาพ อ่านเพิ่มเติมเกี่ยวกับ โหลดการทดสอบ
  29. การทดสอบการแปล: ส่วนหนึ่งของกระบวนการทดสอบซอฟต์แวร์ที่มุ่งเน้นไปที่การปรับแอปพลิเคชันระดับโลกให้เข้ากับวัฒนธรรม/สถานที่เฉพาะ โดยปกติแล้วจะทำโดยทีมทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบการแปล
  30. การทดสอบลูป: เทคนิคการทดสอบกล่องสีขาวที่ใช้ทดสอบลูปโปรแกรม โดยทีมพัฒนาเป็นผู้ดำเนินการ อ่านเพิ่มเติมได้ที่ การทดสอบลูป
  31. การทดสอบสคริปต์ด้วยตนเอง: วิธีการทดสอบซึ่งกรณีทดสอบได้รับการออกแบบและตรวจสอบโดยทีมงานก่อนดำเนินการ ดำเนินการโดยทีมทดสอบด้วยตนเอง
  32. การทดสอบการสนับสนุนด้วยตนเอง: เทคนิคการทดสอบที่เกี่ยวข้องกับการทดสอบฟังก์ชันทั้งหมดที่ดำเนินการโดยบุคลากรในขณะเตรียมข้อมูลและใช้ข้อมูลเหล่านี้จากระบบอัตโนมัติ ดำเนินการโดยทีมทดสอบ
  33. การทดสอบตามแบบจำลอง: การประยุกต์ใช้การออกแบบตามแบบจำลองสำหรับการออกแบบและดำเนินการสิ่งประดิษฐ์ที่จำเป็นในการทดสอบซอฟต์แวร์ โดยปกติจะดำเนินการโดยทีมทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบตามแบบจำลอง
  34. การทดสอบการกลายพันธุ์: วิธีการทดสอบซอฟต์แวร์ที่เกี่ยวข้องกับการแก้ไขซอร์สโค้ดหรือไบต์โค้ดของโปรแกรมด้วยวิธีเล็กๆ น้อยๆ เพื่อทดสอบส่วนของโค้ดที่ไม่ค่อยมีหรือไม่เคยเข้าถึงในระหว่างการทดสอบปกติ โดยปกติจะดำเนินการโดยผู้ทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบการกลายพันธุ์
  35. การทดสอบที่ขับเคลื่อนด้วยโมดูลาร์: เทคนิคการทดสอบซอฟต์แวร์ที่ต้องมีการสร้างสคริปต์ขนาดเล็กที่เป็นอิสระซึ่งแสดงถึงโมดูล ส่วน และฟังก์ชันของแอปพลิเคชันภายใต้การทดสอบ โดยปกติจะดำเนินการโดยทีมทดสอบ
  36. การทดสอบไม่ทำงาน: เทคนิคการทดสอบที่เน้นการทดสอบแอปพลิเคชันซอฟต์แวร์สำหรับข้อกำหนดที่ไม่สามารถใช้งานได้ สามารถดำเนินการโดยวิศวกรด้านประสิทธิภาพหรือโดยทีมทดสอบด้วยตนเอง อ่านเพิ่มเติมเกี่ยวกับ การทดสอบที่ไม่ใช้งาน
  37. การทดสอบเชิงลบ: เรียกอีกอย่างว่า “การทดสอบเพื่อล้มเหลว” – วิธีการทดสอบที่จุดมุ่งหมายของการทดสอบคือการแสดงให้เห็นว่าส่วนประกอบหรือระบบไม่ทำงาน โดยจะทำการทดสอบด้วยมือหรืออัตโนมัติ อ่านเพิ่มเติมได้ที่ การทดสอบเชิงลบ
  38. Operaการทดสอบเชิงตรรกะ: เทคนิคการทดสอบที่ดำเนินการเพื่อประเมินระบบหรือส่วนประกอบในสภาพแวดล้อมการทำงาน โดยปกติแล้วจะทำโดยทีมทดสอบ อ่านเพิ่มเติมได้ที่ Operaการทดสอบเชิงตรรกะ
  39. การทดสอบอาเรย์มุมฉาก: วิธีการทดสอบที่เป็นระบบและเป็นสถิติซึ่งสามารถนำไปใช้ในการทดสอบอินเทอร์เฟซผู้ใช้ การทดสอบระบบ การทดสอบการถดถอย การทดสอบการกำหนดค่า และการทดสอบประสิทธิภาพ ดำเนินการโดยทีมทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบอาเรย์มุมฉาก
  40. การทดสอบคู่: เทคนิคการพัฒนาซอฟต์แวร์ที่สมาชิกในทีมสองคนทำงานร่วมกันบนแป้นพิมพ์เดียวเพื่อทดสอบแอปพลิเคชันซอฟต์แวร์ คนหนึ่งทำการทดสอบ และอีกคนหนึ่งวิเคราะห์หรือทบทวนการทดสอบ ซึ่งสามารถทำได้ระหว่างผู้ทดสอบหนึ่งคนกับนักพัฒนาหรือนักวิเคราะห์ธุรกิจ หรือระหว่างผู้ทดสอบสองคนโดยให้ผู้เข้าร่วมทั้งสองคนผลัดกันขับคีย์บอร์ด
  41. การทดสอบแบบพาสซีฟ: เทคนิคการทดสอบประกอบด้วยการติดตามผลลัพธ์ของระบบที่ทำงานอยู่โดยไม่ต้องมีข้อมูลการทดสอบพิเศษใดๆ ดำเนินการโดยทีมทดสอบ
  42. การทดสอบแบบขนาน: เทคนิคการทดสอบที่มีวัตถุประสงค์เพื่อให้แน่ใจว่ามีการติดตั้งแอปพลิเคชันใหม่ซึ่งแทนที่เวอร์ชันเก่าและทำงานอย่างถูกต้อง ดำเนินการโดยทีมงานทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบแบบขนาน
  43. การทดสอบเส้นทาง: การทดสอบกล่องสีขาวทั่วไปซึ่งมีเป้าหมายเพื่อตอบสนองเกณฑ์การครอบคลุมสำหรับแต่ละเส้นทางตรรกะผ่านโปรแกรม โดยทั่วไปแล้วจะดำเนินการโดยทีมพัฒนา อ่านเพิ่มเติมได้ที่ การทดสอบเส้นทาง
  44. การทดสอบการเจาะ: วิธีการทดสอบที่ประเมินความปลอดภัยของระบบคอมพิวเตอร์หรือเครือข่ายโดยจำลองการโจมตีจากแหล่งที่เป็นอันตราย โดยปกติแล้วจะดำเนินการโดยบริษัททดสอบการเจาะระบบเฉพาะทาง อ่านเพิ่มเติมเกี่ยวกับ Penetration Testing
  45. การทดสอบประสิทธิภาพ: การทดสอบการทำงานที่ดำเนินการเพื่อประเมินความสอดคล้องของระบบหรือส่วนประกอบตามข้อกำหนดด้านประสิทธิภาพที่ระบุ โดยปกติจะดำเนินการโดยวิศวกรด้านประสิทธิภาพ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบประสิทธิภาพ
  46. การทดสอบคุณสมบัติ: การทดสอบกับข้อกำหนดของรุ่นก่อนหน้า ซึ่งโดยปกติจะดำเนินการโดยนักพัฒนาเพื่อผู้บริโภค เพื่อแสดงให้เห็นว่าซอฟต์แวร์ตรงตามข้อกำหนดที่ระบุ
  47. Ramp การทดสอบ: ประเภทของการทดสอบประกอบด้วยการเพิ่มสัญญาณอินพุตอย่างต่อเนื่องจนระบบพัง อาจดำเนินการโดยทีมทดสอบหรือวิศวกรด้านประสิทธิภาพ
  48. การทดสอบการถดถอย: ประเภทของการทดสอบซอฟต์แวร์ที่พยายามค้นหาข้อผิดพลาดของซอฟต์แวร์หลังจากมีการเปลี่ยนแปลงโปรแกรม (เช่น การแก้ไขข้อบกพร่องหรือฟังก์ชันการทำงานใหม่) โดยการทดสอบโปรแกรมซ้ำ ดำเนินการโดยทีมทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบการถดถอย
  49. การทดสอบการฟื้นตัว: เทคนิคการทดสอบที่ประเมินว่าระบบสามารถกู้คืนจากการขัดข้อง ความล้มเหลวของฮาร์ดแวร์ หรือปัญหาภัยพิบัติอื่นๆ ได้ดีเพียงใด ดำเนินการโดยทีมทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบการกู้คืน
  50. การทดสอบข้อกำหนด: เทคนิคการทดสอบที่ตรวจสอบว่าข้อกำหนดนั้นถูกต้อง สมบูรณ์ ไม่คลุมเครือ และสอดคล้องกันในเชิงตรรกะ และช่วยให้สามารถออกแบบชุดกรณีทดสอบที่จำเป็นและเพียงพอจากข้อกำหนดเหล่านั้น ดำเนินการโดยทีมงาน QA
  51. การทดสอบความปลอดภัย: กระบวนการในการพิจารณาว่าระบบสารสนเทศปกป้องข้อมูลและรักษาฟังก์ชันการทำงานตามที่ตั้งใจไว้ สามารถทำได้โดยทีมทดสอบหรือบริษัททดสอบความปลอดภัยที่เชี่ยวชาญ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบความปลอดภัย
  52. การทดสอบสติ: เทคนิคการทดสอบซึ่งกำหนดว่าซอฟต์แวร์เวอร์ชันใหม่ทำงานได้ดีพอที่จะยอมรับในการทดสอบที่สำคัญหรือไม่ ดำเนินการโดยทีมทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบสติ
  53. การทดสอบสถานการณ์: กิจกรรมการทดสอบที่ใช้สถานการณ์สมมติเพื่อช่วยให้ผู้คนคิดเกี่ยวกับปัญหาหรือระบบที่ซับซ้อนในสภาพแวดล้อมการทดสอบ ดำเนินการโดยทีมทดสอบ อ่านเพิ่มเติมได้ที่ การทดสอบสถานการณ์
  54. การทดสอบความสามารถในการปรับขนาด: ส่วนหนึ่งของแบตเตอรี่ของการทดสอบที่ไม่ใช้งานซึ่งจะทดสอบแอปพลิเคชันซอฟต์แวร์สำหรับการวัดความสามารถในการขยายขนาด ไม่ว่าจะเป็นโหลดของผู้ใช้ที่รองรับ จำนวนธุรกรรม ปริมาณข้อมูล ฯลฯ ดำเนินการโดยวิศวกรด้านประสิทธิภาพ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบความสามารถในการปรับขนาด
  55. การทดสอบคำสั่ง: การทดสอบกล่องสีขาวซึ่งตรงตามเกณฑ์ที่ว่าคำสั่งแต่ละคำสั่งในโปรแกรมจะถูกดำเนินการอย่างน้อยหนึ่งครั้งระหว่างการทดสอบโปรแกรม โดยทั่วไปแล้วทีมพัฒนาจะดำเนินการนี้
  56. การทดสอบแบบสถิต: เป็นการทดสอบซอฟต์แวร์รูปแบบหนึ่งที่ไม่ได้ใช้งานซอฟต์แวร์จริง โดยส่วนใหญ่จะตรวจสอบความถูกต้องของโค้ด อัลกอริทึม หรือเอกสาร ผู้พัฒนาซอฟต์แวร์เป็นผู้ใช้การทดสอบนี้ อ่านเพิ่มเติมได้ที่นี่ การทดสอบแบบสถิต
  57. การทดสอบความเสถียร: เทคนิคการทดสอบซึ่งพยายามตรวจสอบว่าแอปพลิเคชันจะขัดข้องหรือไม่ โดยปกติจะดำเนินการโดยวิศวกรด้านประสิทธิภาพ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบความเสถียร
  58. การทดสอบควัน: เทคนิคการทดสอบซึ่งจะตรวจสอบส่วนประกอบพื้นฐานทั้งหมดของระบบซอฟต์แวร์เพื่อให้แน่ใจว่าทำงานได้อย่างถูกต้อง โดยทั่วไปแล้ว การทดสอบควันจะดำเนินการโดยทีมทดสอบทันทีหลังจากสร้างซอฟต์แวร์แล้ว อ่านเพิ่มเติมเกี่ยวกับ การทดสอบควัน
  59. การทดสอบการจัดเก็บ: ประเภทการทดสอบที่ตรวจสอบโปรแกรมภายใต้การทดสอบจะเก็บไฟล์ข้อมูลไว้ในไดเร็กทอรีที่ถูกต้อง และสงวนพื้นที่เพียงพอเพื่อป้องกันการยกเลิกโดยไม่คาดคิดอันเป็นผลมาจากพื้นที่ไม่เพียงพอ โดยปกติจะดำเนินการโดยทีมทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบการจัดเก็บ
  60. การทดสอบความเครียด: เทคนิคการทดสอบที่ประเมินระบบหรือส่วนประกอบที่หรือเกินขีดจำกัดของข้อกำหนดที่ระบุ โดยปกติจะดำเนินการโดยวิศวกรด้านประสิทธิภาพ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบความเครียด
  61. การทดสอบโครงสร้าง: เทคนิคการทดสอบกล่องสีขาวซึ่งคำนึงถึงโครงสร้างภายในของระบบหรือส่วนประกอบและรับรองว่าคำสั่งแต่ละโปรแกรมทำงานตามหน้าที่ที่ตั้งใจไว้ โดยปกติแล้วนักพัฒนาซอฟต์แวร์จะดำเนินการนี้
  62. การทดสอบระบบ: กระบวนการทดสอบระบบฮาร์ดแวร์และซอฟต์แวร์แบบรวมเพื่อตรวจสอบว่าระบบตรงตามข้อกำหนดที่ระบุ ดำเนินการโดยทีมทดสอบทั้งในสภาพแวดล้อมการพัฒนาและเป้าหมาย อ่านเพิ่มเติมเกี่ยวกับ การทดสอบระบบ
  63. การทดสอบการรวมระบบ: กระบวนการทดสอบที่ฝึกการอยู่ร่วมกันของระบบซอฟต์แวร์กับผู้อื่น โดยปกติจะดำเนินการโดยทีมทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบการรวมระบบ
  64. การทดสอบการรวมจากบนลงล่าง: เทคนิคการทดสอบที่เกี่ยวข้องกับการเริ่มต้นที่ด้านบนสุดของลำดับชั้นของระบบที่ส่วนต่อประสานกับผู้ใช้ และใช้ stub เพื่อทดสอบจากบนลงล่างจนกระทั่งระบบทั้งหมดถูกนำไปใช้ ดำเนินการโดยทีมทดสอบ
  65. การทดสอบเธรด: รูปแบบของเทคนิคการทดสอบจากบนลงล่างที่การบูรณาการส่วนประกอบอย่างต่อเนื่องเป็นไปตามการนำชุดย่อยของข้อกำหนดไปใช้ โดยปกติจะดำเนินการโดยทีมทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบเธรด
  66. Upgrade การทดสอบ: เทคนิคการทดสอบที่ตรวจสอบว่าเนื้อหาที่สร้างด้วยเวอร์ชันเก่าสามารถใช้งานได้อย่างถูกต้องหรือไม่ และการเรียนรู้ของผู้ใช้นั้นไม่ถูกท้าทาย ดำเนินการโดยทีมทดสอบ
  67. การทดสอบหน่วย: วิธีการตรวจสอบและยืนยันซอฟต์แวร์ซึ่งโปรแกรมเมอร์จะทดสอบว่าซอร์สโค้ดแต่ละหน่วยเหมาะสมสำหรับการใช้งานหรือไม่ โดยปกติจะดำเนินการโดยทีมพัฒนา อ่านเพิ่มเติมเกี่ยวกับ การทดสอบหน่วย
  68. การทดสอบส่วนต่อประสานกับผู้ใช้: ประเภทของการทดสอบที่ดำเนินการเพื่อตรวจสอบว่าแอปพลิเคชันนั้นใช้งานง่ายเพียงใด ดำเนินการโดยทีมทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบส่วนต่อประสานกับผู้ใช้

ประเภทการทดสอบโบนัส: เทคนิคการทดสอบทั้งห้าประเภทต่อไปนี้ เป็นเทคนิคเพิ่มเติมที่ผู้เชี่ยวชาญด้านการประกันคุณภาพทุกคนควรทราบ

  1. การทดสอบการใช้งาน: เทคนิคการทดสอบที่ตรวจสอบความง่ายที่ผู้ใช้สามารถเรียนรู้การใช้งาน เตรียมอินพุต และตีความเอาต์พุตของระบบหรือส่วนประกอบ โดยทั่วไปแล้วผู้ใช้ปลายทางเป็นผู้ดำเนินการ อ่านเพิ่มเติมได้ที่ การทดสอบการใช้งาน
  2. การทดสอบปริมาตร: การทดสอบซึ่งยืนยันว่าค่าใดๆ ที่อาจเพิ่มขึ้นเมื่อเวลาผ่านไป (เช่น จำนวนที่สะสม บันทึก และไฟล์ข้อมูล) สามารถรองรับได้โดยโปรแกรม และจะไม่ทำให้โปรแกรมหยุดทำงานหรือลดประสิทธิภาพการทำงานในลักษณะใดๆ โดยทั่วไปแล้ว วิศวกรด้านประสิทธิภาพจะดำเนินการ อ่านเพิ่มเติมได้ที่ การทดสอบปริมาตร
  3. การทดสอบช่องโหว่: ประเภทของการทดสอบที่เกี่ยวข้องกับความปลอดภัยของแอปพลิเคชันและมีวัตถุประสงค์เพื่อป้องกันปัญหาที่อาจส่งผลกระทบต่อความสมบูรณ์และความเสถียรของแอปพลิเคชัน สามารถทำได้โดยทีมทดสอบภายในหรือจ้างบริษัทภายนอกที่เชี่ยวชาญ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบช่องโหว่
  4. การทดสอบกล่องสีขาว: เทคนิคการทดสอบตามความรู้เกี่ยวกับตรรกะภายในของโค้ดของแอปพลิเคชัน และรวมถึงการทดสอบ เช่น ความครอบคลุมของคำสั่งโค้ด สาขา เส้นทาง และเงื่อนไข ดำเนินการโดยนักพัฒนาซอฟต์แวร์ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบกล่องสีขาว
  5. การทดสอบขั้นตอนการทำงาน: เทคนิคการทดสอบแบบ end-to-end ที่สร้างด้วยสคริปต์ซึ่งทำซ้ำขั้นตอนการทำงานเฉพาะที่ผู้ใช้ปลายทางคาดว่าจะนำไปใช้ โดยปกติจะดำเนินการโดยทีมทดสอบ อ่านเพิ่มเติมเกี่ยวกับ การทดสอบขั้นตอนการทำงาน

วิธีการเลือกประเภทการทดสอบซอฟต์แวร์ที่เหมาะสม

ด้วยประเภทการทดสอบที่มีให้เลือกมากกว่า 100 แบบ การเลือกวิธีการที่เหมาะสมสำหรับโครงการของคุณอาจดูเหมือนเป็นเรื่องยาก สิ่งสำคัญคือต้องปรับกลยุทธ์การทดสอบให้สอดคล้องกับเป้าหมาย ข้อจำกัด และระดับความเสี่ยงที่ยอมรับได้ของโครงการ

เริ่มต้นด้วยข้อกำหนดของโครงการ

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

พิจารณาระเบียบวิธีการพัฒนา

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

ประเมินความเสี่ยงและผลกระทบ

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

สร้างสมดุลระหว่างวิธีการแบบใช้แรงงานคนและแบบอัตโนมัติ

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

ปัญญาประดิษฐ์กำลังเปลี่ยนแปลงการทดสอบซอฟต์แวร์อย่างไร

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

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

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

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

ความแตกต่างที่สำคัญระหว่างการทดสอบด้วยตนเองและการทดสอบอัตโนมัติ

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

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

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

รายการทั้งหมดก็จบลงเพียงเท่านี้ หากต้องการค้นหาเครื่องมือที่เหมาะสมสำหรับการทดสอบประเภทนี้และประเภทอื่นๆ โปรดสำรวจคอลเลกชันนี้ เครื่องมือทดสอบ.

คำถามที่พบบ่อย

การทดสอบหน่วย (Unit testing) เป็นประเภทการทดสอบที่ใช้กันอย่างแพร่หลายที่สุด เนื่องจากนักพัฒนาซอฟต์แวร์มักใช้การทดสอบนี้ในระหว่างการพัฒนาเพื่อตรวจสอบว่าส่วนประกอบโค้ดแต่ละส่วนทำงานได้อย่างถูกต้องก่อนที่จะนำไปรวมเข้ากับระบบโดยรวม

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

ควรทำการทดสอบการถดถอย (Regression testing) หลังจากการเปลี่ยนแปลงโค้ด การแก้ไขข้อผิดพลาด หรือการเพิ่มฟีเจอร์ใหม่ทุกครั้ง เพื่อให้แน่ใจว่าฟังก์ชันการทำงานที่มีอยู่จะไม่ได้รับผลกระทบจากการแก้ไข

ใช่แล้ว โครงการส่วนใหญ่ใช้การทดสอบหลายประเภทพร้อมกัน โครงการทั่วไปจะผสมผสานการทดสอบหน่วย การทดสอบการบูรณาการ การทดสอบระบบ และการทดสอบการยอมรับของผู้ใช้ในขั้นตอนการพัฒนาต่างๆ

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

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

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

การทดสอบเชิงสำรวจ (Exploratory testing) เป็นวิธีการที่ไม่กำหนดรูปแบบตายตัว โดยผู้ทดสอบจะออกแบบและดำเนินการทดสอบไปพร้อม ๆ กันโดยอาศัยประสบการณ์ของตนเอง วิธีนี้ใช้เพื่อค้นหาข้อบกพร่องที่การทดสอบแบบมีโครงสร้างอาจมองข้ามไป

สรุปโพสต์นี้ด้วย: