Trade Federation (Tradefed หรือ TF ย่อมาจาก Trade Federation) เป็นเฟรมเวิร์กการทดสอบแบบต่อเนื่องที่ออกแบบมาสำหรับการทดสอบในอุปกรณ์ Android เช่น Tradefed ใช้เพื่อเรียกใช้ชุดเครื่องมือทดสอบความเข้ากันได้ (CTS) และชุดเครื่องมือทดสอบของผู้ให้บริการ (VTS)
Trade Federation เป็นแอปพลิเคชัน Java ที่ทำงานบนคอมพิวเตอร์โฮสต์และสื่อสารกับอุปกรณ์ Android ตั้งแต่ 1 เครื่องขึ้นไปโดยใช้ ddmlib (ไลบรารีที่อยู่เบื้องหลัง DDMS) ผ่าน adb
เราได้แสดงฟีเจอร์หลักของ TF บางส่วนไว้ด้านล่างพร้อมกับตัวอย่าง Use Case 2 รายการ อย่างไรก็ตาม หากต้องการเริ่มต้นใช้งานทันที ให้ไปที่หน้าเริ่มต้นที่นี่
ฟีเจอร์
- การออกแบบแบบโมดูลาร์ที่ยืดหยุ่นและปรับขนาดได้
- มีการสนับสนุนการเรียกใช้การทดสอบ Android หลายประเภทในตัว การทดสอบ uiautomator เนทีฟ/gtest, JUnit บนโฮสต์ ฯลฯ
- มอบความน่าเชื่อถือและกลไกการกู้คืนเพิ่มเติมจาก adb
- รองรับการกำหนดเวลาและทำการทดสอบในอุปกรณ์หลายเครื่องพร้อมกัน
ดูข้อมูลล่าสุดเกี่ยวกับวิธีเรียกใช้การทดสอบที่มีอยู่ เช่น เครื่องมือวัดประสิทธิภาพ ได้ที่การทดสอบผ่าน TF
กรณีการใช้งาน
ความเป็นโมดูลของ Trade Federation ทำให้คุณติดตั้งใช้งานในสภาพแวดล้อมที่มีโครงสร้างพื้นฐานการสร้าง การทดสอบ และการรายงานที่มีอยู่ได้อย่างง่ายดาย ด้านล่างนี้คือตัวอย่าง Use Case 2-3 รายการที่ TradeFed ช่วยให้สามารถทดสอบได้อย่างมีประสิทธิภาพและปรับขนาดได้
ก่อนอื่น คุณควรพิจารณาภาพรวมของ Use Case ที่เป็นไปได้ในแง่ของคำถามที่ว่า "ส่วนใดแก้ไขได้และส่วนใดแก้ไขไม่ได้" ตัวอย่างเช่น OEM ของอุปกรณ์สามารถแก้ไขเฟรมเวิร์ก ระบบ และฮาร์ดแวร์ได้ แต่มีอิทธิพลต่อแอปพลิเคชันที่มีอยู่น้อยหรือไม่มีเลย ส่วนนักพัฒนาแอปพลิเคชันจะแก้ไขแอปได้ แต่มีการควบคุมด้านต่างๆ ส่วนใหญ่ของระบบหรือเฟรมเวิร์กเพียงเล็กน้อย
ด้วยเหตุนี้ เอนทิตีในแต่ละ Use Case จึงมีเป้าหมายการทดสอบที่แตกต่างกัน และจะมีตัวเลือกที่แตกต่างกันในกรณีที่ชุดการทดสอบไม่ผ่าน แม้จะมีความแตกต่างกันเหล่านี้ แต่ Trade Federation ก็สามารถช่วยให้กระบวนการทดสอบแต่ละรายการมีประสิทธิภาพ ยืดหยุ่น และปรับขนาดได้
OEM ของอุปกรณ์
OEM ของอุปกรณ์จะสร้างฮาร์ดแวร์ และมักจะปรับแต่งระบบและเฟรมเวิร์กของ Android ให้ทำงานได้ดีบนฮาร์ดแวร์นั้น OEM อาจพยายามบรรลุเป้าหมายเหล่านั้นไปพร้อมกับคงความเสถียรและประสิทธิภาพไว้ในระดับฮาร์ดแวร์และระบบ รวมถึงตรวจสอบว่าการเปลี่ยนแปลงเฟรมเวิร์กจะไม่ทำให้แอปพลิเคชันที่มีอยู่ใช้งานร่วมกันไม่ได้
OEM อาจใช้โมดูลการแฟลชอุปกรณ์ที่จะทำงานในระยะการตั้งค่าเป้าหมายของวงจร โมดูลดังกล่าวจะควบคุมอุปกรณ์ได้อย่างเต็มที่ในระหว่างที่ทำงาน ซึ่งอาจทำให้อุปกรณ์เข้าสู่ Bootloader, แฟลช แล้วบังคับให้อุปกรณ์รีบูตกลับไปยังโหมดพื้นที่ผู้ใช้ เมื่อรวมกับข้อบังคับเพื่อเชื่อมโยงกับระบบบิลด์แบบต่อเนื่องแล้ว การดำเนินการนี้จะช่วยให้ OEM ทำการทดสอบในอุปกรณ์ได้ขณะทำการเปลี่ยนแปลงเฟิร์มแวร์ระดับระบบและเฟรมเวิร์กระดับ Java
เมื่ออุปกรณ์บูตขึ้นอย่างสมบูรณ์แล้ว OEM จะสามารถใช้ประโยชน์จากการทดสอบที่ใช้ JUnit ที่มีอยู่ หรือเขียนการทดสอบใหม่เพื่อยืนยันฟังก์ชันการทำงานที่ต้องการ สุดท้าย ผู้ใช้อาจเขียนข้อบังคับการรายงานผลลัพธ์อย่างน้อย 1 ข้อเพื่อเชื่อมโยงกับที่เก็บข้อมูลผลลัพธ์การทดสอบที่มีอยู่ หรือเพื่อรายงานผลลัพธ์โดยตรง (เช่น ทางอีเมล)
นักพัฒนาแอป
นักพัฒนาแอปพลิเคชันจะสร้างแอปที่ทำงานได้ดีในแพลตฟอร์มและอุปกรณ์ที่หลากหลาย หากเกิดปัญหาขึ้นในแพลตฟอร์มและ/หรืออุปกรณ์เวอร์ชันหนึ่งๆ วิธีแก้ไขเพียงอย่างเดียวคือเพิ่มวิธีแก้ปัญหาเบื้องต้นและดำเนินการต่อ สําหรับนักพัฒนาแอปรายใหญ่ กระบวนการทดสอบอาจรวมอยู่ในลําดับการสร้างแบบต่อเนื่อง สำหรับนักพัฒนาแอปรายเล็ก เราอาจเริ่มการตรวจสอบเป็นระยะๆ หรือตรวจสอบด้วยตนเอง
นักพัฒนาแอปส่วนใหญ่จะใช้โมดูลการติดตั้งการทดสอบ APK ที่มีอยู่ใน TF อยู่แล้ว โดยจะมีเวอร์ชันที่ติดตั้งจากไฟล์ระบบในเครื่อง และเวอร์ชันที่ติดตั้ง apk ที่ดาวน์โหลดจากบริการสร้าง โปรดทราบว่าเวอร์ชันหลังจะยังคงทํางานได้อย่างถูกต้องกับอินสแตนซ์ TF จำนวนมากที่ทำงานอยู่บนเครื่องโฮสต์เครื่องเดียวกัน
เนื่องจาก TF มีความเชี่ยวชาญในการจัดการกับอุปกรณ์หลายเครื่อง การแยกประเภทผลการทดสอบแต่ละรายการตามประเภทของอุปกรณ์ที่ใช้ทดสอบนั้นจึงเป็นเรื่องง่าย ดังนั้น TF จึงอาจสร้างเมทริกซ์ความเข้ากันได้ 2 มิติ (หรือหลายมิติ) สําหรับบิลด์ทั้งหมดของแอปพลิเคชัน
บริการทดสอบ
ตัวอย่างเช่น บริการทดสอบอาจอนุญาตให้นักพัฒนาแอปส่งแอปและทำการทดสอบในอุปกรณ์ที่ติดตั้งเครื่องมือวัดพลังงานเพื่อระบุการใช้พลังงานของแอป ซึ่งแตกต่างจาก Use Case 2 รายการก่อนหน้าตรงที่เครื่องมือสร้างบริการไม่ได้ควบคุมอุปกรณ์หรือแอปพลิเคชันที่ใช้งานอยู่
เนื่องจาก Trade Federation สามารถเรียกใช้คลาส Java ใดก็ได้ที่ใช้อินเทอร์เฟซ IRemoteTest
แบบง่าย คุณจึงเขียนไดรเวอร์ที่ประสานงานกับฮาร์ดแวร์ภายนอกบางอย่างกับกรณีทดสอบที่ทำงานบนอุปกรณ์ได้ง่ายๆ ตัวไดรเวอร์เองสามารถสร้างเธรด ส่งคําขอไปยังเซิร์ฟเวอร์อื่นๆ หรือทําสิ่งอื่นๆ ที่จําเป็นได้ นอกจากนี้ ความเรียบง่ายและอเนกประสงค์ของอินเทอร์เฟซการรายงานผลลัพธ์ ITestInvocationListener
ยังช่วยให้คุณแสดงผลลัพธ์การทดสอบแบบกำหนดเอง (รวมถึงเมตริกกำลังเชิงตัวเลข) ในไปป์ไลน์การรายงานผลลัพธ์มาตรฐานได้ง่ายๆ