Many of you will have seen the news that Volkswagen are in trouble for allegedly manipulating the results of emissions tests (http://www.bbc.co.uk/news/business-34311819). It would seem that doubt has been cast over the software which could have allowed cars to perform better during emissions tests than in normal use. I have no real knowledge of this case and so it would be unwise to comment specifically, but this got me thinking about our integrity as software testers.
My perception is that most of the time the vast majority of testers are free to work with integrity and are actively encouraged to tell the truth about what they discover during their testing. Breaking the bad news that a product is bugged in some way is seen as a good thing; we would rather find that out during testing than in production, where the consequences can be much worse. However I think we can face pressure as testers to not be completely honest and transparent about the testing we have performed and the information we have gathered. This pressure can come in two forms.
It’s possible that at some stage you may be explicitly asked to be less than truthful about your testing or its results. This could be as a result of internal politics or because of commercial pressures to release on a given date or possibly even to provide testing data to third parties. Of course, on the whole we want to be team players working for the good of our companies but I’d argue that your integrity is more important and that it is actually for the long term good of your company for you to maintain it.
Thankfully I work for a company which holds integrity in very high regard and so external pressure has never been an issue for me personally. My understanding is that it can be a problem at times in the broader industry though.
However it’s possible to put pressure on our own integrity and that’s a danger for all of us. As part of the wider team we want to get our development projects completed on time and to the highest quality. We naturally want to be able to show testing results that back this up. There can therefore be an internal pressure to get through the planned testing and to achieve the desired goals in terms of quality, performance, robustness etc. While maybe less obvious than the external pressures above I think this can be just as powerful and is equally as dangerous and needs to be resisted in just the same way.
Those of us who are test managers need to be aware of this danger and manage our teams in a way that avoids it. If we consistently praise and reward our testers for getting testing completed on time with no defects outstanding on the target ship date, rather than for providing useful information about the product even when that causes a serious headache for the wider business, then we’ll foster the internal pressures above rather than actively encouraging our testers to have the highest integrity in their work.
Don’t give in!
We need to fight hard to resist these pressures and maintain our integrity as testers. Our job is to investigate the product we’ve been charged with testing and to provide information about how it really behaves and performs. We live in an imperfect world and so our software will always be imperfect too. Deciding what and when to release is fundamentally a business decision and that decision necessarily requires a dose of pragmatism at times. In some cases testers and test managers may be directly involved in those decisions, but in all cases we need to facilitate that decision making by providing as much open and honest information as we can.
Just my 2p. I’d love to hear your own comments.