סוגי בדיקות

סוגי בדיקות – QA כל מה שצריך לדעת בתור בודק תוכנה

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

 

בדיקות QA בסיסיות

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

בדיקות פונקציונליות מול בדיקות לא-פונקציונליות

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

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

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

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

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

בדיקות בהתאם לרמת הטכנולוגיה

סוגי בדיקות QA יכולים להשתנות גם בהתאם לטכנולוגיה ולפלטפורמה:

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

סוגי בדיקות לפי רמות הבדיקה

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

בדיקות יחידה (Unit Testing)

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

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

כלים נפוצים לבדיקות יחידה כוללים – JUnit לבדיקות בשפת Java ,NUnit לבדיקות בסביבת .NET וPyTest -לבדיקות בשפת .Python

בדיקות אינטגרציה (Integration Testing)

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

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

  • בדיקות אינטגרציה מלמטה למעלה – (Bottom-Up) מתחילים מהרכיבים ברמה הנמוכה ומתקדמים לרמות גבוהות יותר.
  • בדיקות אינטגרציה מלמעלה למטה – (Top-Down) מתחילים מהרכיבים ברמה הגבוהה ומתקדמים לרמות נמוכות יותר.
  • בדיקות אינטגרציה סנדוויץ' – (Sandwich) שילוב של שתי הגישות הקודמות.

בדיקות מערכת  (System Testing)

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

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

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

בדיקות קבלה (Acceptance Testing)

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

  • בדיקות קבלה משתמש (User Acceptance Testing – UAT) משתמשי הקצה בודקים את המערכת כדי לוודא שהיא עונה על צרכיהם.
  • בדיקות קבלה עסקיות (Business Acceptance Testing) מתמקדות בהיבטים העסקיים של המערכת.
  • בדיקות קבלה תפעוליות – (Operational Acceptance Testing) בודקות את המוכנות התפעולית של המערכת, כולל גיבוי, שחזור, התאוששות מאסון, וכו.'
  • בדיקות קבלה חוזיות – (Contract Acceptance Testing) בודקות את העמידה בדרישות שהוגדרו בחוזה.
  • בדיקות קבלה תקינה – (Regulatory Acceptance Testing) בודקות את העמידה בדרישות רגולטוריות.
סוגי בדיקות

סוגי בדיקות פונקציונליות

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

בדיקות שפיות (Sanity Testing)

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

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

בדיקות עשן  (Smoke Testing)

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

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

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

בדיקות רגרסיה (Regression Testing)

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

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

בדיקות חוקרות (Exploratory Testing)

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

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

סוגי בדיקות לא-פונקציונליות

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

בדיקות ביצועים (Performance Testing)

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

יש מספר סוגים של בדיקות ביצועים:

  • בדיקות עומס :(Load Testing) בוחנות את התפקוד של המערכת תחת עומס צפוי.
  • בדיקות סטרס :(Stress Testing) בוחנות את התפקוד של המערכת תחת עומס חריג או מצבי קיצון.
  • בדיקות סיבולת :(Endurance Testing) בוחנות את התפקוד של המערכת לאורך זמן.
  • בדיקות קיבולת :(Volume Testing) בוחנות את התפקוד של המערכת עם כמויות גדולות של נתונים.

בדיקות אבטחה (Security Testing)

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

בדיקות אבטחה כוללות:

  • בדיקות חדירה – (Penetration Testing) ניסיונות "לפרוץ" למערכת כדי לחשוף נקודות תורפה.
  • בדיקות זיהוי וניהול גישה – (Authentication and Authorization Testing) בודקות שרק משתמשים מורשים יכולים לגשת למערכת ולמשאבים שלה.
  • בדיקות הצפנה (Encryption Testing) בודקות שמידע רגיש מוצפן כראוי.
  • בדיקות SQL Injection בודקות את ההגנה מפני התקפות .SQL Injection
  • בדיקות – Cross-site Scripting (XSS) בודקות את ההגנה מפני התקפות .XSS

בדיקות שימושיות (Usability Testing)

בדיקות שימושיות בוחנות את קלות השימוש במערכת מנקודת המבט של המשתמש. הן מתמקדות בחוויית המשתמש  (UX) ובממשק המשתמש .(UI)

בדיקות שימושיות יכולות לכלול:

  • בדיקות נגישות – (Accessibility Testing) בודקות שהמערכת נגישה לאנשים עם מוגבלויות.
  • בדיקות שימושיות משתמשים (User Usability Testing) משתמשים אמיתיים מנסים לבצע משימות במערכת, והבודקים צופים ומנתחים את ההתנהלות שלהם.

בדיקות תאימות (Compatibility Testing)

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

בדיקות תאימות יכולות לכלול:

  • בדיקות תאימות דפדפן :(Browser Compatibility Testing) בודקות את התפקוד באפליקציות ווב על דפדפנים שונים.
  • בדיקות תאימות מערכת הפעלה :(OS Compatibility Testing) בודקות את התפקוד במערכות הפעלה שונות.
  • בדיקות תאימות מכשיר :(Device Compatibility Testing) בודקות את התפקוד במכשירים שונים, כמו טלפונים וטאבלטים מסוגים שונים.
  • בדיקות תאימות רזולוציה :(Resolution Compatibility Testing) בודקות את התפקוד ברזולוציות מסך שונות.

בדיקות לפי גישת הבדיקה

סוגי בדיקות יכולים גם להיות מחולקים לפי הגישה או המתודולוגיה שמשתמשים בה לבדיקה.

בדיקות קופסה שחורה (Black Box Testing)

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

מתי משתמשים בבדיקות קופסה שחורה?

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

דברים לשים לב אליהם

  • קשה לכסות את כל האפשרויות
  • עלולות להיות חזרות בבדיקות
  • קשה לאתר בעיות פנימיות או מבניות

בדיקות קופסה לבנה  (White Box Testing)  

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

תחומי שימוש בבדיקות קופסה לבנה:

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

אתגרים נפוצים:

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

בדיקות קופסה אפורה  (Gray Box Testing)

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

מגמות עתידיות בעולם בדיקות QA

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

  • שילוב בינה מלאכותית ולמידת מכונה בבדיקות AI :וML- הופכים לחלק מרכזי בבדיקות תוכנה, עם יכולת לזהות באופן אוטומטי תחומים בעייתיים, לייצר תרחישי בדיקה, ולנתח תוצאות ולמי שמעוניין להתעמק בנושא, קורס בינה מלאכותית יכול לספק בסיס מעולה.
  •  DevOps ו :Continuous Testingהאינטגרציה של בדיקות בתוך תהליכי DevOps הופכת לסטנדרט, עם דגש על בדיקות מתמשכות לאורך כל מחזור החיים של הפיתוח.
  • בדיקות אבטחה משולבות :אבטחת מידע הופכת לנושא מרכזי, עם דגש על שילוב בדיקות אבטחה בתוך תהליך הפיתוח מהשלבים המוקדמים.

סיכום – איך להפוך לבודק QA מקצועי יותר?

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

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

שאלות נפוצות

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

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

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

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

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

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

בהצלחה בדרככם בעולם הבדיקות הנרחב והמעניין!

נשמע מעניין? רוצים לשמוע עוד על אחד הקורסים שלנו?

מתלבט.ת מה ללמוד?

נשמח לעזור!
השאיר/י פרטים וקבל/י ייעוץ אישי בחינם!