I recently performed system tests which covered all important use cases of the application. I was stunned by the unexpectedly high code coverage of > 80%. At the same time the remaining 20% made me curious. About 15% of the non-covered code was actually superfluous and I immediately deleted it, what further increased the coverage. The remaining parts were irrelevant--like e.g. annotations and enum.
Using code coverage for QA Driven Development may lead to great coverage and poor assert quality.
On demand workshops: Java EE 7: Bootstrap, Effective, Testing and Microservices available for streaming.