I’d like to address the reporting aspect of the question. You say…
I just keep on writing excellent test cases and executing them, but then I don’t have anything to show to the management. Sometimes it makes me think that I am not providing any value to the product
Even in the perfect world where the software leaves the developers’ hands 100% bug free and feature complete (as a developer: “HAHAHAHAHAHAHAHAHAHAHA”), this is simply not true. Yes, when you find a mission critical bug at the 11’th hour, that’s awesome, and you’re the hero. But when you execute all excellent test cases and discover no defects you’ve produced something of equal or greater value. This is Quality Assurance.
In the company I work for “Tester” is a dirty word. Instead we have the “QA” team. This is because the business doesn’t really benefit from testing and fixing bugs. The business doesn’t even really benefit from having bug free code. No, the business needs to know that it has bug free code. I have worked in environments where this need was not reached, and the business did not have confidence in its product. In these environments everything falls apart.
- You can’t estimate the work involved in a new feature with confidence. Because a bug could be hiding just under the surface of a critical component.
- You can’t test a change set efficiently. Because without a baseline of confidence every test must be a full regression test.
- You can’t sell your product to serious buyers, because when they ask “can it do XYZ?” your engineer says “well, in theory.”
What I’m getting at is that the front page of whatever report you deliver to management at the end of each development cycle should not be about where the software fails:
**Defects Found** BUG-1: $0.01 of every transaction is transferred to Joe A.'s offshore account. BUG-2: Rounding error when withdrawing from an ATM on Tuesday.
Instead, the deliverable that really matters is what you’ve proven the software can do. And can do correctly. The open defects are a part of this report, yes. But they are not what really matters. What really matters is:
**Features Verified** Can open a new account [PASSED] Can close an existing account [PASSED] Can issue a transaction [FAILED, BUG-1] Can withdraw from a bank [PASSED] Can withdraw from a ATM [FAILED, BUG-2]
And then, after the bugs are addressed. You release with a QA Report that looks like this:
**Features Verified** Can open a new account [PASSED] Can close an existing account [PASSED] Can issue a transaction [PASSED] Can withdraw from a bank [PASSED] Can withdraw from a ATM [BACKLOGGED]
And that’s the document that management should want to see.