לחיות את חייה(של איכות התוכנה)../images/Emo39.gif
בחיי כל תוכנה חייבים להיות מספר שלבים כדי שתצליח. מערכת אבטחת איכות התוכנה (SQA) אמורה ללוות אותם כל הדרך למטה מהדרישות (שבשמיים...) ועד לכתיבת הקוד של כל מודול או Unit, ובחזרה למעלה דרך העמדת המערכת השלימה ועד קבלתה על ידי הלקוח שהציב את הדרישות. זהו מודל V Shape הידוע, שהשלבים הראשונים בו עשויים להפתיע את מי שלא מכיר... 1. תחילת בדיקת התוכנה היא בבדיקה של הדרישות (Requirement) עצמן, ובעיקר בדיקת המיפרט הפונקציונלי (FS – Functional Specification) ביחס אליהן. בנוסף לבדיקה טכנית של קיום התאמה פורמלית מלאה (Traceability Matrix) בין הסעיפים, עלינו לבדוק שאכן כל סעיף במיפרט עונה על הדרישה המתאימה, וכמובן שכל הדרישות מכוסות. 2. השלב הבא במורד ה-V הוא בדיקת התאמת העיצוב המערכת (High Level Design = System Design) למיפרט הנ"ל, באותו אופן. שני השלבים האלו, שתכופות מדלגים עליהם, הם השלבים בהם בקרת איכות התוכנה היא היעילה ביותר! עלות תיקונו של באג המתגלה בשלבים אלו היא לעתים כעלות מחיקת שורה מודפסת והדפסת שורה אחרת במקומה... ובמקרים קשים יותר, תכנון מחדש של חלק מהמערכת. אותו באג עצמו, אם יתגלה לאחר כתיבת הקוד והאינטגרציה, תיקונו עשוי לעלות הון ועדיין לא לספק לגמרי את הדרישה המקורית בגלל אילוצי זמן וסיבוכיות. מיותר לציין שלביצוע שלבים אלו אין שום כלי טכני שיסייע לבודק האיכות, אלא רק יכולתו להבין את המערכת כמכלול ואת פרטיה, ולשאול את השאלות הנכונות. 3. השלב הבא הוא בדרך כלל באחריות המתכנתים, וזו בדיקת כל מודול או יחידת קוד עצמאית (Unit Test) מול העיצוב המפורט (Detailed Design) שנגזר מעיצוב המערכת. בקטע זה המתכנת חייב לרוב להיות גם איש איכות ולבצע את הבדיקה. תפקיד ה-QA הוא לוודא את ביצוע הבדיקה, למשל על ידי הטמעת נהלים של ביצוע ודיווח Unit Test. כאן הושלם השלב הפרטני, ה"נמוך" ביותר (טכנית) של כתיבת הקוד ובדיקתו לאור הדרישות.
בחיי כל תוכנה חייבים להיות מספר שלבים כדי שתצליח. מערכת אבטחת איכות התוכנה (SQA) אמורה ללוות אותם כל הדרך למטה מהדרישות (שבשמיים...) ועד לכתיבת הקוד של כל מודול או Unit, ובחזרה למעלה דרך העמדת המערכת השלימה ועד קבלתה על ידי הלקוח שהציב את הדרישות. זהו מודל V Shape הידוע, שהשלבים הראשונים בו עשויים להפתיע את מי שלא מכיר... 1. תחילת בדיקת התוכנה היא בבדיקה של הדרישות (Requirement) עצמן, ובעיקר בדיקת המיפרט הפונקציונלי (FS – Functional Specification) ביחס אליהן. בנוסף לבדיקה טכנית של קיום התאמה פורמלית מלאה (Traceability Matrix) בין הסעיפים, עלינו לבדוק שאכן כל סעיף במיפרט עונה על הדרישה המתאימה, וכמובן שכל הדרישות מכוסות. 2. השלב הבא במורד ה-V הוא בדיקת התאמת העיצוב המערכת (High Level Design = System Design) למיפרט הנ"ל, באותו אופן. שני השלבים האלו, שתכופות מדלגים עליהם, הם השלבים בהם בקרת איכות התוכנה היא היעילה ביותר! עלות תיקונו של באג המתגלה בשלבים אלו היא לעתים כעלות מחיקת שורה מודפסת והדפסת שורה אחרת במקומה... ובמקרים קשים יותר, תכנון מחדש של חלק מהמערכת. אותו באג עצמו, אם יתגלה לאחר כתיבת הקוד והאינטגרציה, תיקונו עשוי לעלות הון ועדיין לא לספק לגמרי את הדרישה המקורית בגלל אילוצי זמן וסיבוכיות. מיותר לציין שלביצוע שלבים אלו אין שום כלי טכני שיסייע לבודק האיכות, אלא רק יכולתו להבין את המערכת כמכלול ואת פרטיה, ולשאול את השאלות הנכונות. 3. השלב הבא הוא בדרך כלל באחריות המתכנתים, וזו בדיקת כל מודול או יחידת קוד עצמאית (Unit Test) מול העיצוב המפורט (Detailed Design) שנגזר מעיצוב המערכת. בקטע זה המתכנת חייב לרוב להיות גם איש איכות ולבצע את הבדיקה. תפקיד ה-QA הוא לוודא את ביצוע הבדיקה, למשל על ידי הטמעת נהלים של ביצוע ודיווח Unit Test. כאן הושלם השלב הפרטני, ה"נמוך" ביותר (טכנית) של כתיבת הקוד ובדיקתו לאור הדרישות.