בעולם בדיקות התוכנה, אנחנו נדרשים לא פעם לבדוק אפליקציות שאינן פועלות בחלל ריק, אלא תלויות באופן מוחלט במערכת ההפעלה שעליה הן רצות. עבור בודקים העובדים בסביבת macOS (ולמעשה גם ב-iOS), אחד המנגנונים המשפיעים ביותר על חווית המשתמש ועל תקינות הפונקציונליות של האפליקציה הוא מנגנון ה-TCC (Transparency, Consent, and Control).
מאמר זה נועד לשפוך אור על המנגנון מנקודת מבטו של הבודק הידני, להסביר מדוע הוא מהווה כר פורה לבאגים, וכיצד לייצר תוכנית בדיקות (STP/STD) אפקטיבית עבורו.
מהו TCC ומדוע הוא קריטי עבורנו?
בבסיסו, TCC הוא שומר הסף של פרטיות המשתמש ב-macOS. תפקידו לוודא שאפליקציות לא ניגשות למשאבים רגישים ללא אישור מפורש. משאבים אלו כוללים:
- חומרה: מיקרופון, מצלמה, שירותי מיקום.
- מידע אישי: אנשי קשר, תמונות, לוח שנה.
- הרשאות מערכת: נגישות (Accessibility) וגישה מלאה לדיסק (Full Disk Access).
כאשר האפליקציה שאנו בודקים מנסה לגשת לאחד מהמשאבים הללו בפעם הראשונה, מערכת ההפעלה מקפיצה חלונית (Dialog) המבקשת מהמשתמש לאשר או לדחות את הבקשה. כאן בדיוק מתחילה העבודה הדרמטית של הבודק הידני.
אתגרי הבדיקה הידנית בסביבת TCC
בעוד שאנשי האוטומציה מנסים "לעקוף" את ה-TCC כדי להריץ טסטים ללא הפרעה (כפי שמתואר בצורך של חברות תשתית), התפקיד של הבודק הידני הוא הפוך: לחוות את המערכת בדיוק כפי שהמשתמש הקצה יחווה אותה, ולמצוא את נקודות השבר.
האתגר המרכזי בבדיקות ידניות של TCC הוא "ניהול מצבים" (State Management). ברגע שחלונית האישור קפצה והבודק לחץ על "אשר" (Allow) או "דחה" (Don't Allow), הבחירה נשמרת בבסיס הנתונים הפנימי של ה-TCC. בניסיון הבא שנפתח את האפליקציה, החלונית כבר לא תופיע.
כדי לבדוק זאת שוב, הבודק הידני חייב לדעת כיצד "לאפס" את מצב המערכת.
תרחישי בדיקה (Test Cases) קריטיים לכל בודק ידני
כאשר אתם ניגשים לבדוק פיצ'ר באפליקציה התלוי ב-TCC (למשל: תוכנת שיחות וידאו המבקשת גישה למצלמה), עליכם לכסות את התרחישים הבאים:
1. בדיקת "מסלול הזהב" (Happy Path) – מתן אישור
- פעולה: התקנת האפליקציה מחדש, הפעלת הפיצ'ר, ולחיצה על "אישור" (Allow) בחלונית ה-TCC.
- מה מחפשים? שהאפליקציה מקבלת את הגישה מיד, הווידאו/מיקרופון עובד בצורה חלקה, ולא נדרש אתחול של האפליקציה (אלא אם כן זו דרישת מערכת ידועה).
2. בדיקת המסלול השלילי (Negative Path) – סירוב משתמש
- פעולה: הפעלת הפיצ'ר ולחיצה על "אל תאשר" (Don't Allow).
- מה מחפשים? כאן נופלים רוב הבאגים. האפליקציה אסור שתקרוס (Crash). היא צריכה לדעת לטפל בסירוב בחן (Graceful Degradation) – להציג הודעה ברורה למשתמש המסבירה שהפיצ'ר אינו זמין כיוון שלא ניתן אישור במערכת ההפעלה, ולהנחות אותו כיצד לשנות זאת בהגדרות.
3. שינוי החלטה בדיעבד (Revoking Permissions)
- פעולה: מתן אישור בתוך האפליקציה, סגירתה, כניסה להגדרות המערכת של ה-Mac (
System Settings > Privacy & Security), הסרת האישור לאפליקציה באופן ידני, ופתיחתה מחדש. - מה מחפשים? האם האפליקציה מזהה שההרשאה נלקחה ממנה? האם היא מקפיצה את החלונית מחדש או מציגה הסבר מתאים, או שהיא מנסה לגשת למשאב ונכשלת (או קורסת)?
4. תזמון קפיצת החלונית (Trigger Timing)
- פעולה: שיטוט באפליקציה לפני הגעה לפיצ'ר הרלוונטי.
- מה מחפשים? חווית משתמש (UX). חלונית ה-TCC צריכה לקפוץ רק כאשר המשתמש מנסה לבצע פעולה שדורשת זאת (Just-in-Time). אם אפליקציית פתקים מבקשת גישה למצלמה מיד עם ההפעלה הראשונית בלי שהמשתמש ביקש לצלם, זהו כשל תכנוני (UX Bug).
ארגז הכלים של הבודק הידני ב-macOS
כדי לבצע בדיקות חוזרות, אינכם יכולים להתקין את כל מערכת ההפעלה מחדש בכל פעם. עליכם להכיר את כלי ה-Terminal הבסיסי המאפשר לאפס את הגדרות ה-TCC עבור האפליקציה שלכם.
פקודת הפלא עבור בודקים היא tccutil. פתחו את ה-Terminal והשתמשו בה כדי לאפס הרשאות:
- איפוס הרשאה ספציפית (למשל, מיקרופון) עבור אפליקציה מסוימת:Bash
tccutil reset Microphone [Bundle ID of the App] - איפוס כללי של כל הרשאות ה-TCC של האפליקציה (מחזיר אותה למצב "התקנה נקייה"):Bash
tccutil reset All [Bundle ID of the App]
(הערה: ה-Bundle ID הוא מזהה הייחודי של האפליקציה, למשל com.company.myapp).
סיכום
מנגנון ה-TCC של אפל הוא דוגמה קלאסית למקום שבו מערכת ההפעלה מתערבת בחוויית המשתמש של האפליקציה שלנו. כבודקים ידניים, התפקיד שלנו הוא לא למצוא דרך לעקוף את המנגנון, אלא לעמוד בנעליו של המשתמש: לבדוק מה קורה כשהוא מתחרט, כשהוא מסרב, או כשהוא מאשר, ולוודא שהאפליקציה מספיק חסונה (Robust) כדי להתמודד עם כל בחירה שלו מבלי לפגוע ביציבות המוצר.
לקרוא מאמרים זה נחמד אבל לא יביא אותך לתוצאה שאתה רוצה, בדיוק בשביל זה הכנו עבורך את הקורס הדיגיטלי המהיר, תוך שעתיים וחצי תלמד את תחום הבדיקות ידניות, תוכל להתחיל לעבוד מהבית דרך FIVERR או ולהתכונן נכון לראיונות עבודה שיעזרו לך לצלוח אותם. כנס כאן הקורס ממוקד בבדיקות תוכנה ידניות הנותן בסיס חזק לתחום.
לעבוד מהבית כבודק תוכנה עם FIVERR >> לחץ כאן