8

From Wikipedia:

Quality Assurance refers to administrative and procedural activities implemented in a quality system so that requirements and goals for a product, service or activity will be fulfilled.[1] It is the systematic measurement, comparison with a standard, monitoring of processes and an associated feedback loop that confers error prevention.[2] This can be contrasted with quality control, which is focused on process output.

You can read the following thread to understand the difference between QA and testing (quality control): What is the difference between "testing" and "quality assurance"?

What I'd like to understand is whether there is a place for QA engineer who is not a tester in Agile/Scrum. Agile is deliberately short on processes and documentation (its even in the manifesto), and that's what QA specialize in. So should there even be a QA engineer in Agile?

I myself am not a QA engineer (I am a test lead), but I have a friend who is, so that's why I am asking.

6 Answers 6

5

I will try to answer keeping in mind the job of a QA engineer is defined as "Prevention of faults by inspecting & testing the process" in the linked question.

Agile/Scrum is not per definition short in processes. The team itself should set the process they need to deliver high quality deliverables in each iteration. Testing should be done during the cycle not after the Sprint is finished.

The "Scrum Master" is the one who facilitates this "continuous improvement" process during a Sprint retrospective. From my experience the retrospective leads to improving the (testing) process itself, depending on the need of the team.

The Scrum framework has set boundaries as what is minimal needed from the process, but you are free to add extra steps as they are needed. For example each team uses a different "Definition of Done" to describe their cycle needs.

Having someone in the team with a background in QA is a great plus, but remember a Agile/Scrum team wants each team member to be cross-functional. Thus if you want a pure QA job an Agile/Scrum team might not be the ideal location.

1
  • Nice answer! The teams I have been involved with haven't had a label, but in general the quality feedback comes from the discussions about the wider implications (such as dev or build practices) of defects identified during our weekly meetings.
    – Jeff_Lucas
    Commented Mar 23, 2014 at 17:40
2

I do not see a role for a QA engineer who is not a tester with Agile/Scrum teams. I do see such a role in an organisation that uses Agile/Scrum. Many companies and projects require adherence to various standards and procedures plus documentary evidence that those standards and procedures are followed. The QA engineer can be the focus for those standards and procedures, making sure that the organisation keeps up to date with the standards and procedures and any changes to them; making sure the teams follow them; making sure that training is provided as necessary; making sure that the required documentation is generated and is valid.

There may be an overlap between the Scrum Master role and the QA role. Perhaps that should be seen as the normal communication route between the team members and QA.

2
  • Even if the organization is not regulated by any government agency? Commented Mar 17, 2014 at 14:13
  • @user3251930 There are lots of standards that are not controlled or mandated by governments. The automotive industry defined Misra C; the ISO 9000-series is about business practice. Many countries have legislation about health and safety and more within the working environment, so I doubt that there are many organizations that are not regulated by any government agency.
    – AdrianHHH
    Commented Mar 17, 2014 at 14:30
2

Like always, depends on the project. Agile is a fluid concept: how it is implemented varies. That said, if a QA engineer can find enough improvements apart from testing to cover his salary, then yes, there should be a QA engineer. Quite probably this QA engineer would bring the team expertise it does not have.

1

In my opinion is a question of definitions in your company/project. I personally could hardly imagine a test lead who is definitely NOT a QA Engineer, or QA Engineer who claims he is not a "tester".

My example - a development lead is mostly a software engineer and software engineer is mostly a programmer (it is not about how much they pay you if the title on your door is "lead *" vs "programmer/tester", it's about what are you doing while working.).

In Scrum the role (except PO, SM) - is "worker", sometimes with tester, programmer or designer flavor. And Scrum is about not caring about what title is on your business card :-).

If the question is about - should we do much of QA Documentation & Process Rules in Scrum - probably not, not much anyway, but as always - it depends :-).

1

While it is impossible to give an answer that will apply to every organization and project, this is a great question that has spurred some excellent discussion. The given answers and references give clear and concise definitions of titles. But trying to fit those into an Agile process just isn't going to work perfectly. I propose momentarily forgetting titles and typical job duties, and instead working backwards.

For maximum impact in an Agile Environment, QA must perform two roles:

1. Test the Product

  • Good QA finds and files defects, tests and closes tickets, performs a wide variety of testing ( exploratory, regression, integration, etc.), and probably writes automated test scripts.
  • Great QA knows finding bugs is only half the battle, and works to ensure a great user experience (through usability testing, and deep analysis of whether the product is truly delivering what the users need).

2. Improve the Process

  • Good QA finds ways to improve their daily work - looking for bottlenecks and working to eliminate them.
  • Great QA continuously finds ways to improve the QA process for the entire team. Sometimes this means trying different tools, or in many cases, creating your own.
  • Exceptional QA has a continuous stream of brain power always running in the background, taking note of not just her own frustrations and blockers, but those of her teammates. She later reviews those moments, finds the pain points, and beings compiling possible solutions.
  • Exceptional QA works with every department to make quality a priority for each employee, and finds ways to improve every step of the software development process.

It's no easy task to be able to test the product and improve the process in a fast-paced Agile Development. It requires discipline and strong time management and prioritization skills. The people who perform best in this position must be able to not only properly prioritize their own work, but need to monitor non-stop incoming information and infinite variables to recognize when priorities have shifted, and when teammates priorities are out of sync.

No matter what title you give the position, there should definitely be a QA presence in Agile Development that goes beyond just testing.

  • Agile calls for lean processes - it's QA's job to find ways to eliminate unnecessary process and make it as efficient as possible.
  • Agile calls for less time wasted on documentation - it's QA's job to determine which documentation is going to save time in the long run, and then figure out how to automate as much of it as possible.
1

So should there even be a QA engineer in Agile?

Definitely.
Referring to the four quadrants of Agile testing:

enter image description here

(c) Lisa Crispin 2009

Thats a lot for developers to think about!
Developers will (hopefully) be passionate about testing, about Test Driven Development, Behavior Driven Development, etc. However this may only cover Q1 unit tests. Sharing the full picture can be very helpful.
QA engineers should be knowledgeable in all the testing quadrants and be able to perform automated and manual testing in them and to evangelize best practices for others. QA engineers should also be knowledgeable about best practices such as doing (simple) test plans ahead of development and not making QA a 'check-off' function. You can start b y calling it QE (Quality Engineering) instead of QA. More from Lisa and Janet at http://lisacrispin.com/2011/11/08/using-the-agile-testing-quadrants/ including links to their awesome book "Agile Testing".

I guess I haven't avoided the word testing ;) but hopefully there's some useful info all the same.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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