กระบวนการ Test-driven development หรือ TDD เป็นกระบวนการในวิธีการแบบ agile เพื่อควบคุมคุณภาพของซอฟต์แวร์ โดยเน้นไปที่การทดสอบซอฟต์แวร์โดยใช้ระบบอัตโนมัติเพื่อให้สามารถทดสอบได้ง่ายและทดสอบได้บ่อย และช่วยให้ส่งมอบซอฟต์แวร์ได้ตามวงรอบของการแก้ไขตามความคิดเห็นของลูกค้าได้เร็วขึ้น กระบวนการ TDD จะช่วยส่งเสริมให้เกิดการพัฒนาซอฟต์แวร์ที่เป็นมิตรกับการทดสอบ โดยจัดเตรียมการทดสอบในกรณีต่างๆที่เป็นอาจจะข้อผิดพลาดก่อนการพัฒนาซอฟต์แวร์และเมื่อทดสอบกับซอฟต์แวร์แล้วจะต้องผ่านการทดสอบคือไม่ตกในเงื่อนไขข้อผิดพลาดที่กำหนดไว้ แต่ในทางปฏิบัติจะค่อนข้างยากเพราะทีมพัฒนามักจะไม่อ่านการทดสอบก่อนลงมือพัฒนาซอฟต์แวร์ รวมถึงความยากในการคิดถึงเงื่อนไขข้อผิดพลาดต่างๆให้ครบถ้วนล่วงหน้า