คำถามที่พบบ่อยเกี่ยวกับ CTS

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

คำถามทั่วไป

ส่วนนี้จะแสดงคําถามที่พบบ่อยเกี่ยวกับ CTS

CTS ทำการทดสอบอะไรบ้าง

CTS จะทดสอบว่า API แบบ Strong Type ทั้งหมดที่รองรับของ Android มีอยู่และทํางานอย่างถูกต้อง CTS ยังทดสอบระบบอื่นๆ ที่ไม่ใช่ API อีกด้วย พฤติกรรม เช่น วงจรและประสิทธิภาพของแอป

CTS ได้รับอนุญาตให้ใช้งานอย่างไร

CTS ได้รับอนุญาตภายใต้สัญญาอนุญาตซอฟต์แวร์ Apache 2.0 เดียวกับที่ Android ส่วนใหญ่ใช้

โค้ดเหล่านี้ได้รับการยืนยันโดย CTS หรือไม่

ได้ ตัวแปลงรหัสที่จำเป็นทั้งหมดได้รับการยืนยันโดย CTS

คำถามเฉพาะสำหรับแต่ละข้อสอบ

ส่วนนี้มีคําถามที่พบบ่อยที่ช่วยให้ทำการทดสอบ CTS ได้อย่างมีประสิทธิภาพมากขึ้น

การแยกกลุ่ม CTS กับการแยกกลุ่ม TF แตกต่างกันอย่างไร

การชาร์ดดิ้ง CTS และ TF Sharding เป็นแผนการทดสอบที่แตกต่างกันโดยสิ้นเชิงจาก ฐานของโค้ดโครงสร้างพื้นฐานทดสอบที่แตกต่างกัน ขณะที่คำสั่งเรียกใช้คือ เหมือนกันในทุกเวอร์ชัน ผลลัพธ์การชาร์ดจะทำงานแตกต่างกัน การแยกกลุ่ม CTS จะกำหนดกรณีทดสอบให้กับอุปกรณ์ทดสอบ (DUT) แบบคงที่ ดังนี้

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

TF Sharding จะกำหนดกรอบการทดสอบแบบไดนามิกให้กับ 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 หากข้าม 1 โหมด คุณจะครอบคลุม ABI ของอุปกรณ์เพียง 50%

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

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

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

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

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

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

หากต้องการดูสถานะโมดูลเสร็จสิ้น (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 เพื่อให้แน่ใจว่าแพ็กเกจ API android.se.omapi ที่เพิ่มใน Android 9 ใช้งานได้ นอกจากนี้ เราขอแนะนำให้ทำการทดสอบเพิ่มเติมด้วยตนเอง เนื่องจากความครอบคลุมของการทดสอบ CTS มีเพียงเล็กน้อย

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

โปรดติดต่อผู้ให้บริการซิมที่ต้องการ

ทำไมซิม Orange ในหน้าจอล็อกระหว่างการดำเนินการ CTS ด้วยชาร์ดดิ้งโทเค็น

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