การทดสอบการรวมระบบคืออะไรกันแน่?


110

เพื่อนของฉันและฉันได้รับการดิ้นรนเพื่อจำแนกว่าการทดสอบการรวมคืออะไร

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

ฉันตรวจสอบเอกสาร Ruby on Rails สำหรับการจำแนกประเภทการทดสอบเหล่านี้และตอนนี้ก็โยนฉันจนหมด

คุณสามารถให้คำอธิบายทางวิชาการสั้น ๆ เกี่ยวกับการทดสอบการรวมกับตัวอย่างในโลกแห่งความจริงได้หรือไม่?


76
BTW เมื่อคุณมีวลีที่เป็นคำนาม ("ฉันและเพื่อนบางคน") คุณต้องระวังว่าบุคคลเอกเทศคนแรกที่คุณใช้ นี่คือการทดสอบ วางเพื่อนและดูว่ายังใช้งานได้อยู่หรือไม่ "ฉันดิ้นรน" vs "ฉันดิ้นรน" การทดสอบนี้บอกคุณว่า "ฉันและเพื่อนของฉัน ... " และ - เพื่อความสุภาพ - เราจะแสดงรายการอื่น ๆ ก่อน "เพื่อนฉันและฉัน". การทดสอบเป็นสิ่งสำคัญ
S.Lott

58
ฉันคิดว่า S.Lott เพิ่งให้คุณทดสอบไวยากรณ์ -> การรวมเข้ากับสังคม
Jordan

คำตอบ:


78

ในขณะที่ผมชอบคำพูดนี้: "มันไม่สำคัญสิ่งที่คุณเรียกมันว่า แต่สิ่งที่มันไม่" ทำโดย Gojko Adzic ในบทความนี้

คุณต้องระบุกับคนที่พูดถึงการทดสอบสิ่งที่คุณตั้งใจจะทดสอบ

มีผู้คนจำนวนมากที่มีมุมมองต่างกันขึ้นอยู่กับบทบาทของพวกเขา

สำหรับการทดสอบทั่วไปวิธีการทดสอบได้รับการยอมรับในประเทศเนเธอร์แลนด์เป็นTMAP TMap ทำให้ความแตกต่างดังต่อไปนี้

  • ทดสอบหน่วย
  • การทดสอบการรวมหน่วย
  • ทดสอบระบบ
  • การทดสอบการรวมระบบ
  • การทดสอบการยอมรับ (ทุกชนิด / ระดับ)
  • การทดสอบการยอมรับการทำงาน
  • การทดสอบการยอมรับของผู้ใช้
  • ทดสอบการยอมรับการผลิต

พวกเขามีประเภทของการทดสอบที่เฉพาะเจาะจงมากขึ้นที่สามารถดำเนินการได้ในการทดสอบดังกล่าวข้างต้น ดูคำนี้ docสำหรับภาพรวม

วิกิพีเดียยังมีภาพรวมที่ดี

หนังสือโปรแกรมเมอร์ปฏิบัติพูดว่า:

  • การทดสอบหน่วยคือการทดสอบที่ออกกำลังกายโมดูล
  • การทดสอบการรวมแสดงให้เห็นว่าส่วนสำคัญของระบบทำงานร่วมกันได้ดี

การดูแหล่งข้อมูลที่แตกต่างกันเหล่านี้และนำประสบการณ์และความคิดเห็นของตัวเองมาเริ่มด้วยการแยกความแตกต่างออกเป็นสามประเภท

  • ใครทำการทดสอบโดยทั่วไป
  • สิ่งที่ผ่านการทดสอบ
  • เป้าหมายของการทดสอบคืออะไร

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

รายการของฉันด้านบนเป็นเพียงการเริ่มต้นและข้อเสนอแนะ แต่ฉันคิดว่าจริง ๆ : "มันไม่สำคัญว่าคุณจะเรียกมันว่าอะไร แต่มันทำอะไร"

หวังว่านี่จะช่วยได้

26-10-2016 แก้ไข: เมื่อเร็ว ๆ นี้มีการแนะนำที่ดีมากในการทดสอบหน่วย YouTube และการทดสอบการรวม - Musings ของ MPJ - FunFunFunction # 55


3
+1 สำหรับ "มันไม่สำคัญว่าคุณจะเรียกมันว่าอะไร" น่าเศร้าที่ไม่มีคำจำกัดความสากลของการทดสอบใด ๆ แม้แต่การทดสอบหน่วย ol ดีก็เป็นตัวแปรบิต การทดสอบ DOM สำหรับเว็บแอปถือเป็นการทดสอบหน่วยหรือไม่ บางคนตอบว่าใช่บางคนบอกว่าไม่
Laurent Bourgault-Roy

2
ลิงก์ไปยังคำว่า docไม่พร้อมใช้งาน
Paul Rougieux

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

+1 เห็นด้วยกับคำจำกัดความ: ฉันอยู่ในสถานที่ที่ "การทดสอบหน่วย" ระบุว่าโปรแกรมเมอร์ได้ทดลองระบบด้วยตัวอย่างตัวอย่างอย่างน้อยหนึ่งรายการ ... ด้วยตนเอง ... และตรวจสอบผลลัพธ์ถ้ามัน "ดูเหมือนถูกต้อง" . ไม่มีสัญญาตามที่คาดไว้ไม่มีอินพุตควบคุม ฯลฯ
Newtopian

ลิงก์ไปที่ Gojko กำลังส่งคืน 404 คุณสามารถเข้าถึงการเก็บถาวรได้ที่นี่: web.archive.org/web/20150104002755/http://gojko.net/2011/01/12/…
Eduardo Copat

32

การทดสอบการรวมตัวมันจะกลายเป็นการทดสอบการยอมรับ

อย่างชัดเจน

สองคนนี้เกือบเหมือนกัน แต่มีมิติที่แตกต่างกันเล็กน้อยสำหรับคำนิยามการทดสอบ

การรวม == ระบบโดยรวม

การยอมรับ == ระบบโดยรวม

ข้อแตกต่างอย่างเดียว - และนี่คือความละเอียดอ่อน - คือคำจำกัดความของกรณีทดสอบ

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

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


7
สิ่งเดียวที่ฉันจะเพิ่มในนี้คือการทดสอบการรวมสามารถทดสอบเพียงส่วนหนึ่งของระบบ แต่มากกว่าหนึ่งชิ้นต่อครั้ง เมื่อใดก็ตามที่คุณกำลังมองหาข้อผิดพลาดที่เกิดจากสองส่วนหรือมากกว่าของระบบที่ทำงานพร้อมเพรียงกัน (รวมเข้าด้วยกัน) คุณกำลังทำการทดสอบการรวม การรวมเข้าด้วยกันจากสององค์ประกอบจริงและทุกอย่างที่ล้อเลียนไปจนถึงชุดแอปพลิเคชันทั้งหมดทำงานร่วมกันและอาจตรวจสอบการรวมเข้ากับแอปพลิเคชันอื่น ๆ (เช่น "MS Office ทำงานกับ Internet Explorer ได้อย่างไร")
Ethel Evans

1
@Ethel Evans: จุดดี การทดสอบจะยังคงพร่ามัวระหว่างการรวมและการยอมรับแม้ว่าจะมีเพียงบางส่วนของระบบที่เกี่ยวข้อง การทดสอบเกิดขึ้นในระดับสูงพอที่การยอมรับและการรวมจะรู้สึกคล้ายกัน
S.Lott

3
การทดสอบการรวมระบบไม่แน่นอน (และอาจไม่ควร) ทดสอบ "ระบบโดยรวม" ทุกที่ที่มีสองส่วนประกอบขึ้นไปได้รับการทดสอบร่วมกันโดยเฉพาะอย่างยิ่งเมื่อทำการทดสอบกับส่วนประกอบภายนอก (ฐานข้อมูลเครือข่าย ฯลฯ ) ที่คุณกำลังทำการทดสอบการรวม เนื่องจากค่าใช้จ่ายสูงในการทดสอบ "ทั้งระบบ" คุณต้องการหลีกเลี่ยงปัญหานี้ให้มากที่สุดแทนที่จะลองทำการทดสอบการรวมระบบบางส่วนแทน (ดูการทดสอบพีระมิด
Schneider

1
@ Schneider บอกว่าดีการทดสอบการรวมระบบไม่ควรทดสอบ "ระบบโดยรวม" การทดสอบดังกล่าวจะถือเป็น "การทดสอบแบบครบวงจร" หรือ "การทดสอบระบบ" ขึ้นอยู่กับขอบเขตที่คุณพิจารณาในโครงการของคุณ การทดสอบแบบ end-to-end อาจครอบคลุม dataflow "โดยรวม" ที่รันหลาย ๆ ระบบและการทดสอบระบบเพียงแค่ "ระบบเดียวโดยรวม"
RoyB

นี่คือวิธีที่ฉันกำหนดให้พวกเขาเพื่อหลีกเลี่ยงความสับสนเกี่ยวกับการทดสอบ "บูรณาการ" ในวงกว้าง การทดสอบหน่วย -> ทดสอบหน่วยการทำงานที่เล็กที่สุดซึ่งเป็นวิธีการในชั้นเรียนที่ไม่ได้เรียกรหัสอื่นใดนอกเหนือจากวิธีการนั้น (จำลองการอ้างอิงตามความจำเป็นถ้าจำเป็น) การทดสอบการรวมเข้าด้วยกัน -> การทดสอบในขอบเขตที่กว้างขึ้นจากการทดสอบหน่วย และควรทดสอบเลเยอร์ของแอปพลิเคชันที่ทำงานร่วมกัน แต่ไม่ได้ติดตั้งแอปพลิเคชันทั้งหมด) การทดสอบการทำงาน / การยอมรับการทดสอบ -> การทดสอบที่ทดสอบแอปที่ติดตั้งเวอร์ชัน
Kevin M

16

ฉันชอบคิดว่าการทดสอบการรวมเป็นของการทดสอบคุณสมบัติเมื่อทุกส่วนของระบบเป็นของจริงไม่มีวัตถุจำลอง

ที่เก็บจริง, ฐานข้อมูลจริง, UI จริง คุณทดสอบการทำงานเฉพาะเมื่อระบบประกอบอย่างสมบูรณ์และเป็นเหมือนที่ควรจะเป็นเมื่อมีการใช้งาน


4
ฉันเห็นด้วยยกเว้นไม่จำเป็นต้องเป็นระบบ "ที่ประกอบอย่างสมบูรณ์" คุณสามารถ (และควร) ทำการทดสอบการรวมเข้ากับชุดย่อยของระบบเต็มเนื่องจากปกติแล้วราคาถูกกว่า / ง่ายกว่า
Schneider

การรวมระหว่าง 2 หน่วย / ส่วนประกอบยังสามารถเป็น "การทดสอบการรวม" ในขณะที่ที่เหลือยังคงล้อเลียน ดังนั้นเฟรมเวิร์กการทดสอบการรวมหลาย ๆ ตัวจะอนุญาตให้เยาะเย้ย :)
RoyB

1
ฉันมีการทดสอบในแอพ Spring Boot ที่ทดสอบส่วนหน้า (สัญญา api) ภายในคอนเทนเนอร์ฤดูใบไม้ผลิ แต่ mocks พื้นที่เก็บข้อมูล / ชั้นข้อมูล ดังนั้นมันจึงใช้ที่เก็บ / ข้อมูลจำลอง แต่การรวมเลเยอร์ควบคุมและทำแจ็คสันมาร์แชล ฯลฯ ทดสอบการรวม
เควินเอ็ม

8

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

ดังนั้นฉันคุ้นเคยกับการสร้างความแตกต่างดังต่อไปนี้:

  • ฉันใช้การทดสอบหน่วยเพื่อระบุจัดทำเอกสารและเน้นย้ำพฤติกรรมทั้งหมดที่ชั้นเรียนที่ฉันกำลังทดสอบทำหน้าที่รับผิดชอบ
  • ฉันกำลังทำการทดสอบการรวม เมื่อใดก็ตามที่ฉันมีส่วนประกอบ (อาจมากกว่าหนึ่ง) ในระบบของฉันซึ่งมีการสนทนากับระบบ " ภายนอก " อื่น (ดำเนินการต่อไปด้านล่าง ... )
  • ฉันใช้การทดสอบการยอมรับเพื่อกำหนดจัดทำเอกสารและเน้นถึงขั้นตอนการทำงานบางอย่างที่ระบบคาดหวัง

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

แต่เมื่อฉันทำการทดสอบการยอมรับฉันทำสิ่งต่าง ๆ : ฉันกำลังทำงานในสิ่งที่แตกต่างฉันกำลังทำงานกับสเปคของระบบไม่ใช่ความสามารถในการทำงานร่วมกับหน่วยงานภายนอก

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


6

การทดสอบการรวมจะตรวจสอบว่าส่วนประกอบของระบบที่ซับซ้อน (เช่นซอฟต์แวร์เครื่องบินโรงไฟฟ้า) ทำงานร่วมกันตามที่ออกแบบไว้

สมมติว่าเรากำลังพูดถึงเครื่องบิน (ด้วยซอฟต์แวร์มันเป็นนามธรรมและยากที่จะสร้างความแตกต่าง) การทดสอบการรวมรวมการตรวจสอบ:

  • ปฏิสัมพันธ์ที่ถูกต้องระหว่างองค์ประกอบบางอย่าง ตัวอย่าง: เมื่อกดปุ่มเริ่มเครื่องยนต์จะสตาร์ทและใบพัดจะไปถึงความเร็วการหมุนที่คาดไว้ (เครื่องบินยังคงอยู่บนพื้นดิน)
  • การโต้ตอบที่ถูกต้องกับส่วนประกอบภายนอก ตัวอย่าง: ตรวจสอบว่าวิทยุในตัวสามารถสื่อสารกับวิทยุที่อยู่กับที่ (เครื่องบินยังอยู่บนพื้นดิน)
  • ปฏิสัมพันธ์ที่ถูกต้องระหว่างองค์ประกอบที่เกี่ยวข้องทั้งหมดเพื่อให้ระบบโดยรวมทำงานได้ตามที่คาดไว้ ตัวอย่าง: ลูกเรือของนักบินทดสอบและวิศวกรเริ่มต้นเครื่องบินและบินไปกับมัน (พวกเขาสวมร่มชูชีพ ... )

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

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

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

การทดสอบการยอมรับมากขึ้นอยู่กับปัญหาความรับผิดชอบ ในความสัมพันธ์กับลูกค้า / ผู้จัดหาอาจเป็นความรับผิดชอบตามสัญญา (การปฏิบัติตามข้อกำหนดทั้งหมด) แต่ในกรณีใด ๆ ก็เป็นความรับผิดชอบขององค์กรที่ใช้เพื่อให้แน่ใจว่าหน้าที่ของพวกเขาสามารถดำเนินการกับระบบและป้องกันปัญหาที่ไม่คาดฝันได้อย่างรอบคอบ (เช่น บริษัท รถไฟที่ค้นพบในระหว่างการทดสอบการยอมรับว่าพวกเขาต้องย่อบาง quais) เกวียนใหม่มีขนาดใหญ่เกินไป 5 ซม. - ไม่เป็นเรื่องตลก!)

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

ป้อนคำอธิบายรูปภาพที่นี่


1

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

ตัวอย่างเช่น: เมื่อเราเขียนจดหมาย (หนึ่งโมดูล) และส่งไปยัง ID ผู้ใช้ที่ถูกต้อง (โมดูลที่สอง) การทดสอบการรวมคือการตรวจสอบว่าจดหมายที่ส่งมีอยู่ในรายการที่ส่งหรือไม่


3
ยินดีต้อนรับสู่โปรแกรมเมอร์ คำตอบของคุณเพิ่มอะไรที่ยังไม่ได้ให้คำตอบที่มีอยู่? Programmers.SE ไม่เหมือนกับฟอรัมทั่วไป มันมุ่งเน้นไปที่คำถาม & คำตอบที่มีคุณภาพสูงแทนการพูดคุยมากมาย โปรดดูที่หน้าทัวร์สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้งานเว็บไซต์

0

หนึ่งในทางปฏิบัติความหมายของการทดสอบบูรณาการคือการทดสอบใด ๆ ที่ต้องมีปฏิสัมพันธ์กับสิ่งที่ออกจากกระบวนการ

ตัวอย่างเช่น:

  • ระบบไฟล์
  • เครือข่าย
  • ฐานข้อมูล
  • API ภายนอก

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

การทดสอบหน่วยสามารถที่จะทดสอบตรรกะทั้งหมดที่อยู่ภายในขอบเขตของกระบวนการของคุณและพวกเขาสามารถทำมันได้อย่างง่ายดายอย่างแม่นยำเพราะขาดการอ้างอิงในช้า / บอบบาง / ซับซ้อน "โลกภายนอกที่"

ในขณะที่มีการทดสอบการรวมคำจำกัดความนี้ไม่ครอบคลุม (ด้วยเหตุนี้ฉันจึงเรียกมันว่าคำจำกัดความที่ใช้งานได้จริง ) ฉันคิดว่ามันเป็นเรื่องธรรมดา / มีประโยชน์น้อยกว่ามาก

NB การพูดอย่างเคร่งครัดใช่คำจำกัดความนี้จะครอบคลุมการทดสอบระบบ / จบสิ้นด้วย ในปรัชญาของฉันพวกเขาเป็นรูปแบบของการทดสอบการรวม 'สุดขีด' ดังนั้นทำไมชื่อของพวกเขาจึงเน้นในด้านอื่น ในอีกทางหนึ่งการทดสอบหน่วยสามารถพิจารณาว่าเป็นการทดสอบการรวมกลุ่มขององค์ประกอบที่เป็นศูนย์เช่นการทดสอบทั้งหมดสามารถพิจารณาได้ว่าอยู่ที่ไหนสักแห่งในสเปกตรัมการรวมซึ่งรวมระหว่างส่วนประกอบ 0-n :-)


เมื่อคุณมีสองหน่วยคุณจะทดสอบแต่ละหน่วยด้วยการทดสอบหน่วย เมื่อทั้งสองหน่วยรวมเข้าด้วยกันคุณจะทดสอบการรวมกับการทดสอบการรวม พวกเขาไม่จำเป็นต้องเป็น "ออกจากกระบวนการ" และการทดสอบประเภทนี้เป็นเรื่องธรรมดามาก
ไบรอัน Oakley

คุณถูกต้องอย่างแน่นอน - สิ่งต่าง ๆ ไม่จำเป็นต้องอยู่นอกกระบวนการเพื่อทดสอบการรวมเข้าด้วยกัน นั่นเป็นเหตุผลที่ฉันพยายามอธิบายให้ชัดเจนว่าคำตอบของฉันเป็น "กฎแห่งหัวแม่มือ" มากกว่า (แต่อาจล้มเหลว) ฉันไม่เห็นด้วยว่าการทดสอบการรวมระบบระหว่างหน่วยนั้น "เป็นเรื่องธรรมดามาก" การทดสอบการรวมเข้ากับกระบวนการไม่ได้เกิดขึ้นบ่อยในประสบการณ์ของฉันและมักจะมีค่าสูงมากดังนั้นทำไมคำตอบของฉันจึงเน้นที่การทดสอบการรวมกลุ่ม
Schneider
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.