Take the 2-minute tour ×
Software Quality Assurance & Testing Stack Exchange is a question and answer site for software quality control experts, automation engineers, and software testers. It's 100% free, no registration required.

There are a number of new developers and testers in our team. When the testers are testing the new features the developers built, they are finding a number of issues, which is not strictly in the scope of the feature. As a result the developers tend to deny responsibility and the bugs are going to the production bug tracking system. These bugs are worked by another set of developers and the fix rate is very slow. As a result, we are not really improving quality sprint by sprint, but just accumulating technical debt.

How is this situation normally tackled?

Edit: My question is not really how a tester will handle the situation so that it wont affect him/her. The question is more like how can we tackle the situation at the process level so that the quality of the software can be improved sprint by sprint.

share|improve this question
    
How are you accumulating technical debt - are the new features not being tested? If bugs are being found and fixed in the legacy code then isn't the quality improving? ( just slowly? ) –  Phil Kirkham Feb 19 at 21:31
    
Technically yes, as mentioned in Kate's answer, because when legacy bugs are found it is just exposing technical debt. However, because the rate of legacy bugs found is greater than the fix rate of legacy bugs, on paper we are increasing our bug count every day. This is not going well with the management. –  Jimmy Feb 19 at 23:10

4 Answers 4

up vote 6 down vote accepted

The first thing you want to do here is perform some bug triage. Problems your team finds during feature testing will be one of:

  • something introduced by the changes
  • something that was there before and doesn't have much if any impact on the changes
  • something that was there before and has a major negative impact on the changes

The developers in the team need to fix the items that were there beforehand and negatively impact their work, as well as the problems they accidentally introduce.

That's the easy part.

Now for the more difficult side - realistically, most of the pre-existing bugs your test team finds won't have a major impact on the feature, and it really isn't the feature developers' role to fix them. In this case, they absolutely need to go into the main issue tracking system with whatever bug advocacy you're able to provide.

Some strategies you might try:

  • Note any major customers who could be impacted. In my experience, existing bugs surfaced by new development are usually the kind of thing that isn't terribly severe - but if something that had little or no impact before the feature is likely to upset your biggest customer and you know that customer is planning to use the new feature, you can legitimately increase the priority of the issue - just make sure to note that this customer will be affected. Even if the issue is not fixed, the fact that it's in the issue tracking system will boost your team's credibility when the customer demands to know why this wasn't found in testing.
  • Evaluate priority and severity fairly. By this I mean don't just rank it highly because your team wants it fixed. This will harm your team's credibility.
  • Look for possible reasons why the issue hasn't been caught until now. If it has a workaround, there's a strong possibility your customers know about it and just haven't said anything. In my experience you might get 1 in 10 customers complaining about a problem (if you're lucky - it's more like 1 in 100 or more for a lot of places). Unhappy customers often don't say anything, they just look elsewhere.

Your goal is to give the team that prioritizes bug fixes reasons to fix your bugs (and if everyone is doing this, all the bugs will have sound reasons for why they should be fixed and the priority level they have).

Ultimately, you're not actually increasing technical debt, you're exposing it. This is better than not exposing it.

share|improve this answer

Generally, it us a tester's job to report any defect and enhancement that is believed to improve customer's aim with the product. Sometimes, the tester finds missing links in the analysis of the requirement ir proposes to enhance a feature. In this case, I think that the development team should not take these issues before gettibg approval from the project manager, who is the one that will decide if the issues should be considered at this stage or pushed for later. Thus, the best way is to work only on approvals

share|improve this answer
    
This doesn't really answer the question of how a tester should deal with pre-existing issues found while testing a new feature. All you've done is describe how you think the developers should handle them. –  Kate Paulk Feb 19 at 18:26
    
True, because as I understood, the question is on issues found by testers that the developers term as "not in scope".From a tester's side, it is his job to flag the issue to the project manager, and if the tester has been given the privelege to be in direct contact each time there is an issue, and if time permit, he will log the issue either in the current worklog, noting that it was approved by the project manager and placing the business reasons, why it was put. If time does not permit and direct contact with project manager is not feasible, then the issue should be logged with the expected –  user5529 Feb 19 at 18:37

Expected result stating the business reason of the change or enhancement. In my perspective, it all depends on the release state of the project, the severity of the issue versus the impact it would have on the current project. Issues with high impact and high severity must be closely addressed at a release deadline.

share|improve this answer
    
this wont help the quality of the software, please see my edit –  Jimmy Feb 19 at 18:55

If the test team is finding that many then it is possible their focus is not entirely on the new functionality. A common strategy is to focus the test team on the new functionality and look at reporting only issues which arise from interactions between old functionality and new functionality, or issues which will impact the new functionality you are delivering.

If you are unwilling to take that responsibility yourself then negotiate it with the next level of management. With something like ie; "The testers are finding a lot of medium level issues which have nothing to do with our current delivery schedule. To meet the schedule I plan to focus our testers on our current priorities and in the short term this may mean some lower priority issues related to [legacy] will go unreported."

The fact is that logging and reporting low and medium priority issues accurately and then assessing them has a cost. Since you cannot (in many senses) charge that cost to another project you really have to focus in on what is important to your delivery.

You may find the next level is unwilling to commit to any decision or accept any responsibility or has a very limited understanding of the reality of the situation. If that is the case you will have to make the call independently.

share|improve this answer

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.