วิธีการทดสอบสำหรับการทดสอบฟังก์ชั่นโดยการทดสอบฟังก์ชั่นที่เรียกว่ายังคงทดสอบหน่วย?


11

ถ้าเราทดสอบฟังก์ชั่น B โดยการทดสอบฟังก์ชั่น C ซึ่งเรียกฟังก์ชั่น B นั่นคือการเขียนโปรแกรมทดสอบเพื่อทดสอบฟังก์ชั่น C ซึ่งเรียกฟังก์ชั่น B นั้นเป็นวิธีทดสอบยังคงเรียกว่าการทดสอบหน่วยหรืออย่างอื่น?

เมื่อใดจึงจะต้องการทดสอบทางอ้อมในฟังก์ชันที่เรียกใช้ฟังก์ชันเป้าหมายและเมื่อใดจึงควรทดสอบฟังก์ชันโดยตรง

คำตอบ:


9

คำจำกัดความที่เป็นที่นิยมของการทดสอบหน่วยคือ ISTQB:

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

ตามคำจำกัดความนี้:

  • ถ้าคุณเขียนโปรแกรมทดสอบสำหรับ B มันเป็นการทดสอบหน่วย (ของ B)
  • ถ้าคุณเขียนโปรแกรมทดสอบสำหรับ C มันเป็นการทดสอบหน่วย (ของ C)

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

นอกจากนี้ยังมีคำจำกัดความของการทดสอบการรวม :

การทดสอบดำเนินการเพื่อเปิดเผยข้อบกพร่องในส่วนต่อประสานและในการโต้ตอบระหว่างส่วนประกอบหรือระบบรวม

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


5

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

สิ่งที่สำคัญกว่านั้นคือสำหรับชุดการทดสอบหน่วยของคุณสำหรับหน่วยใดยูนิตหนึ่งที่มีความครอบคลุมของบรรทัดเกือบ 100% และเพื่อทดสอบเส้นทางโค้ดที่คาดการณ์ไว้ทั้งหมด


1

ใช่เรายังเรียกมันว่าเป็นการทดสอบหน่วย

การทดสอบหน่วยควรทดสอบพฤติกรรมสาธารณะของชั้นเรียนและไม่ใช้งานส่วนบุคคล เป็นข้อเสนอแนะจากการทดสอบของ Google นี้เกี่ยวกับบทความห้องน้ำ

หากคุณปฏิบัติตามกฎของรหัสที่สะอาดแล้วฟังก์ชั่นของคุณจะต้องไม่ยาวเกิน 4 บรรทัดของรหัส สิ่งนี้ทำให้เป็นไปไม่ได้ที่จะไม่ทดสอบฟังก์ชั่นส่วนตัวอื่น ๆ ด้วยการทดสอบหน่วยของคุณ

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

การทดสอบการรวม :

ตอนนี้ถ้าฟังก์ชั่นเป็นส่วนหนึ่งของคลาสอื่นมันแตกต่างกัน จากนั้นเราจะเรียกมันว่าการทดสอบส่วนประกอบหรือการทดสอบการรวม คุณกำลังรวมหลายชั้นเรียนและทำการทดสอบกับพวกเขา ฟังก์ชั่น B จะขึ้นอยู่กับฟังก์ชั่น C เพื่อให้สามารถทดสอบหน่วย Function B ได้คุณสามารถใช้การฉีดแบบพึ่งพาเพื่อแยกฟังก์ชันที่คุณกำลังทดสอบอยู่ตอนนี้มันจะเป็นการทดสอบหน่วยอีกครั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.