วงจรการทดสอบ TF

วงจรชีวิตของการทดสอบที่ดำเนินการโดยใช้ Trade Federation ประกอบด้วยสี่ขั้นตอนที่แยกจากกัน ซึ่งได้รับการออกแบบโดยใช้อินเทอร์เฟซที่กำหนดไว้อย่างเป็นทางการ

อินเทอร์เฟซที่กำหนด

  • Build Provider : จัดเตรียมบิลด์เพื่อทดสอบ โดยดาวน์โหลดไฟล์ที่เหมาะสมหากจำเป็น
  • ตัวจัดเตรียมเป้าหมาย : เตรียมสภาพแวดล้อมการทดสอบ ซึ่งอาจรวมถึงการติดตั้งซอฟต์แวร์และการกำหนดค่าอุปกรณ์
  • การทดสอบ : ดำเนินการทดสอบและรวบรวมผลการทดสอบ นี่อาจเป็นการทดสอบ JUnit ใดๆ แม้ว่าอินเทอร์เฟซ IRemoteTest ของเราได้รับการออกแบบมาเป็นพิเศษเพื่อให้ทำงานได้ดีในสภาพแวดล้อมของ Trade Federation
  • Test Invocation Listener (การรายงานผลลัพธ์) : Listener สำหรับผลการทดสอบ โดยปกติจะมีจุดประสงค์เพื่อส่งต่อผลการทดสอบไปยังพื้นที่เก็บข้อมูลหรือแสดงให้ผู้ทดสอบเห็น

เอนทิตีการทดสอบพื้นฐานใน TF คือ การกำหนดค่า (config) การกำหนดค่าคือไฟล์ XML ที่ประกาศส่วนประกอบวงจรชีวิตของการทดสอบ

การแยกวงจรชีวิตของการทดสอบนี้มีจุดมุ่งหมายเพื่อให้สามารถนำกลับมาใช้ใหม่ได้ เมื่อใช้การออกแบบนี้ นักพัฒนาสามารถสร้างการทดสอบได้เพียงครั้งเดียว จากนั้นผู้รวมระบบจะสามารถสร้างการกำหนดค่าที่แตกต่างกันเพื่อรันการทดสอบนั้นในสภาพแวดล้อมที่แตกต่างกันได้ ตัวอย่างเช่น พวกเขาสามารถสร้างการกำหนดค่าที่จะทำการทดสอบบนเครื่องท้องถิ่นและถ่ายโอนผลลัพธ์ไปที่ stdout จากนั้นพวกเขาสามารถสร้างการกำหนดค่าที่สองที่จะดำเนินการทดสอบเดียวกันนั้น แต่ใช้ Test Invocation Listener อื่นเพื่อจัดเก็บผลการทดสอบไว้ในฐานข้อมูล การกำหนดค่าที่สามอาจได้รับการออกแบบให้ทำการทดสอบอย่างต่อเนื่องจากห้องปฏิบัติการทดสอบที่ไหนสักแห่ง

สะดวกในการทราบว่าการกำหนดค่าพร้อมกับอาร์กิวเมนต์บรรทัดคำสั่ง (ตามที่ Test Runner ให้มา) เรียกว่า Command เมื่อ TF จับคู่คำสั่งกับ ITestDevice และดำเนินการนั้น ออบเจ็กต์ที่ตามมาจะเรียกว่า Invocation กล่าวโดยสรุป การเรียกใช้ครอบคลุมการดำเนินการทดสอบ TF ที่สมบูรณ์ตลอดวงจรชีวิตทั้งหมด

ส่วนประกอบการกำหนดค่าเพิ่มเติม

  • การกู้คืนอุปกรณ์ : กลไกในการกู้คืนการสื่อสารของอุปกรณ์หากสูญหาย
  • Logger : รวบรวมข้อมูลการบันทึกที่แลกเปลี่ยนกัน

สเตจเอาท์พุตและข้อผิดพลาด

แต่ละขั้นตอนของการร้องขอจะดำเนินการตามลำดับและมีเป้าหมายเฉพาะ ส่วนนี้จะอธิบายผลลัพธ์และข้อผิดพลาดตามปกติของแต่ละขั้นตอน

ผู้ให้บริการสร้าง

ขั้นตอนนี้จะสร้างและส่งออกออบเจ็กต์ IBuildInfo ที่มีการอ้างอิงไฟล์ที่จำเป็นทั้งหมดเพื่อตั้งค่าและรันการทดสอบ

ข้อผิดพลาดที่พบบ่อยที่สุดในขั้นตอนนี้คือการดาวน์โหลดหรือค้นหาไฟล์ที่ร้องขอไม่สำเร็จ

ข้อผิดพลาดในขั้นตอนนี้ส่งผลให้มีการรายงานข้อผิดพลาดโดยตรง และไม่มีการเรียกใช้การทดสอบ

การเตรียมเป้าหมาย

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

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

ข้อผิดพลาดในขั้นตอนนี้ส่งผลให้การล้างข้อมูลเป้าหมายทำงานอยู่ รายงานข้อผิดพลาด และไม่มีการรันการทดสอบ

การทดสอบ

ขั้นตอนนี้จะรันการทดสอบที่ร้องขอบนเป้าหมายที่เตรียมไว้ก่อนหน้านี้ และรายงานผลการดำเนินการทดสอบทั้งหมด

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

ข้อผิดพลาดในขั้นตอนนี้ส่งผลให้การดำเนินการทดสอบหยุด การล้างข้อมูลเป้าหมายกำลังทำงานอยู่ รายงานข้อผิดพลาด และรับผลลัพธ์บางส่วน

การรายงานผล

ขั้นตอนนี้จะรายงานผลลัพธ์และข้อผิดพลาดไปยังบริการที่กำหนดค่าไว้ (เช่น เซิร์ฟเวอร์และไฟล์ในเครื่อง)

แม้ว่าผู้รายงานผลลัพธ์แต่ละคนอาจมีข้อผิดพลาด แต่ก็แยกจากกัน (ผู้รายงานคนหนึ่งไม่เห็นข้อผิดพลาดจากอีกคนหนึ่ง) ข้อผิดพลาดเหล่านี้ส่งผลต่อการรายงานผลลัพธ์ของผู้รายงานแต่ละคนเท่านั้น และสามารถดูข้อผิดพลาดได้ในบันทึก