สีขาว Box การทดสอบ – คืออะไร เทคนิค ตัวอย่าง และประเภท

สีขาว Box การทดสอบ

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

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

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

สีขาว Box การทดสอบวิดีโอ

คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้

คุณยืนยันอะไรในไวท์ Box การทดสอบ?

การทดสอบกล่องสีขาวเกี่ยวข้องกับการทดสอบโค้ดซอฟต์แวร์สำหรับสิ่งต่อไปนี้:

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

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

ไวท์แสดงยังไง. Box การทดสอบ?

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

ขั้นตอนที่ 1) ทำความเข้าใจซอร์สโค้ด

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

ขั้นตอนที่ 2) สร้างกรณีทดสอบและดำเนินการ

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

สีขาวBox การทดสอบ

สีขาว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 ได้ภายในไม่กี่นาที ในขณะที่แอปพลิเคชันการเขียนโปรแกรมขนาดใหญ่ต้องใช้เวลาหลายวัน หลายสัปดาห์ หรือนานกว่านั้นในการทดสอบให้เสร็จสมบูรณ์
  • การทดสอบกล่องสีขาวในการทดสอบซอฟต์แวร์ควรดำเนินการกับแอปพลิเคชันซอฟต์แวร์ในขณะที่ได้รับการพัฒนาทั้งหลังจากที่เขียนแล้ว และดำเนินการอีกครั้งหลังจากการปรับเปลี่ยนแต่ละครั้ง