กระบวนการ red green refactor เป็นกระบวนการที่ใช้ในการทดสอบเพื่อช่วยให้เราสร้างสิ่งที่ดีที่สุด มักจะถูกใช้กับกระบวนการ TDD โดยกระบวนการจะเริ่มจาก (1) Red : ให้เราจะเขียนเงื่อนไขการทดสอบที่สะท้อนพฤติกรรมของซอฟต์แวร์ตามที่เราต้องการ ซึ่งผลการทดสอบจให้ผลเป็นผิดพลาดเพราะเรายังไม่ได้เขียนโปรแกรมขุึ้ยมา (2) Green : เราจะเขียนโปรแกรมในแบบที่ง่าย สั้น กระชับ เพื่อให้ทดสอบผ่านตามเงื่อนไขการทดสอบที่กำหนด ซึ่งอาจจะเป็นการเขียนโปรแกรมขึ้นมาใหม่ทั้งหมดหรือปรับปรุงโปรแกรมที่มีอยู่แล้วมาใช้ก็ได้ (3) Refactor : เมื่อทดสอบผ่านแล้ว เราสามารถแก้ไขโปรแกรมเพื่อปรับปรุงให้ดีขึ้น เช่น ปรับปรุงหน้าตาของโปรแกรม ปรับปรุงประสิทธิภาพ เป็นต้น โดยมีเป้าหมายให้โปรแกรมสามารถบำรุงรักษาได้ง่ายและเข้าใจได้ง่ายขึ้นโดยที่พฤติกรรมของโปรแกรมยังคงเป็นไปตามที่เราต้องการ
สิ่งสำคัญคือเราไม่ได้จะสร้างขั้นตอนการทดสอบที่สมบูรณ์แบบในครั้งเดียว แต่เราจะสร้างเงื่อนไขการทดสอบและขั้นตอนการทดสอบแบบง่ายๆ จากนั้นเราจึงแก้ไขโปรแกรมตามผลการทดสอบที่ได้ และขยายเงื่อนไขการทดสอบและขั้นตอนการทดสอบเพิ่มเติมและเริ่มการทดสอบอีกครั้งเป็นกระบวนการที่วนเวียนไปจนกว่าจะได้โซลูชั่นที่ดีที่สุดซึ่งในระบบขนาดใหญ่อาจจะต้องทำเป็น 100 ครั้ง ทั้งนี้วัตถุประสงค์ของกระบวนการนี้ก็เพื่อให้เราพัฒนาโซลูชั่นที่ดีที่สุด รองรับการทดสอบ (testable) บำรุงรักษาง่าย (maintainable) และสามารถเพิ่มขีดความสามารถได้ (extensible) ตั้งแต่ขั้นตอนการพัฒนาเพราะเรายังเข้าใจสิ่งที่เขียนอย่างแจ่มชัดต่างจากการกลับมาทบทวนในภายหลัง กระบวนการนี้ควรใช้กับการทำ unit test ซึ่งเป็นการทดสอบโดยนักพัฒนา
คำถามถัดมาคือทดสอบแค่ไหนจึงจะเรียกว่าพอ ในการทดสอบเราจะมีเป้าหมายของการทดสอบที่ชัดเจน คือ โปรแกรมทำงานได้ตามสเปค พยายามค้นหาข้อบกพร่อง และรู้ว่าข้อบกพร่องน่าจะพบในส่วนไหน และเป้าหมายที่ไม่ชัดเจน เช่น ผลิตภัณฑ์เราไม่มีข้อผิดพลาด 100% แต่ด้วยเวลาที่จำกัดเพราะเราต้องส่งมอบผลิตภัณฑ์ตามกำหนด จึงไม่มีทางที่เราจะค้นหาข้อบกพร่องได้ทั้งหมด ดังนั้นสิ่งที่เราทำได้คือส่งมอบสิ่งที่มีคุณภาพมากที่สุดภายใต้ข้อจำกัดต่างๆ ซึ่งเราสามารถทำได้โดยกำหนดเงื่อนไขการทดสอบที่ดีซึ่งจะช่วยให้ได้โปรแกรมที่มีคุณภาพที่ดี และจะช่วยให้ทีมพัฒนารู้สึกมั่นใจที่จะส่งมอบผลิตภัณฑ์ให้กับผู้ใช้งาน