שאלות נפוצות בנושא CTS

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

שאלות כלליות

בקטע הזה מפורטות שאלות נפוצות בנושא CTS באופן כללי.

אילו סוגים של דברים בוחנים ה-CTS?

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

איזה רישיון ניתן ל-CTS?

ל-CTS יש רישיון לתוכנת Apache גרסה 2.0, רוב השימושים ב-Android.

האם הקודקים מאומתים על ידי CTS?

כן. כל רכיבי הקודק הנדרשים מאומתים על ידי CTS.

שאלות ספציפיות לבדיקה

בקטע הזה מוצגות שאלות נפוצות שיעזרו להריץ בדיקות CTS בצורה יעילה יותר.

מה ההבדל בין חלוקה לקטעים ב-CTS לבין חלוקה לקטעים ב-TF?

CTS Sharding ו-TF Sharding הם תוכניות בדיקה שונות לחלוטין שמבוססות על קוד בסיס שונה של תשתית בדיקה. פקודת ההרצה זהה בגרסאות השונות, אבל התוצאה של חלוקת המשנה (sharding) שונה. חלוקת CTS מקצה באופן סטטי תרחישי בדיקה למכשירים שנבדקים (DUT) באופן הבא:

חלוקת TF מקצה באופן דינמי מקרי בדיקה למכשירי DUT זמינים באופן הבא:

מה צפוי ממכשיר שתומך במספר ממשקי ABI?

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

  • עבור CTS ו-CTS Verifier, יש: גרסאות AARM ו-x86 עבור בכל ארכיטקטורה. כל אחד מהם יכול לתמוך במצב 32 או 64 ביט.
  • בבדיקות CTS, אם מכשיר תומך גם ב-ARM וגם ב-x86, הוא צריך להריץ את שתי בדיקות ה-CTS של ARM ושל x86 ולהצליח בהן.

ראו CDD 3.3.1. ממשקים בינאריים של אפליקציות לדרישות של CDD ב-ABI.

האם מספיק להריץ בדיקה רק ב-ABI הראשי (לדוגמה, 64 ביט) כדי לקצר את זמן ביצוע הבדיקה?

לא. אפליקציה ל-Android פועלת בסביבות זמן ריצה משלה של 32 ביט או 64 ביט. קוד המכונה, נתיב הקוד והמצב בפועל שונים בין 32 ל-64. אם תדלגו על מצב אחד, הן יכללו רק 50% ה-ABI של המכשיר.

למה יש כל כך הרבה תרחישי בדיקה שמדווחים כ'לא בוצעו'?

צריך לבדוק את המספר Module Done במקום את המספר Not Executed.

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

אם מודול הושלם, יופיע בדוח הערך Module Not Done בקריאה האחרונה (done="false") במהלך:

  • הרצת הבדיקה של המודול הופסקה בגלל בעיה בחיבור של המכשיר.
  • לא בוצעו כל הפעלות הבדיקה הצפויות של המודול.
  • ניסיון חוזר (באמצעות האפשרות -r/--retry) עם אפשרויות סינון נוספות, כמו:

    • ‎--include-filter
    • ---excluded-filter
    • -t/--test (האפשרות עדיין לא נתמכת בניסיון החוזר)
    • --retry-type failed
    • --תוכנית משנה

כדי לקבל את הסטטוס Module Done (done="true") עבור המודולים האלה, צריך לנסות שוב את הפעולות הבאות עבור ההפעלה האחרונה:

run retry --retry <session_id> for Android 9 and later versions
run cts --retry <session_id> for Android 8.1 and previous versions

מודול שהופעל ללא אף אחת מהבעיות שהוזכרו קודם לכן (גם עם 0 בדיקות שנותרו) מסומן כמודול סיום בדוח החדש.

חריגים

  • ב-CtsNNAPITestCases יש בעיה ידועה עקב מגבלה של ארגומנטים ל-linux/OS. אפשר להפעיל מחדש את המודול בנפרד דרך run cts -m CtsNNAPITestCases ישירות.

איך אפשר למנוע כשל בהכנת הבדיקה מאחורי חומת האש הארגונית?

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

export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'

האם צריך כרטיס SIM עבור CTS עבור רכיב מאובטח?

הצורך בכרטיס SIM לצורך הבדיקה תלוי בהבנה אם התכונה נתמכת במכשיר הבדיקה.

  • אם המכשיר לא צריך לתמוך באפליקציות ל-Android שמקבלות גישה לאלמנטים מאובטחים – ב-UICC (למשל, כרטיס SIM) שמופץ על ידי מפעילי הרשתות הסלולריות (ספקים) או מוטמע במכשיר – אפשר להגדיר את המניפסט של HIDL כך שלא יכלול את אלמנט ה-HAL‏ android.hardware.secure_element. במקרה כזה, ה-API‏ android.se.omapi.SEService.getReaders()‎ מדווח על רשימה ריקה, ובדיקה של CTS עוברת באופן אוטומטי ומדווחת על אישור ב-CTS.
  • אם המכשיר DOES צריך לתמוך באפליקציות ל-Android שיש להן גישה אל אלמנטים מאובטחים - ב-UICC. (למשל, כרטיס SIM) שמופץ על ידי מפעילי רשתות סלולריות (חברות תובלה) או שמוטמע במכשיר — צריך להטמיע רכיב מאובטח כמו שצריך ולבדוק אותו באופן פנימי. בדיקת CTS לרכיב מאובטח מפרטת כיצד להתכונן להרצת בדיקות ה-CTS שיבטיחו android.se.omapi חבילת ה-API שנוספה ב-Android 9 פועלת. מומלץ גם לבצע בדיקות נוספות בעצמכם, כי הכיסוי של בדיקות CTS הוא מינימלי.

איפה אפשר לקבל את כרטיסי ה-SIM ל-CTS לרכיב מאובטח?

אפשר לפנות לספק ה-SIM המועדף.

למה כרטיס SIM של Orange מופיע במסך הנעילה במהלך ביצוע CTS עם חלוקת אסימונים?

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