Building a strong quality focused organization: A bottom-up approach

Shivam Gohel
4 min readDec 7, 2022
Some image to look at.

A top-down strategy to change can be used to drive change in any organization. However, when it comes to implementing technology improvements, bottom-up approaches are frequently preferred.

The Bottom-up approach to Quality-focused Software Development Life Cycle

Start with unit-tests

Sometimes developers are so preoccupied with development work that they overlook unit testing. However, in this day and age, with software (requirements) changing so rapidly, it is vital to include unit tests in the feature or story acceptance criteria.

Unit tests must be written by developers, preferably by the person who created the feature in question. They should be written as soon as you finish development, in the same sprint, and appear in the same PR (raised for the feature).

Coverage of unit tests is another factor that should be considered. The QA Team can assist you in integrating static code analysis tools into your CI/CD pipeline.

Start with Native Automation Frameworks

Image Credit: https://medium.com/@owaisss10/test-driven-development-xctests-xcode-10-swift-4-eca3bf7041f2

It is tough to maintain several projects and code bases. As a result, when we talk about automation, developers and project managers are usually concerned with managing a separate framework or project on their own.

These can be avoided by employing native automation frameworks that share code with your development projects and make use of existing code.
This is known as white-box testing or gray-box testing.

Here are several advantages of native (automation) frameworks versus third-party frameworks (black-box testing):

  1. For Android — Android Espresso over Appium
  2. For iOS — XCTest over Appium
  3. For web — Selenium
  4. Language Specifics — PyTest for Python, TestNG/JUnit for Java, Jasmine for Javascript.

Involve everyone in testing — Work together

Scrum Meetings

Writing automation tests randomly without making sure that we cover all the edge cases is the waste of the effort.

When developers are assigned with the tasks of writing unit tests, UI Tests, Non-functional tests, it is the duty of project managers, engineering managers, product managers, UI/UX Designers to help developers with happy and sad path testing. Edge cases should be discussed before hand, in scrum grooming sessions, and team should get together to get test scenarios, and test cases noted in either test management tool or JIRA itself.

Track your progress

Credit: https://www.alfasoft.com/en/products/development-tools/testrail.html

Tracking the test cases is important, as it will give us the idea of e2e coverage, along with additional effort required from developers if any.

The testing criteria / strategy must be designed by the team, and should be iterated upon if the need to test more becomes necessary.

There are multiple ways to track progress in terms of automation coverage and e2e coverage:

  1. Test Management Tools — HP ALM, TestRail, Tricentis QTest
  2. Project Tracking Software — JIRA, Asana, Trello
  3. Traditional (Not recommended) — MS Office.

Integrate with CI/CD pipeline

At some point, you’ll want to connect your (native) automation framework into an existing CI pipeline or use your CI tool to build a new project/task/pipeline.

This has numerous advantages:

  • Developer effort has been reduced.
  • Increased visibility of test case coverage and project health (daily)
  • Regression following PR merging and assistance in integrating testing across several checkpoints
  • Integrating Native Automation Framework with Jira enhances visibility and tracking as well.

Start forming a QA Team

As project grows, so does the features. It really gets difficult for the developers to write new tests, maintain the framework and fix flaky test cases.

When things start to grow complicated and you realize that you have some budget allocation to engage a test resource, it is a good moment to invest in a QA resource, with the goal of laying the groundwork for a Quality Engineering Team at your organization.

The QA should collaborate with Developers, Project Managers, and Designers to write test cases, maintain frameworks, do any necessary R&D, and build organizational quality processes in any way possible

Keep spreading awareness about need of Quality

Talk Quality.

Quality is often the thing that is least talked about in the organization. Many companies still feel uncomfortable to allocate budget and time for engineering teams to build a high quality-focused and user-focused product.

Investing early in QA will yield results in a long run. These results come in form of less burnout for developers, better requirement management, leveraging automation over manual effort, a better user-experience for your application.

Quality is something that should be talked about often and whenever necessary.

Start small. Start slow. But start.

--

--

Shivam Gohel

I enable enterprises in launching high-quality products | M.S in Human Centered Design @ UMBC