ชุดทดสอบของผู้ให้บริการ (VTS) และโครงสร้างพื้นฐาน

ชุดทดสอบ Vendor Test Suite (VTS) ของ Android ให้การทดสอบอย่างครอบคลุมในด้านต่อไปนี้

  • ฟองสบู่แตก
  • เลเยอร์การจัดการฮาร์ดแวร์โดยตรง (HAL)

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

  • โปรแกรมทดสอบ Trade Federation ของ VTS จะทำงานบนเครื่องโฮสต์และจัดการการทดสอบ ซึ่งช่วยให้สามารถกําหนดค่าการแยกข้อมูลในอุปกรณ์ทดสอบ (DUT) หลายเครื่อง นอกจากนี้ คุณยังใช้ฟีเจอร์ลองชุดทดสอบอีกครั้งเพื่อลองทดสอบเฉพาะรายการที่ดำเนินการไม่สำเร็จแทนการลองทั้งชุดทดสอบได้ ซึ่งจะช่วยลดเวลาในการเรียกใช้ซ้ำได้อย่างมาก
  • แต่ละเฟรมทดสอบจะทำงานบน DUT เฟรมเวิร์กการทดสอบอาจเป็นการทดสอบสไตล์ GTest, การทดสอบเคอร์เนล หรือการทดสอบสไตล์ JUnit ที่เขียนด้วย Java

ประเภทการทดสอบ

การทดสอบ VTS ประเภทต่างๆ มีคำอธิบายอยู่ในส่วนต่อไปนี้

การทดสอบสไตล์ GTest

การทดสอบส่วนใหญ่ใน VTS เป็นการทดสอบสไตล์ GTest ที่ตรวจสอบการติดตั้งใช้งาน HAL การทดสอบเขียนด้วย C++ และทำงานบนอุปกรณ์ GTest ของ VTS ทั่วไปจะวนผ่านอินสแตนซ์แต่ละรายการของอินเทอร์เฟซหนึ่งๆ และเรียกใช้ชุดทดสอบทั้งหมดกับอินเทอร์เฟซนั้น ดูตัวอย่างได้ที่ VtsHalHealthStorageV1_0TargetTest

การทดสอบเคอร์เนล Linux

  • Kselftest (external/linux-kselftest) คือชุดการทดสอบที่รวมอยู่ในที่เก็บเคอร์เนล Linux ที่ tools/testing/selftests ซึ่ง 23 รายการรวมอยู่ใน VTS เพื่อเรียกใช้บน ARM

  • โปรเจ็กต์ทดสอบ Linux (external/ltp) จะทดสอบความน่าเชื่อถือ ความทนทาน และความเสถียรของเคอร์เนล Linux

การทดสอบสไตล์ JUnit

การทดสอบที่โฮสต์เป็นผู้ควบคุมจำนวนเล็กน้อยใน VTS เป็นการทดสอบสไตล์ JUnit เช่น KernelApiSysfsTest การทดสอบ Java จะใช้เป็น BaseHostJUnit4Test ซึ่งเชื่อมโยงกับอุปกรณ์ทดสอบและสามารถเรียกใช้คำสั่งเชลล์เพื่อดำเนินการตรวจสอบ

การทดสอบ Python3 แบบสแตนด์อโลน

การทดสอบ VTS บางรายการ เช่น vts_treble_sys_prop_test เขียนด้วย Python3 การทดสอบที่ใช้ Python จะใช้เป็น unittest.TestCase และแต่ละกรณีทดสอบจะโต้ตอบกับอุปกรณ์ผ่านคำสั่งเชลล์ได้