Oct 16, 2009
At Agile Testing Days in Berlin this week, Mary Poppendieck presented her definition of test-driven development and talked about the right reasons for testing in software projects.
According to Poppendieck, Test-driven development can be summarised as:
The system should be able to test itself and ideally have no defects, but in reality some defects are still going to escape through the process. Poppendieck said that that “the biggest defect we have now [in software development] is tolerating defects”. She advised treating each failure (defect that escaped) as a learning opportunity. Determining the root cause of the failure and eliminating it so that the defect does not reappear in the future is the way forward.
She also talked about the purpose of testing (as opposed to checking the correctness using known expectations), saying that we teams should be testing to learn, not to find defects. Effective testing is, according to Poppendieck, aimed to seek knowledge. Testing starts with a hypothesis of the results. “If you can’t predict the results of a test, you don’t understand the system.”, said she, giving an example how Boeing engineers test airplane wings. They make a premise when the wing is going to break and how and then they break it, measuring how that matched the expectations.
Get practical knowledge and speed up your software delivery by participating in hands-on, interactive workshops:
Get future articles, book and conference discounts by e-mail.