Figuring out defects in the design & product is a fun and challenge in itself. But our end goal is not just to figure them out but to get them fixed so that they are not encountered by our customers. In order to do so we should file bugs with as much detailed information as possible including any pre requisites, set up, sequential repro steps, build and log file locations, frequency of occurrence, customer impact etc as may be applicable. This not only prevents unnecessary bug assignments back and forth between dev and test, but also reduces the over all bug life cycle. Also while filing bugs it is recommended to look out for any such already existing bug in the bug database. This saves a lot of time that may otherwise go wasted in filing, triaging and then finally resolving it as a duplicate. In addition we should use correct judgment for bug priority and severity while filing it.
Another fact worth noting is that the earlier we figure out bugs in the product life cycle, the less costly and easier it becomes to fix them. On the contrary bugs discovered in the later milestones posses a huge risk in fixing as the chances of introducing any regression bugs by virtue of the fix is very high. Also the bug bar is very high towards the release phase and unless the bug is a ship stopper, it’s very likely to get punted.