คำถามติดแท็ก integration-testing

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

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

3
Karma กับกรอบการทดสอบ Jasmine, Mocha, QUnit [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ คำถามไม่กี่: กรรมและกรอบการทดสอบ X (จัสมินมอคค่า QUnit) เกี่ยวข้องกันอย่างไร อะไรคือกรอบการทำงานที่เทียบเท่าในโลกของ Java? ฉันถือว่าจัสมินมอคค่า QUnit เท่ากับ jUnit / TestNG กรรมเป็นอย่างไรบ้าง ฉันสามารถรันกรอบการทดสอบ X (เช่นจัสมิน) โดยไม่มีกรรมได้หรือไม่? กรรมสำหรับการทดสอบหน่วยหรือการรวม / การทดสอบ e2e หรือไม่ การอ้างอิงนี้แสดงสำหรับการทดสอบหน่วยอย่างไรก็ตามสิ่งนี้กล่าวคือการทดสอบ e2e

7
ป้องกันการทดสอบหน่วย แต่อนุญาตให้รวมการทดสอบใน Maven
ฉันเป็นรุ่น Maven ที่ฉันใช้ปลั๊กอิน SureFire เพื่อเรียกใช้การทดสอบหน่วยและปลั๊กอิน FailSafe เพื่อเรียกใช้การทดสอบการรวมบางอย่าง ฉันต้องการวิธีการใช้งานการทดสอบปลั๊กอินของ FailSafe มันไม่ใช่ทางออกที่ดีสำหรับฉันที่จะเพิ่มโปรไฟล์หรืออะไรก็ตามใน pom เพราะมันเป็นโครงสร้างแบบมัลติโมดัลและฉันไม่ต้องการแก้ไข pom ของโมดูลทุกตัว มีskip.testsและmaven.test.skipและskipTestsที่หยุดทุกการทดสอบและการskipITsที่จะหยุดเพียง failsafe ปลั๊กอิน ดังนั้นจะมีการตั้งค่าสถานะบรรทัดคำสั่งสำหรับ Maven เหมือนskipITsแต่แทนที่จะใช้ฟังก์ชันของ "onlyITs" หรือไม่

6
RSpec vs Cucumber (เรื่อง RSpec) [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา เมื่อใดที่ฉันควรใช้ specs สำหรับแอปพลิเคชั่น Rails และเมื่อ Cucumber (อดีต rspec-Stories) ฉันรู้ว่าทั้งสองทำงานและใช้สเปคอย่างแน่นอน แต่มันก็ยังรู้สึกแปลก ๆ ที่จะใช้แตงกวา มุมมองปัจจุบันของฉันเกี่ยวกับเรื่องนี้คือมันสะดวกในการใช้แตงกวาเมื่อคุณใช้แอปพลิเคชันสำหรับลูกค้าและไม่เข้าใจว่าระบบทั้งหมดควรจะทำงานอย่างไร แต่ถ้าฉันทำโครงการของตัวเองล่ะ ตลอดเวลาฉันรู้ว่าส่วนต่าง ๆ ของระบบมีการโต้ตอบอย่างไร สิ่งที่ฉันต้องทำก็คือเขียนหน่วยการทดสอบจำนวนมาก สถานการณ์ที่เป็นไปได้เมื่อฉันต้องการแตงกวาคืออะไร? และเป็นคำถามที่สองที่สอดคล้องกัน: ฉันต้องเขียนรายละเอียดถ้าฉันเขียนเรื่องแตงกวา? จะไม่เป็นการทดสอบสองครั้งในสิ่งเดียวกันหรือไม่

6
Junit: แยกการทดสอบการรวมและการทดสอบหน่วย
ฉันได้รับการทดสอบ Junit มาเป็นจำนวนมาก แต่การทดสอบเหล่านี้ (นอกเหนือจากการทดสอบส่วนใหญ่ไม่ได้ผล) เป็นส่วนผสมของการทดสอบหน่วยจริงและการทดสอบการรวม (ต้องใช้ระบบภายนอกฐานข้อมูล ฯลฯ ) ดังนั้นฉันจึงพยายามคิดหาวิธีแยกพวกมันออกจากกันเพื่อที่ฉันจะได้รันการทดสอบหน่วยได้อย่างรวดเร็วและการทดสอบการรวมหลังจากนั้น ตัวเลือกคือ .. แยกเป็นไดเรกทอรีแยกต่างหาก ย้ายไปที่ Junit4 (จาก v3) และใส่คำอธิบายประกอบคลาสเพื่อแยกคลาส ใช้หลักการตั้งชื่อไฟล์เพื่อบอกว่าคลาสคืออะไรเช่น AdapterATest และ AdapterAIntergrationTest 3 มีปัญหาว่า Eclipse มีตัวเลือก "เรียกใช้การทดสอบทั้งหมดในโครงการ / แพ็คเกจหรือโฟลเดอร์ที่เลือก" ดังนั้นจึงยากมากที่จะเรียกใช้การทดสอบการรวมระบบ 2: เสี่ยงที่นักพัฒนาอาจเริ่มเขียนการทดสอบการรวมในชั้นเรียนทดสอบหน่วยและมันก็ยุ่งเหยิง 1: ดูเหมือนจะเป็นทางออกที่ดีที่สุด แต่ลำไส้ของฉันบอกว่าต้องมีทางออกที่ดีกว่านี้ นั่นคือคำถามของฉันคุณจะแยกการทดสอบการรวมและการทดสอบหน่วยที่เหมาะสมได้อย่างไร

10
MongoDB ในตัวเมื่อรันการทดสอบการรวม
คำถามของฉันคือการเปลี่ยนแปลงของคนนี้ เนื่องจากโครงการ Java Web-app ของฉันต้องการตัวกรอง / แบบสอบถามและอินเทอร์เฟซสำหรับการอ่านจำนวนมากกับเครื่องมือเช่น GridFS ฉันจึงพยายามคิดหาวิธีที่เหมาะสมในการใช้ MongoDB ตามวิธีที่โซลูชันข้างต้นแนะนำ ดังนั้นฉันกำลังพิจารณาใช้อินสแตนซ์แบบฝังของ MongoDB ควบคู่ไปกับการทดสอบการรวมระบบของฉัน ฉันต้องการให้เริ่มต้นโดยอัตโนมัติ (ไม่ว่าจะสำหรับการทดสอบแต่ละครั้งหรือทั้งชุด) ล้างฐานข้อมูลสำหรับการทดสอบทุกครั้งและปิดเครื่องในตอนท้าย การทดสอบเหล่านี้อาจทำงานบนเครื่องพัฒนาเช่นเดียวกับเซิร์ฟเวอร์ CI ดังนั้นโซลูชันของฉันจะต้องพกพาได้ด้วย ใครที่มีความรู้เพิ่มเติมเกี่ยวกับ MongoDB ช่วยให้ฉันทราบถึงความเป็นไปได้ของแนวทางนี้และ / หรืออาจแนะนำเนื้อหาการอ่านที่อาจช่วยให้ฉันเริ่มต้นได้ ฉันยังเปิดรับข้อเสนอแนะอื่น ๆ ที่ผู้คนอาจมีเกี่ยวกับวิธีแก้ไขปัญหานี้ ...

4
แยกการทดสอบหน่วยและการทดสอบการรวมใน Go
มีแนวทางปฏิบัติที่ดีที่สุดสำหรับการแยกการทดสอบหน่วยและการทดสอบบูรณาการใน GoLang (เป็นพยาน) หรือไม่ ฉันมีการทดสอบหน่วยหลายอย่าง (ซึ่งไม่ต้องพึ่งพาทรัพยากรภายนอกใด ๆ จึงทำงานได้เร็วมาก) และการทดสอบการรวม (ซึ่งอาศัยทรัพยากรภายนอกใด ๆ จึงทำงานช้าลง) ดังนั้นฉันต้องการให้สามารถควบคุมได้ว่าจะรวมการทดสอบการรวมเข้าด้วยกันเมื่อฉันพูดgo testหรือไม่ เทคนิคที่ตรงไปตรงมาที่สุดดูเหมือนจะเป็นการกำหนดแฟล็ก -integrate ใน main: var runIntegrationTests = flag.Bool("integration", false , "Run the integration tests (in addition to the unit tests)") จากนั้นเพิ่ม if-statement ที่ด้านบนของการทดสอบการรวมทุกครั้ง: if !*runIntegrationTests { this.T().Skip("To run this test, use: go test -integration") } นี่คือสิ่งที่ดีที่สุดที่ฉันทำได้หรือไม่? …

6
แบบทดสอบหน่วย? การทดสอบบูรณาการ? การทดสอบการถดถอย? การทดสอบการยอมรับ?
มีใครบ้างที่สามารถกำหนดระดับการทดสอบเหล่านี้ได้อย่างชัดเจนเนื่องจากฉันพบว่ามันยากที่จะแยกความแตกต่างเมื่อทำการทดสอบ TDD หรือหน่วย โปรดหากใครสามารถอธิบายได้อย่างละเอียดว่าจะใช้สิ่งเหล่านี้ได้อย่างไร?

7
ฉันจะเพิ่มชุดแหล่งที่มาใหม่ใน Gradle ได้อย่างไร
ฉันต้องการเพิ่มการทดสอบการรวมเข้ากับ Gradle build ของฉัน (เวอร์ชัน 1.0) พวกเขาควรทำงานแยกจากการทดสอบปกติของฉันเนื่องจากต้องใช้ webapp เพื่อปรับใช้กับ localhost (พวกเขาทดสอบ webapp นั้น) การทดสอบควรสามารถใช้คลาสที่กำหนดไว้ในชุดแหล่งข้อมูลหลักของฉัน ฉันจะทำให้สิ่งนี้เกิดขึ้นได้อย่างไร

18
การทดสอบหน่วยที่ดีคืออะไร? [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน9 ปีที่ผ่านมา ล็อค คำถามนี้และคำตอบถูกล็อกเนื่องจากคำถามไม่ตรงประเด็น แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ยังไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันแน่ใจว่าพวกคุณส่วนใหญ่กำลังเขียนการทดสอบอัตโนมัติจำนวนมากและคุณได้พบกับข้อผิดพลาดทั่วไปบางอย่างเมื่อทำการทดสอบหน่วย คำถามของฉันคือคุณปฏิบัติตามกฎระเบียบการสอบข้อเขียนเพื่อหลีกเลี่ยงปัญหาในอนาคตหรือไม่? เพื่อให้เจาะจงมากขึ้น: อะไรคือคุณสมบัติของการทดสอบหน่วยที่ดีหรือคุณเขียนแบบทดสอบของคุณอย่างไร? ขอแนะนำให้ใช้ภาษาที่ไม่เชื่อเรื่องพระเจ้า

10
จะทดสอบกล่องโต้ตอบยืนยันกับแตงกวาได้อย่างไร?
ฉันใช้ Ruby on Rails กับ Cucumber และ Capybara ฉันจะทดสอบคำสั่งยืนยันอย่างง่ายได้อย่างไร ("แน่ใจหรือ") นอกจากนี้ฉันจะหาเอกสารเพิ่มเติมเกี่ยวกับปัญหานี้ได้ที่ไหน

11
Before และ After Suite Execution hook ใน jUnit 4.x
ฉันกำลังพยายามตั้งค่าล่วงหน้าสำหรับชุดของการทดสอบการรวมโดยใช้ jUnit 4.4 เพื่อดำเนินการทดสอบ การฉีกขาดจะต้องทำงานได้อย่างน่าเชื่อถือ ฉันมีปัญหาอื่น ๆ กับ TestNG ดังนั้นฉันจึงต้องการพอร์ตกลับไปที่ jUnit มี hooks ใดบ้างสำหรับการดำเนินการก่อนที่จะรันการทดสอบใด ๆ และหลังจากการทดสอบทั้งหมดเสร็จสิ้น หมายเหตุ: เรากำลังใช้ maven 2 สำหรับงานสร้างของเรา ฉันได้ลองใช้ maven pre-& post-integration-testphases แล้ว แต่ถ้าการทดสอบล้มเหลว maven จะหยุดและไม่ทำงานpost-integration-testซึ่งก็ไม่ได้ช่วยอะไร

5
ตรวจสอบความถูกต้องในข้อกำหนดคำขอ
เมื่อเขียนข้อมูลจำเพาะของคำขอคุณจะกำหนดวิธีการเซสชันและ / หรือตัวควบคุมต้นขั้วได้อย่างไร? ฉันพยายามที่จะตัดการรับรองความถูกต้องในการทดสอบการรวม - rspec / request นี่คือตัวอย่างของการทดสอบ require File.dirname(__FILE__) + '/../spec_helper' require File.dirname(__FILE__) + '/authentication_helpers' describe "Messages" do include AuthenticationHelpers describe "GET admin/messages" do before(:each) do @current_user = Factory :super_admin login(@current_user) end it "displays received messages" do sender = Factory :jonas direct_message = Message.new(:sender_id => sender.id, :subject => …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.