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