สีขาว Box การทดสอบ – คืออะไร เทคนิค ตัวอย่าง และประเภท
สีขาว Box การทดสอบ
สีขาว Box การทดสอบ เป็นเทคนิคการทดสอบที่ทดสอบโครงสร้างภายใน การออกแบบ และการเข้ารหัสของซอฟต์แวร์เพื่อตรวจสอบการไหลของอินพุต-เอาต์พุต และปรับปรุงการออกแบบ การใช้งาน และความปลอดภัย ในการทดสอบกล่องสีขาว โค้ดจะมองเห็นได้โดยผู้ทดสอบ จึงเรียกอีกอย่างว่าการทดสอบกล่องใส การทดสอบกล่องเปิด การทดสอบกล่องโปร่งใส การทดสอบตามโค้ด และการทดสอบกล่องแก้ว
เป็นหนึ่งในสองส่วนของ Box แนวทางการทดสอบในการทดสอบซอฟต์แวร์ ซึ่งก็คือการทดสอบแบบ Blackbox นั้นจะเกี่ยวข้องกับการทดสอบจากมุมมองภายนอกหรือจากมุมมองของผู้ใช้ปลายทาง ในทางกลับกัน การทดสอบแบบ Whitebox ในวิศวกรรมซอฟต์แวร์นั้นจะอิงตามการทำงานภายในของแอปพลิเคชันและเกี่ยวข้องกับการทดสอบภายใน
คำว่า “ขาว.Box” ถูกนำมาใช้เพราะแนวคิดของกล่องใส กล่องใสหรือสีขาวBox ชื่อนี้แสดงถึงความสามารถในการมองทะลุเปลือกนอกของซอฟต์แวร์ (หรือ “กล่อง”) ไปจนถึงการทำงานภายใน ในทำนองเดียวกัน “กล่องดำ” ใน “สีดำ Box การทดสอบ” เป็นสัญลักษณ์ของการไม่สามารถมองเห็นการทำงานภายในของซอฟต์แวร์ เพื่อให้สามารถทดสอบเฉพาะประสบการณ์ผู้ใช้ปลายทางเท่านั้น
สีขาว Box การทดสอบวิดีโอ
คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้
คุณยืนยันอะไรในไวท์ Box การทดสอบ?
การทดสอบกล่องสีขาวเกี่ยวข้องกับการทดสอบโค้ดซอฟต์แวร์สำหรับสิ่งต่อไปนี้:
- ช่องโหว่ด้านความปลอดภัยภายใน
- เส้นทางที่ใช้งานไม่ได้หรือมีโครงสร้างไม่ดีในกระบวนการเขียนโค้ด
- การไหลของอินพุตเฉพาะผ่านโค้ด
- ผลผลิตที่คาดหวัง
- การทำงานของลูปแบบมีเงื่อนไข
- การทดสอบแต่ละคำสั่ง วัตถุ และฟังก์ชันเป็นรายบุคคล
การทดสอบสามารถทำได้ในระดับระบบ ระดับการรวม และระดับยูนิตของการพัฒนาซอฟต์แวร์ เป้าหมายพื้นฐานประการหนึ่งของการทดสอบไวท์บ็อกซ์คือการตรวจสอบเวิร์กโฟลว์สำหรับแอปพลิเคชัน ซึ่งเกี่ยวข้องกับการทดสอบอินพุตที่กำหนดไว้ล่วงหน้าชุดหนึ่งเทียบกับเอาต์พุตที่คาดหวังหรือต้องการ เพื่อให้เมื่ออินพุตเฉพาะเจาะจงไม่ส่งผลให้ได้เอาต์พุตที่คาดหวัง แสดงว่าคุณได้ประสบปัญหาแล้ว
ไวท์แสดงยังไง. Box การทดสอบ?
เราได้แบ่งขั้นตอนการทดสอบแบบกล่องสีขาวออกเป็น 2 ขั้นตอนพื้นฐานเพื่อให้คุณเข้าใจการทดสอบแบบกล่องสีขาวได้ง่ายขึ้น นี่คือสิ่งที่นักทดสอบทำเมื่อทำการทดสอบแอปพลิเคชันโดยใช้เทคนิคการทดสอบแบบกล่องสีขาว:
ขั้นตอนที่ 1) ทำความเข้าใจซอร์สโค้ด
สิ่งแรกที่ผู้ทดสอบมักจะทำคือเรียนรู้และทำความเข้าใจซอร์สโค้ดของแอปพลิเคชัน เนื่องจากการทดสอบกล่องสีขาวเกี่ยวข้องกับการทดสอบการทำงานภายในของแอปพลิเคชัน ผู้ทดสอบจึงต้องมีความรู้เกี่ยวกับภาษาการเขียนโปรแกรมที่ใช้ในแอปพลิเคชันที่กำลังทดสอบเป็นอย่างดี นอกจากนี้ ผู้ทดสอบจะต้องตระหนักถึงแนวทางการเขียนโค้ดที่ปลอดภัยเป็นอย่างยิ่ง ความปลอดภัยมักเป็นหนึ่งในวัตถุประสงค์หลักของการทดสอบซอฟต์แวร์ ผู้ทดสอบควรสามารถค้นหาปัญหาความปลอดภัยและป้องกันการโจมตีจากแฮกเกอร์และผู้ใช้ที่ไม่รู้เรื่องซึ่งอาจใส่โค้ดที่เป็นอันตรายลงในแอปพลิเคชันโดยรู้ตัวหรือไม่รู้ตัวก็ได้
ขั้นตอนที่ 2) สร้างกรณีทดสอบและดำเนินการ
ขั้นตอนพื้นฐานที่สองในการทดสอบกล่องสีขาวเกี่ยวข้องกับการทดสอบโค้ดต้นฉบับของแอปพลิเคชันเพื่อให้มีการไหลและโครงสร้างที่เหมาะสม วิธีหนึ่งคือเขียนโค้ดเพิ่มเติมเพื่อทดสอบโค้ดต้นฉบับของแอปพลิเคชัน ผู้ทดสอบจะพัฒนาการทดสอบเล็กๆ น้อยๆ สำหรับแต่ละกระบวนการหรือชุดกระบวนการในแอปพลิเคชัน วิธีนี้ต้องการให้ผู้ทดสอบมีความรู้เชิงลึกเกี่ยวกับโค้ด และมักจะทำโดยนักพัฒนา วิธีอื่นๆ ได้แก่ การทดสอบด้วยตนเองการทดสอบแบบทดลองและข้อผิดพลาด และการใช้เครื่องมือทดสอบตามที่เราจะอธิบายเพิ่มเติมในบทความนี้
สีขาวBox ตัวอย่างการทดสอบ
พิจารณาชิ้นส่วนของโค้ดต่อไปนี้
Printme (int a, int b) { ------------ Printme is a function int result = a+ b; If (result> 0) Print ("Positive", result) Else Print ("Negative", result) } ----------- End of the source code
เป้าหมายของไวท์Box การทดสอบในวิศวกรรมซอฟต์แวร์คือการตรวจสอบสาขาการตัดสินใจ ลูป และคำสั่งทั้งหมดในโค้ด
ในการใช้คำสั่งในตัวอย่างการทดสอบกล่องสีขาวด้านบน ให้ใช้คำสั่ง WhiteBox กรณีทดสอบจะเป็น
- ก = 1, ข = 1
- ก = -1, ข = -3
สีขาว Box เทคนิคการทดสอบ
เทคนิคการทดสอบแบบ White box ที่สำคัญคือการวิเคราะห์ Code Coverage การวิเคราะห์ Code Coverage ช่วยขจัดช่องว่างใน กรณีทดสอบ ห้องสวีท โดยจะระบุพื้นที่ของโปรแกรมที่ไม่ได้ใช้โดยชุดกรณีทดสอบ เมื่อระบุช่องว่างแล้ว คุณจะสร้างกรณีทดสอบเพื่อตรวจสอบส่วนที่ยังไม่ผ่านการทดสอบของโค้ด ซึ่งจะเป็นการเพิ่มคุณภาพของผลิตภัณฑ์ซอฟต์แวร์
มีเครื่องมืออัตโนมัติให้ดำเนินการ การวิเคราะห์ความครอบคลุมของโค้ดด้านล่างนี้เป็นเทคนิคการวิเคราะห์ความครอบคลุมบางส่วนที่ผู้ทดสอบกล่องสามารถใช้ได้:
ความคุ้มครองคำชี้แจง:- เทคนิคนี้ต้องการให้ทุกคำสั่งที่เป็นไปได้ในโค้ดได้รับการทดสอบอย่างน้อยหนึ่งครั้งในระหว่างกระบวนการทดสอบของ วิศวกรรมซอฟต์แวร์.
ครอบคลุมสาขา – เทคนิคนี้จะตรวจสอบทุกเส้นทางที่เป็นไปได้ (if-else และลูปแบบมีเงื่อนไขอื่นๆ) ของแอปพลิเคชันซอฟต์แวร์
นอกเหนือจากข้างต้น ยังมีความครอบคลุมหลายประเภท เช่น Condition Coverage, Multiple Condition Coverage, Path Coverage, Function Coverage เป็นต้น แต่ละเทคนิคมีข้อดีของตัวเองและมีความพยายามที่จะทดสอบ (ครอบคลุม) ทุกส่วนของโค้ดซอฟต์แวร์ การใช้ความครอบคลุมของใบแจ้งยอดและสาขา โดยทั่วไปแล้วคุณจะได้รับความครอบคลุมของรหัส 80-90% ซึ่งก็เพียงพอแล้ว
ต่อไปนี้เป็นสิ่งสำคัญสีขาวBox เทคนิคการทดสอบ:
- ความคุ้มครองคำชี้แจง
- ความคุ้มครองการตัดสินใจ
- ความคุ้มครองสาขา
- ความคุ้มครองสภาพ
- ความคุ้มครองหลายเงื่อนไข
- ความครอบคลุมของเครื่องจักรที่มีสถานะจำกัด
- ความครอบคลุมเส้นทาง
- ควบคุมการทดสอบการไหล
- การทดสอบการไหลของข้อมูล
ประเภทของสีขาว Box การทดสอบ
การทดสอบกล่องสีขาว ครอบคลุมการทดสอบหลายประเภทที่ใช้ในการประเมินการใช้งานแอปพลิเคชัน บล็อกโค้ด หรือแพ็คเกจซอฟต์แวร์เฉพาะ มีดังต่อไปนี้ —
- การทดสอบหน่วย: มักเป็นการทดสอบประเภทแรกที่ทำกับแอปพลิเคชัน การทดสอบหน่วย จะดำเนินการในแต่ละหน่วยหรือบล็อกของโค้ดในขณะที่ได้รับการพัฒนา การทดสอบหน่วยนั้นทำโดยโปรแกรมเมอร์เป็นหลัก ในฐานะนักพัฒนาซอฟต์แวร์ คุณพัฒนาโค้ดสองสามบรรทัด ฟังก์ชันเดียวหรืออ็อบเจ็กต์ และทดสอบเพื่อให้แน่ใจว่าทำงานได้ก่อนที่จะดำเนินการทดสอบหน่วยต่อไป ซึ่งจะช่วยระบุข้อบกพร่องส่วนใหญ่ได้ในช่วงต้นของวงจรการพัฒนาซอฟต์แวร์ จุดบกพร่องที่ระบุในขั้นตอนนี้มีราคาถูกกว่าและแก้ไขได้ง่าย
- การทดสอบการรั่วไหลของหน่วยความจำ: หน่วยความจำรั่วเป็นสาเหตุสำคัญที่ทำให้แอปพลิเคชันทำงานช้าลง ผู้เชี่ยวชาญด้าน QA ที่มีประสบการณ์ในการตรวจจับการรั่วไหลของหน่วยความจำถือเป็นสิ่งสำคัญในกรณีที่คุณมีแอปพลิเคชันซอฟต์แวร์ที่ทำงานช้า
นอกเหนือจากข้างต้นแล้ว ประเภทการทดสอบบางประเภทยังเป็นส่วนหนึ่งของการทดสอบทั้งแบบกล่องดำและแบบกล่องขาว ดังต่อไปนี้
- กล่องสีขาว Penetration Testing: ในการทดสอบนี้ ผู้ทดสอบ/นักพัฒนามีข้อมูลทั้งหมดเกี่ยวกับซอร์สโค้ดของแอปพลิเคชัน ข้อมูลเครือข่ายโดยละเอียด ที่อยู่ IP ที่เกี่ยวข้อง และข้อมูลเซิร์ฟเวอร์ทั้งหมดที่แอปพลิเคชันทำงานอยู่ จุดมุ่งหมายคือการโจมตีโค้ดจากหลายมุมเพื่อเปิดเผยภัยคุกคามด้านความปลอดภัย
- สีขาว Box การทดสอบการกลายพันธุ์: การทดสอบการกลายพันธุ์ มักใช้เพื่อค้นหาเทคนิคการเข้ารหัสที่ดีที่สุดเพื่อใช้ในการขยายโซลูชันซอฟต์แวร์
สีขาว Box เครื่องมือทดสอบ
ด้านล่างนี้เป็นรายชื่อเครื่องมือทดสอบกล่องสีขาวชั้นนำ
ข้อดีของไวท์ Box การทดสอบ
- การเพิ่มประสิทธิภาพโค้ดโดยการค้นหาข้อผิดพลาดที่ซ่อนอยู่
- การทดสอบกล่องสีขาวสามารถทำอัตโนมัติได้อย่างง่ายดาย
- การทดสอบจะละเอียดยิ่งขึ้นเนื่องจากโดยปกติจะครอบคลุมเส้นทางโค้ดทั้งหมด
- การทดสอบสามารถเริ่มได้ตั้งแต่เนิ่นๆ SDLC แม้ว่า GUI จะไม่พร้อมใช้งานก็ตาม
ข้อเสียของไวท์Box การทดสอบ
- การทดสอบกล่องสีขาวอาจซับซ้อนและมีราคาแพงมาก
- นักพัฒนามักจะไม่ชอบการทดสอบแบบกล่องสีขาว การทดสอบแบบกล่องสีขาวโดยนักพัฒนาไม่มีรายละเอียดและอาจทำให้เกิดข้อผิดพลาดในการผลิตได้
- การทดสอบกล่องสีขาวต้องใช้ทรัพยากรระดับมืออาชีพที่มีความเข้าใจโดยละเอียดเกี่ยวกับการเขียนโปรแกรมและการใช้งาน
- การทดสอบแบบ White-box ใช้เวลานาน ขณะที่แอปพลิเคชันการเขียนโปรแกรมขนาดใหญ่ต้องใช้เวลาในการทดสอบจนเสร็จสมบูรณ์
สรุป
- การทดสอบแบบ White Box อาจมีความซับซ้อนพอสมควร ความซับซ้อนที่เกี่ยวข้องนั้นขึ้นอยู่กับแอปพลิเคชันที่กำลังทดสอบ แอปพลิเคชันขนาดเล็กที่ดำเนินการง่ายๆ เพียงครั้งเดียวอาจทดสอบแบบ White Box ได้ภายในไม่กี่นาที ในขณะที่แอปพลิเคชันการเขียนโปรแกรมขนาดใหญ่ต้องใช้เวลาหลายวัน หลายสัปดาห์ หรือนานกว่านั้นในการทดสอบให้เสร็จสมบูรณ์
- การทดสอบกล่องสีขาวในการทดสอบซอฟต์แวร์ควรดำเนินการกับแอปพลิเคชันซอฟต์แวร์ในขณะที่ได้รับการพัฒนาทั้งหลังจากที่เขียนแล้ว และดำเนินการอีกครั้งหลังจากการปรับเปลี่ยนแต่ละครั้ง