TDD สำหรับ Dummies

Feb 27 2023
ในอาชีพของฉันในฐานะนักพัฒนาซอฟต์แวร์ จนกระทั่งเมื่อไม่นานมานี้ ฉันไม่เคยสนใจการทดสอบมากนัก เพราะฉันไม่เข้าใจคุณค่าที่แท้จริงของการทดสอบ หลังจากค้นคว้า ศึกษา และพิสูจน์แนวคิดมาระยะหนึ่งแล้ว ตอนนี้ฉันสามารถเขียนเกี่ยวกับการทดสอบและเหตุใดจึงต้องใช้ TDD ในรูทีนการเขียนโปรแกรมประจำวันของคุณ

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

ประการแรก TDD คืออะไร?

ไม่ ไม่ใช่รูปแบบการทดสอบ TDD เป็นตัวย่อของTest Driven Developmentและทำงานร่วมกับวงจร:

ทีดีดีไซเคิล

ที่มา: Impact QA

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

แนวคิดของวัฏจักรเหล่านี้คือการจำแนกพฤติกรรมของชั้นเรียนของคุณเป็นหน่วยเดียว เพื่อรับประกันเสมอว่าโค้ดของคุณจะทำในสิ่งที่คุณต้องการโดยไม่มีปัญหาใหญ่ บางครั้งคุณอาจลืมทดสอบจุดบกพร่องหรือคุณสมบัติ แต่ด้วยสามขั้นตอนง่ายๆ คุณสามารถแก้ไขได้ ( เริ่มการทดสอบทันที )

ข้อดีของการใช้ TDD

  • หลีกเลี่ยงการเขียนโค้ดที่ซับซ้อน คุณมักจะคิดถึงสิ่งที่คุณต้องทำก่อนที่จะทำ หรือคุณไม่ต้องการรู้ว่าคุณกำลังทำอะไรก่อนที่จะทำ
  • รีแฟคเตอร์โค้ดตลอดเวลา
  • ครอบคลุมชั้นเรียนของคุณอย่างครบถ้วน คุณจะมีข้อมูลเสมอว่ารหัสของคุณทำงานอย่างไรและผ่านการทดสอบทั้งหมดหรือไม่
  • ลดความยุ่งยากในการลบไฟล์และช่วยทำการเปลี่ยนแปลงโค้ดเมื่อจำเป็น
  • หลีกเลี่ยงการทำงานซ้ำได้หลายวิธี
  • ไม่มี เวลาเพิ่มเติมสำหรับการทดสอบจะช่วยให้คุณประหยัดงานได้มาก
  • Jestทำงานร่วมกับจาวาสคริปต์:
  • JUnitทำงานร่วมกับJava:
  • Pytestทำงานร่วมกับPython:
  • PHPUnitทำงานร่วมกับPHP:
  • XUnitทำงานร่วมกับ. NET Framework:

ขอบคุณที่อ่าน แล้วพบกันใหม่! ข้อเสนอแนะใด ๆ