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

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 หมายความว่าสามารถแสดงผลการทดสอบตามอำเภอใจ (รวมถึง เช่น การวัดกำลังเชิงตัวเลข) ลงในไปป์ไลน์การรายงานผลลัพธ์มาตรฐานได้อย่างง่ายดายเช่นเดียวกัน