בדיקות תוכנה אוטומטיות הפכו בשנים האחרונות לחלק מרכזי מתהליך בדיקות התוכנה. ככל שמערכות הופכות מורכבות יותר, מספר הגרסאות גדל וקצב הפיתוח עולה, קשה יותר לבצע את כל הבדיקות באופן ידני בכל פעם שמתבצע שינוי במערכת.
כאן נכנסת לתמונה האוטומציה.
בדיקות אוטומטיות מאפשרות למחשב לבצע סדרה של פעולות בדיקה באופן אוטומטי, לבדוק את התוצאה שהתקבלה מול התוצאה הצפויה ולדווח על כשלים. אבל חשוב להבין: אוטומציה אינה "תחליף לבודק תוכנה". היא כלי שמאפשר לצוות הבדיקות לבצע בדיקות מסוימות מהר, בצורה עקבית ובתדירות גבוהה.
במאמר הזה נסביר מהן בדיקות תוכנה אוטומטיות, איך הן עובדות, מתי כדאי להשתמש בהן, מהם היתרונות והחסרונות שלהן ואיך אפשר להתחיל ללמוד אוטומציה גם בלי להיות מתכנת מנוסה.
מה זה בדיקות תוכנה אוטומטיות?
בדיקות תוכנה אוטומטיות, או Automation Testing, הן בדיקות שבהן משתמשים בקוד ובכלים ייעודיים כדי לבצע פעולות בדיקה באופן אוטומטי.
במקום שבודק יפתח אתר, יקליד שם משתמש, יקליד סיסמה, ילחץ על Login ויבדוק אם המשתמש עבר למסך הנכון, ניתן לכתוב בדיקה שתבצע את הפעולות האלה באופן אוטומטי.
לדוגמה:
- פתיחת דפדפן.
- כניסה לאתר.
- מעבר למסך התחברות.
- הזנת שם משתמש.
- הזנת סיסמה.
- לחיצה על כפתור התחברות.
- בדיקה שהמשתמש הגיע למסך הנכון.
- הפקת תוצאה של Pass או Fail.
אם הבדיקה הצליחה, המערכת מדווחת שהתרחיש עבר. אם התוצאה אינה תואמת למה שהוגדר מראש, הבדיקה נכשלת.
זהו הרעיון הבסיסי של אוטומציה בבדיקות תוכנה.
בדיקות ידניות לעומת בדיקות אוטומטיות
כדי להבין את היתרון של אוטומציה, כדאי להתחיל בהבדל בין שתי הגישות.
בדיקות ידניות
בבדיקה ידנית הבודק מבצע את הפעולות בעצמו.
לדוגמה, לאחר שינוי במערכת הוא עשוי לבדוק:
- התחברות.
- הרשמה.
- חיפוש.
- הוספת מוצר לעגלה.
- תשלום.
- שליחת טופס.
- יציאה מהמערכת.
היתרון הוא שבודק אנושי יכול לחשוב, להתאים את הבדיקה למצבים בלתי צפויים ולזהות בעיות שימושיות שלא תמיד ניתן להגדיר מראש.
בדיקות אוטומטיות
בבדיקה אוטומטית התרחיש מוגדר בקוד והמערכת מבצעת אותו.
לדוגמה, אפשר להגדיר:
Open website→ Enter username→ Enter password→ Click Login→ Verify dashboard appears
הבדיקה יכולה לרוץ שוב ושוב ללא צורך שבודק יבצע את כל הפעולות ידנית.
לכן, השאלה אינה האם בדיקות ידניות או אוטומטיות טובות יותר. בדרך כלל מדובר בשילוב בין שתי הגישות.
איך בדיקה אוטומטית עובדת?
בדיקה אוטומטית מורכבת בדרך כלל מכמה חלקים.
1. פעולה
הבדיקה מבצעת פעולה במערכת.
לדוגמה:
Click Login
2. נתוני בדיקה
הבדיקה משתמשת בנתונים מסוימים.
לדוגמה:
Username: test@example.comPassword: 123456
3. תוצאה צפויה
מגדירים מה אמור לקרות.
לדוגמה:
Expected: Dashboard is displayed
4. Assertion
זהו אחד המרכיבים החשובים ביותר בבדיקות אוטומטיות.
ה־Assertion בודק האם התוצאה בפועל תואמת לתוצאה הצפויה.
לדוגמה:
Expected: "Welcome"Actual: "Welcome"Result: PASS
או:
Expected: "Welcome"Actual: "Invalid password"Result: FAIL
בלי Assertions, אוטומציה יכולה לבצע פעולות רבות אך לא באמת לבדוק אם המערכת התנהגה כפי שצריך.
אילו סוגים של בדיקות אפשר לבצע באוטומציה?
אוטומציה אינה מוגבלת רק לבדיקות של אתרי אינטרנט.
אפשר להשתמש בה במספר שכבות.
בדיקות UI
בדיקות שמפעילות את ממשק המשתמש.
לדוגמה:
- לחיצה על כפתורים.
- מילוי טפסים.
- ניווט בין מסכים.
- בדיקת הודעות.
- בדיקת תפריטים.
- בדיקת תהליכי Login.
כלים כמו Playwright, Selenium ו־Cypress משמשים לבדיקות מסוג זה.
אם אתם מתחילים ללמוד Playwright, כדאי להכיר גם את המדריך:
Playwright – מה זה ואיך משתמשים בו לבדיקות אוטומטיות.
בדיקות API
אפשר לבצע אוטומציה גם ללא ממשק משתמש.
לדוגמה, במקום לפתוח אתר ולבצע Login דרך הדפדפן, ניתן לשלוח בקשת API ולבדוק:
- Status Code.
- Response.
- Headers.
- מבנה JSON.
- זמני תגובה.
- הרשאות.
- טיפול בשגיאות.
בדיקות API יכולות להיות מהירות מאוד ולכן הן שימושיות במיוחד בתהליכי בדיקות רציפים.
בדיקות E2E
E2E, או End-to-End Testing, בודקות תהליך שלם מנקודת המבט של המשתמש.
לדוגמה:
הרשמה↓Login↓חיפוש מוצר↓הוספה לעגלה↓Checkout↓אישור הזמנה
בדיקה כזו יכולה לוודא שלא רק רכיב בודד עובד, אלא שהתהליך כולו עובד יחד.
למי שרוצה ללמוד את הנושא לעומק, אפשר להמשיך אל המדריך לכתיבת בדיקת E2E ראשונה עם Playwright.
מה היתרונות של בדיקות אוטומטיות?
לאוטומציה יש מספר יתרונות משמעותיים, במיוחד במערכות שנמצאות בפיתוח מתמשך.
1. חיסכון בזמן
בדיקה שאדם צריך לבצע במשך שעה יכולה לעיתים להתבצע באמצעות אוטומציה בתוך דקות.
כאשר מדובר בעשרות או מאות תרחישים שחוזרים על עצמם, החיסכון עשוי להיות משמעותי.
2. אפשר להריץ את הבדיקות שוב ושוב
אחת החוזקות הגדולות של אוטומציה היא היכולת להריץ את אותו סט בדיקות פעמים רבות.
לדוגמה, לאחר כל שינוי בקוד ניתן להריץ סדרת בדיקות Regression.
כך ניתן לבדוק האם שינוי חדש גרם לתקלה בפונקציונליות שכבר עבדה.
במערכות SAP, לדוגמה, בדיקות רגרסיה הן חלק משמעותי מתהליך בדיקת שדרוגים. הרחבה בנושא ניתן למצוא במאמר בדיקות רגרסיה ב־SAP.
3. עקביות
אדם יכול לבצע את אותה בדיקה בצורה מעט שונה בכל פעם.
סקריפט אוטומטי יבצע בדרך כלל את אותן פעולות בדיוק בהתאם לקוד שנכתב.
זה חשוב במיוחד כאשר רוצים להשוות בין תוצאות של הרצות שונות.
4. זיהוי מהיר של תקלות
כאשר בדיקות אוטומטיות משולבות בתהליך הפיתוח, ניתן לזהות בעיות זמן קצר לאחר שהן נוצרו.
לדוגמה:
Developer commits code ↓Automated tests run ↓Test fails ↓Team investigates
במקום לגלות את הבעיה ימים או שבועות לאחר מכן, היא יכולה להתגלות סמוך להכנסת השינוי.
5. אפשר להריץ בדיקות ללא נוכחות של בודק
בדיקות אוטומטיות יכולות לרוץ גם בלילה, בסופי שבוע או כחלק מתהליך CI/CD.
כך צוות הפיתוח וה־QA מקבלים משוב בלי צורך להפעיל ידנית את כל הבדיקות.
6. כיסוי רחב יותר
כאשר יש מאות תרחישים, ביצוע ידני של כולם בכל גרסה עלול להיות יקר בזמן.
אוטומציה מאפשרת להגדיל את מספר הבדיקות שניתן לבצע באופן שוטף.
עם זאת, חשוב לזכור שכמות בדיקות גדולה אינה בהכרח מעידה על איכות גבוהה. גם בדיקות אוטומטיות צריכות להיות מתוכננות היטב.
מהם החסרונות של בדיקות אוטומטיות?
אוטומציה אינה פתרון קסם.
לצד היתרונות קיימים גם חסרונות שחשוב להכיר לפני שמתחילים.
1. עלות הקמה
כתיבת תשתית אוטומציה דורשת זמן.
צריך להגדיר:
- סביבת עבודה.
- Framework.
- מבנה פרויקט.
- נתוני בדיקה.
- דוחות.
- ניהול גרסאות.
- תהליכי הרצה.
לכן לא תמיד משתלם להפוך כל בדיקה לבדיקה אוטומטית.
2. תחזוקה
אפליקציות משתנות.
כפתור שהיה בעל ID מסוים יכול לקבל ID אחר. מסך יכול להשתנות. תהליך עסקי יכול להשתנות.
כאשר המערכת משתנה, גם בדיקות האוטומציה עלולות להישבר.
לכן אוטומציה דורשת תחזוקה שוטפת.
3. בדיקה אוטומטית יכולה להיכשל בגלל הבדיקה עצמה
לא כל Fail משמעותו שהמוצר פגום.
לפעמים:
- Locator השתנה.
- הנתונים השתנו.
- השירות לא היה זמין.
- סביבת הבדיקות נפלה.
- היה Timeout.
- הבדיקה נכתבה בצורה לא יציבה.
לכן בודק צריך לדעת לנתח את סיבת הכשל ולא רק לקרוא את המילה FAIL.
4. לא כל דבר כדאי לאוטומט
יש בדיקות שבהן שיקול דעת אנושי חשוב מאוד.
לדוגמה:
- בדיקות שמישות.
- בדיקות Exploratory.
- הערכת חוויית משתמש.
- בדיקה של עיצוב.
- תרחישים שמשתנים לעיתים קרובות.
- בדיקות חדשות שעדיין לא ברור אם יהפכו לחלק קבוע בתהליך.
במקרים כאלה בדיקה ידנית עשויה להיות יעילה יותר.
Playwright, Selenium או Cypress?
קיימים כיום מספר כלים מרכזיים לאוטומציה של בדיקות Web.
שלושה שמופיעים לעיתים קרובות הם:
- Playwright
- Selenium
- Cypress
לכל כלי יש מאפיינים שונים, ולכן כדאי להכיר את ההבדלים ביניהם לפני שבוחרים במה ללמוד.
ב־TESQA קיימת השוואה מפורטת בין Playwright, Cypress ו־Selenium.
בנוסף, מי שרוצה להתמקד בהבדל בין Playwright ל־Selenium יכול לקרוא את Playwright מול Selenium.
איך מתחילים ללמוד בדיקות אוטומטיות?
אחת הטעויות הנפוצות של מתחילים היא לנסות ללמוד הכול בבת אחת.
אין צורך להתחיל מעשר שפות תכנות וחמישה Frameworks.
אפשר להתקדם בצורה הדרגתית.
שלב 1: להבין בדיקות תוכנה
לפני שכותבים קוד, כדאי להבין מהי בדיקת תוכנה.
חשוב להכיר מושגים כמו:
- Test Case.
- Expected Result.
- Actual Result.
- Bug.
- Regression.
- Smoke Testing.
- Sanity Testing.
- Functional Testing.
- E2E.
- Test Environment.
מי שלא מבין בדיקות ידניות עלול לכתוב אוטומציה שמבצעת הרבה פעולות אבל לא באמת בודקת את המוצר בצורה נכונה.
שלב 2: ללמוד בסיס בתכנות
לא חייבים להיות מפתח Full Stack.
אבל כן צריך להבין יסודות כמו:
- Variables.
- Strings.
- Numbers.
- Arrays.
- Objects.
- Conditions.
- Loops.
- Functions.
- Error Handling.
JavaScript היא אפשרות טובה למי שרוצה להתחיל עם Playwright.
שלב 3: לבחור כלי אחד
במקום ללמוד Playwright, Selenium ו־Cypress במקביל, עדיף להתחיל עם כלי אחד.
לדוגמה:
JavaScript ↓Playwright ↓UI Testing ↓E2E Testing ↓API Testing ↓CI/CD
לאחר שמבינים כלי אחד לעומק, קל יותר להבין כלים אחרים.
שלב 4: ליצור בדיקה ראשונה
התרגיל הראשון לא צריך להיות מורכב.
אפשר להתחיל מתרחיש פשוט:
Open website↓Click Login↓Enter username↓Enter password↓Click Submit↓Verify successful login
המטרה בשלב הראשון היא להבין את הקשר בין הפעולה לבין הקוד.
שלב 5: ללמוד Assertions
זה שלב חשוב מאוד.
לדוגמה:
Click Login
הוא רק ביצוע פעולה.
לעומת זאת:
Verify that Dashboard is visible
הוא חלק הבדיקה.
לכן צריך להבין היטב Assertions, ולא להסתפק בכתיבת רצף פעולות.
שלב 6: ללמוד Locators
כדי שאוטומציה תוכל ללחוץ על אלמנט, היא צריכה למצוא אותו.
לשם כך משתמשים ב־Locators.
לדוגמה:
By roleBy textBy labelBy CSS selectorBy ID
בחירה נכונה של Locator משפיעה מאוד על היציבות והתחזוקה של הבדיקה.
שלב 7: ללמוד Debugging
כאשר בדיקה נכשלת, צריך לדעת להבין למה.
לדוגמה:
Test Failed ↓Read error ↓Check screenshot ↓Check locator ↓Check test data ↓Check application ↓Identify root cause
זהו חלק חשוב מאוד מהעבודה של Automation QA.
שלב 8: ללמוד Git
אוטומציה בסביבת עבודה אמיתית כמעט תמיד קשורה לניהול קוד.
לכן כדאי להכיר:
- Git.
- Commit.
- Branch.
- Pull Request.
- Merge.
- GitHub או GitLab.
שלב 9: להכיר CI/CD
בשלב מתקדם יותר כדאי ללמוד כיצד להריץ את הבדיקות באופן אוטומטי כחלק מתהליך הפיתוח.
לדוגמה:
Code Change ↓Git ↓CI Pipeline ↓Automated Tests ↓Test Report
כך האוטומציה הופכת מכלי שמופעל ידנית למרכיב אינטגרלי בתהליך הפיתוח.
האם צריך לדעת לתכנת כדי ללמוד Automation QA?
זו אחת השאלות הנפוצות ביותר.
התשובה היא שכן, במידה מסוימת.
Automation QA דורש בדרך כלל יכולת לקרוא ולכתוב קוד, להבין לוגיקה ולפתור בעיות.
אבל אין צורך להתחיל ברמת תכנות של מפתח תוכנה מנוסה.
אפשר להתחיל מיסודות ולהתקדם בהדרגה.
לדוגמה:
const username = "test@example.com";if (username) { console.log("Username exists");}
הדוגמה פשוטה, אבל היא כבר כוללת משתנה ותנאי.
בהמשך ניתן לעבור ל־Functions, Arrays, Objects, Async/Await, עבודה עם APIs ועוד.
האם בודק ידני יכול לעבור לאוטומציה?
בהחלט.
למעשה, ידע בבדיקות ידניות יכול להיות בסיס חשוב ללימוד Automation QA.
בודק ידני שכבר יודע לחשוב על:
- תרחישי בדיקה.
- מקרי קצה.
- סיכונים.
- תהליכים עסקיים.
- Regression.
- בדיקות שליליות.
צריך להוסיף בעיקר שכבת תכנות וכלים.
אפשר לחשוב על המעבר כך:
Manual QA +Programming Basics +Automation Tool +API +Git +CI/CD =Automation QA
היתרון הוא שהבודק אינו מתחיל מאפס. הוא כבר מבין מה צריך לבדוק, וכעת הוא לומד כיצד לגרום למחשב לבצע חלק מהבדיקות האלה.
מה לא כדאי לעשות כשמתחילים?
לא ללמוד עשרות כלים במקביל
אין צורך ללמוד הכול.
עדיף כלי אחד לעומק מאשר חמישה כלים ברמה שטחית.
לא להתחיל מקוד מורכב
אם עדיין קשה להבין Variables ו־Functions, אין סיבה להתחיל בבניית Framework מורכב.
לא להפוך כל בדיקה לאוטומטית
צריך לחשוב על ערך עסקי.
אם בדיקה משתנה כל שבוע, ייתכן שעלות התחזוקה שלה תהיה גבוהה מדי.
לא להעתיק קוד בלי להבין אותו
אפשר להשתמש בדוגמאות ובכלי AI כדי ללמוד, אבל חשוב להבין מה הקוד עושה.
אחרת, ברגע שהבדיקה תיכשל, יהיה קשה מאוד לתקן אותה.
איך נראית סביבת Automation QA אמיתית?
בארגון אמיתי האוטומציה היא בדרך כלל חלק ממערכת גדולה יותר.
דוגמה אפשרית:
Developer ↓Git ↓CI/CD ↓Automated Tests ↓Playwright / Selenium ↓Application ↓Test Results ↓Report ↓QA / Development Team
האוטומציה יכולה להשתלב גם בבדיקות Regression, Smoke, E2E ו־API.
במערכות ארגוניות מורכבות, כמו מערכות SAP, קיימת חשיבות גם להבנת תהליכים עסקיים, ממשקים ואינטגרציות. לכן מי שעובד בסביבת SAP יכול לשלב ידע עסקי וידע בדיקות עם כלים אוטומטיים בהתאם לארכיטקטורה של המערכת.
האם אוטומציה מחליפה את אנשי ה־QA?
לא נכון להסתכל על אוטומציה רק כעל "החלפה של בודקים".
אוטומציה מחליפה בעיקר ביצוע ידני של פעולות שניתן להגדיר ולחזור עליהן.
בודק עדיין נדרש כדי:
- להחליט מה לבדוק.
- להבין דרישות.
- לזהות סיכונים.
- לחשוב על תרחישים.
- לנתח תוצאות.
- לחקור תקלות.
- לבצע Exploratory Testing.
- להבין את המשתמש ואת התהליך העסקי.
במילים אחרות, אוטומציה יכולה לבצע בדיקה, אבל היא אינה מחליפה בהכרח את החשיבה שמאחורי הבדיקה.
אז מתי כדאי להשתמש באוטומציה?
כדאי לשקול אוטומציה במיוחד כאשר מדובר בבדיקה שהיא:
- חוזרת על עצמה.
- יציבה יחסית.
- חשובה למערכת.
- יקרה לביצוע ידני.
- נדרשת לעיתים קרובות.
- בעלת תוצאה ברורה שניתן למדוד.
- מתאימה להרצה ללא התערבות אנושית.
לדוגמה, Login הוא מועמד טבעי יחסית לאוטומציה כאשר התהליך יציב ונדרש לבדיקה שוב ושוב.
לעומת זאת, בדיקת חוויית משתמש חדשה עשויה להתאים יותר לבדיקה אנושית.
כמה זמן לוקח ללמוד אוטומציה?
אין תשובה אחת שמתאימה לכולם.
הזמן תלוי ברקע הקודם.
מי שמגיע ללא ידע בבדיקות ובתכנות יצטרך לבנות בסיס רחב יותר.
מי שכבר מכיר QA וצריך להוסיף JavaScript ו־Playwright יכול להתקדם מהר יותר.
מומלץ לחשוב על הלימוד כתהליך:
חודש ראשון
יסודות QA + JavaScript בסיסי.
חודש שני
Playwright + Locators + Assertions + בדיקות UI.
חודש שלישי
E2E + API + Git + Debugging.
בהמשך
CI/CD, ארכיטקטורת Automation, Design Patterns, Reporting ועוד.
הקצב בפועל תלוי בזמן הלימוד, בניסיון ובתרגול.
מסלול מומלץ למי שמתחיל מאפס
אם הייתי צריך לפשט את הדרך למספר שלבים, הייתי בונה אותה כך:
1. QA בסיסי ↓2. Test Cases ↓3. JavaScript בסיסי ↓4. Playwright ↓5. Locators ↓6. Assertions ↓7. E2E ↓8. API ↓9. Git ↓10. CI/CD
אין צורך למהר לשלב הבא לפני שהשלב הקודם ברור.
לסיכום
בדיקות תוכנה אוטומטיות הן דרך להשתמש בקוד ובכלים ייעודיים כדי לבצע בדיקות באופן עקבי, מהיר וחוזר על עצמו.
הן יכולות לחסוך זמן, להגדיל את תדירות הבדיקות, לזהות תקלות מוקדם ולתמוך בתהליכי CI/CD. מצד שני, הן דורשות השקעה ראשונית, תחזוקה, ידע טכני ותכנון נכון.
הנקודה החשובה ביותר למי שמתחיל היא שאוטומציה אינה רק "לכתוב קוד שמקליק על אתר".
Automation QA הוא שילוב של שלושה דברים:
הבנת בדיקות + חשיבה לוגית + יכולת טכנית.
לכן, מי שכבר מכיר QA אינו צריך להתחיל מאפס. אפשר לקחת את הידע הקיים בבדיקות, להוסיף בהדרגה תכנות וכלים כמו Playwright, ולבנות יכולת אוטומציה שלב אחר שלב.
אם אתם בתחילת הדרך, עדיף להתחיל מתרחיש קטן שעובד, להבין בדיוק כיצד הוא פועל, ורק אחר כך להרחיב את הידע לכלים, תשתיות וסוגי בדיקות נוספים.
לקרוא מאמרים זה נחמד אבל לא יביא אותך לתוצאה שאתה רוצה, בדיוק בשביל זה הכנו עבורך את הקורס הדיגיטלי המהיר, תוך שעתיים וחצי תלמד את תחום הבדיקות ידניות, תוכל להתחיל לעבוד מהבית דרך FIVERR או ולהתכונן נכון לראיונות עבודה שיעזרו לך לצלוח אותם. כנס כאן הקורס ממוקד בבדיקות תוכנה ידניות הנותן בסיס חזק לתחום.
לעבוד מהבית כבודק תוכנה עם FIVERR >> לחץ כאן