การทดสอบซอฟต์แวร์ - วิธีการ
มีวิธีการต่างๆที่สามารถใช้สำหรับการทดสอบซอฟต์แวร์ บทนี้อธิบายสั้น ๆ เกี่ยวกับวิธีการที่มี
การทดสอบกล่องดำ
เทคนิคการทดสอบโดยไม่ต้องมีความรู้เกี่ยวกับการทำงานภายในของแอปพลิเคชันเรียกว่าการทดสอบกล่องดำ ผู้ทดสอบไม่สนใจสถาปัตยกรรมระบบและไม่มีสิทธิ์เข้าถึงซอร์สโค้ด โดยทั่วไปในขณะทำการทดสอบกล่องดำผู้ทดสอบจะโต้ตอบกับอินเทอร์เฟซผู้ใช้ของระบบโดยการจัดหาอินพุตและตรวจสอบเอาต์พุตโดยไม่ทราบว่าอินพุตทำงานอย่างไรและที่ไหน
ตารางต่อไปนี้แสดงข้อดีและข้อเสียของการทดสอบกล่องดำ
ข้อดี | ข้อเสีย |
---|---|
เหมาะและมีประสิทธิภาพสำหรับกลุ่มโค้ดขนาดใหญ่ | ความครอบคลุมที่ จำกัด เนื่องจากสถานการณ์การทดสอบที่เลือกเท่านั้นที่จะดำเนินการจริง |
ไม่จำเป็นต้องเข้าถึงรหัส | การทดสอบไม่มีประสิทธิภาพเนื่องจากผู้ทดสอบมีความรู้ จำกัด เกี่ยวกับแอปพลิเคชันเท่านั้น |
แยกมุมมองของผู้ใช้ออกจากมุมมองของนักพัฒนาอย่างชัดเจนผ่านบทบาทที่กำหนดไว้อย่างชัดเจน | ความครอบคลุมของคนตาบอดเนื่องจากผู้ทดสอบไม่สามารถกำหนดเป้าหมายส่วนรหัสเฉพาะหรือพื้นที่ที่เกิดข้อผิดพลาดได้ |
ผู้ทดสอบที่มีทักษะปานกลางจำนวนมากสามารถทดสอบแอปพลิเคชันโดยไม่มีความรู้ในการใช้งานภาษาโปรแกรมหรือระบบปฏิบัติการ | กรณีทดสอบออกแบบได้ยาก |
การทดสอบกล่องขาว
การทดสอบกล่องขาวเป็นการตรวจสอบตรรกะภายในและโครงสร้างของโค้ดโดยละเอียด เรียกอีกอย่างว่าการทดสอบกล่องขาวglass testing หรือ open-box testing. เพื่อที่จะดำเนินการwhite-box การทดสอบแอปพลิเคชันผู้ทดสอบจำเป็นต้องทราบการทำงานภายในของรหัส
ผู้ทดสอบจำเป็นต้องดูภายในซอร์สโค้ดและค้นหาว่าหน่วย / ส่วนใดของโค้ดทำงานไม่เหมาะสม
ตารางต่อไปนี้แสดงข้อดีและข้อเสียของการทดสอบกล่องขาว
ข้อดี | ข้อเสีย |
---|---|
เนื่องจากผู้ทดสอบมีความรู้เกี่ยวกับซอร์สโค้ดจึงเป็นเรื่องง่ายมากที่จะค้นหาว่าข้อมูลประเภทใดที่สามารถช่วยในการทดสอบแอปพลิเคชันได้อย่างมีประสิทธิภาพ | เนื่องจากจำเป็นต้องใช้ผู้ทดสอบที่มีทักษะในการทดสอบกล่องขาวจึงทำให้ต้นทุนเพิ่มขึ้น |
ช่วยในการเพิ่มประสิทธิภาพโค้ด | บางครั้งก็เป็นไปไม่ได้ที่จะมองเข้าไปในทุกซอกทุกมุมเพื่อค้นหาข้อผิดพลาดที่ซ่อนอยู่ซึ่งอาจสร้างปัญหาได้เนื่องจากเส้นทางต่างๆจะยังไม่มีการทดสอบ |
สามารถลบบรรทัดเพิ่มเติมของรหัสซึ่งอาจทำให้เกิดข้อบกพร่องที่ซ่อนอยู่ | เป็นการยากที่จะรักษาการทดสอบกล่องขาวเนื่องจากต้องใช้เครื่องมือพิเศษเช่นเครื่องวิเคราะห์โค้ดและเครื่องมือแก้ไขจุดบกพร่อง |
เนื่องจากความรู้ของผู้ทดสอบเกี่ยวกับรหัสจึงได้รับความครอบคลุมสูงสุดในระหว่างการเขียนสถานการณ์ทดสอบ |
การทดสอบกล่องสีเทา
การทดสอบกล่องสีเทาเป็นเทคนิคในการทดสอบแอปพลิเคชันโดยมีความรู้ จำกัด เกี่ยวกับการทำงานภายในของแอปพลิเคชัน ในการทดสอบซอฟต์แวร์วลียิ่งคุณรู้มากเท่าไหร่ก็ยิ่งมีน้ำหนักมากในขณะทดสอบแอปพลิเคชัน
การเรียนรู้โดเมนของระบบจะทำให้ผู้ทดสอบมีความได้เปรียบเหนือคนที่มีความรู้ด้านโดเมน จำกัด ไม่เหมือนกับการทดสอบกล่องดำที่ผู้ทดสอบทดสอบเฉพาะส่วนต่อประสานผู้ใช้ของแอปพลิเคชัน ในการทดสอบกล่องสีเทาผู้ทดสอบสามารถเข้าถึงเอกสารการออกแบบและฐานข้อมูลได้ ด้วยความรู้นี้ผู้ทดสอบสามารถเตรียมข้อมูลการทดสอบและสถานการณ์การทดสอบได้ดีขึ้นในขณะที่วางแผนการทดสอบ
ข้อดี | ข้อเสีย |
---|---|
นำเสนอประโยชน์ร่วมกันของการทดสอบกล่องดำและกล่องขาวทุกที่ที่เป็นไปได้ | เนื่องจากไม่สามารถเข้าถึงซอร์สโค้ดได้ความสามารถในการข้ามโค้ดและความครอบคลุมของการทดสอบจึงมี จำกัด |
ผู้ทดสอบกล่องสีเทาไม่พึ่งพาซอร์สโค้ด แทนที่จะอาศัยข้อกำหนดของอินเทอร์เฟซและข้อกำหนดการทำงาน | การทดสอบอาจซ้ำซ้อนได้หากนักออกแบบซอฟต์แวร์เรียกใช้กรณีทดสอบแล้ว |
จากข้อมูลที่มีอยู่ จำกัด ผู้ทดสอบกล่องสีเทาสามารถออกแบบสถานการณ์การทดสอบที่ยอดเยี่ยมโดยเฉพาะอย่างยิ่งเกี่ยวกับโปรโตคอลการสื่อสารและการจัดการประเภทข้อมูล | การทดสอบสตรีมอินพุตที่เป็นไปได้ทุกครั้งนั้นไม่สมจริงเนื่องจากจะใช้เวลาที่ไม่สมเหตุสมผล ดังนั้นเส้นทางของโปรแกรมจำนวนมากจะไม่ผ่านการทดสอบ |
การทดสอบทำจากมุมมองของผู้ใช้ไม่ใช่ผู้ออกแบบ |
การเปรียบเทียบวิธีการทดสอบ
ตารางต่อไปนี้แสดงจุดที่แยกความแตกต่างของการทดสอบกล่องดำการทดสอบกล่องสีเทาและการทดสอบกล่องสีขาว
การทดสอบกล่องดำ | การทดสอบกล่องสีเทา | การทดสอบกล่องขาว |
---|---|---|
ไม่จำเป็นต้องทราบการทำงานภายในของแอปพลิเคชัน | ผู้ทดสอบมีความรู้ จำกัด เกี่ยวกับการทำงานภายในของแอปพลิเคชัน | ผู้ทดสอบมีความรู้อย่างเต็มที่เกี่ยวกับการทำงานภายในของแอปพลิเคชัน |
หรือที่เรียกว่าการทดสอบแบบกล่องปิดการทดสอบด้วยข้อมูลหรือการทดสอบการทำงาน | หรือที่เรียกว่าการทดสอบแบบโปร่งแสงเนื่องจากผู้ทดสอบมีความรู้ จำกัด เกี่ยวกับด้านในของแอปพลิเคชัน | หรือที่เรียกว่าการทดสอบกล่องใสการทดสอบโครงสร้างหรือการทดสอบตามรหัส |
ดำเนินการโดยผู้ใช้ปลายทางและโดยผู้ทดสอบและนักพัฒนา | ดำเนินการโดยผู้ใช้ปลายทางและโดยผู้ทดสอบและนักพัฒนา | โดยปกติแล้วผู้ทดสอบและนักพัฒนา |
การทดสอบขึ้นอยู่กับความคาดหวังภายนอก - ไม่ทราบพฤติกรรมภายในของแอปพลิเคชัน | การทดสอบทำบนพื้นฐานของแผนภาพฐานข้อมูลระดับสูงและแผนภาพกระแสข้อมูล | การทำงานภายในเป็นที่ทราบกันดีอยู่แล้วและผู้ทดสอบสามารถออกแบบข้อมูลการทดสอบได้ |
มีความละเอียดถี่ถ้วนและใช้เวลาน้อยที่สุด | บางส่วนใช้เวลานานและละเอียดถี่ถ้วน | ประเภทการทดสอบที่ละเอียดถี่ถ้วนและใช้เวลานานที่สุด |
ไม่เหมาะสำหรับการทดสอบอัลกอริทึม | ไม่เหมาะสำหรับการทดสอบอัลกอริทึม | เหมาะสำหรับการทดสอบอัลกอริทึม |
สามารถทำได้โดยวิธีการลองผิดลองถูกเท่านั้น | โดเมนข้อมูลและขอบเขตภายในสามารถทดสอบได้หากทราบ | โดเมนข้อมูลและขอบเขตภายในสามารถทดสอบได้ดีขึ้น |