הבדלים בין גרסאות בדף "הבטחת איכות תוכנה"

מ
בוט החלפות: לעיתים
מ (הוספת קישור לקוד פתוח)
מ (בוט החלפות: לעיתים)
 
==הבטחת איכות ובקרת איכות==
לעתיםלעיתים נוצר בלבול בין מושג '''הבטחת איכות תוכנה''' למושג [[בקרת איכות|בקרת איכות תוכנה]]. בזמן ש'''בקרת איכות''' תוכנה זהו תהליך הנועד לבדוק תאימות של המוצר אל מול הדרישות (ספציפיקציות), '''הבטחת איכות''' זהו שם כולל לכלל הפעולות הננקטות על מנת לייצר מוצר ברמת איכות נדרשת.
 
השלב הראשון ב'''הבטחת איכות תוכנה''' הוא שימוש בתהליכים מוגדרים ומתועדים של פיתוח תוכנה. כמו כל הליך ייצור, ייצור תוכנה מתחיל משלב הייזום, ממשיך דרך התכן, עיצוב, פיתוח, ותחזוקה של המוצר הסופי, וחוזר חלילה. בכל אחד משלבי מחזור החיים הזה, ננקטים אמצעים שונים ומגוונים להבטחת האיכות של המוצר הסופי.
דוגמה לתהליך המושפע מעקרונות הבטחת האיכות הוא שימוש ב[[תקן|תקנים]] עבור מסמכים המתעדים את הפיתוח (לדוגמה - תקן ISO-830, או [[נוהל מפת"ח]], לתיעוד דרישות תוכנה (SRS)).
 
דוגמה נוספת לתהליך שמושפע מעקרונות הבטחת האיכות הוא [[בקרת איכות|בקרת איכות תוכנה]], הלא הוא תהליך הבדיקות. השלב הראשון בבקרת איכות תוכנה הוא היכרות עם המערכת הנדרשת לבדיקה. השלב השני הוא כתיבת תסריטי בדיקה שמטרתם לבחון את כשירותם של המודלים השונים של התוכנה במצבים שונים. לעתיםלעיתים מתלווה לבדיקה הידנית או מחליפה אותה בדיקה באמצעות כלי בדיקה אוטומטיים (ישנם מספר מוצרים מסחריים, וגם כלים חופשיים תחת רישיון [[קוד פתוח]], כמו CUnit/[[JUnit]]/CPPUnit לבדיקות רמת היחידה, [[BugZilla]] לניהול תקלות, וכדומה). בבדיקה מסוג זה נכתב תסריט המורץ באופן אוטומטי על ידי התוכנה במצבים שונים. בין סוגי כלי הבדיקה הקיימים ניתן לציין כלי בדיקה שמטרתם לבדוק עומסים על אתרי אינטרנט. כלים אלו מדמים כניסה של משתמשים לאתר כדי לבחון את מהירויות הגלישה בעומסים שונים.
 
למרות שחברות העוסקות בייצור תוכנה מעסיקות אנשי הבטחת איכות, מהנדסי בדיקות תוכנה ובודקי תוכנה, במרבית התוכנות היוצאות לשוק נמצאים באגים. דבר זה נובע מכמה סיבות:
* יצירת תוכנה מדובגת היטב היא משימה שיכולה לארוך זמן רב מאוד, תוך התנגשות עם צורכי השיווק (Time to market).
* כמעט בכל מוצר תוכנה, פרט אולי לפשוטים ביותר, מספר המצבים האפשריים הוא כה גדול עד כדי שאי אפשר לבדוק את כולם. בתחום מדעי המחשב מוכרת הבעיה כ[[בעיית התפוצצות מצבים]], והיא נחקרת תחת התחום של [[אימות תוכנה]].
* באגים יכולים להיות "יחסיים" - מה שלאחד נראה תקין, לאחר יראה כתקלה, וכל עוד אין הגדרה מסוימת בדרישות התוכנה (ולעתיםולעיתים גם אם יש), תיקון הבאגים יהיה תוצר של פשרה בין צוותי הפיתוח והשיווק.
 
המטרה של בדיקות תוכנה היא לוודא שהמוצר עונה על הדרישות שהוצבו (ולידציה), וכן למצוא באגים בתחומים שלא מכוסים על ידי הדרישות (או לא מכוסים מספיק).