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

บทช่วยสอนการทดสอบการรวมสำหรับผู้เริ่มต้น

30 ตุลาคม 2564

สารบัญ

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

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

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

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

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

เรามีการทดสอบประเภทต่างๆเช่น การทดสอบหน่วย , การทดสอบระบบ , และ การทดสอบการยอมรับ .

การทดสอบบูรณาการ

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

  • การทดสอบมีความน่าเชื่อถือและสะดวกสบายมากขึ้นในการแยกแยะความล้มเหลว
  • สามารถใช้หุ่นหรือต้นขั้วและไดรเวอร์ได้
  • การทดสอบการบูรณาการสร้างความมั่นใจให้กับนักพัฒนา
  • การทดสอบทำงานเร็วขึ้น
  • การทดสอบการรวมระบบเริ่มต้นตั้งแต่ช่วงเริ่มต้นของวงจรชีวิตการพัฒนา และนักพัฒนาสามารถตรวจจับจุดบกพร่องได้เร็วกว่าช่วงปลาย
  • การทดสอบการรวมจะตรวจจับข้อผิดพลาดระดับระบบ เช่น โครงร่างฐานข้อมูลที่ใช้งานไม่ได้และการรวมแคชที่ไม่ถูกต้อง
  • สะดวกสบายยิ่งขึ้นในการทดสอบในสภาพแวดล้อมที่กำลังพัฒนา
  • การสร้างการทดสอบที่ถูกต้องทำให้เกิดกลไกการวนรอบความคิดเห็นที่แม่นยำระหว่างทั้งนักพัฒนาซอฟต์แวร์และวิศวกรทดสอบ
  • ครอบคลุมรหัสที่ดีขึ้น
  • สะดวกสบายมากขึ้นในการติดตามความครอบคลุมของรหัส
  • ส่วนใหญ่ช่วยสร้างกรณีการใช้งานแบบเรียลไทม์ในระหว่างการทดสอบแบบ 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

เคล็ดลับสำหรับการทดสอบการรวม :

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

บทความที่เกี่ยวข้อง

การทดสอบหน่วย การทดสอบระบบ การทดสอบการยอมรับ