การทดสอบแพลตฟอร์ม 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 คือชุดการทดสอบหน่วยที่ออกแบบมาเพื่อผสานรวมเข้ากับ เวิร์กโฟลว์ประจำวันของคุณ 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

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

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

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

หรือที่เรียกว่า 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

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

ต่อไปนี้คือรายการเอกสารที่คุณสามารถอ่านเพื่อดูข้อมูลเพิ่มเติมโดยละเอียด