Web Analytics
Privacy Policy Cookie Policy Terms and Conditions בדיקות יחידה - ויקיפדיה

בדיקות יחידה

מתוך ויקיפדיה, האנציקלופדיה החופשית

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

Crystal Clear | Scrum | Unified Process | XP

תחומים תומכים
ניהול פרויקטים | ניהול תצורה | תיעוד

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

תוכן עניינים

[עריכה] יתרונות

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

[עריכה] תהליך שינוי

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

[עריכה] פישוט תהליך השילוב

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

[עריכה] תיעוד

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

[עריכה] הפרדת ממשק ממימוש (הסתרת מידע)

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

[עריכה] מגבלות

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

[עריכה] גישות שונות של בדיקות יחידה

קיימות מספר גישות לביצוע של בדיקות יחידה.

[עריכה] קופסא לבנה, קופסא שחורה

  • בדיקות קופסה לבנה – בדיקות הכוללות סקירה של הקוד והארכיטקטורה (באנגלית Code and Design Review).
  • בדיקות קופסה שחורה – בדיקות של פעילות המערכת על ידי השוואת הקלט והפלט המתקבל לתוצרים הצפויים.

[עריכה] בדיקות ידניות מול בדיקות אוטומאטיות

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

[עריכה] Extreme programming

בדיקות יחידה קשורות קשר הדוק ל-Extreme programming, למרות שהן היו בשימוש עוד קודם. פיתוח מונחה בדיקות הינו שיטה חשובה ב-Extreme programming. כשמו כן הוא, הפיתוח מתחיל בהגדרת בדיקות היחידה ורק לאחר מכן מתחיל המימוש.

[עריכה] ראו גם

THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu