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

สหพันธ์การค้า (Tradefed หรือ TF สำหรับระยะสั้น) เป็นกรอบการทดสอบต่อเนื่องที่ออกแบบมาสำหรับการทดสอบบนอุปกรณ์ Android ตัวอย่างเช่น Tradefed ใช้เพื่อเรียกใช้ Compatibility Test Suite (CTS) และ Vendor Test Suite (VTS)

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

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

คุณสมบัติ

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

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

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

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

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

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

อุปกรณ์ OEM

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

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

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

นักพัฒนาแอพ

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

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

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

บริการทดสอบ

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

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