สารบัญ
- การทดสอบการรวมคืออะไร?
- ทำไมต้องทดสอบการรวมระบบ?
- Stubs และไดรเวอร์ในการทดสอบการรวมคืออะไร?
- ประเภท/แนวทางการทดสอบการรวมมีอะไรบ้าง
- จะทำการทดสอบอินทิเกรตได้อย่างไร?
- เครื่องมือที่ดีที่สุดสำหรับการทดสอบการรวม:
- เคล็ดลับสำหรับการทดสอบการรวม :
- บทความที่เกี่ยวข้อง
- บทความแนะนำ
การทดสอบการรวมคืออะไร?
การทดสอบการรวมระบบอธิบายว่าเป็นกระบวนการทดสอบซอฟต์แวร์ซึ่งโมดูลซอฟต์แวร์หลายโมดูลได้รับการรวมและทดสอบตามตรรกะ ในขั้นตอนนี้ หลายโมดูลจะได้รับการทดสอบทีละรายการก่อน จากนั้นจึงทดสอบเป็นหน่วยรวมเดียว ทั้งกลุ่มได้รับการตรวจสอบเพื่อดูว่าโมดูลรวมทำงานตามที่คาดไว้หรือไม่
เป็นแนวทางปฏิบัติในการพัฒนาซอฟต์แวร์ที่ใช้กระบวนการอย่างรอบคอบเพื่อพัฒนาผลิตภัณฑ์ผ่านการทดสอบและแก้ไขอย่างต่อเนื่อง ทำได้โดยค่อยๆ รวมโมดูลหรือส่วนประกอบของแอปพลิเคชัน
ประเภทการทดสอบนี้ใช้และรวมเพื่อทดสอบและกำหนดภายในแผนการทดสอบการรวมที่ดำเนินการในเครื่อง การทดสอบการบูรณาการจัดให้มีระบบการบูรณาการและระบบที่พร้อมสำหรับการทดสอบ จุดสนใจหลักของการทดสอบเหล่านี้คือการทดสอบปฏิสัมพันธ์ระหว่างส่วนประกอบต่างๆ
การทดสอบการรวมมีความสำคัญอย่างมาก เนื่องจากส่วนประกอบและโมดูลทั้งหมดถูกรวมและทดสอบ การทดสอบการรวมระบบกลายเป็นความต้องการที่สำคัญสำหรับบริษัทใดๆ เมื่อวางแผนที่จะย้ายเข้าสู่รูปแบบธุรกิจใหม่ เทคโนโลยีใหม่ หรือแม้แต่ผลิตภัณฑ์หรือบริการใหม่ การทดสอบการรวมเป็นส่วนสำคัญของวงจรการทดสอบ ทำให้ผู้ทดสอบสามารถค้นหาข้อบกพร่องหลังจากรวมหลายหน่วยเข้าด้วยกัน
เรามีการทดสอบประเภทต่างๆเช่น การทดสอบหน่วย , การทดสอบระบบ , และ การทดสอบการยอมรับ .

ทำไมต้องทดสอบการรวมระบบ?
- การทดสอบมีความน่าเชื่อถือและสะดวกสบายมากขึ้นในการแยกแยะความล้มเหลว
- สามารถใช้หุ่นหรือต้นขั้วและไดรเวอร์ได้
- การทดสอบการบูรณาการสร้างความมั่นใจให้กับนักพัฒนา
- การทดสอบทำงานเร็วขึ้น
- การทดสอบการรวมระบบเริ่มต้นตั้งแต่ช่วงเริ่มต้นของวงจรชีวิตการพัฒนา และนักพัฒนาสามารถตรวจจับจุดบกพร่องได้เร็วกว่าช่วงปลาย
- การทดสอบการรวมจะตรวจจับข้อผิดพลาดระดับระบบ เช่น โครงร่างฐานข้อมูลที่ใช้งานไม่ได้และการรวมแคชที่ไม่ถูกต้อง
- สะดวกสบายยิ่งขึ้นในการทดสอบในสภาพแวดล้อมที่กำลังพัฒนา
- การสร้างการทดสอบที่ถูกต้องทำให้เกิดกลไกการวนรอบความคิดเห็นที่แม่นยำระหว่างทั้งนักพัฒนาซอฟต์แวร์และวิศวกรทดสอบ
- ครอบคลุมรหัสที่ดีขึ้น
- สะดวกสบายมากขึ้นในการติดตามความครอบคลุมของรหัส
- ส่วนใหญ่ช่วยสร้างกรณีการใช้งานแบบเรียลไทม์ในระหว่างการทดสอบแบบ end-to-end
Stubs และไดรเวอร์ในการทดสอบการรวมคืออะไร?
สตับและไดรเวอร์คือรหัสเทียมหรือรหัสจำลองที่ใช้ในการทดสอบส่วนประกอบการรวมเมื่อไม่มีการพัฒนาโมดูลตั้งแต่หนึ่งโมดูลขึ้นไป และจำเป็นสำหรับการทดสอบโมดูลอื่นๆ เป็นโปรแกรมที่จัดเตรียมรหัสเข้ารหัสแบบแข็งเมื่ออินพุตยอมรับเอาต์พุตของโมดูลในการทดสอบการรวม
โดยทั่วไปจะเรียกว่าโปรแกรมการโทร สตับ และไดรเวอร์ เป็นที่ต้องการจากบนลงล่างในวิธีการทดสอบการรวม ในทางตรงกันข้าม ผู้ขับขี่จะใช้แนวทางจากล่างขึ้นบน ตัวทดสอบและตัวทดสอบสามารถใช้และกระตุ้นการทำงานของโมดูลที่ยังไม่ได้รวมเข้ากับซอฟต์แวร์ นอกจากนี้ยังช่วยจำลองกิจกรรมของส่วนประกอบที่ขาดหายไป
ประเภท/แนวทางการทดสอบการรวมมีอะไรบ้าง
การทดสอบการรวมบิ๊กแบง:
การทดสอบการรวมบิ๊กแบงเป็นแนวทางที่เป็นประโยชน์สำหรับการทดสอบซอฟต์แวร์ มันจัดเตรียมชุดการทดสอบการรวมสำหรับซอฟต์แวร์ ระบบ และแอปพลิเคชันแก่นักพัฒนาเมื่อเริ่มต้นการทดสอบการรวม
การทดสอบการรวมบิ๊กแบงเป็นการทดสอบอย่างต่อเนื่องที่เกิดขึ้นก่อนที่เซ็กเมนต์ระบบจะสร้างระบบ เป็นหนึ่งในแนวทางที่มีแนวโน้มมากที่สุดในการ การทดสอบซอฟต์แวร์ โดยที่การรวมระบบและส่วนประกอบอย่างต่อเนื่องนำไปสู่การก่อตัวของระบบหรือแอปพลิเคชันที่สมบูรณ์
ข้อดี:
- มีประโยชน์สำหรับระบบขนาดเล็ก
- ข้อได้เปรียบหลักคือทุกอย่างเสร็จสิ้นก่อนที่จะเริ่มการทดสอบการรวม
ข้อเสีย:
- เสียเวลามาก
- ยากที่จะติดตามสาเหตุของความล้มเหลวเนื่องจากการผสานรวมล่าช้า
- โอกาสที่จะเกิดความล้มเหลวที่สำคัญมีมากขึ้น เนื่องจากในการทดสอบบิ๊กแบง ส่วนประกอบทั้งหมดได้รับการทดสอบพร้อมกัน
- มีความเป็นไปได้สูงที่จะเกิดจุดบกพร่องที่สำคัญในสภาพแวดล้อมการผลิต
- หากพบจุดบกพร่อง เป็นการยากมากที่จะถอดโมดูลทั้งหมดออกเพื่อระบุสาเหตุที่แท้จริง
การทดสอบการบูรณาการที่เพิ่มขึ้น
ในการทดสอบ Incremental Integration โปรแกรมเมอร์จะรวมโมดูลโดยใช้ stubs หรือไดรเวอร์เพื่อเปิดเผยข้อบกพร่องทีละรายการ ในแนวทางนี้ การทดสอบจะดำเนินการโดยการผสมสองโมดูลหรือมากกว่าที่เกี่ยวข้องกันอย่างมีเหตุผล จากนั้นจึงทดสอบเกี่ยวกับการทำงานที่เหมาะสม โมดูลที่เกี่ยวข้องอื่นๆ จะถูกรวมเข้าด้วยกันทีละส่วน และกระบวนการจะดำเนินต่อไปจนกว่าโมดูลที่เกี่ยวข้องทางตรรกะทั้งหมดจะถูกรวมและทดสอบสำเร็จ ในทางตรงกันข้าม บิ๊กแบงเป็นอีกเทคนิคการทดสอบการรวมเข้าด้วยกัน โดยที่โมดูลทั้งหมดถูกรวมเข้าเป็นภาพเดียว
การทดสอบส่วนเพิ่มเป็นสองประเภท
1. วิธีการจากบนลงล่าง:
การทดสอบการรวมจากบนลงล่างเป็นแนวทางในการสร้างส่วนประกอบในระดับที่ต่ำกว่าและรวมเข้ากับส่วนประกอบในระดับที่สูงขึ้น การทดสอบการรวมจากบนลงล่างเน้นที่การรวมส่วนประกอบที่ด้านบนมากกว่าด้านล่าง นักพัฒนาสามารถใช้ stubs สำหรับแนวทางนี้ได้ แนวทางนี้มีไว้สำหรับความพยายามที่หลากหลาย เช่น การตั้งเป้าหมาย การจัดทำงบประมาณ และการคาดการณ์
วิธีการทดสอบการรวมจากบนลงล่างเป็นการทดสอบโมดูลระดับสูงก่อน จากนั้นจึงทดสอบโมดูลระดับล่างขึ้นเรื่อยๆ วิธีนี้ช่วยให้สามารถทำการทดสอบจากบนลงล่าง การติดตามกระแสการควบคุม และโครงสร้างทางสถาปัตยกรรม โดยการทดสอบการรวมเริ่มต้นจากบนลงล่าง แอปพลิเคชันที่พบบ่อยที่สุดคือวิธีการจากบนลงล่างโดยใช้ stubs สำหรับการทดสอบการรวมและผลลัพธ์ของการทดสอบ
ข้อดี:
- วิธีนี้ไม่ส่งผลกระทบต่อทรัพยากรการดำเนินงานและการบำรุงรักษาอย่างรุนแรงเท่ากับวิธีการจากล่างขึ้นบน
- การแปลข้อผิดพลาดเป็นเรื่องง่าย
- ต้นแบบต้นสามารถหาได้ง่าย
- ข้อบกพร่องในการออกแบบที่สำคัญสามารถค้นหาและแก้ไขได้ก่อน
- สามารถทดสอบ Priority Module ก่อนได้
- ข้อดีของวิธีนี้คือสามารถตัดสินใจและดำเนินการได้อย่างรวดเร็ว
ข้อเสีย:
- วิธีนี้ต้องใช้ Stubs จำนวนมาก
- โมดูลที่ระดับต่ำกว่าได้รับการทดสอบอย่างไม่มีประสิทธิภาพ
- ให้ความคุ้มครองจำกัดในระยะแรก
- นักพัฒนาอาจต้องพัฒนาอะแดปเตอร์แบบกำหนดเองตั้งแต่เริ่มต้น
- ค่าใช้จ่ายในการดำเนินการน่าจะสูงขึ้น
2. วิธีการจากล่างขึ้นบน:
วิธีการจากล่างขึ้นบนนั้นตรงกันข้ามกับการทดสอบการรวมจากบนลงล่าง: โมดูลในเลเยอร์ต่ำสุดจะได้รับการทดสอบและรวมเข้าด้วยกันก่อนแล้วจึงรวมตามลำดับกับโมดูลอื่น ๆ ในขณะเดินทาง
การทดสอบการรวมจากล่างขึ้นบนเริ่มต้นด้วยการทดสอบหน่วย ตามด้วยการสร้างโมดูล ขั้นแรก โมดูลหลักจะได้รับการทดสอบ จากนั้นจึงทดสอบโมดูลย่อย และอื่นๆ จนกว่าจะรวมเข้าด้วยกัน
ไดรเวอร์ทดสอบถูกขับเคลื่อนและส่งข้อมูลที่เกี่ยวข้องจากโมดูลระดับต่ำ และเมื่อรหัสในโมดูลอื่นพร้อม ไดรเวอร์จะแทนที่โมดูลจริง โมดูลด้านล่างได้รับการทดสอบ และโมดูลระดับสูงจะได้รับการทดสอบในลักษณะเดียวกับการทดสอบการรวมการเติมเงิน แต่มีไดรเวอร์ที่แตกต่างกัน
ข้อดี:
- การแปลข้อผิดพลาดได้ง่ายขึ้น
- เวลาที่ใช้ในการปฏิบัติตามแนวทางจากล่างขึ้นบนนั้นน้อยกว่าวิธีการทดสอบอื่นๆ
- การรับรู้ของผู้ใช้ของผลิตภัณฑ์
- ระบบอัตโนมัติสามารถแทนที่กระบวนการที่ต้องทำด้วยตัวเองหลายอย่าง
- คุ้มค่า
- การสังเกตการทดสอบที่ง่ายขึ้น
- ได้เปรียบหากข้อบกพร่องที่สำคัญเกิดขึ้นที่ด้านล่างของโปรแกรม
ข้อเสีย
- โปรแกรมทั้งหมดไม่มีอยู่จนกว่าจะเพิ่มโมดูลสุดท้าย
- ต้นแบบต้นไม่สามารถทำได้
- กลยุทธ์จากล่างขึ้นบนดำเนินการโดยโครงสร้างพื้นฐานที่มีอยู่แทนกระบวนการทางธุรกิจ
- โมดูลบังคับ (ที่ระดับบนสุดของสถาปัตยกรรมซอฟต์แวร์) ที่ควบคุมการไหลของแอปพลิเคชันได้รับการทดสอบครั้งสุดท้ายและอาจมีแนวโน้มที่จะเกิดข้อบกพร่อง
การทดสอบแซนวิช / ไฮบริด
การทดสอบแซนวิชเป็นการรวมกันระหว่างวิธีการจากล่างขึ้นบนและจากบนลงล่าง ดังนั้นจึงใช้ประโยชน์จากทั้งวิธีการจากล่างขึ้นบนและแนวทางจากบนลงล่าง
ในระหว่างขั้นตอนนั้น อินเทอร์เฟซและการสื่อสารระหว่างแต่ละโมดูลจะได้รับการทดสอบ เรียกอีกอย่างว่าการทดสอบการรวมไฮบริด การทดสอบแซนด์วิชดัดแปลงมีประโยชน์อย่างเหลือเชื่อ โดยช่วยให้ผู้ทดสอบทดสอบส่วนประกอบต่างๆ ของระบบในขณะที่ผสานรวมเข้าด้วยกัน
ข้อดี:
- วิธีการทดสอบแซนวิชมีประโยชน์สำหรับโครงการขนาดใหญ่ที่มีโครงการย่อย
- อนุญาตให้ทำการทดสอบแบบขนาน
- เป็นเวลาที่มีประสิทธิภาพ
- นักพัฒนาชื่นชมแนวทางนี้เพราะพวกเขาผสมผสาน ประโยชน์ ที่เกี่ยวข้องทั้งหมด การทดสอบ กรอบงานช่วยให้มืออาชีพใช้ประโยชน์จากสิ่งที่ดีที่สุดเกี่ยวกับพวกเขาในลักษณะที่ชัดเจน
ข้อเสีย:
- การทดสอบแซนวิชค่อนข้างแพง
- การทดสอบแซนวิชไม่สามารถใช้กับระบบที่มีการพึ่งพาอาศัยกันกับส่วนประกอบ/โมดูลต่างๆ มากมาย
- ในการทดสอบแบบแซนวิช/การทดสอบแบบไฮบริด ความต้องการส่วนขั้วและไดรเวอร์นั้นสูงมาก
- การทดสอบอาจซับซ้อน
- ยากที่จะระบุข้อบกพร่อง
- การทดสอบแบบผสมต้องใช้ต้นทุนสูง
- วิธีนี้ไม่เหมาะสำหรับโครงการขนาดเล็ก
จะทำการทดสอบอินทิเกรตได้อย่างไร?
โดยปกติ การทดสอบการรวมจะเกิดขึ้นหลังจากการทดสอบหน่วย เมื่อแต่ละหน่วยและทดสอบทั้งหมดแล้ว นักพัฒนาจะเริ่มรวมโมดูลที่ทดสอบแล้วและเริ่มดำเนินการทดสอบการรวม เป้าหมายหลักของกระบวนการนี้คือการทดสอบอินเทอร์เฟซระหว่างหน่วย/โมดูล
- เตรียมออกแบบ.
- เลือกประเภทของวิธีการทดสอบจากรายการด้านบน
- เลือกกรณีทดสอบ โครงร่าง และสคริปต์ตามนั้น
- ปรับใช้หน่วยที่เลือกร่วมกัน และทำการทดสอบการรวม
- ติดตามข้อบกพร่องและจุดบกพร่องเพื่อบันทึกผลการทดสอบการทดสอบ
- ทำซ้ำจุดด้านบนจนกว่าจะทดสอบทั้งระบบ
ลำดับความสำคัญของกระบวนการต้องอยู่บนลิงก์อินเทอร์เฟซที่รวมระหว่างโมดูล
เครื่องมือที่ดีที่สุดสำหรับการทดสอบการรวม:
VectorCAST/C++ เป็นหน่วยอัตโนมัติและโซลูชันการทดสอบการรวมที่ใช้สำหรับตรวจสอบความปลอดภัยและระบบฝังตัวที่มีความสำคัญต่อตลาด โซลูชันการทดสอบแบบไดนามิกนี้ใช้กันอย่างแพร่หลายในอุตสาหกรรมต่างๆ เช่น การบิน อุปกรณ์ทางการแพทย์ ยานยนต์ การควบคุมทางอุตสาหกรรม การรถไฟ และภาคการเงิน
Citrus เป็นเฟรมเวิร์กโอเพนซอร์ซที่ช่วยให้นักพัฒนาทดสอบการรวมระบบอัตโนมัติสำหรับโปรโตคอลการส่งข้อความหรือรูปแบบข้อมูลใดๆ Citrus เป็นเฟรมเวิร์กของตัวเลือกในการทดสอบการรวมการส่งข้อความของแอปพลิเคชันของคุณ หากใช้การรับส่งข้อความ เช่น HTTP, REST, SOAP หรือ JMS
LDRA ช่วยให้นักพัฒนาทำการทดสอบหน่วยและการรวมบนโฮสต์และอุปกรณ์เป้าหมาย ด้วย LDRA นักพัฒนาสามารถสร้างและดำเนินการทดสอบที่ระดับหน่วยและการรวมได้อย่างรวดเร็วและง่ายดาย ทั้งบนโฮสต์ (แบบสแตนด์อโลนหรือด้วยการจำลองเป้าหมาย) และฮาร์ดแวร์เป้าหมาย
ทุกวันนี้ ธุรกิจหลายแห่งกำลังส่งเสริมสถาปัตยกรรมเชิงธุรกิจ วิธีการทดสอบการรวมแบบดั้งเดิม เช่น วิธีจากล่างขึ้นบน ต้องใช้ความพยายามอย่างมากในการสร้างข้อมูลการทดสอบ Smart Integration Test Accelerator (SITA) ของ Wipro ช่วยให้นักพัฒนาเอาชนะความท้าทายเหล่านี้ได้ เฟรมเวิร์กนี้ช่วยให้นักพัฒนาสามารถเร่งการสร้างข้อมูลการทดสอบและการออกแบบการทดสอบ
Rational Integration Tester (RIT) เป็นเครื่องมือทดสอบการรวมตัวที่รู้จักกันในชื่อ Green Hat IBM เข้าซื้อกิจการ Green Hat ในปี 2555 ด้วย Rational Integration Tester ของ IBM นักพัฒนาสามารถรับสภาพแวดล้อมที่ไม่มีสคริปต์ และการพัฒนาเป็นไปได้สำหรับการทดสอบข้อความ SOA และโครงการการรวม Rational Integration Tester ขัดขวางปัญหาการรวมระบบโดยใช้วิธีการพัฒนาแบบวนซ้ำและคล่องตัว เครื่องมือนี้เป็นส่วนหนึ่งของ Rational Test Workbench
เคล็ดลับสำหรับการทดสอบการรวม :
- เรียกใช้การทดสอบการรวมจนกว่าคุณจะพบข้อผิดพลาดอย่างน้อยหนึ่งรายการ
- หลังจากแยกข้อผิดพลาดแล้ว ให้แก้ไขทันทีโดยเพิ่มหรือแก้ไขโค้ด
- ฝึกการทดสอบการรวมหลังจากดำเนินการทดสอบหน่วยอย่างถูกต้องเท่านั้น
- บันทึกความคืบหน้าของคุณช่วย นักพัฒนาวิเคราะห์ความล้มเหลวได้ดีขึ้นและเก็บบันทึกสาเหตุที่เป็นไปได้ของความล้มเหลว
- การบันทึกช่วยให้คุณวิเคราะห์ความล้มเหลวและเก็บรักษาบันทึกสาเหตุที่เป็นไปได้ของความล้มเหลว ตลอดจนตัดคำอธิบายอื่นๆ โดยจำกัดสาเหตุที่แท้จริงให้แคบลง
- ตรวจสอบให้แน่ใจว่าสภาพแวดล้อมการทดสอบและการพัฒนาของคุณตรงกัน
- ใช้ข้อมูลการทดสอบที่มีค่า
- ใช้พื้นที่เก็บข้อมูลทั่วไปสำหรับจุดบกพร่องและการทดสอบ