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