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

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

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

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

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

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

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

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

ด้วยเหตุนี้ การทดสอบแพลตฟอร์มอาจ:

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

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

หากต้องการเรียนรู้เพิ่มเติม โปรดดูตัวอย่างตั้งแต่ต้นจนจบ:

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

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

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

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

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

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

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

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

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

การดีบัก

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