תחום ה-QA, או בדיקות התוכנה, נחשב לאחד מהמקצועות הוותיקים בתחום ההייטק. כמעט מאז שהומצאו תוכנות המחשב, נדרש כוח עבודה מיומן שיבדוק את אותן התוכנות, הן במקרים שבהם המשתמש מפעיל אותן בשימוש סביר והן כאשר מוזן מידע שגוי לתוכנות. אז מה בעצם עושה בודק תוכנה וכיצד ניתן להיכנס לתחום ולהשתלב בחברות הייטק שונות, במשרה מבוקשת ומתגמלת?
המטרה של בדיקות התוכנה היא לאתר את השגיאות או את המצבים שבהם התוכנה עשויה לקרוס, כאשר היא נמצאת בשימוש על ידי גולש (אם מדובר בתוכנה און ליין) או על ידי משתמש במחשב לוקלי. מטרתו של הבודק למצוא סיטואציות שבהן התוכנה אינה מספקת מידע נכון, או קורסת לחלוטין. לעתים מדובר בנתיב בתוכנה שאיש לא יגיע אליו לעולם, אך עלול להיות נקודת תורפה של התוכנה בעתיד.
QA או בודק תוכנה לומד כיצד לקרוא מסמכים מדויקים עם הנחיות כיצד לבדוק כל תוכנה ומבצע את הבדיקות בזו אחר זו. בודקי התוכנה משמשים היום בחברות לבניית אתרים, בבתי תוכנה גדולים ואף בתעשייה הביטחונית. גם גופים פיננסיים גדולים בישראל ובעולם מעסיקים בודקי תוכנה כחלק מהצוות הפנימי, על מנת לבדוק תוכנות שכותבים מתכנתים העובדים בחברה.
בדיקות תוכנה מתבצעות בדרך כלל בשתי שיטות עיקריות. בדיקות תוכנה ידניות, שבהן בודק התוכנה מדמה משתמש ממוצע ועובר (על פי תסריט כתוב מראש) מסך אחר מסך, מזין נתונים בתוכנה ובודק את הפלט שהתקבל ממנה. בדיקות ידניות אינן מצריכות, בדרך כלל, כל ידע מוקדם בתחום התוכנה מעבר לשימוש בסיסי במקלדת ובעכבר ומיומנויות אינטרנט בסיסיות אם מדובר בתוכנה און ליין.
הדרך השנייה לביצוע QA היא באמצעות בדיקות אוטומטיות. בדיקות אלו לרוב מתוכנתות מראש, ומאפשרות לבדוק מספר רב של מסכים, כמו גם בדיקות במצבי עומס על אתרי אינטרנט ועל תוכנות. בדיקות אלו מצריכות מעט יותר ידע, שגם אותו ניתן ללמוד באמצעות קורס ייעודי כמו לימודי בדיקת תוכנה.
כאשר לומדים קורס בדיקת תוכנה לומדים את העקרונות הבסיסיים של תפעול תוכנות בסביבות עבודה שונות וכן לומדים את הדרך שבה כותבים מסמכי בדיקות ואת הדרך הנכונה לקריאתן. בודקי תוכנה מיומנים יותר לומדים גם לכתוב בדיקות אוטומטיות ולזהות דפוסים שאינם תקינים בתפעול התוכנה הקיימת.
מעבר לכך, קיימות היום גם תוכנות המשמשות לתיעוד פעילות בלתי תקינה של התוכנה, או "באגים". אלה, בתורם, עוברים למתכנתים שכתבו את התוכנה ולאחר שתיקנו אותם נבדקת מחדש אותה הפונקציונליות על מנת לבדוק שהבאג תוקן.
לסיכום, בדיקות תוכנה מאפשרות להיכנס להייטק בתחום מרתק בעל דרישה גוברת והולכת. למעשה, מרבית בתי התוכנה היום זקוקים לבודקי תוכנה נוספים על מנת לוודא את איכות המוצר המוגמר שהן מתכנתות. לימודי בדיקות תוכנה מכשירים היום את צוות ה-QA שיהיה חלק מחוד החנית בתחום זה בעתיד.
כמעט וכל ארגון היום צריך בודק תוכנה QA שיהיה אחראי על בדיקתם של המוצרים הדיגיטלים. אבל זה שיש ביקוש גבוה לאנשי QA בתעשייה הבנו, ואם בעבר מנכ"לי חברות היו שואלים: "מה זה QA?" כיום כולם מודעים לעובדה שמדובר בתפקיד מאוד חשוב, כן, גם אם הוא קצת מרגיז את אנשי הפיתוח והמתכנתים. אבל למה בכלל כדאי להגיע לשם? אז ראשית כל, מדובר בכניסה לעולם ההייטק, מבלי הצורך של לדעת מתמטיקה, להיות עם ציון גבוה בפסיכומטרי או להחזיק בתעודת בגרות עם ציונים מרהיבים. מה שחשוב הוא הרצון והתשוקה לתחום.
מה זאת אומרת רצון ותשוקה? ראשית כל, אתם צריכים להראות עניין בעולמות הפיתוח והתכנות, זה לא אומר שאתם צריכים להיות טכניים או להבין בשפות פיתוח, אלא באמת להראות שאתם מתעניינים בתחום. מה עוד צריך אתם שואלים? לדעת ראש התחום והמרצים שלנו, שמכירים היטב מן הסתם את הפרסונות הקיימות בתעשייה, הם אמרו לנו מהן תכונות האופי הדרושות לכל מי שרוצה להיות איש QA (בדרך כלל אלו גם יסיימו בהצלחה רבה קורס QA):
סקרנות
תשומת לב לפרטים הקטנים
פרפקטציונזם
היכולת לתת הארות והערות
תקשורת בין אישית טובה
אגב, במידה ולא ידעתם, מרבית מהמתכנתים והאנשים הכשרוניים ביותר בעולם ההייטק, התחילו את דרכם בתור אנשי QA, חלקם התקדמו אל עולם האוטומציה, ואחרים אל תחום הפיתוח, תכנות ועוד.
אני חושב שהיתרון הגדול ביותר בתחום ה-QA, היא הכניסה היחסית מהירה אליו, כיוון שהקורס שלנו אורך כ-4 חודשים בלבד (לפחות במסלול בוקר), ואם מדובר על מסלול ערב, אז 9 חודשים (למי שרוצה לשלב עבודה בנוסף לקורס). תחשבו על כך, בתוך זמן קצר של 4 חודשים, אפשר להגיע אל תעשיית ההייטק. לעבוד בארגון נחשב, להיות חלק ממערך שלם שפיתח מוצר דיגיטלי, לא משנה אם זו אפליקציית היכרויות, אתר של חברת ביטוח או אפילו משחק וידיאו.
המשכורות בתחילת הדרך עומדות על 7,500 עד 10,000, זה משתנה מארגון לארגון וכמובן תלוי בעובד ואם היה לו קצת ניסיון אחר במקום אחר. אבל שכל בודק תוכנה QA אינו נכנס לשם בזכות המשכורת הגבוהה, אלא בגלל שהוא רוצה להיות חלק ממערך שכולו גאוות יחידה, ליהנות מתנאים באמת כיפים, ועל הדרך (כשאין קורונה) להיות בחו"ל, לקבל תלושים לחג ועוד.
אם תהיתם, שוק ההייטק כרגע מאוד צמא לעובדים, ישנו מחסור של 10,000 עובדים במשק הייטק (!), על פי הרשות לחדשנות.
ממחקר נרחב שעשינו על הסטודנטים והבוגרים שלנו, הם מתפצלים אל הקהלים הבאים:
חיילים משוחררים - אלו שמעוניינים לרכוש מקצוע כעת, לחסוך ולעבוד בראש שקט, ורק לאחר מכן לטוס לחו"ל ואולי גם לעשות תואר, במידת הצורך כמובן.
אנשים בגילאי 25 עד 30 ללא תואר או מקצוע - לא כל אחד היום ממהר לעשות תואר, יש כאלה שמשכו את זה עד העשור הרביעי בחייהם, וזה בסדר גמור, אבל הם מיצו את העניין של העבודות הזמניות והם רוצים להגיע אל עולם ההייטק, בצורה מהירה ויעילה, ולכן הם פונים אל תחום ה-QA.
בעלי תארים שעושים הסבת מקצוע - מאלו שמחזיקים בתואר במשפטים ועד אלו שעסקו בתחומי ההפקות והמוסיקה, באמת שראינו אצלנו בהאקריו סטודנט מכל מצב ומכל מקצוע שרוצה להגיע לעולם ה-QA. מרביתם הם אלו שפשוט מיצו את התחום שלהם ורצו לעבור לתחום שיותר מעניין אותם, ואחרים פשוט הבינו שהם לא מוצאים עבודה בעזרת התואר שלהם והם ביצעו 'חישוב מסלול מחדש'.
יש המון סוגי בדיקות בעולם ה-QA, ולכל מי שנכנס לפה ורוצה לדעת מה זה QA, הגעתם למקום הנכון, כתבתי לכם, בעזרת ראש התחום והמרצים שלו, 7 סוגי בדיקות תוכנה שכל אחד חייב להכיר:
בדיקות שימושיות –
אחת מהבדיקות הבסיסיות שמתבצעות על כל מוצר דיגיטלי באשר הוא, לבדוק כמה ליוזר/המשתמש העתידי נוח להשתמש במוצר.
Accessibility / בדיקות נגישות –
בשנים האחרונות, ודי בצדק, התפתחה לה המגמה שמתחשבת בבעלי מוגבליות, בין אם אלו עיוורים, חרשים עיוורי צבעים וכו' - האפליקציה, האתר או כל דבר אחר, חייבים להיות נגישים עבורם. לפה נכנס תפקידם של אנשי ה-QA, שיבדקו כיצד המוצר עובד עבורם.
Functional / בדיקות פונקציונליות –
כשמפתחים מוצר, מאפיינים אותו וכותבים מהי המטרה הראשית שלו, האם מדובר על אפליקציה להזמנת מוצרים מהסופר? או משחק למובייל שבו צריך לחסל מפלצות מרושעות? את כל המסמכים הללו שומרים, ולאחר הפיתוח (או במהלכו) איש ה-QA בודק ומוודא שבאמת הכל עובד על פי המטרות הראשונות שאליו הוא נועד.
Non Functional / בדיקות לא פונקציונליות –
מאחורי כל מוצר, צריך לחשוב בצורה מתחכמת איך המוצר יכול לעשות לנו קצת "תקלות" או יותר נכון "תקלות לא צפויות". על אנשי ה-QA לבדוק איך המערכת תתפקד תחת עומסים שונים, מה הן יהיו רמת הביצועים שלהם וכו'.
GUI / בדיקות ממשק לקוח –
אולי זה נשמע משעמם, אבל זה מאוד חיוני, האם הפורמט של השדות מילוי בתוכנה תקין ופעיל? איפה יש דאטה שכדאי למלא? לכמה תווים ניתן להגיע בכל שורה וכו'? בקיצור - יש פה המון דברים קריטיים, שבלעדיהם התוכנה לא תצא לפועל כפי שצריך.
Sanity & Smoke / בדיקות שפיות ועשן -
ה-בדיקה של המוצר, לפחות בתחילתו. אנשי ה-QA בודקים באופן בסיסי את התוכנה, על מנת לדעת אם בכלל אפשר להיכנס לבדיקות מעמיקות יותר.
Compatibility / בדיקות תאימות -
האם התוכנה שפתחנו תעבוד גם על לינוקס ועל MAC? האם האפליקציה תעבוד כמו שצריך גם על מכשיר של ONE PLUS או שהיא עובדת כמו שצריך רק על מכשירי סמסונג? בקיצור - צריך לבצע בדיקות תוכנה שבאמת יוודאו שהאפליקציה או התוכנה שלנו יעבדו על מכשירים ומערכות הפעלה שונות.