RSS Amplifier

🧰 A Tester's Toolkit · May 29, 2024

The Benefits of Understanding the QA Measures in Your Project

0
Sign in to vote or save

This page did not load. You can still read it on the original site — the toolbar below keeps your place in the directory.

How your project as a whole assures the quality of the software is valuable information for improving your testing.

Software is built step by step. Each project and organisation has its own process for building it. Has its own departments and roles involved. In the whole process, testing is only one activity and software testers are only one role that can affect the quality of the software.

This post looks at how to understand the QA-related measures in the development process and how you can benefit from this understanding.

a waterfall in the middle of a lush green forest
Photo by YUNAN WANG on Unsplash

How to Get an Overview

Where do you start to get a better understanding of all the QA measures that your project and organisation have in place? By talking to lots of different people with different responsibilities and asking them questions.

What helps me to find these people and think about these questions is to take different perspectives.

I think the best way to explain this is to give you some examples.

Release

You can get an overview from the perspective of the release process. What are the phases of a release and what measures to assure quality are taken at each phase?

Here is an example from a project I have worked on:

  • First Contact

    • First introduction to the topics through workshops and research

    • First rough estimates to help the business prioritise the next release

  • Preparation or Start of the Release

    • Getting a better understanding of the topics

    • Consideration of internal (developers, testing, customer support, sales) and external (users, administrators, operations) perspectives

    • Think about, document and review use cases and requirements

    • Answering open questions and further research

    • Split the topics into smaller tasks

      • Estimate these tasks

      • Ensure they can be completed within a sprint

      • Ensure they deliver business value and are therefore testable

  • Development

    • Frequently questioning:

      • Can we complete all the tasks required for a valuable feature?

      • Do we keep delaying important bug fixes or features?

      • Does the priority of the tasks reflect the newly gained knowledge?

      • Do the estimates of the tasks reflect the newly gained knowledge?

      • Is what we are building still valuable?

    • Security testing

    • Load and performance testing

  • Finalising

    • Regression testing of features that were not tested but could be affected by the changes

    • Catch up on testing that has not yet been done or considered

    • Review release notes

    • Review customer-facing documentation

    • Discuss the value of quality-related tasks compared to the value of adding more features

Task

Once you have a better understanding of the release process, you can go one layer deeper and get an understanding of individual tasks such as features, improvements or bug fixes.

  • Open

    • The description of the issues follows the following criteria:

      • Bug: It is clear how to reproduce it, what the impact is and whether there is a workaround

      • Improvement / Feature: It is clear what the value is and who benefits from it

  • In Development

    • The issue is estimated

    • Use cases and requirements are defined

      • Use cases and requirements are clarified with the product owner as necessary

    • The implemented solution is documented within the issue or merge request

    • The testability of the feature is considered

    • Static code analysis

    • Automated unit, integration and end-to-end tests

    • Code reviews

    • Release notes

  • In Testing

    • Use a variety of tools appropriate to the context of the task (feature maps, test ideas cheat sheets, personas)

    • Documenting and automating the test setup where appropriate

    • Lightweight test documentation

    • Findings are documented, discussed and follow-up actions defined

  • Closed

Roles

The previous two examples focus on the process. A different perspective and understanding can be gained by focusing on the roles.

  • Product Managers / Product Owners

    • Documents and reviews business rules, acceptance criteria

    • Contacts the architect to draft an initial technical solution

    • Presents features to developers and testers during the backlog refinement

    • Defines the scope of the release

  • User Experience Designers

    • Creates and reviews screen designs

    • Presents screen designs to the product managers, product owners, developers and testers during the backlog refinement

    • Reviews implemented screens

  • Developers

    • Do code reviews

    • Writes automated unit and integration tests

    • Runs performance and load tests

    • Presents the implemented features during the sprint review

    • Discusses the contract between the backend and the frontend

  • Testers

    • Do regression testing

    • Writes automated end-to-end tests

    • Tests the implemented features

    • Extends the regression test set

  • Operations

    • Observes the system with monitoring and metrics

    • Be notified by alerts

  • Customer Support

    • Presents customer feedback during the sprint review

How to Benefit

OK, now you know how to get a better understanding of the responsibilities of each person, the steps of the processes and how all of this should contribute to a qualitative better software. But how can you, as a software tester, benefit from this information?

Focus on the Risks

Time, money and people are limited. This means that you can rarely test all the aspects you would like to. So you need to prioritise your testing activities.

You can look for risks that are not covered by what other people have already done, and focus your testing on those risks.

Use the History

A lot happens between the initial idea and the implemented feature. There are a lot of discussions, big and small decisions, and assumptions. What you test is the result of all that.

Understanding the processes and roles provides opportunities to learn more about the history of the feature under test.

In my experience, understanding the considerations and decisions that were made, the alternative solutions dismissed, the unknowns that were discovered and the reasoning behind it all is valuable information. It helps me to prioritise my work, question the features, understand the business better, think about personas and brainstorm test ideas.

Discover Gaps

If you know about the history, you know whether all the phases and steps of a process have been done and whether all the roles have taken the actions for which they are responsible. And if you discover that something has not been done, it is an opportunity to question it. Did someone forget? Was it a deliberate decision, and if so, why? Does it create new risks?

Again, this information will help you to know what to test for and how to prioritise.

Early Preparation and Feedback

Understanding the process will help you to identify opportunities for early feedback. Identify steps or phases where you are not yet involved and where you see a benefit in giving early feedback.

Also, the earlier you learn about something, the earlier you can start preparing for testing. This will allow you to test earlier when the feature is implemented.

Sharing Is Caring

You can document your understanding of the processes and roles with others. I think this is valuable information that people in all roles can benefit from. And it is particularly helpful for people who have just joined the project or organisation.

Drawbacks

Having this understanding of how quality is assured across the process and roles can also have its drawbacks, which I also want to make clear.

Expectations and Reality

When you are new to a project or organisation, most of your information comes from what others have told you and written in documents. But this information needs to stand the test of time.

You know those job descriptions that list all the great opportunities and benefits a company has to offer? The only way to really know if it is true is to join the company and experience it for yourself. Maybe it is all true and you have found a wonderful place to work for. Maybe some of it is not true. And maybe it is not true at all.

Use your critical thinking and try to validate what you have been told and what you have read. Even if you have been working on a project for months or years and have gained some experience. Otherwise, the reality might hit you - hard.

Cognitive Biases

The more you are involved in the whole development process and contribute to the solution, the more biased you become.

Try to learn about cognitive biases and you may be able to identify them.


Do you want to learn more about tools to gather information? Subscribe for free to receive new posts.


I hope this inspires you to create your own version of this tool to suit your context.

Have fun,
Florian


11 June 2024: I have added a chapter on the possible drawbacks of the approach described in this post.

Read on atesterstoolkit.substack.com

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.