โครงการโอเพนซอร์ส Android (AOSP) มีเครื่องมือและชุดทดสอบหลายอย่าง สำหรับการทดสอบส่วนต่างๆ ของการติดตั้งใช้งาน ก่อนใช้หน้าต่างๆ ในส่วนนี้ คุณควรทำความคุ้นเคยกับคำศัพท์ต่อไปนี้
- อุปกรณ์ที่ใช้ได้กับ Android
- อุปกรณ์ที่เรียกใช้แอปของบุคคลที่สามที่เขียนโดยนักพัฒนาแอปบุคคลที่สาม โดยใช้ Android SDK และ NDK ได้ อุปกรณ์ที่รองรับ Android ต้องเป็นไปตามข้อกำหนดของเอกสารนิยามความเข้ากันได้ (CDD) และผ่านชุดเครื่องมือทดสอบความเข้ากันได้ (CTS) อุปกรณ์ที่ใช้ร่วมกับ Android ได้จะมีสิทธิ์เข้าร่วมในระบบนิเวศของ Android ซึ่งรวมถึงการออกใบอนุญาตที่อาจเกิดขึ้นของ Google Play, การออกใบอนุญาตที่อาจเกิดขึ้นของชุดแอปและ API ของ บริการของ Google Mobile (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 ส่วนตัว (
@hideหรือprotected,package private)
- (ประเภทที่ 2) เรียกใช้บริการของระบบ Android โดยใช้ Binder ดิบหรือพร็อกซี IPC โดยตรง
- (ประเภทที่ 3) โต้ตอบกับ HAL โดยตรงโดยใช้ API ระดับต่ำหรืออินเทอร์เฟซ IPC
โดยปกติแล้ว การทดสอบประเภทที่ 1 และ 2 จะเป็นการทดสอบการวัดคุม ส่วนการทดสอบประเภทที่ 3 มักจะเป็น GTest
ต้องทำอะไรต่อ
ต่อไปนี้คือรายการเอกสารที่คุณสามารถอ่านเพื่อดูข้อมูลโดยละเอียดเพิ่มเติม
หากยังไม่ได้ศึกษาเกี่ยวกับสถาปัตยกรรมของ Android โปรดดูภาพรวมสถาปัตยกรรม
หากคุณกำลังสร้างอุปกรณ์ที่เข้ากันได้กับ Android โปรดดูภาพรวมโปรแกรมความเข้ากันได้กับ Android
หากต้องการผสานรวมการทดสอบการวัดคุม การทดสอบฟังก์ชัน เมตริก และโฮสต์ JAR เข้ากับบริการทดสอบอย่างต่อเนื่องของแพลตฟอร์ม โปรดดูเวิร์กโฟลว์การพัฒนาการทดสอบ
หากต้องการตรวจหาและเพิ่มความปลอดภัยให้อุปกรณ์เพื่อป้องกันช่องโหว่ โปรดดูการทดสอบความปลอดภัย
ดูข้อมูลเกี่ยวกับการทดสอบการใช้งาน HAL และเคอร์เนลได้ที่ชุดทดสอบของผู้ให้บริการ (VTS) และโครงสร้างพื้นฐาน
สำหรับการทดสอบแอป ให้อ่านหลักพื้นฐานของการทดสอบแอป Android และทำAndroid ขั้นสูงใน Kotlin 05.1:ข้อมูลเบื้องต้นเกี่ยวกับการทดสอบ โดยใช้ตัวอย่างที่ให้ไว้
ดูข้อมูลเกี่ยวกับการทดสอบก่อนส่งขั้นพื้นฐานที่คุณใช้ได้ผ่าน Repo Hook โดยใช้ฮุกเหล่านี้เพื่อเรียกใช้ตัวตรวจสอบรูปแบบ ตรวจสอบการจัดรูปแบบ และทริกเกอร์การทดสอบหน่วย ก่อนดำเนินการต่อ เช่น การอัปโหลดคอมมิต โดยระบบจะปิดใช้ Hook เหล่านี้ โดยค่าเริ่มต้น ดูข้อมูลเพิ่มเติมได้ที่Hook ก่อนอัปโหลดของ AOSP
ดูข้อมูลเพิ่มเติมเกี่ยวกับการบันทึกได้ที่หัวข้อทำความเข้าใจการบันทึก
หากต้องการทําความเข้าใจวิธีแก้ไขข้อบกพร่องของโค้ด Android โปรดดู แก้ไขข้อบกพร่องของโค้ดแพลตฟอร์ม Android แบบเนทีฟ