Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

At work, we use a bug tracker called Pivotal Tracker (www.pivotaltracker.com) that allows engineers to file features and bugs. If a feature or bug fix is delivered, it is QA's job to accept or reject it accordingly.

If an engineer implements a new feature that has a bug in it, should QA accept that feature and file the bug separately, or should QA reject that feature and report the bug in a comment?

Potential advantage of rejecting the feature: Better chances of engineers noticing and fixing the bug before releasing the code

Potential advantage of filing a separate bug: It allows engineers to better assess how many bugs there have been (if that is really useful)

share|improve this question

migrated from stackoverflow.com Mar 28 '11 at 20:55

This question came from our site for professional and enthusiast programmers.

5 Answers 5

up vote 12 down vote accepted

There is not a hard-and-fast answer; it is up to your organisation.

One thing to consider is that if QA find many bugs in the new feature, it would be better to track each of them separately, so I would tend towards filing individual bug reports.

If the bug is so major that there is no way the feature could ever be used as intended (e.g. the menu item to launch the feature is missing) it may make more sense to reject the feature outright - it hasn't even reached the sanity-test stage.

Don't forget if you go for a bug-report, that QA needs a meaningful version number to file the bug against - it is neither a bug in Version 1.0 nor a bug in Version 2.0 - it has to be against a particular interim build/load, or similar.

Obviously, QA should also have the power to reject the entire build from being delivered to customers - simply measuring that "there is only one bug in that new feature" isn't sufficient.

share|improve this answer
    
Great answer. In retrospect, it seems rather obvious. –  DormoTheNord Mar 27 '11 at 8:14
    
I agree with the above, but I have to admit that I operate under the assumption that more bugs in the DB is better than fewer and that the feature must be usable as intended or the person who implemented the feature wouldn't have marked it as complete. I.E., trust the people in the team. –  Daniel T. Mar 28 '11 at 21:51

It depends on bug severity.

As a rule, a feature should be accepted if it passes acceptance testing. If that bug was found there, feature is normally rejected.

Regardless of whether that feature was rejected or not, bug should be filed separately. Engineers will definitely notice a failed feature, but if bug is mentioned only in comments, it will be harder to track this bug.

share|improve this answer

A small handbook as answer:

1.Allow feature, don't file bug

Don't do this! Even if the feature is allowed in production with bugs, the issues should be recorded (it might be never fixed but this is another story).

2.Allow feature, file bug

Use this when the issue is minor or has reasonable workaround and will not have a great impact. The bug is reported and will, hopefully, be fixed in the future. Example of bugs here: window moves 1 px to the right after 10 minimizes, comments are ignored in output file, minor UI bugs.

3.Don't allow feature, file bug

Don't allow the feature to get outside the dev environment when the bug that was found is critical/impacts a lot of people (as someone mentioned before, a menu item is missing and the new feature cannot be used, or data loss). However, opening a bug for such an issue could be tricky because the bug is usually visible for all people in the organization but makes sense just for a small group. It might create noise.

4. Don't allow feature, don't file bug

The same bug types as in 3 apply here. The only difference is that no bug is created but rather the dev group is informed about it. Eventually it might be logged somewhere else (on a white board)

share|improve this answer

A third option is to reject the new feature and file a bug. If you have a separate QA department that is the gatekeeper for quality they shouldn't ever accept broken code. IMO, "reject" should always be the first choice. Whether you subsequently file a bug or not is up to you.

This might be unpopular with development -- and even product managers) -- but that's a Good Thing. If something is painful, do it often. This will cause people to find a solution to the problem. That is, if every time they submit buggy code it comes back with a "reject", they'll get tired of that and work harder to find the defects in their own code.

share|improve this answer

I'm not familiar with Pivotal Tracker, so I'm not sure exactly what it can do.

Where I work we use FogBugz for bug tracking, and in a case like this we would mark the feature "Waiting for fixes", and open up separate cases for each of the bugs found. This solves both of your problems - it allows each bug to be tracked individually (and they really should be, in a complex feature), and it also lets you clearly know if the feature is ready to ship or not.

share|improve this answer
    
Pivotal Tracker doesn't have that. A "story" (bug or feature) can be unstarted/rejected, started, finished, delivered, and accepted. –  DormoTheNord Mar 27 '11 at 8:15

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.