วงจรชีวิตการทดสอบ TF วงจรชีวิตการทดสอบ TF

วงจรชีวิตของการทดสอบที่ดำเนินการโดยใช้ 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 ที่มีการอ้างอิงไฟล์ที่จำเป็นทั้งหมดเพื่อตั้งค่าและเรียกใช้การทดสอบ

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

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

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

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

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

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

การทดสอบ

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

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

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

การรายงานผล

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

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