การทดสอบแพลตฟอร์ม Android

เนื้อหานี้มุ่งเน้นไปที่นักพัฒนาแพลตฟอร์ม Android ก่อนที่จะทำความเข้าใจเกี่ยวกับวิธีการทดสอบบนแพลตฟอร์ม Android โปรดดูภาพรวมของ สถาปัตยกรรมแพลตฟอร์ม Android

จากนั้นเจาะลึกเทคโนโลยีที่แม่นยำซึ่งพร้อมให้คุณใช้งานในส่วนนี้ เช่น Vendor Test Suite (VTS) และ วิดีโอและบทช่วยสอน Codelab มากมาย

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

สำหรับการทดสอบแอป ให้เริ่มด้วยความ รู้พื้นฐานด้านการทดสอบ และดำเนิน การทดสอบ Android Codelab โดยใช้ ตัวอย่าง ที่มีให้

สุดท้ายนี้ โปรดทราบว่าการทดสอบการส่งล่วงหน้าขั้นพื้นฐานนั้นพร้อมให้คุณใช้งานผ่าน Repo Hooks ที่สามารถรัน linters ตรวจสอบการจัดรูปแบบ และทดสอบหน่วยทริกเกอร์ก่อนดำเนินการต่อ เช่น การอัปโหลดการคอมมิต โปรดทราบว่าตะขอเหล่านี้ถูกปิดใช้งานตามค่าเริ่มต้น ดูบทนำ Repo Hooks สำหรับรายละเอียดเพิ่มเติม

ทดสอบอะไรและอย่างไร

โดยทั่วไปแล้ว การทดสอบแพลตฟอร์มจะโต้ตอบกับบริการระบบ Android อย่างน้อยหนึ่งบริการ หรือเลเยอร์ Hardware Abstraction Layer (HAL) ใช้ฟังก์ชันการทำงานของวัตถุที่ทดสอบ และยืนยันความถูกต้องของผลการทดสอบ

ดังนั้น การทดสอบแพลตฟอร์มอาจ:

  1. API ของเฟรมเวิร์กแบบฝึกหัดผ่านเฟรมเวิร์กแอปพลิเคชัน API เฉพาะที่ใช้อาจรวมถึง:
    • API สาธารณะที่มีไว้สำหรับแอปพลิเคชันของบุคคลที่สาม
    • API ที่ซ่อนอยู่ซึ่งมีไว้สำหรับแอปพลิเคชันพิเศษ ได้แก่ API ของระบบ
    • API ส่วนตัว (@ซ่อนหรือป้องกันแพ็คเกจส่วนตัว)
  2. เรียกใช้บริการระบบ Android ผ่าน raw binder/พร็อกซี่ IPC โดยตรง
  3. โต้ตอบโดยตรงกับ HAL ผ่าน API ระดับต่ำหรืออินเตอร์เฟส IPC

โดยทั่วไปประเภทที่ 1 และ 2 จะเขียนเป็นการ ทดสอบเครื่องมือ ในขณะที่ประเภท 3 มักเขียนเป็น GTests

หากต้องการเรียนรู้เพิ่มเติม ดูตัวอย่างแบบ end-to-end ของเรา:

ทำความคุ้นเคยกับเครื่องมือเหล่านี้ เนื่องจากเป็นเครื่องมือพื้นฐานสำหรับการทดสอบใน Android

ชุดทดสอบความเข้ากันได้ (CTS)

ชุดทดสอบความเข้ากันได้ของ Android คือชุดการทดสอบประเภทต่างๆ ที่ใช้เพื่อให้แน่ใจถึงความเข้ากันได้ของการนำเฟรมเวิร์ก Android ไปใช้ในพันธมิตร OEM และข้ามรุ่นของแพลตฟอร์มต่างๆ ชุดนี้ยังรวมถึงการทดสอบเครื่องมือและเฟรมเวิร์ก GTest

การทดสอบ CTS และแพลตฟอร์มไม่ได้แยกออกจากกัน และนี่คือแนวทางทั่วไปบางประการ:

  • หากการทดสอบยืนยันความถูกต้องของฟังก์ชัน/พฤติกรรม API เฟรมเวิร์ก และควรบังคับใช้กับพาร์ทเนอร์ OEM การทดสอบนั้นควรอยู่ใน CTS
  • หากการทดสอบมีวัตถุประสงค์เพื่อตรวจจับการถดถอยในระหว่างวงจรการพัฒนาแพลตฟอร์ม และอาจจำเป็นต้องได้รับสิทธิ์พิเศษในการดำเนินการ และอาจขึ้นอยู่กับรายละเอียดการใช้งาน (ตามที่เผยแพร่ใน AOSP) การทดสอบควรเป็นการทดสอบแพลตฟอร์มเท่านั้น

ชุดทดสอบผู้ขาย (VTS)

Vendor Test Suite (VTS) ทำการทดสอบเคอร์เนล HAL และ OS โดยอัตโนมัติ หากต้องการใช้ VTS เพื่อทดสอบการใช้งานระบบ Android ในตัว ให้ตั้งค่าสภาพแวดล้อมการทดสอบ จากนั้นทดสอบแพตช์โดยใช้แผน VTS

โครงสร้างพื้นฐานการทดสอบสหพันธ์การค้า

Trade Federation (tradefed หรือเรียกสั้นๆ ว่า TF) คือเฟรมเวิร์กการทดสอบแบบต่อเนื่องที่ออกแบบมาเพื่อเรียกใช้การทดสอบบนอุปกรณ์ Android TF สามารถเรียกใช้การทดสอบการทำงานในเครื่อง ที่โต๊ะทำงาน ภายในการชำระเงินของแพลตฟอร์ม มีสองไฟล์ที่จำเป็นในการเรียกใช้การทดสอบใน TF, ซอร์สการทดสอบจาวาและการกำหนดค่า XML ดูตัวอย่าง RebootTest.java และ reboot.xml

การดีบัก

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