בדיקות קופסה לבנה – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
אין תקציר עריכה
מ הסבת תג ref לתבנית:הערה#
שורה 1:
[[קובץ:WhiteBoxTesting1.png|ממוזער|בדיקות קופסה לבנה]]
'''בדיקות קופסה לבנה''' (באנגלית '''Whitebox testing''') הן בדיקות תוכנה המתייחסות למבנה הפנימי של הרכיב או המערכת.<ref name{{הערה|שם="ref1" />}}
 
בניגוד ל[[בדיקות קופסה שחורה]], שמטרתן היא לבדוק את קיום ה[[דרישה (הנדסה)|דרישות]] של הרכיב,
בדיקות קופסה לבנה בודקות את נכונות החלקים הפנימיים של הרכיב.
הבדיקות מבוססות על קוד המקור, ולכן נכתבות בעיקר על ידי מתכנתים, ולא על ידי בודקי קוד. בדיקות קופסה לבנה נעשות בעיקר ברמת [[בדיקות יחידה]], אך יכולות להתבצע גם ברמת [[בדיקות אינטגרציה]] ו[[בדיקות נסיגה]].<ref name{{הערה|שם="ref1" />}}
 
== טכניקות הבדיקה ==
שורה 11:
דרך טובה להתחיל היא להבטיח כיסוי שורות קוד מרבי, שכל שורת קוד תרוץ פעם אחת לפחות.
לצורך כך, אפשר להיעזר ב[[תרשים זרימה|תרשימי זרימה]] של הרכיב, ולכתוב בעזרתם בדיקה לכל מסלול אפשרי.
שיטה זו נקראת בדיקת מסלולי בסיס, והיא מספקת מספר מינימלי של בדיקות שצריך לקבלת כיסוי שורות קוד מקסימלי.<ref name{{הערה|שם=ref1>|{{cite journal|last=Williams|first=Laurie|title=White-Box Testing|pages=60–61, 69|url=http://www.chaudhary.org/WhiteBox.pdf|accessdate=13 February 2013}}</ref>}}
 
בנוסף לכיסוי שורות קוד, חשוב גם לבדוק תקינות לולאות שמופיעות בקוד. בדיקת לולאות היא בדיקה שמריצה קלטים הבודקים לולאה מסוימת בקצוות שלה ובטווח הפעולה שלה.<ref name{{הערה|שם="ref1" />}} {{הבהרה|לענ"ד, יש כאן תרגמת לא מובנות}}
 
==יתרונות וחסרונות==
'''יתרונות:'''
* הבדיקות עוזרות לגלות מקרי-קצה ושגיאות חבויות בקוד.<ref name{{הערה|שם=adv>|{{cite journal|last=Ehmer Khan|first=Mohd|title=Different Forms of Software Testing Techniques for Finding Errors|journal=IJCSI International Journal of Computer Science Issues|date=May 2010|volume=7|issue=3|pages=12|url=http://ijcsi.org/papers/7-3-1-11-16.pdf|accessdate=12 February 2013}}</ref>}}
* הבדיקות מעודדות את הכותב להבין את קוד המקור היטב, ולשפר אותו.<ref name{{הערה|שם=adv />}}
* בגלל שהבדיקות מבוססות על הקוד, כאשר בדיקה נכשלת, יותר קל למצוא את שורות הקוד שאחראיות לבעיה.<ref name{{הערה|שם=ref1 />}}
 
'''חסרונות:'''
* הבדיקות מסובכות יחסית לכתיבה, ולכן הבודק חייב להיות בעל ידע במבנה הפנימי של המערכת ועם יכולות תכנות גבוהות.<ref name{{הערה|שם=adv />}}
* בגלל מספר המסלולים האפשריים הרב בקוד, לא תמיד ניתן לכתוב בדיקות לכל מסלול וחלק מהם לא יבדקו.<ref name{{הערה|שם=adv />}}
* אף על פי ששיטת בדיקה זו יכולה לגלות הרבה בעיות ושגיאות, היא לא בהכרח תגלה דרישות חסרות או חלקים לא ממומשים בקוד.<ref name{{הערה|שם=adv />}}
 
== אוטומציה==
כיום, ישנם מספר כלים לייצור אוטומטי של בדיקות קופסה לבנה. כלי [[בדיקות תוכנה ממוכנות|אוטומציה]] כמו [[Pex(software)|Pex]] יודעים לנתח את הקוד ולמצוא ערכי קלט מייצגים שיאפשרו מעבר במסלולים שונים בקוד.<ref name{{הערה|שם=pex>|{{cite journal|title=Pex, Automated White box Testing|url=http://research.microsoft.com/en-us/projects/pex/}}</ref>}}
 
==אבטחת תוכנה==