“There has to be something to test”
The title of this post is one of the most common defense I get when I argue that testing should be involved as early as possible when developing software. And I have to admit that there is some truth in this. But how much is “something”? What is actually required to be able to carry out testing in the sense of verifying some level of quality in a product?
Of course, this depends on the kind of testing you are implying. If you are thinking about some certain kind of testing, like unit testing, user acceptance testing etc, there are certain things that these contexts require. But think about once more what I am actually saying. “Testing needs to be involved as soon as possible to get the most value in a product.”
For this statement I prefer to use the definition of testing that James Bach uses in his rapid testing: “Testing is questioning a product in order to evaluate it”. Having that in mind, the testing carried out throughout a project is questioning the current product as it looks at the moment. In the beginning of a project I can very well see the product as the sketches on the whiteboard on the first day, until there is something more concrete. Questioning a whiteboard sketch will reveal requirements misunderstandings early on while testing the ready to launch product means different kinds of questioning.
Anyone who wants to argue more about the early involvement of testing?