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

โครงการโอเพนซอร์ส Android (AOSP) มีเครื่องมือและชุดทดสอบหลายชุดสําหรับการทดสอบส่วนต่างๆ ของการติดตั้งใช้งาน ก่อนใช้หน้าต่างๆ ในส่วนนี้ คุณควรทำความคุ้นเคยกับคําศัพท์ต่อไปนี้

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

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

CTS และการทดสอบแพลตฟอร์มไม่เกี่ยวข้องกัน หลักเกณฑ์ทั่วไปมีดังนี้

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

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

GoogleTest (GTest)

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

การทดสอบการวัดคุม

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

Logcat

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

การบันทึก

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

postsubmit test

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

การทดสอบก่อนส่ง

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

Trade Federation

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

ชุดทดสอบของผู้ให้บริการ (VTS)

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

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

การทดสอบแพลตฟอร์มมักจะโต้ตอบกับบริการของระบบ Android หรือเลเยอร์ HAL อย่างน้อย 1 รายการ ทดสอบฟังก์ชันการทำงานของสิ่งที่ทดสอบ และยืนยันความถูกต้องของผลลัพธ์การทดสอบ การทดสอบแพลตฟอร์มอาจมีลักษณะดังนี้

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

การทดสอบประเภทที่ 1 และ 2 มักเป็นการทดสอบเครื่องมือวัด ส่วนการทดสอบประเภทที่ 3 มักเป็นการทดสอบ GTest

สิ่งต่อไปที่ควรทำ

คุณอ่านรายละเอียดเพิ่มเติมในเอกสารได้ดังต่อไปนี้