בדיקות קופסה לבנה

בדיקות קופסה לבנה (באנגלית: Whitebox testing) הן בדיקות תוכנה המתייחסות למבנה הפנימי של הרכיב או המערכת.

בניגוד לבדיקות קופסה שחורה, שמטרתן היא לבדוק את קיום הדרישות של הרכיב, בדיקות קופסה לבנה בודקות את נכונות החלקים הפנימיים של הרכיב. הבדיקות מבוססות על קוד המקור, ולכן נכתבות בעיקר על ידי מתכנתים, ולא על ידי בודקי קוד. בדיקות קופסה לבנה נעשות בעיקר ברמת בדיקות יחידה, אך יכולות להתבצע גם ברמת בדיקות אינטגרציה ובדיקות נסיגה.

טכניקות הבדיקה 
השאיפה היא לכתוב סט בדיקות שיוודאו את נכונות כל הקוד ברכיב. הבדיקות נכתבות מול הקוד, ומסתמכות על הידע של הבודק וההבנה שלו בלוגיקת הרכיב. באופן כללי, הבודק בוחר קלט שיבדוק חלק מסוים בקוד, ומשווה אותו עם הפלט שהוא מצפה לקבל. כדי להעריך את היקף הבדיקות שכתבנו, נשתמש במדדי כיסוי קוד.

דרך טובה להתחיל היא להבטיח כיסוי שורות קוד מרבי, שכל שורת קוד תרוץ פעם אחת לפחות.
לצורך כך, אפשר להיעזר בתרשימי זרימה של הרכיב, ולכתוב בעזרתם בדיקה לכל מסלול אפשרי. שיטה זו נקראת "בדיקת מסלולי בסיס", והיא מספקת מספר מינימלי של בדיקות שצריך לקבלת כיסוי שורות קוד מקסימלי.

בנוסף לכיסוי שורות קוד, חשוב גם לבדוק תקינות לולאות שמופיעות בקוד. בדיקת לולאות היא בדיקה שמריצה קלטים הבודקים לולאה מסוימת בקצוות שלה ובטווח הפעולה שלה.

יתרונות וחסרונות
יתרונות:
 הבדיקות עוזרות לגלות מקרי-קצה ושגיאות חבויות בקוד.
 הבדיקות מעודדות את הכותב להבין את קוד המקור היטב, ולשפר אותו.
 בגלל שהבדיקות מבוססות על הקוד, כאשר בדיקה נכשלת, יותר קל למצוא את שורות הקוד שאחראיות לבעיה.

חסרונות:
 הבדיקות מסובכות יחסית לכתיבה, ולכן הבודק חייב להיות בעל ידע במבנה הפנימי של המערכת ועם יכולות תכנות גבוהות.
 בגלל מספר המסלולים האפשריים הרב בקוד, לא תמיד ניתן לכתוב בדיקות לכל מסלול וחלק מהם לא יבדקו.
 אף על פי ששיטת בדיקה זו יכולה לגלות הרבה בעיות ושגיאות, היא לא בהכרח תגלה דרישות חסרות או חלקים לא ממומשים בקוד.

אוטומציה
כיום, ישנם מספר כלים לייצור אוטומטי של בדיקות קופסה לבנה. כלי אוטומציה כמו Pex יודעים לנתח את הקוד ולמצוא ערכי קלט מייצגים שיאפשרו מעבר במסלולים שונים בקוד.

אבטחת תוכנה 
בהקשר של בדיקות חדירות, שהן בדיקות שנעשות למערכת כדי לחפש חולשות אבטחה, בדיקות קופסה לבנה מהוות בדיקות בהן לתוקף יש את כל המידע על המערכת.

ראו גם
 בדיקות קופסה שחורה
 בדיקות תוכנה
 כיסוי קוד

קישורים חיצוניים

הערות שוליים

בדיקות תוכנה