עומר שמואלי – החלפת קריירה: מבדיקות ידניות לפיתוח אוטומציה

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

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

התעשייה משתנה

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

לדעתי, בדיקה ידנית היא עדיין השיטה הטובה ביותר כאשר בודקים פיצ'ר חדש לחלוטין. אבל מהר מאוד נעשה משעמם לבודק כאשר בודקים רגרסיה – בדיקה חוזרת המוודאת כי שינויים בקוד לא שברו את הפונקציונליות הישנה, שעבדה. לוודא שהכל באפליקצית האינטרנט עדיין עובד בכרום, פיירפוקס, מייקרוסופט אדג', אינטרנט אקספלורר 11, 10 ו-8 (או, חלילה, דפדפנים ישנים יותר מאינטרנט אקספלורר 8) זו מטלה די מתסכלת. אם המחשבה על ביצוע בדיקה למקרה מסויים גורמת לצוות אבטחת האיכות לחרוק שיניים קולקטיבית, אז המקרה הזה הוא מועמד מצויין לאוטומציה.

בעבר, אוטומציה של בדיקת מערכת הדפדפן הייתה תהליך יקר. חברות שרצו לבצע אוטומציה של בדיקת הדפדפן רכשו חבילות תוכנה יקרות כמו Rational Rose,  The Mercury Toolsetאו Segue Software's Silk Test, ואת כל פגישות ההדרכה הכרוכות בהן. זה השתנה כאשר Selenium WebDriver, ספרייה חינמית עם קוד-פתוח שמתאימה לעבודה עם ג'אווה, פייתון ורובי, נעשתה פופולרית. הספרייה הזו מדמה משתמש הלוחץ על כפתורים, מקליד טקסט לתוך תיבות טקסט ובוחר אלמנטים ברשת.

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

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

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

התחייב ללמוד תכנות

אני חייב להודות שבהתחלה התנגדתי ללמוד אוטומציה. אחרי יותר מ-15 שנים נעשיתי מומחה בבדיקות תוכנה. למה שאבחר להיות טירון מחדש? האם אני לא יכול להמשיך למצוא תפקידי בדיקת תוכנה באותה דרך ישנה שכבר ידעתי?

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

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

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

הבן כי השגת תארים והסמכות היא רק הצעד הראשון

השקעתי כל כך הרבה זמן ומאמץ על מנת להשיג תואר ראשון בשנת 1998 ותואר שני ב-2008, שזה הביך אותי שהתארים שהשגתי לא הספיקו.

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

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

תרגל כמו מטורף

גיליתי את קורס האון ליין של אלן ריצ'רדסון, Selenium 2: WebDriver Basics with Java, שנה לפני המחקר הגדול האחרון שלי. למרצה יש כישרון בהסברה פשוטה של בעיות מורכבות באמצעות פירוקן למספר שלבים. ההרצאות הקצרות כיסו לא רק את הבסיס אלא גם כללו את כל חומר הביניים או החומר המתקדם שהייתם רוצים המלווה את התלמיד בהתקנת Selenium WebDriver, Java, ו-IntelliJ IDEA.

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

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

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

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

נטוורקינג כמו מטורף

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

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

זהה הזדמנויות כאשר אתה רואה אותן

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

הייתי צריך לחשוב על זה מעט. ידעתי שהייתי צריך להתנסות בבדיקות אוטומטיות על מנת להמשיך את הקריירה שלי. חקרתי על החברה באינטרנט וגיליתי שזו חברה נהדרת לעבוד עבורה. ציינתי למגייסת שאני מחפש להיחשף לבדיקות אוטומטיות. שאלתי האם יהיה אפשרי לערב בתפקיד כ-20% חשיפה לבדיקות אוטומטיות? היא העבירה את האינפורמציה למנהל הגיוס.

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

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

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