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