האם יש צורך בQA ?

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

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

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

בשנים שאני מתכנת, שמתי לב כי כאשר יש אנשי QA אשר צריכים למצוא בעיות, כמות הבעיות עולה, ולא תמיד בבעיות אמיתיות, לפעמים בעיות של חוסר הבנה, לחץ להגיש דוחות, כתיבה לא נכונה של מערכות בדיקה וכיוב' …

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

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

אני מוצא את עצמי לרוב בתעשיה בדעת מיעוט. אני גם לא יוצר לרוב בדיקות אוטומטיות לדברים שאני יוצר, כי הצלחתי למצוא שהן לא משקפות את המצב האמיתי, אלא בדיקות של פונקציונליות שאני יוצר בעצמי ולא מערכת טסטים מסודרת. כלומר אני כותב תוכנית קטנה שמריצה פונקציה או סדרה קטנה של פונקציות ואני עושה שימוש באותן הפונקציות גם במערכת הגדולה, אך ללא מערכת מסודרת של unit test. וזה כי עולם הטלפוניה מסובך יותר. אני יכול לבדוק האם אני מדווח דברים נכון, אני יכול לבדוק האם אלגוריתם לחישוב כלשהו נכון, אני לא יכול לבדוק מערכת טלפוניה בצד השני, היות וזה בלתי אפשרי לדמות התנהגות של כל טלפון, כל ספק טלפוניה וכיוב' … קוד שעובד עם 40 ספקי טלפוניה ו 99.9% מהטלפונים בשוק, יכול ליפול על ספק סורר אחד, או בעיה בטלפון בודד, והבעיה היא בכלל לא אצלך, אבל לוקח המון זמן ואנרגיה לגלות זאת.

מה הכוונה ?

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

אז אפשר להבין כי העולם מסובך מאוד, ולא פשוט מספיק בשביל לכתוב תסריטי בדיקה "אוטומטיים".

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

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

2 מחשבות על “האם יש צורך בQA ?

  1. יוסי ב

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

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

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s