คำถามที่พบบ่อยเกี่ยวกับ 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 และการแยกกลุ่ม TF เป็นแผนการทดสอบที่แตกต่างกันโดยสิ้นเชิง ซึ่งขับเคลื่อนโดยโค้ดเบสโครงสร้างพื้นฐานการทดสอบที่แตกต่างกัน แม้ว่าคำสั่ง run จะเหมือนกันในเวอร์ชันต่างๆ แต่ผลลัพธ์การแยกข้อมูลจะทำงานแตกต่างกัน การแยกกลุ่ม CTS จะกำหนดกรณีทดสอบให้กับอุปกรณ์ทดสอบ (DUT) แบบคงที่ ดังนี้

  • คำสั่ง: run cts
  • การกําหนดค่าสําหรับ Android 8.1 และเวอร์ชันที่ต่ำกว่า /tools/cts-tradefed/res/config/cts.xml

การแยกกลุ่ม TF จะกำหนดกรณีทดสอบให้กับ DUT ที่พร้อมใช้งานแบบไดนามิก ดังนี้

อุปกรณ์ที่รองรับ ABI หลายรายการจะทำงานอย่างไร

อุปกรณ์ต้องผ่านการทดสอบ CTS และ CTS Verifier ทั้งหมดสำหรับโหมด ABI แต่ละโหมดที่อ้างว่ารองรับ ดังนั้นจึงต้องเรียกใช้แอปสําหรับ ABI ที่เฉพาะเจาะจง หลักเกณฑ์สำหรับ ABI หลายรายการมีดังนี้

  • สำหรับ CTS และ CTS Verifier มีรุ่น ARM และ x86 ในสถาปัตยกรรมแต่ละแบบ โดยแต่ละเวอร์ชันจะรองรับโหมด 32 หรือ 64 บิต
  • สำหรับข้อกำหนดการทดสอบ CTS หากอุปกรณ์รองรับทั้ง ARM และ x86 อุปกรณ์จะต้องทำการทดสอบและผ่านทั้งข้อกำหนดการทดสอบ CTS ของ ARM และ x86 ตามลำดับ

โปรดดู CDD 3.3.1 อินเทอร์เฟซแบบไบนารีของแอปพลิเคชัน สำหรับข้อกำหนด CDD เกี่ยวกับ ABI

การทดสอบเฉพาะ ABI หลัก (เช่น 64 บิต) เพื่อลดเวลาในการเรียกใช้การทดสอบเพียงพอไหม

ไม่ แอป Android ทำงานบนรันไทม์ 32 บิตหรือ 64 บิตของตนเอง รหัสเครื่องจริง เส้นทางของโค้ด และสถานะนั้นแตกต่างกันระหว่าง 32 และ 64 หากข้ามโหมดเดียว คุณจะครอบคลุม ABI ของอุปกรณ์เพียง 50% เท่านั้น

เหตุใดจึงมีการรายงาน Test Case จำนวนมากว่า "ไม่ได้ดำเนินการ"

คุณควรตรวจสอบหมายเลขข้อบังคับที่เสร็จสมบูรณ์แทนหมายเลขไม่ได้ดำเนินการ

ในเวอร์ชันก่อนหน้า มีการรายงานโมดูล CTS เป็นโมดูลเสร็จสิ้นมากเกินไปก่อนที่จะเสร็จสมบูรณ์ ดังนั้น ระบบจึงรายงานจํานวนโมดูลที่เสร็จสิ้นโดยที่กรณีทดสอบยังไม่เสร็จสมบูรณ์ทั้งหมด แม้ว่าอุปกรณ์บางเครื่องจะมีปัญหาก็ตาม ชุดทดสอบใหม่จะอนุรักษ์นิยมมากขึ้นและรายงานการทดสอบที่ไม่ได้ดำเนินการจํานวนมากขึ้นเมื่อเกิดปัญหา

โมดูลที่ทํางานจนเสร็จสมบูรณ์จะรายงานโมดูลไม่เสร็จสิ้นในการเรียกใช้ครั้งล่าสุด (done="false") ในรายงานในช่วงต่อไปนี้

  • การทดสอบโมดูลถูกขัดจังหวะเนื่องจากปัญหาการเชื่อมต่ออุปกรณ์
  • ไม่ได้ทำการทดสอบที่คาดไว้ทั้งหมดสําหรับข้อบังคับ
  • ลองอีกครั้ง (ใช้ตัวเลือก -r/--retry) ด้วยตัวเลือกการกรองเพิ่มเติม เช่น

    • --include-filter
    • --exclude-filter
    • -t/--test (ตัวเลือกยังไม่รองรับในการลองอีกครั้ง)
    • --retry-type ไม่สําเร็จ
    • --subplan

หากต้องการรับสถานะโมดูลเสร็จสิ้น (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 หรือไฟล์ตรรกะทางธุรกิจระหว่างรันไทม์ ในสภาพแวดล้อมขององค์กรหลายแห่ง ไฟร์วอลล์และพร็อกซีเป็นสิ่งปกติ ซึ่งทําให้การเตรียมการทดสอบไม่สําเร็จ เรียกใช้บรรทัดต่อไปนี้หรือเพิ่มลงใน .profile (ใน Ubuntu)

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

ฉันต้องใช้ซิมการ์ดสำหรับ CTS สำหรับองค์ประกอบความปลอดภัยไหม

ความจำเป็นในการใช้ซิมการ์ดสำหรับการทดสอบขึ้นอยู่กับความเข้าใจว่าอุปกรณ์ทดสอบรองรับฟีเจอร์ดังกล่าวหรือไม่

  • หากอุปกรณ์ของคุณไม่จำเป็นต้องรองรับแอป Android ที่เข้าถึงองค์ประกอบความปลอดภัย ทั้งใน UICC (เช่น ซิมการ์ด) ที่ผู้ให้บริการเครือข่ายมือถือ (ผู้ให้บริการ) หรือฝังอยู่ในอุปกรณ์ คุณสามารถกำหนดค่าไฟล์ Manifest HIDL ไม่ให้รวมองค์ประกอบ android.hardware.secure_element HAL ในกรณีนี้ android.se.omapi.SEService.getReaders() API จะรายงานรายการที่ว่างเปล่าและการทดสอบ CTS จะส่ง และรายงานบัตรผ่านสำหรับ CTS โดยอัตโนมัติ
  • หากอุปกรณ์ต้องรองรับแอป Android ที่เข้าถึงองค์ประกอบที่ปลอดภัย ไม่ว่าจะเป็นใน UICC (เช่น ซิมการ์ด) ที่ผู้ให้บริการเครือข่ายมือถือ (ผู้ให้บริการ) จัดจำหน่ายหรือฝังอยู่ในอุปกรณ์ คุณต้องใช้องค์ประกอบที่ปลอดภัยอย่างถูกต้องและทดสอบภายในองค์กร การทดสอบ CTS สำหรับองค์ประกอบความปลอดภัย แสดงวิธีเตรียมพร้อมเพื่อทำการทดสอบ CTS เพื่อให้แน่ใจว่า android.se.omapi แพ็กเกจ API ที่เพิ่มใน Android 9 ใช้งานได้ นอกจากนี้ เราขอแนะนำให้ทำการทดสอบเพิ่มเติมด้วยตนเอง เนื่องจากความครอบคลุมของการทดสอบ CTS มีเพียงเล็กน้อย

ฉันจะซื้อซิมการ์ดสำหรับ CTS สำหรับองค์ประกอบที่ปลอดภัยได้จากที่ใด

คุณสามารถติดต่อผู้ให้บริการซิมที่ต้องการ

เหตุใด Orange SIM จึงแสดงในหน้าจอล็อกระหว่างการเรียกใช้ CTS ด้วยการจัดสรรโทเค็น

กรอบการทดสอบไม่เริ่มต้นเนื่องจากการทดสอบซิมการ์ดล็อกอยู่ ปิดใช้ล็อกซิมการ์ดในการ **การตั้งค่าการล็อกซิมการ์ดก่อนดำเนินการ CTS ด้วยการจัดสรรโทเค็น