Vendor Test Suite (VTS) และโครงสร้างพื้นฐาน

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

  • เคอร์เนล
  • เลเยอร์การจัดการฮาร์ดแวร์โดยตรง (HAL)

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

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

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

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

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

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