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

AOSP มีเครื่องมือและชุดทดสอบมากมายสำหรับการทดสอบส่วนต่างๆ ของการนำไปใช้งานของคุณ ก่อนที่จะดำเนินการต่อในส่วนนี้ คุณควรทำความคุ้นเคยกับข้อกำหนดต่อไปนี้:

อุปกรณ์ที่รองรับระบบ Android
อุปกรณ์ที่สามารถเรียกใช้แอปของบุคคลที่สามที่เขียนโดยนักพัฒนาบุคคลที่สามโดยใช้ Android SDK และ NDK อุปกรณ์ที่รองรับ Android จะต้องปฏิบัติตามข้อกำหนดของ เอกสารคำจำกัดความความเข้ากันได้ (CDD) และผ่าน การทดสอบความเข้ากันได้ (CTS) อุปกรณ์ที่เข้ากันได้กับ Android มีสิทธิ์เข้าร่วมในระบบนิเวศของ Android ซึ่งรวมถึงสิทธิ์การใช้งานที่เป็นไปได้ของ Google Play Store, สิทธิ์การใช้งานที่เป็นไปได้สำหรับชุดแอปและ API ของ Google Mobile Services (GMS) และการใช้เครื่องหมายการค้า Android ใครๆ ก็สามารถใช้ซอร์สโค้ด Android ได้ แต่อุปกรณ์จะต้องเข้ากันได้กับ Android จึงจะถือว่าเป็นส่วนหนึ่งของระบบนิเวศของ Android ได้
สิ่งประดิษฐ์
อาร์ติแฟกต์เป็นบันทึกที่เกี่ยวข้องกับบิวด์ที่ช่วยให้แก้ไขปัญหาเฉพาะที่ได้
เอกสารคำจำกัดความความเข้ากันได้ (CDD)
เอกสารที่ระบุข้อกำหนดซอฟต์แวร์และฮาร์ดแวร์สำหรับอุปกรณ์ที่รองรับ Android
ชุดทดสอบความเข้ากันได้ (CTS)

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

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

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

ชุดแอปและ API ของ Google ที่สามารถติดตั้งล่วงหน้าบนอุปกรณ์ได้

GoogleTest (จีเทส)

Gtest เป็นเฟรมเวิร์กการทดสอบและการเยาะเย้ย C++ โดยทั่วไปแล้วไบนารีของ Gtest จะเข้าถึงเลเยอร์นามธรรมระดับล่างหรือดำเนินการ IPC แบบดิบกับบริการของระบบต่างๆ วิธีการทดสอบสำหรับ Gtest มักจะควบคู่ไปกับบริการที่กำลังทดสอบอย่างแน่นหนา CTS มีกรอบงาน Gtest

การทดสอบเครื่องมือวัด

การทดสอบเครื่องมือวัดจัดเตรียมสภาพแวดล้อมการดำเนินการทดสอบพิเศษที่เรียกใช้โดยคำสั่ง am instrument โดยที่กระบวนการแอปพลิเคชันเป้าหมายจะถูกรีสตาร์ทและเริ่มต้นด้วยบริบทแอปพลิเคชันพื้นฐาน และเธรดเครื่องมือวัดจะเริ่มต้นภายในเครื่องเสมือนกระบวนการแอปพลิเคชัน CTS มีการทดสอบเครื่องมือวัด

ล็อกแคท

Logcat เป็นเครื่องมือบรรทัดคำสั่งที่สร้างบันทึกข้อความระบบ รวมถึงการติดตามสแต็กเมื่ออุปกรณ์ส่งข้อผิดพลาดและข้อความที่คุณเขียนจากแอปของคุณด้วยคลาส Log

การบันทึก

การบันทึกหมายถึงการใช้บันทึกเพื่อติดตามเหตุการณ์ของระบบคอมพิวเตอร์ เช่น ข้อผิดพลาด การเข้าสู่ระบบ Android มีความซับซ้อนเนื่องจากมีการผสมผสานมาตรฐานที่รวมอยู่ในเครื่องมือ Logcat

การทดสอบหลังส่ง

การทดสอบภายหลังการส่งของ Android จะดำเนินการเมื่อมีการส่งแพตช์ใหม่ให้กับสาขาเคอร์เนลทั่วไป เมื่อป้อน aosp_kernel เป็นชื่อสาขาบางส่วน คุณจะสามารถดูรายการสาขาเคอร์เนลพร้อมผลลัพธ์ได้ ตัวอย่างเช่น คุณสามารถดูผลลัพธ์สำหรับ android-mainline ได้ที่ https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid

ส่งการทดสอบล่วงหน้า

การทดสอบก่อนส่งจะใช้เพื่อป้องกันไม่ให้เกิดความล้มเหลวในเคอร์เนลทั่วไป

สหพันธ์การค้า

Trade Federation หรือที่เรียกว่า Tradefed เป็นเฟรมเวิร์กการทดสอบต่อเนื่องที่ออกแบบมาเพื่อรันการทดสอบบนอุปกรณ์ Android ตัวอย่างเช่น Tradefed ใช้เพื่อเรียกใช้การทดสอบชุดทดสอบความเข้ากันได้และชุดทดสอบผู้ขาย

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

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

ประเภทการทดสอบแพลตฟอร์ม

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

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

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

อะไรต่อไป?

ต่อไปนี้เป็นรายการเอกสารถัดไปที่คุณอาจอ่านได้: