ภาพรวมของสหพันธ์การค้า

Trade Federation (เรียกสั้น ๆ ว่า Tradefed หรือ TF) เป็นเฟรมเวิร์กการทดสอบต่อเนื่องที่ออกแบบมาเพื่อรันการทดสอบบนอุปกรณ์ Android ตัวอย่างเช่น Tradefed ใช้เพื่อเรียกใช้ ชุดทดสอบความเข้ากันได้ (CTS) และ ชุดทดสอบผู้ขาย (VTS)

Trade Federation เป็นแอปพลิเคชัน Java ที่ทำงานบนคอมพิวเตอร์โฮสต์ และสื่อสารกับอุปกรณ์ Android ตั้งแต่หนึ่งเครื่องขึ้นไปโดยใช้ ddmlib (ไลบรารีที่อยู่เบื้องหลัง DDMS) บน adb

เราได้แสดงคุณสมบัติหลักบางประการของ TF ไว้ด้านล่าง พร้อมด้วยตัวอย่างการใช้งานบางส่วน อย่างไรก็ตาม หากคุณต้องการเริ่มต้นใช้งาน คุณสามารถไปที่หน้า เริ่มที่นี่ ได้เลย

คุณสมบัติ

  • การออกแบบแบบโมดูลาร์ ยืดหยุ่น และปรับขนาดได้
  • ได้สร้างขึ้นเพื่อรองรับการรันการทดสอบ Android หลายประเภท: Instrumentation , uiautomator , Native/gtest, JUnit แบบโฮสต์ ฯลฯ
  • มอบกลไกความน่าเชื่อถือและการกู้คืนนอกเหนือจาก adb
  • รองรับการตั้งเวลาและรันการทดสอบบนอุปกรณ์หลายเครื่องพร้อมกัน

ดู การทดสอบผ่าน TF สำหรับข้อมูลล่าสุดเกี่ยวกับวิธีการดำเนินการทดสอบที่มีอยู่ เช่น เครื่องมือวัด

กรณีการใช้งาน

ความเป็นโมดูลของ Trade Federation ช่วยให้สามารถแทรกเข้าไปในสภาพแวดล้อมด้วยโครงสร้างพื้นฐานการสร้าง การทดสอบ และการรายงานที่มีอยู่ได้อย่างง่ายดาย เราแสดงรายการ Usecase สาธิตบางส่วนด้านล่างที่ Tradefed สามารถเปิดใช้แนวทางปฏิบัติการทดสอบที่มีประสิทธิภาพและปรับขนาดได้

ประการแรก พิจารณาภาพรวมของกรณีการใช้งานที่เป็นไปได้ในแง่ของคำถามว่า "ส่วนใดสามารถแก้ไขได้ และส่วนใดเป็นแบบคงที่" จะมีประโยชน์ ตัวอย่างเช่น อุปกรณ์ OEM สามารถปรับเปลี่ยนเฟรมเวิร์ก ระบบ และฮาร์ดแวร์ได้ แต่มีอิทธิพลเพียงเล็กน้อยหรือไม่มีเลยต่อแอปพลิเคชันที่มีอยู่ ในทางกลับกัน นักพัฒนาแอปพลิเคชันสามารถปรับเปลี่ยนแอปได้ แต่ควบคุมส่วนต่างๆ ของระบบหรือเฟรมเวิร์กได้เพียงเล็กน้อย

ด้วยเหตุนี้ เอนทิตีในแต่ละ Usecase จะมีเป้าหมายการทดสอบที่แตกต่างกัน และจะมีตัวเลือกที่แตกต่างกันในกรณีที่ชุดการทดสอบล้มเหลว แม้จะมีความแตกต่างเหล่านี้ Trade Federation สามารถช่วยทำให้กระบวนการทดสอบแต่ละกระบวนการมีประสิทธิภาพ ยืดหยุ่น และปรับขนาดได้

อุปกรณ์ OEM

OEM อุปกรณ์สร้างฮาร์ดแวร์ และมักจะปรับแต่งระบบและเฟรมเวิร์ก Android เพื่อให้ทำงานได้ดีบนฮาร์ดแวร์นั้น OEM อาจมุ่งมั่นที่จะบรรลุเป้าหมายเหล่านั้นโดยยังคงรักษาความเสถียรและประสิทธิภาพในระดับฮาร์ดแวร์และระบบ และทำให้แน่ใจว่าการเปลี่ยนแปลงเฟรมเวิร์กจะไม่ทำให้ความเข้ากันได้กับแอปพลิเคชันที่มีอยู่เสียหาย

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

เมื่ออุปกรณ์ได้รับการบูทโดยสมบูรณ์ OEM จะสามารถใช้ประโยชน์จากการทดสอบที่ใช้ JUnit ที่มีอยู่หรือเขียนการทดสอบใหม่เพื่อตรวจสอบฟังก์ชันการทำงานที่น่าสนใจ สุดท้าย พวกเขาสามารถเขียนโมดูลการรายงานผลลัพธ์ตั้งแต่หนึ่งโมดูลขึ้นไปเพื่อเชื่อมโยงกับคลังผลการทดสอบที่มีอยู่ หรือเพื่อรายงานผลลัพธ์โดยตรง (เช่น ทางอีเมล )

นักพัฒนาแอป

นักพัฒนาแอปพลิเคชันสร้างแอปที่ต้องทำงานได้ดีบนแพลตฟอร์มเวอร์ชันต่างๆ และอุปกรณ์ที่หลากหลาย หากเกิดปัญหากับแพลตฟอร์มและ/หรืออุปกรณ์เวอร์ชันใดเวอร์ชันหนึ่ง วิธีแก้ไขเพียงอย่างเดียวคือเพิ่มวิธีแก้ปัญหาและดำเนินการต่อไป สำหรับนักพัฒนารายใหญ่ กระบวนการทดสอบอาจรวมอยู่ในลำดับการสร้างอย่างต่อเนื่อง สำหรับนักพัฒนารายเล็ก อาจมีการเริ่มต้นเป็นระยะหรือด้วยตนเอง

นักพัฒนาแอปส่วนใหญ่จะใช้โมดูลการติดตั้งทดสอบ APK ที่มีอยู่แล้วใน TF มีเวอร์ชันที่ ติดตั้งจากระบบไฟล์ในเครื่อง รวมถึงเวอร์ชันที่สามารถ ติดตั้ง APK ที่ดาวน์โหลดจากบริการบิลด์ ได้ สิ่งสำคัญคือต้องทราบว่าเวอร์ชันหลังจะยังคงทำงานได้อย่างถูกต้องกับอินสแตนซ์ TF จำนวนมากที่ทำงานบนเครื่องโฮสต์เดียวกันโดยพลการ

เนื่องจากความเชี่ยวชาญของ TF ในการจัดการกับอุปกรณ์หลายเครื่อง จึงเป็นการตรงไปตรงมาที่จะจำแนกผลการทดสอบแต่ละรายการตามประเภทของอุปกรณ์ที่ใช้สำหรับการทดสอบนั้น ดังนั้น TF อาจสร้างเมทริกซ์ความเข้ากันได้แบบ 2 มิติ (หรือหลายมิติ) สำหรับทุกบิลด์ของแอปพลิเคชัน

บริการทดสอบ

ตัวอย่างเช่น บริการทดสอบอาจอนุญาตให้นักพัฒนาแอปส่งแอปและดำเนินการทดสอบบนอุปกรณ์ที่มีเครื่องมือวัดพลังงานเพื่อกำหนดการใช้พลังงานสำหรับแอป สิ่งนี้แตกต่างจากกรณีการใช้งานสองกรณีก่อนหน้านี้ตรงที่ตัวสร้างบริการไม่ได้ควบคุมอุปกรณ์หรือแอปพลิเคชันที่กำลังทำงานอยู่

เนื่องจาก Trade Federation สามารถรันคลาส Java ใดๆ ที่ใช้อินเทอร์เฟซ IRemoteTest แบบธรรมดาได้ การเขียนไดรเวอร์ที่สามารถประสานฮาร์ดแวร์ภายนอกบางส่วนกับกรณีทดสอบที่กำลังรันบนอุปกรณ์จึงเป็นเรื่องเล็กน้อย ตัวไดร์เวอร์เองสามารถวางเธรด ส่งคำขอไปยังเซิร์ฟเวอร์อื่น หรือทำสิ่งอื่นใดที่อาจจำเป็น นอกจากนี้ ความเรียบง่ายและความสามารถรอบด้านของอินเทอร์เฟซการรายงานผลลัพธ์ ITestInvocationListener หมายความว่าสามารถแสดงผลการทดสอบตามอำเภอใจ (รวมถึง เช่น การวัดกำลังเชิงตัวเลข) ลงในไปป์ไลน์การรายงานผลลัพธ์มาตรฐานได้อย่างง่ายดายเช่นเดียวกัน