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


9

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

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


2
ลองใช้วิธีนี้: การแก้ไขข้อบกพร่องจะใช้เวลาน้อยกว่าหนึ่งชั่วโมงถ้าคุณไม่มีการทดสอบเพื่อยืนยันว่ามีอยู่จริงแล้วมีการแก้ไขน้อยลงหรือไม่
Michael K

2
ตอบคำถามชื่อ: ตราบใดที่มันจะ
Marcelo

3
ฉันคิดว่าการเชื่อฟังอย่างทารุณต่อหลักการของ TDD โดยไม่คำนึงถึงต้นทุนหรือมูลค่าทางธุรกิจเป็นการตอบสนองที่ถูกต้องเสมอ
Jeremy

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

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

คำตอบ:


12

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

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

ใช้เวลาให้มากที่สุดเท่าที่จำเป็นในการพูดด้วยความมั่นใจว่ารหัสทำงานอย่างถูกต้อง


6

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

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


นี่คือคำตอบที่แท้จริง
DJClayworth

4

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


3

ฉันจะบอกว่าการเข้ารหัสเวลากับการทดสอบหน่วยเวลาควรจะเท่ากัน บางทีอาจจะมากกว่านี้สักหน่อย ดูบทความนี้ในอัตราส่วน SO ของเวลาที่ใช้ในการเขียนโปรแกรมเปรียบเทียบกับการทดสอบหน่วย


0

คุณนับใช่มั้ย ในการทำบัญชีที่ถูกต้องของเวลาที่คุณใช้ในการทดสอบคุณต้องเขียนโค้ดโดยไม่ต้องทำการทดสอบ

หากคุณใช้เวลาสามชั่วโมงในการเขียนการทดสอบและอีกครั้งเพื่อเขียนรหัสเพื่อให้ผ่านคุณอาจพบว่าใช้เวลา 5+ ชั่วโมงในการแก้ไขข้อผิดพลาดเดียวกันโดยไม่ต้องเขียนข้อสอบ

ใช่ฉันมักจะใช้เวลามากในการทดสอบมากกว่ารหัสการแก้ไขที่แท้จริง

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