A software development process that relies on the repetition of a very short development cycle: requirements are turned into very specific test cases, then the code is improved so that the tests pass. This is opposed to software development that allows code to be added that is not proven to meet requirements. In the context of scientific programming, the idea is to start new code development with a test function that describes what needs to be done, and a small piece of test data that mimics the (large) real dataset that needs to be processed. The new code (usually a function) can then be written and tested rapidly against the test data set (via the test function). When the test finally passes, the new code can be run with the real dataset. This can greatly speed development (faster runtimes) and when the code is developed, a test is already in place to prevent future regressions to the code when new features are added.
0 commit comments