วงจรชีวิตของการทดสอบที่ดำเนินการโดยใช้ Trade Federation ประกอบด้วยสี่ขั้นตอนที่แยกจากกัน ซึ่งออกแบบโดยใช้อินเทอร์เฟซที่กำหนดไว้อย่างเป็นทางการ
อินเทอร์เฟซที่กำหนด
- Build Provider : จัดทำ build เพื่อทดสอบ ดาวน์โหลดไฟล์ที่เหมาะสมหากจำเป็น
- Target Preparer : เตรียมสภาพแวดล้อมการทดสอบ ซึ่งอาจรวมถึงการติดตั้งซอฟต์แวร์และการกำหนดค่าอุปกรณ์
- ทดสอบ : ดำเนินการทดสอบและรวบรวมผลการทดสอบ นี่อาจเป็นการทดสอบ JUnit ใดก็ได้ แม้ว่าอินเทอร์เฟซ IRemoteTest ของเราได้รับการออกแบบมาโดยเฉพาะเพื่อให้ทำงานได้ดีในสภาพแวดล้อมของสหพันธ์การค้า
- Test Invocation Listener (การรายงานผลลัพธ์) : รับฟังผลการทดสอบ โดยปกติแล้วเพื่อจุดประสงค์ในการส่งต่อผลการทดสอบไปยังที่เก็บหรือแสดงผลต่อผู้ทดสอบ
เอนทิตีการทดสอบพื้นฐานใน TF คือ การกำหนดค่า (config) การกำหนดค่าคือไฟล์ XML ที่ประกาศส่วนประกอบวงจรชีวิตของการทดสอบ
การแยกวงจรชีวิตของการทดสอบนี้มีวัตถุประสงค์เพื่อให้สามารถใช้ซ้ำได้ เมื่อใช้การออกแบบนี้ Developer สามารถสร้างการทดสอบได้หนึ่งครั้ง จากนั้น Integrator สามารถสร้างการกำหนดค่าต่างๆ เพื่อเรียกใช้การทดสอบนั้นในสภาพแวดล้อมที่แตกต่างกัน ตัวอย่างเช่น พวกเขาสามารถสร้างการกำหนดค่าที่จะรันการทดสอบบนเครื่องโลคัลและดัมพ์ผลลัพธ์ไปที่ stdout จากนั้น พวกเขาสามารถสร้างการกำหนดค่าที่สองที่จะดำเนินการทดสอบเดียวกันนั้น แต่ใช้ Test Invocation Listener อื่นเพื่อจัดเก็บผลการทดสอบในฐานข้อมูล การกำหนดค่าที่สามอาจได้รับการออกแบบให้รันการทดสอบอย่างต่อเนื่องจากห้องปฏิบัติการทดสอบที่ไหนสักแห่ง
สะดวกที่จะสังเกตว่า Configuration พร้อมกับอาร์กิวเมนต์บรรทัดคำสั่ง (ตามที่ระบุโดย Test Runner) เรียกว่า Command เมื่อ TF จับคู่คำสั่งกับ ITestDevice
และดำเนินการ วัตถุที่ตามมาจะเรียกว่า Invocation สรุปแล้ว Invocation ครอบคลุมการดำเนินการทดสอบ TF ที่สมบูรณ์ตลอดวงจรชีวิตทั้งหมด
ส่วนประกอบการกำหนดค่าเพิ่มเติม
- การกู้คืนอุปกรณ์ : กลไกในการกู้คืนการสื่อสารของอุปกรณ์หากสูญหาย
- Logger : รวบรวมข้อมูลการบันทึกที่แลกเปลี่ยน
เอาต์พุตสเตจและข้อผิดพลาด
แต่ละขั้นตอนของการเรียกใช้ดำเนินการตามลำดับและมีเป้าหมายเฉพาะ ส่วนนี้จะอธิบายผลลัพธ์และข้อผิดพลาดตามปกติของแต่ละขั้นตอน
ผู้ให้บริการสร้าง
ขั้นตอนนี้สร้างและส่งออกวัตถุ IBuildInfo
ที่มีการอ้างอิงไฟล์ที่จำเป็นทั้งหมดเพื่อตั้งค่าและเรียกใช้การทดสอบ
ข้อผิดพลาดที่พบบ่อยที่สุดในขั้นตอนนี้คือความล้มเหลวในการดาวน์โหลดหรือค้นหาไฟล์ที่ร้องขอ
ข้อผิดพลาดในขั้นตอนนี้ส่งผลให้เกิดการรายงานข้อผิดพลาดโดยตรง และไม่มีการเรียกใช้การทดสอบ
การเตรียมเป้าหมาย
ขั้นตอนนี้ตั้งค่าสถานะที่จำเป็นสำหรับเป้าหมายภายใต้การทดสอบ ขั้นตอนนี้สามารถแก้ไขอุปกรณ์หรือการตั้งค่าโฮสต์ได้ตามต้องการสำหรับการเรียกใช้การทดสอบที่กำหนด
ข้อผิดพลาดทั่วไปในขั้นตอนนี้มักจะเกี่ยวข้องกับความล้มเหลวในการตั้งค่าอุปกรณ์ในสถานะที่กำหนด (เช่น แฟลชล้มเหลว) และความล้มเหลวในการค้นหาไฟล์ที่จำเป็นสำหรับการตั้งค่า
ข้อผิดพลาดในขั้นตอนนี้ส่งผลให้การล้างข้อมูลเป้าหมายทำงาน รายงานข้อผิดพลาด และไม่มีการเรียกใช้การทดสอบ
การทดสอบ
ขั้นตอนนี้เรียกใช้การทดสอบที่ร้องขอบนเป้าหมายที่เตรียมไว้ก่อนหน้านี้ และรายงานผลการดำเนินการทดสอบทั้งหมด
ข้อผิดพลาดทั่วไปในขั้นตอนนี้มักจะเกี่ยวข้องกับเป้าหมายภายใต้การทดสอบที่ไม่พร้อมใช้งานหรือข้อผิดพลาดบางอย่างที่ทำให้เกิดการเรียกใช้การทดสอบบางส่วน ข้อผิดพลาดเหล่านี้เป็นปัญหาด้านโครงสร้างพื้นฐานที่ส่งผลต่อการดำเนินการทดสอบ ซึ่งตรงข้ามกับความล้มเหลวของกรณีทดสอบเดียว
ข้อผิดพลาดในขั้นตอนนี้ส่งผลให้การดำเนินการทดสอบหยุดลง เป้าหมายล้างการทำงาน รายงานข้อผิดพลาด และรับผลลัพธ์บางส่วน
การรายงานผล
ขั้นตอนนี้รายงานผลลัพธ์และข้อผิดพลาดไปยังบริการที่กำหนดค่าไว้ (เช่น เซิร์ฟเวอร์และไฟล์ในเครื่อง)
แม้ว่าผู้รายงานผลแต่ละคนอาจมีข้อผิดพลาดได้ แต่ก็แยกออกจากกัน (ผู้รายงานคนหนึ่งไม่เห็นข้อผิดพลาดจากอีกคนหนึ่ง) ข้อผิดพลาดเหล่านี้ส่งผลต่อการรายงานผลลัพธ์ของผู้รายงานแต่ละคนเท่านั้น และสามารถดูข้อผิดพลาดได้ในบันทึก
,วงจรชีวิตของการทดสอบที่ดำเนินการโดยใช้ Trade Federation ประกอบด้วยสี่ขั้นตอนที่แยกจากกัน ซึ่งออกแบบโดยใช้อินเทอร์เฟซที่กำหนดไว้อย่างเป็นทางการ
อินเทอร์เฟซที่กำหนด
- Build Provider : จัดทำ build เพื่อทดสอบ ดาวน์โหลดไฟล์ที่เหมาะสมหากจำเป็น
- Target Preparer : เตรียมสภาพแวดล้อมการทดสอบ ซึ่งอาจรวมถึงการติดตั้งซอฟต์แวร์และการกำหนดค่าอุปกรณ์
- ทดสอบ : ดำเนินการทดสอบและรวบรวมผลการทดสอบ นี่อาจเป็นการทดสอบ JUnit ใดก็ได้ แม้ว่าอินเทอร์เฟซ IRemoteTest ของเราได้รับการออกแบบมาโดยเฉพาะเพื่อให้ทำงานได้ดีในสภาพแวดล้อมของสหพันธ์การค้า
- Test Invocation Listener (การรายงานผลลัพธ์) : รับฟังผลการทดสอบ โดยปกติแล้วเพื่อจุดประสงค์ในการส่งต่อผลการทดสอบไปยังที่เก็บหรือแสดงผลต่อผู้ทดสอบ
เอนทิตีการทดสอบพื้นฐานใน TF คือ การกำหนดค่า (config) การกำหนดค่าคือไฟล์ XML ที่ประกาศส่วนประกอบวงจรชีวิตของการทดสอบ
การแยกวงจรชีวิตของการทดสอบนี้มีวัตถุประสงค์เพื่อให้สามารถใช้ซ้ำได้ เมื่อใช้การออกแบบนี้ Developer สามารถสร้างการทดสอบได้หนึ่งครั้ง จากนั้น Integrator สามารถสร้างการกำหนดค่าต่างๆ เพื่อเรียกใช้การทดสอบนั้นในสภาพแวดล้อมที่แตกต่างกัน ตัวอย่างเช่น พวกเขาสามารถสร้างการกำหนดค่าที่จะรันการทดสอบบนเครื่องโลคัลและดัมพ์ผลลัพธ์ไปที่ stdout จากนั้น พวกเขาสามารถสร้างการกำหนดค่าที่สองที่จะดำเนินการทดสอบเดียวกันนั้น แต่ใช้ Test Invocation Listener อื่นเพื่อจัดเก็บผลการทดสอบในฐานข้อมูล การกำหนดค่าที่สามอาจได้รับการออกแบบให้รันการทดสอบอย่างต่อเนื่องจากห้องปฏิบัติการทดสอบที่ไหนสักแห่ง
สะดวกที่จะสังเกตว่า Configuration พร้อมกับอาร์กิวเมนต์บรรทัดคำสั่ง (ตามที่ระบุโดย Test Runner) เรียกว่า Command เมื่อ TF จับคู่คำสั่งกับ ITestDevice
และดำเนินการ วัตถุที่ตามมาจะเรียกว่า Invocation สรุปแล้ว Invocation ครอบคลุมการดำเนินการทดสอบ TF ที่สมบูรณ์ตลอดวงจรชีวิตทั้งหมด
ส่วนประกอบการกำหนดค่าเพิ่มเติม
- การกู้คืนอุปกรณ์ : กลไกในการกู้คืนการสื่อสารของอุปกรณ์หากสูญหาย
- Logger : รวบรวมข้อมูลการบันทึกที่แลกเปลี่ยน
เอาต์พุตสเตจและข้อผิดพลาด
แต่ละขั้นตอนของการเรียกใช้ดำเนินการตามลำดับและมีเป้าหมายเฉพาะ ส่วนนี้จะอธิบายผลลัพธ์และข้อผิดพลาดตามปกติของแต่ละขั้นตอน
ผู้ให้บริการสร้าง
ขั้นตอนนี้สร้างและส่งออกวัตถุ IBuildInfo
ที่มีการอ้างอิงไฟล์ที่จำเป็นทั้งหมดเพื่อตั้งค่าและเรียกใช้การทดสอบ
ข้อผิดพลาดที่พบบ่อยที่สุดในขั้นตอนนี้คือความล้มเหลวในการดาวน์โหลดหรือค้นหาไฟล์ที่ร้องขอ
ข้อผิดพลาดในขั้นตอนนี้ส่งผลให้เกิดการรายงานข้อผิดพลาดโดยตรง และไม่มีการเรียกใช้การทดสอบ
การเตรียมเป้าหมาย
ขั้นตอนนี้ตั้งค่าสถานะที่จำเป็นสำหรับเป้าหมายภายใต้การทดสอบ ขั้นตอนนี้สามารถแก้ไขอุปกรณ์หรือการตั้งค่าโฮสต์ได้ตามต้องการสำหรับการเรียกใช้การทดสอบที่กำหนด
ข้อผิดพลาดทั่วไปในขั้นตอนนี้มักจะเกี่ยวข้องกับความล้มเหลวในการตั้งค่าอุปกรณ์ในสถานะที่กำหนด (เช่น แฟลชล้มเหลว) และความล้มเหลวในการค้นหาไฟล์ที่จำเป็นสำหรับการตั้งค่า
ข้อผิดพลาดในขั้นตอนนี้ส่งผลให้การล้างข้อมูลเป้าหมายทำงาน รายงานข้อผิดพลาด และไม่มีการเรียกใช้การทดสอบ
การทดสอบ
ขั้นตอนนี้เรียกใช้การทดสอบที่ร้องขอบนเป้าหมายที่เตรียมไว้ก่อนหน้านี้ และรายงานผลการดำเนินการทดสอบทั้งหมด
ข้อผิดพลาดทั่วไปในขั้นตอนนี้มักจะเกี่ยวข้องกับเป้าหมายภายใต้การทดสอบที่ไม่พร้อมใช้งานหรือข้อผิดพลาดบางอย่างที่ทำให้เกิดการเรียกใช้การทดสอบบางส่วน ข้อผิดพลาดเหล่านี้เป็นปัญหาด้านโครงสร้างพื้นฐานที่ส่งผลต่อการดำเนินการทดสอบ ซึ่งตรงข้ามกับความล้มเหลวของกรณีทดสอบเดียว
ข้อผิดพลาดในขั้นตอนนี้ส่งผลให้การดำเนินการทดสอบหยุดลง เป้าหมายล้างการทำงาน รายงานข้อผิดพลาด และรับผลลัพธ์บางส่วน
การรายงานผล
ขั้นตอนนี้รายงานผลลัพธ์และข้อผิดพลาดไปยังบริการที่กำหนดค่าไว้ (เช่น เซิร์ฟเวอร์และไฟล์ในเครื่อง)
แม้ว่าผู้รายงานผลแต่ละคนอาจมีข้อผิดพลาดได้ แต่ก็แยกออกจากกัน (ผู้รายงานคนหนึ่งไม่เห็นข้อผิดพลาดจากอีกคนหนึ่ง) ข้อผิดพลาดเหล่านี้ส่งผลต่อการรายงานผลลัพธ์ของผู้รายงานแต่ละคนเท่านั้น และสามารถดูข้อผิดพลาดได้ในบันทึก