โปรแกรมทดสอบเป็นหน่วยการดําเนินการของขั้นตอนการเรียกใช้ นี่เป็นส่วนที่เรียกใช้การทดสอบจริง
อินเทอร์เฟซ
โปรแกรมรันทดสอบจะกำหนดผ่านอินเทอร์เฟซ IRemoteTest ซึ่งจะมีเมธอด run
ง่ายๆ ที่ใช้เรียกใช้เมื่อต้องทำการทดสอบ
วิธีนี้ช่วยให้การเรียกใช้การทดสอบเกิดขึ้นได้โดยใช้คําจํากัดความที่ง่ายที่สุด แต่ในทางปฏิบัติ นักเขียนทดสอบจะต้องใช้ข้อมูลเพิ่มเติมในการเขียนการทดสอบอย่างถูกต้อง ซึ่งโดยทั่วไปคือข้อมูลบิลด์และอุปกรณ์ อินเทอร์เฟซต่อไปนี้จึงมีประโยชน์
พื้นฐาน
อินเทอร์เฟซ 2 แบบนี้เป็นอินเทอร์เฟซที่ใช้กันอย่างแพร่หลายที่สุดในปัจจุบัน เนื่องจากเป็นอินเทอร์เฟซที่ตอบสนองความต้องการพื้นฐานของการทดสอบส่วนใหญ่
- IBuildReceiver
ช่วยให้การทดสอบได้รับออบเจ็กต์
IBuildInfo
ที่สร้างขึ้นในระยะ build provider ซึ่งมีข้อมูลและรายการต่างๆ ทั้งหมดที่เกี่ยวข้องกับการตั้งค่าการทดสอบ - IDeviceTest ช่วยให้คุณรับออบเจ็กต์
ITestDevice
ที่แสดงถึงอุปกรณ์ภายใต้การทดสอบได้ และยังมี API สำหรับการโต้ตอบกับอุปกรณ์
ขั้นสูง
อินเทอร์เฟซเพิ่มเติมที่ช่วยให้การทำงานร่วมกันระหว่างแฮนเดิลการทดสอบและโปรแกรมรันทดสอบซับซ้อนยิ่งขึ้นมีดังนี้
- ITestFilterReceiver ซึ่งช่วยให้การทดสอบได้รับชุดตัวกรองสําหรับการเรียกใช้การทดสอบบางอย่างเท่านั้น ซึ่งจะมีประโยชน์ในการเรียกใช้ชุดทดสอบย่อย
- ITestCollector ซึ่งช่วยให้โปรแกรมรันทดสอบทำการทดสอบเสมือนจริงแทนที่จะทำการทดสอบจริง ซึ่งจะมีประโยชน์ในการรวบรวมรายการเทสเคสทั้งหมด
ผู้เรียกใช้การทดสอบที่มีอยู่
เครื่องมือทดสอบมีหลากหลายประเภทอยู่แล้ว โดยบางประเภทมีไว้สําหรับการทดสอบหลักๆ ดังนี้
- AndroidJUnitTest / InstrumentationTest (เชื่อมโยงกับ AJUR ฝั่งอุปกรณ์)
- GTest (อุปกรณ์และฝั่งโฮสต์) ที่มีคลัง googletest
- การทดสอบที่ทำงานจากโฮสต์ (การทดสอบ Java ที่ทำงานบนโฮสต์และเรียกใช้อุปกรณ์จากโฮสต์)
- การทดสอบหน่วย Java ล้วน (โปรแกรมรันไทม์ของเราทําทั้ง 2 อย่าง)
- การทดสอบ Python
- การทดสอบการเปรียบเทียบของ Google ด้วยคลังการเปรียบเทียบ
นอกเหนือจากเครื่องมือรันทดสอบที่กำหนดเองข้างต้นแล้ว ยังมีเครื่องมือรันทดสอบที่กำหนดเองจำนวนมากที่ทำงานเพื่อวัตถุประสงค์เฉพาะสำหรับการทดสอบฟังก์ชันการทำงานบางอย่าง เช่น การทดสอบการบูต
เขียนโปรแกรมรันทดสอบใหม่
ดูคําแนะนําเพิ่มเติมเกี่ยวกับการเขียนโปรแกรมทดสอบใหม่ได้ที่ส่วนการเขียนการทดสอบ