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

Trade Federation (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 สำหรับข้อมูลล่าสุดเกี่ยวกับวิธีเรียกใช้การทดสอบที่มีอยู่ของคุณเช่น เครื่องมือวัด

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

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

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

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

อุปกรณ์ OEM

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

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

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

นักพัฒนาแอป

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

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

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

บริการทดสอบ

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

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