I. Introduction
The history of test-driven development (TDD) can be traced back to the 1950s. D.D. McCracken introduced the concept of TDD in his 1957 book Digital Computer Programming [1]. But TDD was not widely utilized until Kent Beck “rediscovered” the technique in 2003. In his book Test-Driven Development, Beck introduced the TDD mantra-“red/green/refactor” [2]. Since then, the test-driven approach has matured to a formal iterative process where developers (1) write failing tests for the code they are about to develop, (2) implement functionality to make the tests pass, and (3) refactor out any duplicated code. In another scenario, if initial tests pass, a developer can start refactoring existing code directly and keep the tests passing during development. The major benefits of this process are that it gives developers confidence in the soundness of their work, and it eases the burden of refactoring by quickly verifying that functionality has not changed.