หากต้องการวาดแง่มุมของคำตอบสองสามข้อด้วยกันและเพิ่ม 2p ของฉัน ...
หมายเหตุ: ความคิดเห็นของฉันเกี่ยวข้องกับการทดสอบฐานข้อมูลโดยเฉพาะและไม่ใช่การทดสอบ UI (แม้ว่าจะคล้ายกันอย่างชัดเจน)
ฐานข้อมูลต้องการการทดสอบมากพอ ๆ กับแอพพลิเคชั่นส่วนหน้า แต่มีแนวโน้มที่จะทำการทดสอบบนพื้นฐานของ หรือ 'รายงานสร้างผลลัพธ์ที่ถูกต้องหรือไม่' ซึ่งในความเห็นของฉันคือการทดสอบช้าในกระบวนการพัฒนาฐานข้อมูลและไม่แข็งแกร่งมาก
เรามีลูกค้าจำนวนหนึ่งที่ใช้การทดสอบหน่วย / การรวม / ระบบสำหรับฐานข้อมูลคลังข้อมูลของพวกเขานอกเหนือจาก UAT / performance / et al ตามปกติ การทดสอบ พวกเขาพบว่าด้วยการบูรณาการอย่างต่อเนื่องและการทดสอบอัตโนมัติพวกเขาพบปัญหามากมายก่อนที่จะเข้าสู่ UAT แบบดั้งเดิมซึ่งช่วยประหยัดเวลาใน UAT และเพิ่มโอกาสในการประสบความสำเร็จของ UAT
ฉันแน่ใจว่าส่วนใหญ่จะยอมรับว่าควรใช้ความแม่นยำที่คล้ายกันกับการทดสอบฐานข้อมูลเพื่อการทดสอบส่วนหน้าหรือการรายงาน
สิ่งสำคัญในการทดสอบคือการทดสอบเอนทิตีแบบง่าย ๆ เพื่อให้แน่ใจว่าถูกต้องก่อนที่จะดำเนินการต่อไปในการรวมกันของเอนทิตีที่ซับซ้อน
ดังนั้นให้บริบทกับคำตอบของฉัน ...
การทดสอบหน่วย
- มีการทดสอบโฟกัสเพื่อพิสูจน์ว่าหน่วยทำงานเช่นตารางมุมมองฟังก์ชั่นขั้นตอนการจัดเก็บ
- ควร 'สมบูรณ์' อินเทอร์เฟซเพื่อเอาการอ้างอิงภายนอก
- จะให้ข้อมูลของตัวเอง คุณต้องการสถานะเริ่มต้นของข้อมูลที่ทราบดังนั้นหากมีโอกาสของข้อมูลที่มีอยู่ก่อนการทดสอบการตัด / การลบควรเกิดขึ้นก่อนประชากร
- จะทำงานอย่างสมบูรณ์แบบในบริบทการดำเนินการของตัวเอง
- จะล้างข้อมูลหลังจากตัวเองและลบข้อมูลที่ใช้ นี่เป็นสิ่งสำคัญเฉพาะเมื่อไม่ได้ใช้สตับ
ข้อดีของการทำเช่นนี้คือคุณกำลังลบการอ้างอิงภายนอกทั้งหมดในการทดสอบและดำเนินการทดสอบจำนวนน้อยที่สุดเพื่อพิสูจน์ความถูกต้อง เห็นได้ชัดว่าการทดสอบเหล่านี้ไม่สามารถทำงานบนฐานข้อมูลการผลิตได้ อาจเป็นได้ว่ามีการทดสอบหลายประเภทที่คุณจะทำขึ้นอยู่กับประเภทของหน่วยการเรียนรู้รวมถึง:
- ตรวจสอบสคีมาบางคนอาจเรียกสิ่งนี้ว่าการทดสอบ 'สัญญาข้อมูล'
- ค่าคอลัมน์ผ่าน
- การออกกำลังกายของเส้นทางตรรกะที่มีค่าข้อมูลที่แตกต่างกันสำหรับฟังก์ชั่นขั้นตอนการดูคอลัมน์จากการคำนวณ
- การทดสอบเคสขอบ - ค่า NULL, ข้อมูลไม่ดี, จำนวนลบ, ค่าที่มากเกินไป
(หน่วย) การทดสอบบูรณาการ
ฉันพบว่าบทความ SE นี้มีประโยชน์ในการพูดคุยเกี่ยวกับการทดสอบประเภทต่างๆ
- มีจุดประสงค์ในการทดสอบเพื่อพิสูจน์ว่าหน่วยต่างๆรวมเข้าด้วยกัน
- ดำเนินการในจำนวนหน่วยด้วยกัน
- ควร 'สมบูรณ์' อินเทอร์เฟซเพื่อเอาการอ้างอิงภายนอก
- จะให้ข้อมูลของตัวเองเพื่อลบผลกระทบของข้อมูลภายนอกที่มีอิทธิพล
- จะทำงานอย่างสมบูรณ์แบบในบริบทการดำเนินการของตัวเอง
- จะล้างหลังจากตัวเองและลบข้อมูลที่สร้างขึ้น; นี่เป็นสิ่งสำคัญเฉพาะเมื่อไม่ได้ใช้สตับ
ในการย้ายจากการทดสอบหน่วยไปยังการทดสอบการรวมเหล่านี้มักจะมีข้อมูลเพิ่มเติมเล็กน้อยเพื่อทดสอบกรณีทดสอบที่หลากหลาย เห็นได้ชัดว่าการทดสอบเหล่านี้ไม่สามารถทำงานบนฐานข้อมูลการผลิตได้
นี้จากนั้นจะดำเนินการเข้าสู่ระบบการทดสอบ , บูรณาการการทดสอบระบบ (aka การทดสอบแบบ end-2-End) โดยมีการเพิ่มปริมาณข้อมูลและเพิ่มขอบเขต การทดสอบทั้งหมดเหล่านี้ควรเป็นส่วนหนึ่งของกรอบการทดสอบการถดถอย การทดสอบเหล่านี้บางอย่างอาจถูกเลือกโดยผู้ใช้เพื่อดำเนินการเป็นส่วนหนึ่งของ UAT แต่ UAT คือการทดสอบที่กำหนดโดยผู้ใช้ไม่ใช่ตามที่ IT กำหนด - เป็นปัญหาทั่วไป!
ดังนั้นตอนนี้ที่ฉันได้ให้บริบทเพื่อตอบคำถามจริงของคุณ
- การเตรียมข้อมูลล่วงหน้าสำหรับการทดสอบหน่วยและการรวมเข้าด้วยกันอาจทำให้เกิดข้อผิดพลาดในการทดสอบปลอมและควรหลีกเลี่ยง
- วิธีเดียวที่จะตรวจสอบให้แน่ใจว่ามีการทดสอบที่สอดคล้องกันคือไม่มีข้อสมมติฐานเกี่ยวกับข้อมูลต้นฉบับและควบคุมอย่างเข้มงวด
- บริบทการดำเนินการทดสอบแยกต่างหากเป็นสิ่งสำคัญเพื่อให้แน่ใจว่าผู้ทดสอบรายหนึ่งไม่ขัดแย้งกับผู้ทดสอบรายอื่นที่ทำการทดสอบเดียวกันในรหัสฐานข้อมูลที่ควบคุมโดยสาขาอื่น