ตัวอย่างการทดสอบการรวมระบบ (SIT) คืออะไร

การทดสอบการรวมระบบคืออะไร?

System การทดสอบการผสานรวม หมายถึงการทดสอบซอฟต์แวร์ประเภทหนึ่งที่ดำเนินการในสภาพแวดล้อมฮาร์ดแวร์และซอฟต์แวร์แบบรวมเพื่อตรวจสอบพฤติกรรมของระบบที่สมบูรณ์ เป็นการทดสอบที่ดำเนินการบนระบบบูรณาการที่สมบูรณ์เพื่อประเมินการปฏิบัติตามข้อกำหนดของระบบตามข้อกำหนดที่ระบุ

การทดสอบการรวมระบบ (SIT) ดำเนินการเพื่อตรวจสอบการโต้ตอบระหว่างโมดูลของระบบซอฟต์แวร์ เกี่ยวข้องกับการตรวจสอบข้อกำหนดซอฟต์แวร์ระดับสูงและต่ำที่ระบุในข้อกำหนด/ข้อมูลข้อกำหนดซอฟต์แวร์ และเอกสารการออกแบบซอฟต์แวร์ นอกจากนี้ยังตรวจสอบการอยู่ร่วมกันของระบบซอฟต์แวร์กับผู้อื่น และทดสอบอินเทอร์เฟซระหว่างโมดูลของแอปพลิเคชันซอฟต์แวร์ ในการทดสอบประเภทนี้ จะมีการทดสอบโมดูลทีละโมดูลก่อน จากนั้นจึงรวมเข้าด้วยกันเพื่อสร้างระบบ ตัวอย่างเช่น ส่วนประกอบซอฟต์แวร์และ/หรือฮาร์ดแวร์จะถูกรวมและทดสอบอย่างต่อเนื่องจนกว่าระบบทั้งหมดจะถูกรวมเข้าด้วยกัน

การทดสอบการรวมระบบ

ทำไมต้องทำการทดสอบการรวมระบบ?

ในสาขาวิศวกรรมซอฟต์แวร์ การทดสอบการรวมระบบทำได้เนื่องจาก

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

วิธีทำการทดสอบการรวมระบบ

เป็นเทคนิคที่เป็นระบบสำหรับการสร้างโครงสร้างของโปรแกรมขณะทำการทดสอบเพื่อค้นหาข้อผิดพลาดที่เกี่ยวข้องกับการเชื่อมต่อ

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

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

มีวิธีการเพิ่มเติมบางอย่าง เช่น การทดสอบการรวมระบบจะดำเนินการบนระบบที่ใช้โปรเซสเซอร์เป้าหมาย วิธีการที่ใช้ก็คือ Black Box การทดสอบ- สามารถใช้การรวมจากล่างขึ้นบนหรือจากบนลงล่างได้

กรณีทดสอบถูกกำหนดโดยใช้ข้อกำหนดซอฟต์แวร์ระดับสูงเท่านั้น

การรวมซอฟต์แวร์อาจทำได้สำเร็จเป็นส่วนใหญ่ในสภาพแวดล้อมโฮสต์ โดยมีหน่วยเฉพาะสำหรับสภาพแวดล้อมเป้าหมายที่ยังคงจำลองอยู่ในโฮสต์ต่อไป จำเป็นต้องทำการทดสอบซ้ำในสภาพแวดล้อมเป้าหมายเพื่อการยืนยันอีกครั้ง

การทดสอบเพื่อยืนยันในระดับนี้จะระบุปัญหาเฉพาะสภาพแวดล้อม เช่น ข้อผิดพลาดในการจัดสรรหน่วยความจำและการยกเลิกการจัดสรร การปฏิบัติจริงของการดำเนินการ การรวมซอฟต์แวร์ ในสภาพแวดล้อมโฮสต์จะขึ้นอยู่กับว่ามีฟังก์ชันเฉพาะเป้าหมายมากเพียงใด สำหรับระบบฝังตัวบางระบบ การผูกโยงกับสภาพแวดล้อมเป้าหมายจะแข็งแกร่งมาก ทำให้ไม่สามารถทำการผสานรวมซอฟต์แวร์ในสภาพแวดล้อมโฮสต์ได้

การพัฒนาซอฟต์แวร์ขนาดใหญ่จะแบ่งการรวมซอฟต์แวร์ออกเป็นหลายระดับ ระดับล่างของการรวมซอฟต์แวร์อาจขึ้นอยู่กับสภาพแวดล้อมโฮสต์เป็นหลัก โดยระดับต่อมาของการรวมซอฟต์แวร์จะขึ้นอยู่กับสภาพแวดล้อมเป้าหมายมากขึ้น

หมายเหตุ หากมีการทดสอบซอฟต์แวร์เพียงอย่างเดียว จะเรียกว่าการทดสอบการรวมซอฟต์แวร์ซอฟต์แวร์ [SSIT] และหากมีการทดสอบทั้งฮาร์ดแวร์และซอฟต์แวร์ จะเรียกว่าการทดสอบการรวมซอฟต์แวร์ฮาร์ดแวร์ [HSIT]

เกณฑ์การเข้าและออกสำหรับการทดสอบการรวมระบบ

โดยปกติในขณะที่ดำเนินการทดสอบการรวมระบบ จะใช้กลยุทธ์ ETVX (เกณฑ์รายการ งาน การตรวจสอบ และเกณฑ์การออก)

เกณฑ์รายการ:

ปัจจัยการผลิต:

  • ข้อมูลข้อกำหนดซอฟต์แวร์
  • เอกสารการออกแบบซอฟต์แวร์
  • แผนการตรวจสอบซอฟต์แวร์
  • เอกสารการรวมซอฟต์แวร์

กิจกรรม:

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

เกณฑ์การออก:

  • การรวมโมดูลซอฟต์แวร์เข้ากับฮาร์ดแวร์เป้าหมายสำเร็จแล้ว
  • ประสิทธิภาพที่ถูกต้องของซอฟต์แวร์ตามข้อกำหนดที่ระบุ

Outputs

  • รายงานการทดสอบบูรณาการ
  • กรณีและขั้นตอนการทดสอบซอฟต์แวร์ [SVCP]

การทดสอบการรวมซอฟต์แวร์ฮาร์ดแวร์

การทดสอบการรวมซอฟต์แวร์ฮาร์ดแวร์ เป็นกระบวนการทดสอบส่วนประกอบซอฟต์แวร์คอมพิวเตอร์ (CSC) สำหรับฟังก์ชันการทำงานระดับสูงบนสภาพแวดล้อมฮาร์ดแวร์เป้าหมาย เป้าหมายของการทดสอบการรวมฮาร์ดแวร์/ซอฟต์แวร์คือการทดสอบพฤติกรรมของซอฟต์แวร์ที่พัฒนาแล้วซึ่งรวมอยู่ในส่วนประกอบฮาร์ดแวร์

การทดสอบการรวมฮาร์ดแวร์-ซอฟต์แวร์ตามความต้องการ

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

  • ข้อผิดพลาดอินเทอร์เฟซฮาร์ดแวร์/ซอฟต์แวร์
  • การละเมิดการแบ่งพาร์ติชันซอฟต์แวร์
  • ไม่สามารถตรวจจับความล้มเหลวโดยการทดสอบในตัว
  • การตอบสนองที่ไม่ถูกต้องต่อความล้มเหลวของฮาร์ดแวร์
  • ข้อผิดพลาดเนื่องจากการเรียงลำดับ โหลดอินพุตชั่วคราว และกำลังไฟฟ้าอินพุตชั่วคราว
  • คำติชมวนซ้ำพฤติกรรมที่ไม่ถูกต้อง
  • การควบคุมฮาร์ดแวร์การจัดการหน่วยความจำไม่ถูกต้องหรือไม่เหมาะสม
  • ปัญหาการโต้แย้งบัสข้อมูล
  • การทำงานที่ไม่ถูกต้องของกลไกในการตรวจสอบความเข้ากันได้และความถูกต้องของซอฟต์แวร์ที่โหลดภาคสนาม

การรวมซอฟต์แวร์ฮาร์ดแวร์เกี่ยวข้องกับการตรวจสอบข้อกำหนดระดับสูง การทดสอบทั้งหมดในระดับนี้ดำเนินการกับฮาร์ดแวร์เป้าหมาย

  • การทดสอบกล่องดำเป็นวิธีการทดสอบหลักที่ใช้ในการทดสอบระดับนี้
  • กำหนด กรณีทดสอบ จากข้อกำหนดระดับสูงเท่านั้น
  • การทดสอบจะต้องดำเนินการกับฮาร์ดแวร์มาตรฐานการผลิต (ตามเป้าหมาย)

สิ่งที่ต้องพิจารณาเมื่อออกแบบกรณีทดสอบสำหรับการรวม HW/SW

  • การได้มาซึ่งข้อมูลทั้งหมดอย่างถูกต้องโดยซอฟต์แวร์
  • การปรับขนาดและช่วงของข้อมูลที่คาดหวังตั้งแต่ฮาร์ดแวร์ไปจนถึงซอฟต์แวร์
  • ผลลัพธ์ที่ถูกต้องของข้อมูลจากซอฟต์แวร์ไปยังฮาร์ดแวร์
  • ข้อมูลภายในข้อกำหนด (ช่วงปกติ)
  • ข้อมูลนอกข้อกำหนด (ช่วงผิดปกติ)
  • ข้อมูลขอบเขต
  • ขัดจังหวะการประมวลผล
  • การจับเวลา
  • การใช้หน่วยความจำที่ถูกต้อง (การกำหนดแอดเดรส การทับซ้อน ฯลฯ)
  • การเปลี่ยนผ่านของรัฐ

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

ซอฟต์แวร์กับการทดสอบการรวมซอฟต์แวร์

เป็นการทดสอบส่วนประกอบซอฟต์แวร์คอมพิวเตอร์ที่ทำงานภายในคอมพิวเตอร์โฮสต์/เป้าหมาย

สภาพแวดล้อมในขณะที่จำลองทั้งระบบ [CSC อื่นๆ] และฟังก์ชันการทำงานระดับสูง

โดยมุ่งเน้นไปที่พฤติกรรมของ CSC ในสภาพแวดล้อมโฮสต์/เป้าหมายจำลอง แนวทางที่ใช้สำหรับการรวมซอฟต์แวร์อาจเป็นแนวทางแบบส่วนเพิ่ม (จากบนลงล่าง แนวทางจากล่างขึ้นบน หรือทั้งสองอย่างรวมกัน)

แนวทางแบบค่อยเป็นค่อยไป

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

การบูรณาการแบบค่อยเป็นค่อยไปเป็นสิ่งที่ตรงกันข้ามกับแนวทางบิ๊กแบง โปรแกรมถูกสร้างและทดสอบในส่วนเล็กๆ ซึ่งข้อผิดพลาดสามารถแยกและแก้ไขได้ง่ายกว่า อินเทอร์เฟซมีแนวโน้มที่จะได้รับการทดสอบอย่างสมบูรณ์ และอาจใช้วิธีการทดสอบอย่างเป็นระบบ

การทดสอบแบบเพิ่มหน่วยมีสองประเภท

  • วิธีการจากบนลงล่าง
  • วิธีการจากล่างขึ้นบน

วิธีการจากบนลงล่าง

ในแนวทางประเภทนี้ แต่ละคนจะเริ่มต้นด้วยการทดสอบเฉพาะส่วนต่อประสานกับผู้ใช้ โดยมีฟังก์ชันการทำงานพื้นฐานที่จำลองโดย stubs จากนั้นคุณเลื่อนลงไปด้านล่างโดยรวมชั้นล่างและชั้นล่างดังที่แสดงในภาพด้านล่าง

วิธีการจากบนลงล่าง

  • เริ่มต้นจากโมดูลควบคุมหลัก โมดูลต่างๆ จะถูกรวมเข้าด้วยกันโดยเลื่อนลงไปตามลำดับชั้นการควบคุม
  • โมดูลย่อยของโมดูลควบคุมหลักจะรวมอยู่ในโครงสร้างทั้งในลักษณะกว้างก่อนหรือในลักษณะลึกก่อน
  • การบูรณาการแบบเชิงลึกจะบูรณาการโมดูลทั้งหมดบนเส้นทางควบคุมหลักของโครงสร้างตามที่แสดงในแผนภาพต่อไปนี้:

วิธีการจากบนลงล่าง

กระบวนการบูรณาการโมดูลจะดำเนินการในลักษณะต่อไปนี้:

  1. โมดูลควบคุมหลักถูกใช้เป็นตัวขับทดสอบ และส่วนต้นขั้วจะถูกแทนที่สำหรับโมดูลทั้งหมดที่อยู่รองจากโมดูลควบคุมหลักโดยตรง
  2. ต้นขั้วรองจะถูกแทนที่ทีละโมดูลด้วยโมดูลจริง ขึ้นอยู่กับแนวทางที่เลือก (กว้างก่อนหรือลึกก่อน)
  3. การทดสอบจะดำเนินการเมื่อแต่ละโมดูลถูกรวมเข้าด้วยกัน
  4. เมื่อเสร็จสิ้นการทดสอบแต่ละชุด ต้นขั้วอีกอันจะถูกแทนที่ด้วยโมดูลจริงเมื่อเสร็จสิ้นการทดสอบแต่ละชุด
  5. เพื่อให้แน่ใจว่าไม่มีข้อผิดพลาดใหม่เกิดขึ้น การทดสอบการถดถอย อาจจะดำเนินการ

กระบวนการดำเนินต่อไปจากขั้นตอนที่ 2 จนกระทั่งโครงสร้างโปรแกรมทั้งหมดถูกสร้างขึ้น กลยุทธ์จากบนลงล่างฟังดูไม่ซับซ้อน แต่ในทางปฏิบัติ ปัญหาด้านลอจิสติกส์ก็เกิดขึ้น

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

Stubs จะเข้ามาแทนที่โมดูลระดับต่ำเมื่อเริ่มต้นการทดสอบจากบนลงล่าง ดังนั้นจึงไม่มีข้อมูลสำคัญใดสามารถไหลขึ้นไปในโครงสร้างของโปรแกรมได้

ผู้ทดสอบความท้าทายอาจเผชิญ:

  • ชะลอการทดสอบหลายๆ ครั้งจนกว่าต้นขั้วจะถูกแทนที่ด้วยโมดูลจริง
  • พัฒนาสตับที่ทำหน้าที่จำกัดซึ่งจำลองโมดูลจริง
  • รวมซอฟต์แวร์จากด้านล่างของลำดับชั้นขึ้นไป

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

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

แนวทางด้านล่างขึ้น

การรวมจากล่างขึ้นบนเริ่มต้นการก่อสร้างและการทดสอบด้วยโมดูลที่ระดับต่ำสุดในโครงสร้างของโปรแกรม ในกระบวนการนี้ โมดูลต่างๆ จะถูกรวมเข้าด้วยกันจากล่างขึ้นบน

ในแนวทางนี้ การประมวลผลที่จำเป็นสำหรับโมดูลที่อยู่ใต้บังคับบัญชาจนถึงระดับที่กำหนดจะพร้อมใช้งานเสมอ และความจำเป็นในการ stub ก็หมดไป

กระบวนการทดสอบการรวมระบบนี้ดำเนินการเป็นชุดสี่ขั้นตอน

  1. โมดูลระดับต่ำจะถูกผสมเข้าเป็นคลัสเตอร์ที่ทำหน้าที่ย่อยซอฟต์แวร์เฉพาะ
  2. ไดรเวอร์ถูกเขียนขึ้นเพื่อประสานอินพุตและเอาต์พุตของกรณีทดสอบ
  3. คลัสเตอร์หรือการสร้างได้รับการทดสอบแล้ว
  4. ไดรเวอร์จะถูกลบออกและคลัสเตอร์จะถูกรวมเข้าด้วยกันโดยเคลื่อนขึ้นไปในโครงสร้างโปรแกรม

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

แนวทางด้านล่างขึ้น

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

แนวทางบิ๊กแบง

ในแนวทางนี้ โมดูลทั้งหมดจะไม่ถูกรวมเข้าด้วยกันจนกว่าและเว้นแต่โมดูลทั้งหมดจะพร้อม เมื่อพร้อม โมดูลทั้งหมดจะถูกรวมเข้าด้วยกัน จากนั้นจึงดำเนินการเพื่อดูว่าโมดูลที่รวมเข้าด้วยกันทั้งหมดใช้งานได้หรือไม่

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

นอกจากนี้ ยังมีโอกาสสูงที่จะเกิดจุดบกพร่องร้ายแรงในสภาพแวดล้อมการใช้งานจริง

วิธีการนี้จะนำมาใช้เฉพาะเมื่อต้องทำการทดสอบการรวมระบบพร้อมกันเท่านั้น

สรุป

  • ดำเนินการบูรณาการเพื่อตรวจสอบการโต้ตอบระหว่างโมดูลของระบบซอฟต์แวร์ ช่วยตรวจจับข้อบกพร่องได้ตั้งแต่เนิ่นๆ
  • การทดสอบการรวมสามารถทำได้สำหรับการรวมฮาร์ดแวร์-ซอฟต์แวร์ หรือการรวมฮาร์ดแวร์-ฮาร์ดแวร์
  • การทดสอบการรวมทำได้สองวิธี
    • แนวทางที่เพิ่มขึ้น
    • แนวทางบิ๊กแบง
  • ในขณะที่ทำการทดสอบการรวมระบบ โดยทั่วไปจะใช้กลยุทธ์ ETVX (เกณฑ์รายการ งาน การตรวจสอบ และเกณฑ์การออก)