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

תוכן שנמחק תוכן שנוסף
Giladgar (שיחה | תרומות)
אין תקציר עריכה
Giladgar (שיחה | תרומות)
טכניקות הבדיקה שוכתב מרשימה לפסקה
שורה 5:
בעוד שמטרת בדיקות קופסה שחורה היא לבדוק את קיום ה[[דרישה (הנדסה)|דרישות]] של הרכיב,
בדיקות קופסה לבנה בודקות את נכונות החלקים הפנימיים של הרכיב.
הבדיקות מבוססות על ידע בקודקוד המקור, ולכן נכתבות בעיקר על ידי מתכנתים, ולא על ידי בודקי קוד. בדיקות קופסה לבנה נעשות בעיקר ברמת [[בדיקות יחידה]] אך יכולות להתבצע גם ברמת [[בדיקות אינטגרציה]] ו[[בדיקות נסיגה]].<ref name="ref1" />
 
 
== טכניקות הבדיקה ==
כשכותבים בדיקות קופסה לבנה, נרצה לכתוב סט בדיקות שיוודאו את נכונות כל שורות הקוד.
הטכניקות העיקריות לבדיקת קופסה לבנה הן:
 
* בדיקת מסלולי בסיס (Base Path testing) - סט של בדיקות שעוברות על כל המסלולים האפשריים בקוד לפי סדר מוגדר מראש.<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}}{{Verify source|date=February 2013}}</ref>
הדרך הטובה ביותר להתחיל היא להבטיח כיסוי שורות קוד מירבי.
* כיסוי הסתעפויות (Branch coverage) - עבור ביטויי הסתעפויות כמו ''if'', ''switch'', נעשית בדיקה של אחוז המקרים שהוערכו לכל ההסתעפויות.<ref name = ref1/> {{הבהרה|לענ"ד, כדאי להרחיב כאן.}}
לצורך כך, אפשר להעזר ב[[תרשים זרימה]] של הרכיב, ולכתוב בעזרתו בדיקה לכל מסלול אפשרי.
* בדיקת לולאות (Loop testing) - בדיקה שמריצה קלטים הבודקים את הלולאה בקצוות שלה ובתחום הפעולה שלה.<ref name="ref1" /> {{הבהרה|לענ"ד, יש כאן תרגמת לא מובנות}}
*שיטה זאת נקראת בדיקת מסלולי בסיס, (Baseוהיא Pathמספקת testing)מספר - סטמינימלי של בדיקות שעוברות על כל המסלוליםשצריך האפשרייםלכתוב בקודכדי לפישנעבור סדרבכל מוגדרשורות מראשהקוד.<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}}{{Verify source|date=February 2013}}</ref>
 
*בנוסף בדיקתלכיסוי שורות קוד, חשוב גם לבדוק תקינות לולאות (Loopשמופיעות testing)בקוד. בדיקת לולאות -היא בדיקה שמריצה קלטים הבודקים את הלולאה בקצוות שלה ובתחוםובטווח הפעולה שלה.<ref name="ref1" /> {{הבהרה|לענ"ד, יש כאן תרגמת לא מובנות}}