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

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

  • เคอร์เนล
  • เลเยอร์นามธรรมของฮาร์ดแวร์ (HAL)

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

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

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

การทดสอบแบบ gtest

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

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

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

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

การทดสอบแบบ JUnit

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

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

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