רוב סוגי בדיקות התוכנה משתמשים בתוכנית בדיקה מוגדרת בקפידה כדי להבטיח כיסוי. עם זאת, בעוד פרמטרים אלה מכסים רבים מהאירועים של שימוש בתוכנה, הם לא תמיד יחקו את התנהגותו של משתמש שאינו מכיר את האפליקציה ופשוט מנסה ליצור איתה אינטראקציה באופן חקרני: Enter monkey בדיקה.
במאמר זה, נסקור את כל מה שקשור לבדיקות קופים, כולל תוכנות לבדיקת קופים, תהליכים, סוגים, גישות ועוד.
מהי בדיקת קופים?
בדיקת קופים היא טכניקת בדיקת תוכנה פופולרית יותר ויותר. זה כרוך בשליחת תשומות אקראיות לאפליקציה כדי לדמות את הבלתי צפויות של אינטראקציה עם ממשק משתמש.
המטרה היא למצוא באגים או קריסות שאולי יהיה קשה לזהות עם מקרי בדיקה מוגדרים מראש. מבחן קוף מחקה כיצד אדם ללא ניסיון או ידע באפליקציה עשוי לחקור את התוכנה באופן אקראי.
טכניקה זו היא אופציה טובה הן לבדיקת עומס והן לבדיקת מתח יישומים. למעשה, בדיקות מספקות תשומות אקראיות מתמשכות בניסיון לשבור את האפליקציה.
יש קווי דמיון רבים בין בדיקת קופים לבדיקות אד-הוק, במיוחד, אופיים האקראי וחוסר ההסתמכות על תוכנית בדיקה. עם זאת, יש מספיק הבדלים בין השניים כדי לראות בהם גישות שונות.
בעוד שחלק מהמפתחים מציעים שבדיקת קופים היא סוג של בדיקות אד-הוק, הבדל משמעותי אחד בין השניים הוא שבדיקת קופים יכולה להתבצע על ידי אנשים ללא כל ידע על האפליקציה.
בדיקת קופים עוסקת בחוסר תוכנית בדיקה. מדובר בהזנת תשומות אקראיות במטרה לקרוס את התוכנה.
למה זה נקרא בדיקת קופים?
אין הסכמה מדוע טכניקה זו נקראת בדיקת קופים. עם זאת, יש כמה תיאוריות משכנעות מאחורי השם.
תיאוריה 1: משפט הקופים האינסופי
התיאוריה הראשונה טוענת שהשם קשור למשפט הקופים האינסופי, מטפורה המשמשת לדיון בהסתברות סטטיסטית. בקיצור, הוא קובע שאם קוף ישב מול מכונת כתיבה וימעך מפתחות אקראיים במשך אינסוף זמן, בשלב מסוים הוא היה מייצר את היצירות השלמות של וויליאם שייקספיר.
הרעיון כאן הוא שבדיקת קופים מדמה את הריסוק האקראי הזה של מפתחות, ועם מספיק זמן, היא תכסה כל אירוע שהאפליקציה תתמודד בה בייצור.
תיאוריה 2: "הקוף" של מקינטוש
התיאוריה האחרת היא שהשם מגיע מאפליקציית MacOS משנת 1983 בשם "הקוף". בקיצור, הצוות שעבד על מחשב המקינטוש הראשון רצה למצוא דרך לבדוק את המחשב שלהם.
הם טענו שאם היה להם קוף שמתרחק בטירוף על המקשים ומסתובב סביב העכבר, זה יעזור להם לבדוק את חוסנו של המחשב. לא היה להם קוף חי בהישג יד, אז הם בנו אפליקציה שיכולה לדמות סוג זה של שימוש, וקראו לה "הקוף".
מדוע בדיקת קופים חשובה?
הסיבה הגדולה לכך שבדיקת קופים חשובה היא שהם עוזרים לצוותים לגלות מקרי קצה או התנהגויות בלתי צפויות בתוך אפליקציה. הרעיון כאן הוא שמפתחים יכולים להשתמש בבדיקות קופים לצד שיטות מסורתיות יותר כדי לקבל תחושה טובה יותר כיצד האפליקציה תתקבל בטבע.
אפילו בדיקה מקיפה של מוצר אינה יכולה להתחרות בעשרות אלפי משתמשים או יותר העוסקים באפליקציה לאורך זמן. באחוז קטן מהמקרים הללו, המשתמשים יבקשו מהאפליקציה לעשות משהו לא צפוי. חשיפת כל התרחישים הללו באמצעות מקרי בדיקה היא כמעט בלתי אפשרית.
בדיקות קופים מנסים לכסות את התרחישים הכמעט אקראיים הללו. כאשר מפתחים בונים מקרה מבחן, הם נוטים להיות בעלי ידע אינטימי של האפליקציה. הם מבינים מהן מטרות המשתמש, והם יודעים את רצף האינטראקציות הטוב ביותר שהם צריכים להשתמש כדי להשיג משהו בתוך אפליקציה.
משמעות האקראית של כניסות אלה היא שהאפליקציה נבדקת בדרכים שהמפתחים לא שקלו. בסך הכל, זה משפר את החוסן והעמידות הכללית של תוכנה ומבטיח שהיא יכולה להיכנס לעולם ולהתמודד עם חוסר החיזוי של מגוון רחב של משתמשים מבלי לקרוס.
מתי כדאי להשתמש בבדיקת קופים?
בדיקת קופים היא טכניקת בדיקה משלימה מצוינת. היתרון הגדול ביותר שלו טמון ביכולתו למצוא באגים בלתי צפויים שלא יתגלו בשיטות בדיקות תוכנה מסורתיות יותר. ככזה, עדיף להשתמש בו לצד שיטות כמו:
בדרך כלל, מפתחים מעסיקים בדיקות קופים בשלב מוקדם בתהליך הבדיקה. זה שימושי במיוחד כשיש חוסר בתוכניות בדיקה מוגדרות מראש שאפשר להסתמך עליהן.
כיצד מתבצעת בדיקת קופים?
בעבר הלא כל כך רחוק, בדיקת קופים בוצעה באופן ידני. בודקים הועסקו כדי ללחוץ על כפתורים, להזין טקסט, לבחור אובייקטים וכן הלאה כדי לראות כיצד המערכת תעמוד בפני קלט לא שגרתי. יש כאן בעיות ברורות. ראשית, זה די גוזל זמן. שנית, אין ערובה לכך שפעולות אלו יכסו כל אירוע.
דוגמאות לבדיקת קופים ידנית
הנה כמה דוגמאות לאופן שבו מתבצעת בדיקת קופים ידנית. זה גם יכול לתת לך מושג מה בדיקות קופים אוטומטיות מבקשות לדמות.
- הבוחן מנווט באתר על ידי לחיצה על קישורים אקראיים כדי לראות אם הם יכולים לקרוס את האפליקציה או להוביל לדפים בלתי צפויים
- בודק מזין טקסטים אקראיים לשדה טופס כדי לראות כיצד היישום מגיב
- הבוחן גורר ומפיל סמלים ואובייקטים כדי לראות אם הם מתנהגים כמצופה או מעלים תוצאות לא רצויות.
סוגים שונים של בדיקות קופים
ישנם שלושה סוגים עיקריים של מבחני קופים שבהם מפתחים משתמשים כדי לגלות מידע ברור על החוסן של היישומים שלהם.
1. בדיקת קוף מטומטם
בדיקת קוף מטומטמת מתארת גישה שבה הבוחן אינו יודע דבר על האפליקציה הנבדקת. במקום זאת, הבוחן מתבקש לחטט ללא מודע לזרימת העבודה, ללחוץ על כפתורים, להזין טקסט וכו'. טכניקה זו יכולה לסייע בגילוי פגמים משמעותיים שהמפתחים אינם מודעים להם.
2. בדיקת קופים חכמה
בעזרת בדיקת קופים חכמה, הבוחן יודע מעט על האפליקציה ועל מטרותיה ואפילו יש לו מידע מפורט על אופן פעולתה. תהליך זה משתמש גם בסוג ממוקד יותר של קלט אקראי שנועד לדחוף את היישום מעבר לגבולות מסוימים. שימוש בגישה זו טוב גם לבדיקת מתח וגם לבדיקת עומס.
3. בדיקת קופים מבריקה
בדיקת קופים מבריקה היא הרמה הבאה מבדיקת קופים חכמה. הבוחן בעל ידע חזק ומקיף באפליקציה והוא נבחר על סמך ידע זה. פיקוח זה יכול לעזור לבודק לגלות הרבה באגים מכיוון שהם צריכים להבין את המוצר מנקודת מבטו של המשתמש.
יתרונות וחסרונות של בדיקת קופים
לפני שתחליט להשתמש בטכניקת בדיקת הקופים, עליך להבין את היתרונות והחסרונות שלה.
יתרונות בדיקת קופים
1. מציאת באגים נדירים או נסתרים
אולי היתרון המשכנע ביותר של בדיקת קופים הוא היכולת של הטכניקה לחשוף באגים, פגמים או התנהגויות שעלולות להתגלות אחרת. מציאת מקרי הקצה הללו מאתגרת עם טכניקות בדיקה מסורתיות, ולכן בדיקת קופים היא דרך מוצקה לבדוק קריסות, פגמים בנתונים וכל דבר אחר שמאיים על יציבות האפליקציה.
2. זה מבטיח חוסן
בדיקת קופים נועדה לראות כיצד אפליקציה מגיבה לתנאים הבלתי צפויים שיתמודדו איתה במהלך שימושים בעולם האמיתי. כאשר אפליקציה מועברת לידיו של המשתמש, היא תגרום להרבה כניסות שונות שהמפתחים לא יכולים לחזות. בדיקת קופים מחקה את המצב הזה, מה שמוביל לבנייה אמינים יותר.
3. עלות-תועלת
בהשוואה לסוגי בדיקות אחרים, בדיקת קופים היא חסכונית מאוד. יש לכך כמה סיבות. ראשית, אינך צריך להשקיע זמן רב בעיצוב מקרי שימוש עבור האפליקציה שלך. בשלב הבא, כלי תוכנה לבדיקת קופים הם אוטומטיים במידה רבה, מה שמפנה למפתחים זמן למשימות אחרות, וחוסך כסף.
4. רבגוניות
אחד הדברים הטובים ביותר בבדיקת קופים הוא שהבדיקות יכולות להתבצע על ידי אנשים ללא רקע טכני. אכן, במקרים מסוימים, עדיף שיהיה מישהו ירוק לחלוטין. יתרה מכך, הבדיקות הללו די פשוטות להגדרה, מה ששוב מפחית את ההסתמכות על מהנדסים מיומנים.
5. איתור באגים מוקדם
איתור ופתרון באגים בשלב מוקדם של מחזור חיי הפיתוח חוסך זמן בהמשך הדרך. בדיקת קופים מציגה רמה של אקראיות לבדיקה, שיכולה לעזור לך למצוא פגמים בקוד שלך בזמן שקל לתקן.
חסרונות בדיקת קופים
1. כיסוי
בעוד שבדיקת קופים יכולה להביא לשיפור כיסוי הבדיקות, היא חסרה את היסודיות המתוכננת והאסטרטגית של סוגי בדיקות אחרים. למעשה, מכיוון שאתה מפוצץ את האפליקציה בכניסות אקראיות, אתה נתון לחסדי הכאוס במציאת באגים. זה לא אומר שהוא לא ימצא הכל, אבל בלי אסטרטגיה ברורה ומוגדרת מראש, אתה לא יכול להיות בטוח ב-100% שהכל נלכד.
2. אפליקציות מוגבלות
בדיקת קופים אינה מתאימה לכל סוג של יישום. זה נהדר עבור אפליקציות מורכבות עם הרבה תכונות ופונקציות שונות, שבאופן מכריע ביותר, יש פוטנציאל לאינטראקציות בלתי צפויות של משתמשים. תוכניות המציעות פונקציות נוקשות יותר וניתנות לחיזוי נוטות פחות להפיק תועלת מבדיקות אלו.
3. גוזל זמן
בדיקת קופים ידנית גוזלת זמן רב. זה דורש הרבה אינטראקציות עם מודולים ותוכנה, ללא ערובה שבכל הפעלה יגלו באגים. נכון, אתה יכול להפוך את התהליך לאוטומטי, מה שחוסך לא מעט זמן ומשאבים.
4. חיובי שווא
בשל האופי הכאוטי או האקראי של בדיקות הקופים, חלק מהקלטים יכולים לדמות תרחישים שלא יתרחשו במהלך השימוש בעולם האמיתי במוצר. מצב זה יכול לגרום ליצירת תוצאות חיוביות שגויות, מה שמוביל קודנים לתקן בעיות שאינן נחוצות.
מהי בדיקת קופי כאוס?
בדיקת כאוס היא טכניקה של הנדסת תוכנה המשתמשת בניסויים מבוקרים ומכוונים שנועדו לשבש מערכת (ואפילו לגרום לכשלים) כדי להעריך את חוסנה ואת יכולת ההתאוששות שלה.
הרעיון של שבירה מכוונת של מערכת כדי להבטיח חוסן הוא די נפוץ בתחום פיתוח התוכנה, ושיטות אלו מביאות בדרך כלל לבניינים שהמהנדסים יכולים לעמוד מאחוריהם.
בשנת 2008, לאחר שחווה שחיתות של מסד נתונים של שלושה ימים, שירות הסטרימינג הפופולרי Netflix החליט לעבור לשירותי האינטרנט של אמזון (AWS). המטרה הייתה למנוע נקודות כשל בודדות ולהפחית בעיות מדרגיות הנובעות מהרחבת השירות שלהם.
הצוות יישם בדיקות קופי תוהו ובוהו כדי לבדוק מופעים פומביים על תשתית AWS. היתרונות היו כפולים:
- התהליך חשף חולשות שמהנדסי נטפליקס יכלו לתקן
- זה נתן השראה לצוות לבנות מנגנוני שחזור אוטומטיים עבור השירות שלהם.
בדיקת קופי כאוס היא חלק מהנדסת כאוס. הוא משמש לבדיקת סבילות התקלות של המערכת ואת יכולתה לשמור על יציבות וביצועים גם כאשר רכיבים בודדים נכשלים באופן בלתי צפוי.
אמנם זה קשור לבדיקת קופים, אבל זו טכניקה ברורה.
בדיקת קופים לעומת בדיקת גורילות
אולי שמעתם גם על הרעיון של בדיקות גורילה בפיתוח תוכנה. בעוד שלשתי הטכניקות יש שמות של פרימטים, יש להן קווי דמיון והבדלים רבים. בואו נחקור מהי בדיקת גורילה והיכן ניתן להשתמש בהן.
בדיקת גורילה נחשבת לגרסה מובנית יותר של בדיקת קופים. לשם השוואה, בדיקת קופים משמשת לעתים קרובות בשלבים הראשונים של הבדיקה כאשר אין מקרי בדיקה רשמיים זמינים. בדיקות גורילה, לעומת זאת, משתמשות בכלי או סקריפט אוטומטיים כדי ליצור קלט אקראי עבור יישום תוכנה.
בדיקת גורילה היא מהירה ויעילה הרבה יותר מבדיקת קופים ידנית. הוא מציע כיסוי רחב, וזו דרך מצוינת למצוא קריסות שצריך לפתור. עם זאת, עדיף להשתמש בו עבור יישומים עם גבולות מוגדרים היטב או לבדיקה יסודית של מודול מסוים.
גם לבדיקות קופים וגם לבדיקות גורילות יש את מקומן בבדיקות פיתוח תוכנה מודרניות. הבנתם היא המפתח לשימוש בגישה הנכונה במרחב הנכון.
מהו הכלי הטוב ביותר לבדיקת קופים?
תוכנת בדיקת קופים הפכה לחלק חיוני בערכת הכלים של המפתחים המודרניים. עם זאת, יש כמה אפשרויות בחוץ. אז מהו הכלי הטוב ביותר לבדיקת קופים? הנה כמה שאתה צריך לדעת עליהם.
1. ZAPTEST
ZAPTEST הוא כלי חינמי רב עוצמה לבדיקת תוכנה ארגונית התומך במגוון רחב של טכניקות אוטומציה של בדיקות, כולל בדיקות קופים. חלק מהתכונות של ZAPTEST המסייעות בבדיקת קופים כוללות:
- הקלטת סקריפט ללא קוד: צוותים יכולים לתעד אינטראקציות של משתמשים ולהמיר אותן לקוד בדיקה.
- יצירת קלט: ZAPTEST מאפשר יצירת קלט אקראי, שהוא מרכיב ליבה של בדיקת קופים
- דיווח חזק: ZAPTEST מציע יכולות דיווח חזקות שעוזרות לך לתעד את הבדיקות שלך
כמובן, תכונות אלה רק מגרדות את פני השטח של היכולות של ZAPTEST עבור מגוון רחב של טכניקות בדיקה, כולל מבחני קופים. עם שילוב WebDriver, תכונות AI ו-ZAPTEST CoPilot, צוותים יכולים לחוות את העתיד של בדיקות תוכנה במקום אחד.
יתרה מכך, משתמשי ZAPTEST Enterprise מקבלים גישה למומחה ZAP ייעודי במשרה מלאה ורישיונות בלתי מוגבלים, והכל תמורת עלות קבועה צפויה.
2. אפיום
Appium הוא כלי קוד פתוח. אתה יכול להשתמש בו גם עבור אנדרואיד וגם עבור iOS. זה מאפשר למשתמשים להפוך אינטראקציות עם יישומים ניידים לאוטומטיים ויש לו יכולות בדיקת קופים. מפתחים יכולים לחקות מגוון רחב של תגובות ממשק משתמש, כמו הזנת טקסט, לחיצה, הקשה וגלילה.
בעוד Appium הוא כלי נהדר עבור מפתחים ניידים, אין לו יכולות לבדיקות שולחן עבודה ואינטרנט.
3. קוף בדוק את זה
Monkey Test זוהי פלטפורמת בדיקה מבוססת ענן עם מגוון יכולות בדיקה הכוללות בדיקות קופים. בעוד Monkey Test זה מאוד ידידותי למשתמש, אולי אין לו את הכוח של כלים מתחרים.
חסרונות נוספים הם שזה יכול להיראות חלקלק יותר ולהגיע עם תיעוד טוב יותר. יתרה מכך, חלק מהמשתמשים התלוננו על תוצאות לא מדויקות מבדיקות. עם זאת, זוהי תוכנית פשוטה עם מחיר נמוך, כך שאתה לא יכול לצפות ממנה לעולם.
4. MonkeyTestJS
MonkeyTestJS הוא כלי מבוסס JavaScript אוסטרלי בקוד פתוח אשר בנוי עבור יישומי אינטרנט בלבד. זה די בסיסי, אבל זה יותר ממסוגל לעשות את העבודה. הכלי מאפשר למפתחים לדמות אינטראקציות של משתמש-יישום אינטרנט, כגון קליקים, שליחת טופס, קלט מקלדת ועוד.
ברור שחסרון אחד של הכלי הוא שהוא זמין רק עבור יישומי אינטרנט. עם זאת, כדאי להחזיק אותו בארגז הכלים שלך.
מהו הכלי הייעודי הטוב ביותר לבדיקת קופים באנדרואיד?
ישנן כמה אפשרויות טובות למפתחים שרוצים להביא קצת כאוס לבדיקת יישומי אנדרואיד שלהם. בואו נסתכל על שניים.
1. UI/Application Exerciser Monkey לאנדרואיד
UI/Application Exerciser Monkey for Android הוא כלי שורת פקודה המאפשר למפתחים לשלוח קלט או אירועים פסאודו אקראיים הן למכשירי אנדרואיד והן לאמולציות. כלי זה פועל במעטפת Android Debug Bridge.
2. MonkeyRunner לאנדרואיד
MonkeyRunner עבור אנדרואיד הוא כלי פופולרי לבדיקת קופים באנדרואיד. התוכנה היא API המאפשר למפתחים לכתוב תוכניות המחקות או שולטות במכשיר אנדרואיד. זוהי גם אפשרות טובה לבדיקות פונקציונליות וגם לבדיקות יחידה.
שני היישומים הללו הם אפשרויות טובות. עם זאת, הם טכניים למדי, מה שלא יתאימו לכל הקבוצות.
האם בדיקת קופים צריכה להיות אוטומטית?
אחת הבעיות הגדולות ביותר בבדיקת קופים ידנית היא שזה כל כך גוזל זמן. הדבר הנוסף שכדאי לשים לב אליו הוא שקשה לכמה בודקים באמת לדמות את האינטראקציות השונות שיש לבסיס רחב של משתמשים עם אפליקציה מסוימת.
אז שלושה חסרונות מיידיים קופצים עלינו. בדיקת קופים ידנית היא:
- דורש זמן רב
- יָקָר
- פוטנציאל חסר כיסוי
כלי אוטומטי לבדיקת קופים פותר את כל הבעיות הללו.
האם ZAPTEST היא הבחירה הנכונה לצרכי בדיקת הקופים שלך?
בדיקת קופים היא טכניקה טובה שיש ברפרטואר הבדיקות שלך, במיוחד אם אתה מעצב יישומים מורכבים. עם זאת, רכישת תוכנה ייעודית לבדיקת קופים היא יקרה.
ZAPTEST הוא כלי אוטומציית בדיקות מלא גמיש וחזק . זה מאוד להתאמה אישית ומאפשר למפתחים וגם לצוותים לא טכניים לבנות ולעצב כמות אינסופית של טכניקות בדיקת תוכנה, כולל בדיקות קופים.
בדיקת קופים היא בחירה מצוינת כשהיא משלימה עם סוגים אחרים של בדיקות. ZAPTEST מציעה הכל תחת קורת גג אחת, בתוספת של כלי RPA איכותיים.
מחשבות אחרונות
תוכנת בדיקת Monkey מספקת למפתחים דרך לא שגרתית לבדוק את היישומים שלהם. החוזק של טכניקה זו טמון ביכולתה לדמות את שלל הדרכים הבלתי צפויות שבהן משתמש עשוי לעסוק בתוכנה. בקיצור, בדיקת קופים מספקת כיסוי שעשוי להיות קשה להשגה עם תוכנית בדיקה.