ตัวอย่างการทดสอบการรวมระบบ (SIT) คืออะไร
การทดสอบการรวมระบบคืออะไร?
System การทดสอบการผสานรวม หมายถึงการทดสอบซอฟต์แวร์ประเภทหนึ่งที่ดำเนินการในสภาพแวดล้อมฮาร์ดแวร์และซอฟต์แวร์แบบรวมเพื่อตรวจสอบพฤติกรรมของระบบที่สมบูรณ์ เป็นการทดสอบที่ดำเนินการบนระบบบูรณาการที่สมบูรณ์เพื่อประเมินการปฏิบัติตามข้อกำหนดของระบบตามข้อกำหนดที่ระบุ
การทดสอบการรวมระบบ (SIT) ดำเนินการเพื่อตรวจสอบการโต้ตอบระหว่างโมดูลของระบบซอฟต์แวร์ เกี่ยวข้องกับการตรวจสอบข้อกำหนดซอฟต์แวร์ระดับสูงและต่ำที่ระบุในข้อกำหนด/ข้อมูลข้อกำหนดซอฟต์แวร์ และเอกสารการออกแบบซอฟต์แวร์ นอกจากนี้ยังตรวจสอบการอยู่ร่วมกันของระบบซอฟต์แวร์กับผู้อื่น และทดสอบอินเทอร์เฟซระหว่างโมดูลของแอปพลิเคชันซอฟต์แวร์ ในการทดสอบประเภทนี้ จะมีการทดสอบโมดูลทีละโมดูลก่อน จากนั้นจึงรวมเข้าด้วยกันเพื่อสร้างระบบ ตัวอย่างเช่น ส่วนประกอบซอฟต์แวร์และ/หรือฮาร์ดแวร์จะถูกรวมและทดสอบอย่างต่อเนื่องจนกว่าระบบทั้งหมดจะถูกรวมเข้าด้วยกัน
ทำไมต้องทำการทดสอบการรวมระบบ?
ในสาขาวิศวกรรมซอฟต์แวร์ การทดสอบการรวมระบบทำได้เนื่องจาก
- ช่วยในการตรวจจับ ข้อบกพร่อง ก่อน
- จะมีข้อเสนอแนะก่อนหน้านี้เกี่ยวกับการยอมรับของแต่ละโมดูล
- การจัดกำหนดการการแก้ไขข้อบกพร่องมีความยืดหยุ่น และสามารถซ้อนทับกับการพัฒนาได้
- การไหลของข้อมูลที่ถูกต้อง
- กระแสการควบคุมที่ถูกต้อง
- ช่วงเวลาที่ถูกต้อง
- การใช้หน่วยความจำที่ถูกต้อง
- ถูกต้องตามข้อกำหนดของซอฟต์แวร์
วิธีทำการทดสอบการรวมระบบ
เป็นเทคนิคที่เป็นระบบสำหรับการสร้างโครงสร้างของโปรแกรมขณะทำการทดสอบเพื่อค้นหาข้อผิดพลาดที่เกี่ยวข้องกับการเชื่อมต่อ
โมดูลทั้งหมดได้รับการบูรณาการไว้ล่วงหน้า และโปรแกรมทั้งหมดได้รับการทดสอบโดยรวม แต่ในระหว่างกระบวนการนี้ มีแนวโน้มที่จะพบชุดข้อผิดพลาด
การแก้ไขข้อผิดพลาดดังกล่าวทำได้ยากเนื่องจากสาเหตุของการแยกมีความซับซ้อนเนื่องจากการขยายโปรแกรมทั้งหมดอย่างกว้างขวาง เมื่อข้อผิดพลาดเหล่านี้ได้รับการแก้ไขและแก้ไขแล้ว ข้อผิดพลาดใหม่จะปรากฏขึ้น และกระบวนการดำเนินต่อไปอย่างราบรื่นในวงวนที่ไม่มีที่สิ้นสุด. เพื่อหลีกเลี่ยงสถานการณ์ดังกล่าว เราจึงใช้แนวทางอื่นที่เรียกว่า Incremental Integration เราจะมาดูรายละเอียดเพิ่มเติมเกี่ยวกับแนวทางแบบ Incremental Integration ในภายหลังในบทช่วยสอนนี้
มีวิธีการเพิ่มเติมบางอย่าง เช่น การทดสอบการรวมระบบจะดำเนินการบนระบบที่ใช้โปรเซสเซอร์เป้าหมาย วิธีการที่ใช้ก็คือ Black Box การทดสอบ- สามารถใช้การรวมจากล่างขึ้นบนหรือจากบนลงล่างได้
กรณีทดสอบถูกกำหนดโดยใช้ข้อกำหนดซอฟต์แวร์ระดับสูงเท่านั้น
การรวมซอฟต์แวร์อาจทำได้สำเร็จเป็นส่วนใหญ่ในสภาพแวดล้อมโฮสต์ โดยมีหน่วยเฉพาะสำหรับสภาพแวดล้อมเป้าหมายที่ยังคงจำลองอยู่ในโฮสต์ต่อไป จำเป็นต้องทำการทดสอบซ้ำในสภาพแวดล้อมเป้าหมายเพื่อการยืนยันอีกครั้ง
การทดสอบเพื่อยืนยันในระดับนี้จะระบุปัญหาเฉพาะสภาพแวดล้อม เช่น ข้อผิดพลาดในการจัดสรรหน่วยความจำและการยกเลิกการจัดสรร การปฏิบัติจริงของการดำเนินการ การรวมซอฟต์แวร์ ในสภาพแวดล้อมโฮสต์จะขึ้นอยู่กับว่ามีฟังก์ชันเฉพาะเป้าหมายมากเพียงใด สำหรับระบบฝังตัวบางระบบ การผูกโยงกับสภาพแวดล้อมเป้าหมายจะแข็งแกร่งมาก ทำให้ไม่สามารถทำการผสานรวมซอฟต์แวร์ในสภาพแวดล้อมโฮสต์ได้
การพัฒนาซอฟต์แวร์ขนาดใหญ่จะแบ่งการรวมซอฟต์แวร์ออกเป็นหลายระดับ ระดับล่างของการรวมซอฟต์แวร์อาจขึ้นอยู่กับสภาพแวดล้อมโฮสต์เป็นหลัก โดยระดับต่อมาของการรวมซอฟต์แวร์จะขึ้นอยู่กับสภาพแวดล้อมเป้าหมายมากขึ้น
หมายเหตุ หากมีการทดสอบซอฟต์แวร์เพียงอย่างเดียว จะเรียกว่าการทดสอบการรวมซอฟต์แวร์ซอฟต์แวร์ [SSIT] และหากมีการทดสอบทั้งฮาร์ดแวร์และซอฟต์แวร์ จะเรียกว่าการทดสอบการรวมซอฟต์แวร์ฮาร์ดแวร์ [HSIT]
เกณฑ์การเข้าและออกสำหรับการทดสอบการรวมระบบ
โดยปกติในขณะที่ดำเนินการทดสอบการรวมระบบ จะใช้กลยุทธ์ ETVX (เกณฑ์รายการ งาน การตรวจสอบ และเกณฑ์การออก)
เกณฑ์รายการ:
- เสร็จสิ้นการ การทดสอบหน่วย
ปัจจัยการผลิต:
- ข้อมูลข้อกำหนดซอฟต์แวร์
- เอกสารการออกแบบซอฟต์แวร์
- แผนการตรวจสอบซอฟต์แวร์
- เอกสารการรวมซอฟต์แวร์
กิจกรรม:
- ขึ้นอยู่กับข้อกำหนดระดับสูงและต่ำ สร้างกรณีทดสอบและขั้นตอน
- รวมโมดูลระดับต่ำที่ใช้ฟังก์ชันทั่วไป
- พัฒนาสายรัดทดสอบ
- ทดสอบโครงสร้าง
- เมื่อผ่านการทดสอบแล้ว โครงสร้างจะถูกรวมเข้ากับรุ่นอื่นๆ และทดสอบจนกว่าระบบจะรวมเข้าด้วยกันทั้งหมด
- ดำเนินการทดสอบทั้งหมดอีกครั้งบนแพลตฟอร์มที่ใช้โปรเซสเซอร์เป้าหมาย และรับผลลัพธ์
เกณฑ์การออก:
- การรวมโมดูลซอฟต์แวร์เข้ากับฮาร์ดแวร์เป้าหมายสำเร็จแล้ว
- ประสิทธิภาพที่ถูกต้องของซอฟต์แวร์ตามข้อกำหนดที่ระบุ
Outputs
- รายงานการทดสอบบูรณาการ
- กรณีและขั้นตอนการทดสอบซอฟต์แวร์ [SVCP]
การทดสอบการรวมซอฟต์แวร์ฮาร์ดแวร์
การทดสอบการรวมซอฟต์แวร์ฮาร์ดแวร์ เป็นกระบวนการทดสอบส่วนประกอบซอฟต์แวร์คอมพิวเตอร์ (CSC) สำหรับฟังก์ชันการทำงานระดับสูงบนสภาพแวดล้อมฮาร์ดแวร์เป้าหมาย เป้าหมายของการทดสอบการรวมฮาร์ดแวร์/ซอฟต์แวร์คือการทดสอบพฤติกรรมของซอฟต์แวร์ที่พัฒนาแล้วซึ่งรวมอยู่ในส่วนประกอบฮาร์ดแวร์
การทดสอบการรวมฮาร์ดแวร์-ซอฟต์แวร์ตามความต้องการ
จุดมุ่งหมายของการทดสอบการรวมฮาร์ดแวร์/ซอฟต์แวร์ตามความต้องการคือเพื่อให้แน่ใจว่าซอฟต์แวร์ในคอมพิวเตอร์เป้าหมายจะเป็นไปตามข้อกำหนดระดับสูง ข้อผิดพลาดทั่วไปที่แสดงโดยวิธีการทดสอบนี้ได้แก่:
- ข้อผิดพลาดอินเทอร์เฟซฮาร์ดแวร์/ซอฟต์แวร์
- การละเมิดการแบ่งพาร์ติชันซอฟต์แวร์
- ไม่สามารถตรวจจับความล้มเหลวโดยการทดสอบในตัว
- การตอบสนองที่ไม่ถูกต้องต่อความล้มเหลวของฮาร์ดแวร์
- ข้อผิดพลาดเนื่องจากการเรียงลำดับ โหลดอินพุตชั่วคราว และกำลังไฟฟ้าอินพุตชั่วคราว
- คำติชมวนซ้ำพฤติกรรมที่ไม่ถูกต้อง
- การควบคุมฮาร์ดแวร์การจัดการหน่วยความจำไม่ถูกต้องหรือไม่เหมาะสม
- ปัญหาการโต้แย้งบัสข้อมูล
- การทำงานที่ไม่ถูกต้องของกลไกในการตรวจสอบความเข้ากันได้และความถูกต้องของซอฟต์แวร์ที่โหลดภาคสนาม
การรวมซอฟต์แวร์ฮาร์ดแวร์เกี่ยวข้องกับการตรวจสอบข้อกำหนดระดับสูง การทดสอบทั้งหมดในระดับนี้ดำเนินการกับฮาร์ดแวร์เป้าหมาย
- การทดสอบกล่องดำเป็นวิธีการทดสอบหลักที่ใช้ในการทดสอบระดับนี้
- กำหนด กรณีทดสอบ จากข้อกำหนดระดับสูงเท่านั้น
- การทดสอบจะต้องดำเนินการกับฮาร์ดแวร์มาตรฐานการผลิต (ตามเป้าหมาย)
สิ่งที่ต้องพิจารณาเมื่อออกแบบกรณีทดสอบสำหรับการรวม HW/SW
- การได้มาซึ่งข้อมูลทั้งหมดอย่างถูกต้องโดยซอฟต์แวร์
- การปรับขนาดและช่วงของข้อมูลที่คาดหวังตั้งแต่ฮาร์ดแวร์ไปจนถึงซอฟต์แวร์
- ผลลัพธ์ที่ถูกต้องของข้อมูลจากซอฟต์แวร์ไปยังฮาร์ดแวร์
- ข้อมูลภายในข้อกำหนด (ช่วงปกติ)
- ข้อมูลนอกข้อกำหนด (ช่วงผิดปกติ)
- ข้อมูลขอบเขต
- ขัดจังหวะการประมวลผล
- การจับเวลา
- การใช้หน่วยความจำที่ถูกต้อง (การกำหนดแอดเดรส การทับซ้อน ฯลฯ)
- การเปลี่ยนผ่านของรัฐ
หมายเหตุ สำหรับการทดสอบการขัดจังหวะ การขัดจังหวะทั้งหมดจะได้รับการตรวจสอบอย่างเป็นอิสระจากคำขอเริ่มแรกผ่านการให้บริการเต็มรูปแบบและเมื่อเสร็จสิ้น กรณีทดสอบจะได้รับการออกแบบมาโดยเฉพาะเพื่อทดสอบการขัดจังหวะอย่างเพียงพอ
ซอฟต์แวร์กับการทดสอบการรวมซอฟต์แวร์
เป็นการทดสอบส่วนประกอบซอฟต์แวร์คอมพิวเตอร์ที่ทำงานภายในคอมพิวเตอร์โฮสต์/เป้าหมาย
สภาพแวดล้อมในขณะที่จำลองทั้งระบบ [CSC อื่นๆ] และฟังก์ชันการทำงานระดับสูง
โดยมุ่งเน้นไปที่พฤติกรรมของ CSC ในสภาพแวดล้อมโฮสต์/เป้าหมายจำลอง แนวทางที่ใช้สำหรับการรวมซอฟต์แวร์อาจเป็นแนวทางแบบส่วนเพิ่ม (จากบนลงล่าง แนวทางจากล่างขึ้นบน หรือทั้งสองอย่างรวมกัน)
แนวทางแบบค่อยเป็นค่อยไป
การทดสอบส่วนเพิ่มเป็นวิธีหนึ่งของการทดสอบการบูรณาการ ในวิธีการทดสอบประเภทนี้ คุณต้องทดสอบแต่ละโมดูลของซอฟต์แวร์แยกกันก่อน จากนั้นจึงทำการทดสอบต่อโดยผนวกโมดูลอื่นเข้ากับโมดูลนั้น ต่อท้ายโมดูลอื่นต่อไปเรื่อยๆ
การบูรณาการแบบค่อยเป็นค่อยไปเป็นสิ่งที่ตรงกันข้ามกับแนวทางบิ๊กแบง โปรแกรมถูกสร้างและทดสอบในส่วนเล็กๆ ซึ่งข้อผิดพลาดสามารถแยกและแก้ไขได้ง่ายกว่า อินเทอร์เฟซมีแนวโน้มที่จะได้รับการทดสอบอย่างสมบูรณ์ และอาจใช้วิธีการทดสอบอย่างเป็นระบบ
การทดสอบแบบเพิ่มหน่วยมีสองประเภท
- วิธีการจากบนลงล่าง
- วิธีการจากล่างขึ้นบน
วิธีการจากบนลงล่าง
ในแนวทางประเภทนี้ แต่ละคนจะเริ่มต้นด้วยการทดสอบเฉพาะส่วนต่อประสานกับผู้ใช้ โดยมีฟังก์ชันการทำงานพื้นฐานที่จำลองโดย stubs จากนั้นคุณเลื่อนลงไปด้านล่างโดยรวมชั้นล่างและชั้นล่างดังที่แสดงในภาพด้านล่าง
- เริ่มต้นจากโมดูลควบคุมหลัก โมดูลต่างๆ จะถูกรวมเข้าด้วยกันโดยเลื่อนลงไปตามลำดับชั้นการควบคุม
- โมดูลย่อยของโมดูลควบคุมหลักจะรวมอยู่ในโครงสร้างทั้งในลักษณะกว้างก่อนหรือในลักษณะลึกก่อน
- การบูรณาการแบบเชิงลึกจะบูรณาการโมดูลทั้งหมดบนเส้นทางควบคุมหลักของโครงสร้างตามที่แสดงในแผนภาพต่อไปนี้:
กระบวนการบูรณาการโมดูลจะดำเนินการในลักษณะต่อไปนี้:
- โมดูลควบคุมหลักถูกใช้เป็นตัวขับทดสอบ และส่วนต้นขั้วจะถูกแทนที่สำหรับโมดูลทั้งหมดที่อยู่รองจากโมดูลควบคุมหลักโดยตรง
- ต้นขั้วรองจะถูกแทนที่ทีละโมดูลด้วยโมดูลจริง ขึ้นอยู่กับแนวทางที่เลือก (กว้างก่อนหรือลึกก่อน)
- การทดสอบจะดำเนินการเมื่อแต่ละโมดูลถูกรวมเข้าด้วยกัน
- เมื่อเสร็จสิ้นการทดสอบแต่ละชุด ต้นขั้วอีกอันจะถูกแทนที่ด้วยโมดูลจริงเมื่อเสร็จสิ้นการทดสอบแต่ละชุด
- เพื่อให้แน่ใจว่าไม่มีข้อผิดพลาดใหม่เกิดขึ้น การทดสอบการถดถอย อาจจะดำเนินการ
กระบวนการดำเนินต่อไปจากขั้นตอนที่ 2 จนกระทั่งโครงสร้างโปรแกรมทั้งหมดถูกสร้างขึ้น กลยุทธ์จากบนลงล่างฟังดูไม่ซับซ้อน แต่ในทางปฏิบัติ ปัญหาด้านลอจิสติกส์ก็เกิดขึ้น
ปัญหาเหล่านี้ที่พบบ่อยที่สุดเกิดขึ้นเมื่อต้องมีการประมวลผลในระดับต่ำในลำดับชั้นเพื่อทดสอบระดับบนอย่างเพียงพอ
Stubs จะเข้ามาแทนที่โมดูลระดับต่ำเมื่อเริ่มต้นการทดสอบจากบนลงล่าง ดังนั้นจึงไม่มีข้อมูลสำคัญใดสามารถไหลขึ้นไปในโครงสร้างของโปรแกรมได้
ผู้ทดสอบความท้าทายอาจเผชิญ:
- ชะลอการทดสอบหลายๆ ครั้งจนกว่าต้นขั้วจะถูกแทนที่ด้วยโมดูลจริง
- พัฒนาสตับที่ทำหน้าที่จำกัดซึ่งจำลองโมดูลจริง
- รวมซอฟต์แวร์จากด้านล่างของลำดับชั้นขึ้นไป
หมายเหตุ แนวทางแรกทำให้เราสูญเสียการควบคุมการติดต่อระหว่างการทดสอบเฉพาะและการรวมโมดูลเฉพาะ ซึ่งอาจส่งผลให้เกิดความยากลำบากในการระบุสาเหตุของข้อผิดพลาดซึ่งมีแนวโน้มที่จะละเมิดธรรมชาติที่มีข้อจำกัดสูงของวิธีการจากบนลงล่าง
แนวทางที่สองนั้นสามารถใช้ได้ผล แต่จะทำให้มีค่าใช้จ่ายเพิ่มขึ้นมาก เนื่องจากโครงร่างมีความซับซ้อนมากขึ้นเรื่อยๆ
แนวทางด้านล่างขึ้น
การรวมจากล่างขึ้นบนเริ่มต้นการก่อสร้างและการทดสอบด้วยโมดูลที่ระดับต่ำสุดในโครงสร้างของโปรแกรม ในกระบวนการนี้ โมดูลต่างๆ จะถูกรวมเข้าด้วยกันจากล่างขึ้นบน
ในแนวทางนี้ การประมวลผลที่จำเป็นสำหรับโมดูลที่อยู่ใต้บังคับบัญชาจนถึงระดับที่กำหนดจะพร้อมใช้งานเสมอ และความจำเป็นในการ stub ก็หมดไป
กระบวนการทดสอบการรวมระบบนี้ดำเนินการเป็นชุดสี่ขั้นตอน
- โมดูลระดับต่ำจะถูกผสมเข้าเป็นคลัสเตอร์ที่ทำหน้าที่ย่อยซอฟต์แวร์เฉพาะ
- ไดรเวอร์ถูกเขียนขึ้นเพื่อประสานอินพุตและเอาต์พุตของกรณีทดสอบ
- คลัสเตอร์หรือการสร้างได้รับการทดสอบแล้ว
- ไดรเวอร์จะถูกลบออกและคลัสเตอร์จะถูกรวมเข้าด้วยกันโดยเคลื่อนขึ้นไปในโครงสร้างโปรแกรม
เมื่อการบูรณาการดำเนินไปในระดับที่สูงขึ้น ความจำเป็นในการเรียนแยกกันระหว่างผู้ขับรถทดสอบก็เพิ่มมากขึ้น ในความเป็นจริง หากโครงสร้างโปรแกรมสองระดับบนสุดถูกบูรณาการจากบนลงล่าง จำนวนผู้ขับรถก็จะลดลงอย่างมาก และการบูรณาการคลัสเตอร์ก็ง่ายขึ้นมาก การบูรณาการจะดำเนินไปตามรูปแบบที่แสดงด้านล่าง เมื่อการบูรณาการดำเนินไปในระดับที่สูงขึ้น ความจำเป็นในการเรียนแยกกันระหว่างผู้ขับรถทดสอบก็เพิ่มมากขึ้นเช่นกัน
หมายเหตุ หากโครงสร้างโปรแกรมสองระดับบนสุดถูกรวมจากบนลงล่าง จำนวนไดรเวอร์จะลดลงอย่างมาก และการบูรณาการโครงสร้างจะง่ายขึ้นอย่างมาก
แนวทางบิ๊กแบง
ในแนวทางนี้ โมดูลทั้งหมดจะไม่ถูกรวมเข้าด้วยกันจนกว่าและเว้นแต่โมดูลทั้งหมดจะพร้อม เมื่อพร้อม โมดูลทั้งหมดจะถูกรวมเข้าด้วยกัน จากนั้นจึงดำเนินการเพื่อดูว่าโมดูลที่รวมเข้าด้วยกันทั้งหมดใช้งานได้หรือไม่
ในแนวทางนี้ เป็นการยากที่จะทราบสาเหตุของความล้มเหลวเนื่องจากการบูรณาการทุกอย่างในคราวเดียว
นอกจากนี้ ยังมีโอกาสสูงที่จะเกิดจุดบกพร่องร้ายแรงในสภาพแวดล้อมการใช้งานจริง
วิธีการนี้จะนำมาใช้เฉพาะเมื่อต้องทำการทดสอบการรวมระบบพร้อมกันเท่านั้น
สรุป
- ดำเนินการบูรณาการเพื่อตรวจสอบการโต้ตอบระหว่างโมดูลของระบบซอฟต์แวร์ ช่วยตรวจจับข้อบกพร่องได้ตั้งแต่เนิ่นๆ
- การทดสอบการรวมสามารถทำได้สำหรับการรวมฮาร์ดแวร์-ซอฟต์แวร์ หรือการรวมฮาร์ดแวร์-ฮาร์ดแวร์
- การทดสอบการรวมทำได้สองวิธี
- แนวทางที่เพิ่มขึ้น
- แนวทางบิ๊กแบง
- ในขณะที่ทำการทดสอบการรวมระบบ โดยทั่วไปจะใช้กลยุทธ์ ETVX (เกณฑ์รายการ งาน การตรวจสอบ และเกณฑ์การออก)