Are “Hard to find bugs” the responsibility of the developer or the tester

bugbug reportdevelopment-processprocesstesting

May be it seems an open question (or non-constructive according to stackoverflow standards) …. but I am asking if there's something rigid according to Software process standards addressing this topic ?

If there are one or more "Hard to find bugs" that need complex scenarios, extensive testing, very big or special data set to show up … Is this the responsibility of the developer or the QA ?

Best Answer

There is no single standard software development process with clear defined responsibility for everything:

  • On one side this is unfortunately, because it makes life harder. You have to organize everything in every project and agree on roles and responsibilities. If software is build for a customer, this could be part of the contract. And it will not always be so clear who is to blame for what, nor if there's anybody to blame at all.

  • On the other side, this is fortunate: every project is somewhat unique, and you have the freedom to organize things as best suits its needs, and experiment innovative approaches.

So who is to blame ?

  • The customer could blame the project manager
  • The project manager might blame the quality assurance guy for not having found it, or the developper for having worked carelessly
  • The quality assurance engineer could blame the customer because nobody told him about the real test scenario, or didn't provide representative test data. The customer might blame in return the quality assurance guy, because he never asked or he didn't check representativity of data. So quality engineer will finally blame software developper for his bad quality.
  • The software developer could blame the quality engineer because he didn't verify well enough. He could blame the architect or he analyst, for not having mentioned some specific circumstances (if he'd known, he would have prevent it from happening). The business analyst could blame the customer, and so on...
  • In the end, everybody could blame everybody else, and it'll be up to the judge to settle the case

But wait a moment.. judge ? case ? Well, ... I hope that before arriving to such an unsatisfying end all the parties will realize that they are on the same boat !

Quality is a shared responsibility. So in the end there's no use blaming each other. Everybody has to contribute to come to an acceptable outcome.

The only one who could be blamed in the end is the project manager. Because it's his responsibility to make people work together. And he/she should ensure that quality assurance is properly organized above and across the organizational boundaries. He has plenty of ways to do so, starting with the setup of the project life cycle (e.g. agile vs.waterfall), the organization of the stakeholders involvement, and the choice of the validation approach (e.g.TDD or traditional V-model validation), and facilitating team throughout the project.