בדיקת סטטוס המערכת

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

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

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

הגדרת XML של בודק סטטוס המערכת

<system_checker class="com.android.tradefed.suite.checker.KeyguardStatusChecker" />
<system_checker class="com.android.tradefed.suite.checker.LeakedThreadStatusChecker" />
<system_checker class="com.android.tradefed.suite.checker.SystemServerStatusChecker" />

קמפיינים חכמים לשופינג מוגדרים מתחת לתג system_checker ב-XML של הגדרת המסחר האלקטרוני.

הטמעה

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

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

ב-Tradefed יש כמה דוגמאות להטמעות. בכל הטמעה מומלץ להתמקד בבדיקה אחת כדי לשפר את השימוש החוזר. לדוגמה, הפונקציה SystemServerStatusCheck בודקת אם תהליך system_server הופעל מחדש במכשיר במהלך ביצוע חבילת הבדיקה. ב-postExecutionCheck הוא קורא לפונקציה deviceSoftRestarted, שמוגדר ב-NativeDevice, כדי לבדוק אם התהליך system_server הופעל מחדש.

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

איפה הן מוגדרות ב-CTS?

בודקי סטטוס המערכת של CTS מוגדרים בקובץ /test/suite_harness/tools/cts-tradefed/res/config/cts-system-checkers.xml.

איך מוצאים כשלים בבדיקות

כברירת מחדל, כשיש כשלים בבדיקת המערכת, הם מוצגים רק ביומני המערכת וכדוחות באגים שנשמרו עבור ההפעלה עם השם בפורמט bugreport-checker-post-module-<module name>.zip.

כך תוכלו לבדוק אחרי איזה מודול נוצר דוח הבאג.

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