I associate Verification and validation with process of comparing documented requirements with code. However if we want to create software that users is willing to pay for (instead of simply protection from being sued for low quality software) then perhaps testers should do something more…. Let me tell you what I do and why
The gap between requirements and user needs
I believe everyone have seen
tire swing joke about programming. When I tried to
build a house for my family I learned that in reality different perceptions may be even more remote. When I started project my understanding of what I want was something like this. Only after working close with architect for several months my understanding of what I want shaped more into how it is illustrated in the joke mentioned above.

I remember in 2005 a
presentation about 3 things: what the customer actually need, what is described in official requirements and the actual application code. There are gaps between all of them and we testers need to care about all the gaps not only about the gap between requirements and code.

What happens if we only care to validate requirements
I was reading
Brian Marick about business value and I realized why I has never completely accepted agile ideas.. although they accept that
seeing the finished work made the business change its mindthough they don’t want to be accountable for the change. They want to charge business for any change they does. Do they dismiss the “non-agile” ways to minimize such costs such as pilots, models, prototypes – I don’t know. But I know why they think they don’t need testers – good testers do they best to minimize the need for changes and this work is seen not-our-business by agile developers.
The other role of tester: my vision
So beside V&V there is something else a good tester does. That is sometimes not valued by certain developers and even managers. So there are at least 4 (there are more in waterfall-like methodologies, but agile reduced it to minimum – to 4) different visions of product:
1) What customer really needs (a blur things)
2) What customer thinks (now) she needs (a bit gap with 1 that reduces with each step in waterfall)
3) What we (business analysts, product owner, whoever else on developers site) have managed to describe on a paper about what we think about what customer thinks about what he wants
4) How developers understood and implemented what we described about what we think what customer thinks about what she really needs
Ok there are 5 – actual code, but comparing it to 4 is the developer’s task. Their Unit tests does it perfectly.
Now if we have a dedicated tester he may compare 3 and 4 (to reduce risk of misinterpretation made by developer). However it is more essential to try find gaps with 2 and even 1. Good tester may try to use a “reverse-thinking”, try to understand what a customer really needs. Of course testers makes a lot of wrong guesses (that why developers and even manager don’t like them) but they should eventually help customer to understand for example that they really need the system to survive after year 2000...
You need to be a member of Software Testing Club - An Online Software Testing Community to add comments!
Join Software Testing Club - An Online Software Testing Community