בדיקות אוטומטיות – המדריך המלא

בדיקות אוטומטיות הן אחד התחומים המרכזיים בעולם ה-QA המודרני. במדריך הזה נבין מהן בדיקות אוטומטיות, מתי משתמשים בהן, איך הן מתבצעות, אילו כלים קיימים, מה ההבדל בין Selenium ל-Playwright, איך מתחילים ללמוד אוטומציה ומה באמת צריך לדעת כדי להשתלב בתחום.

מהן בדיקות אוטומטיות?

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

לדוגמה, נניח שיש באתר מסך התחברות. בבדיקה ידנית, בודק תוכנה יכול להקליד שם משתמש, סיסמה, ללחוץ על "כניסה" ולבדוק שהמשתמש הגיע למסך המתאים.

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

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

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

בדיקות אוטומטיות לעומת בדיקות ידניות

בדיקות ידניות ובדיקות אוטומטיות אינן מתחרות זו בזו. ברוב הארגונים הן משלימות זו את זו.

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

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

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

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

למה בכלל צריך אוטומציה?

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

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

כאן נכנסת האוטומציה.

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

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

מתי כדאי להפוך בדיקה לאוטומטית?

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

המטרה האמיתית היא להפוך לאוטומטיות את הבדיקות שבהן האוטומציה מספקת ערך.

בדיקה מתאימה במיוחד לאוטומציה כאשר:

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

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

סוגי בדיקות שניתן לבצע באוטומציה

בדיקות UI

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

בדיקות רגרסיה

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

בדיקות API

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

בדיקות אינטגרציה

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

בדיקות End-to-End

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

איך בדיקה אוטומטית עובדת?

מאחורי בדיקה אוטומטית קיימים בדרך כלל כמה מרכיבים.

  1. תרחיש: מה אנחנו רוצים לבדוק?
  2. נתוני בדיקה: אילו נתונים נדרשים לביצוע הבדיקה?
  3. פעולות: אילו פעולות המערכת צריכה לבצע?
  4. Expected Result: מה התוצאה שאנחנו מצפים לקבל?
  5. Assertion: כיצד הקוד יוודא שהתוצאה נכונה?
  6. דיווח: כיצד נדע האם הבדיקה עברה או נכשלה?

לדוגמה, בבדיקת התחברות:

פעולה: הזנת שם משתמש וסיסמה נכונים.

פעולה: לחיצה על Login.

ציפייה: המשתמש מועבר לדף הבית.

Assertion: כתובת הדף או רכיב מסוים בדף תואמים לציפייה.

כלים נפוצים לבדיקות אוטומציה

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

בין הכלים והטכנולוגיות הנפוצים ניתן למצוא:

  • Selenium
  • Playwright
  • Cypress
  • Appium
  • Postman ובדיקות API אוטומטיות
  • JUnit
  • TestNG
  • PyTest

כדאי להכיר גם את המאמר 20 כלים לבדיקות אוטומציה שכדאי להכיר.

Selenium מול Playwright

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

Playwright הוא כלי מודרני יותר שמאפשר לבצע בדיקות בדפדפנים שונים ומספק יכולות מתקדמות להתמודדות עם תרחישים מודרניים באפליקציות Web.

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

למי שרוצה להעמיק בהשוואה, מומלץ לקרוא את המאמר Selenium מול Playwright – איזה כלי אוטומציה עדיף?.

מה צריך לדעת כדי להתחיל באוטומציה?

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

הבסיס כולל בדרך כלל:

  • הבנה טובה של תהליכי QA.
  • כתיבת Test Cases.
  • היכרות עם HTML ו-CSS.
  • הבנה בסיסית של HTTP.
  • היכרות עם API.
  • שפת תכנות אחת לפחות.
  • עבודה עם Git.
  • היכרות עם Framework של אוטומציה.
  • יכולת לקרוא שגיאות ולנתח Logs.
  • הבנה בסיסית של CI/CD.

לכן, אוטומציה אינה רק "ללמוד כלי". צריך להבין גם מה בודקים ולמה.

איזו שפת תכנות כדאי ללמוד?

אין שפה אחת שמתאימה לכל מצב. בין השפות הנפוצות בעולם האוטומציה ניתן למצוא JavaScript או TypeScript, Java, Python ו-C#.

אם המטרה היא לעבוד עם Playwright, JavaScript או TypeScript הן בחירות טבעיות. Python נפוצה מאוד גם היא בעולם הבדיקות והאוטומציה, בעוד Java ו-C# נפוצות בסביבות ארגוניות רבות.

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

האם צריך לדעת לתכנת כדי לעבוד באוטומציה?

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

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

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

מה ההבדל בין Automation Tester לבין QA ידני?

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

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

בפועל, יש לא מעט תפקידים שבהם אנשי QA משלבים בדיקות ידניות ואוטומטיות.

אם עדיין לא ברור לך מה עושה בודק תוכנה ביום עבודה, כדאי לקרוא את בודק תוכנה – מה עושה QA ביום עבודה?.

מהי תשתית אוטומציה?

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

תשתית טובה מאפשרת לצוות להוסיף בדיקות חדשות בלי לשכפל שוב ושוב את אותו קוד.

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

ככל שמספר הבדיקות גדל, החשיבות של תשתית מסודרת עולה.

Page Object Model

אחת הגישות המוכרות בארכיטקטורת אוטומציה היא Page Object Model, או POM.

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

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

מה זה Regression Automation?

Regression Automation היא אוטומציה שמטרתה לוודא שפיצ'רים קיימים ממשיכים לעבוד לאחר שינוי במערכת.

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

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

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

אוטומציה ו-CI/CD

אחד היתרונות הגדולים של אוטומציה הוא האפשרות לשלב את הבדיקות בתהליך הפיתוח.

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

כך ניתן לקבל משוב מוקדם יותר על בעיות.

לדוגמה:

מפתח מבצע שינוי בקוד → הקוד עולה ל-Repository → מתבצע Build → בדיקות אוטומטיות רצות → מתקבלת תוצאה → במקרה של כשל, הצוות מקבל התראה.

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

מהם היתרונות של בדיקות אוטומטיות?

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

מהם החסרונות והאתגרים?

לצד היתרונות, אוטומציה יוצרת גם עלויות ואתגרים.

  • זמן ראשוני לבניית התשתית.
  • צורך בידע בתכנות.
  • תחזוקת בדיקות כאשר המערכת משתנה.
  • בדיקות שעלולות להפוך ל-Flaky.
  • זמן ניתוח כאשר בדיקה נכשלת.
  • צורך בתחזוקת סביבות והרצות.

אחת הבעיות המוכרות היא בדיקה לא יציבה, או Flaky Test. מדובר בבדיקה שלעתים עוברת ולעתים נכשלת למרות שלא חל שינוי אמיתי במוצר.

אם מצטברות בדיקות כאלה, האמון של הצוות בתוצאות האוטומציה יורד. לכן איכות האוטומציה חשובה לא פחות מכמות הבדיקות.

איך מתחילים ללמוד בדיקות אוטומטיות?

למתחילים מומלץ לא לנסות ללמוד הכול בבת אחת. מסלול הדרגתי יכול להיות יעיל יותר.

  1. להבין היטב את עולם ה-QA.
  2. ללמוד בדיקות ידניות וכתיבת תרחישי בדיקה.
  3. להכיר HTML, CSS ו-DOM.
  4. ללמוד יסודות של שפת תכנות.
  5. להכיר Git.
  6. ללמוד API ו-HTTP.
  7. לבחור כלי אוטומציה אחד.
  8. לבנות מספר בדיקות פשוטות.
  9. ללמוד Framework מסודר.
  10. להוסיף דוחות, ניהול נתונים ו-Assertions.
  11. להכיר CI/CD.
  12. לבנות פרויקט אישי שניתן להציג בראיון עבודה.

מי שעדיין נמצא בשלב הכניסה לעולם ה-QA יכול להתחיל מהמאמר בודק תוכנה ללא ניסיון – איך מתחילים בתחום QA.

איך נראה פרויקט אוטומציה אמיתי?

פרויקט אוטומציה אמיתי אינו מסתכם בכתיבת כמה בדיקות.

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

בהמשך בונים את התשתית, יוצרים בדיקות, מנהלים נתונים, מוסיפים Assertions ומחברים את ההרצות למערכת הדיווח או ל-CI/CD.

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

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

אילו טעויות נפוצות עושים באוטומציה?

מנסים להפוך הכול לאוטומטי

לא כל תרחיש מצדיק השקעה באוטומציה. צריך לבחון את העלות מול הערך.

כותבים קוד שקשה לתחזק

בדיקה שעובדת היום אך קשה להבין ולשנות מחר עלולה להפוך לנטל.

מתעלמים מתכנון

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

מתמקדים רק ב-UI

לא כל בדיקה חייבת להפעיל את הדפדפן. לעיתים בדיקת API תהיה מהירה, יציבה ומתאימה יותר.

לא מתחזקים את הבדיקות

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

האם אוטומציה מתאימה למי שמגיע מ-QA ידני?

בהחלט. למעשה, ידע בבדיקות תוכנה הוא בסיס חשוב לאיש אוטומציה.

מי שמגיע מ-QA ידני כבר מכיר מושגים כמו Test Case, Expected Result, Regression, Severity, Priority, תרחישים עסקיים ותהליכי עבודה של צוות פיתוח.

השלב הבא הוא להוסיף יכולות טכניות: תכנות, עבודה עם כלים, API, Git, Frameworks ו-CI/CD.

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

הקשר בין QA, בדיקות ידניות ואוטומציה

כדאי לחשוב על התחומים האלה כחלק מאותו עולם.

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

איש מקצוע טוב צריך להבין מתי להשתמש בכל גישה.

מפת הלמידה המומלצת

QA בסיסי → בדיקות תוכנה → בדיקות ידניות → יסודות תכנות → API → כלי אוטומציה → Framework → Git → CI/CD → פרויקט אוטומציה

מאמרים נוספים בנושא אוטומציה

עמוד זה הוא עמוד Pillar בתחום הבדיקות האוטומטיות. מומלץ להמשיך ממנו למאמרים המעמיקים בנושאים השונים:

סיכום

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

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

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

בשורה התחתונה

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

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

קורס לבדיקות תוכנה מדויק

לעבוד מהבית כבודק תוכנה עם FIVERR >> לחץ כאן

כתיבת תגובה