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

באופן כללי, ניתן להפריד את ציפיות האיכות לשני רבדים עיקריים:

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

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

אז מה ההבדל בין בדיקות לאבטחת איכות?

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

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