การทดสอบซอฟต์แวร์ - วิธีการ

มีวิธีการต่างๆที่สามารถใช้สำหรับการทดสอบซอฟต์แวร์ บทนี้อธิบายสั้น ๆ เกี่ยวกับวิธีการที่มี

การทดสอบกล่องดำ

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

ตารางต่อไปนี้แสดงข้อดีและข้อเสียของการทดสอบกล่องดำ

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

การทดสอบกล่องขาว

การทดสอบกล่องขาวเป็นการตรวจสอบตรรกะภายในและโครงสร้างของโค้ดโดยละเอียด เรียกอีกอย่างว่าการทดสอบกล่องขาวglass testing หรือ open-box testing. เพื่อที่จะดำเนินการwhite-box การทดสอบแอปพลิเคชันผู้ทดสอบจำเป็นต้องทราบการทำงานภายในของรหัส

ผู้ทดสอบจำเป็นต้องดูภายในซอร์สโค้ดและค้นหาว่าหน่วย / ส่วนใดของโค้ดทำงานไม่เหมาะสม

ตารางต่อไปนี้แสดงข้อดีและข้อเสียของการทดสอบกล่องขาว

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

การทดสอบกล่องสีเทา

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

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

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

การเปรียบเทียบวิธีการทดสอบ

ตารางต่อไปนี้แสดงจุดที่แยกความแตกต่างของการทดสอบกล่องดำการทดสอบกล่องสีเทาและการทดสอบกล่องสีขาว

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