OBLYTECH Logo
OBLYTECH Logo

Quality Assurance

Practical Guidance on Software Quality Assurance

Quality Assurance: The Unsung Hero of Software Success (And How to Get It Right)

In the world of software development, the spotlight often shines on the brilliant minds behind innovative code and sleek user interfaces. However, there’s a crucial player working behind the scenes to ensure that the final product not only meets but exceeds expectations: Quality Assurance (QA).

black-man-trader-coach-and-screen-with-stock-mark-2023-11-27-05-19-35-utc

What is Quality Assurance?

QA isn’t just about finding bugs. It’s a comprehensive process that encompasses the entire software development lifecycle. It involves meticulously planning, designing, and executing tests to ensure that the software functions as intended, meets user requirements, and delivers a smooth experience.

Why QA is the Unsung Hero

How to Get QA Right

Start Early and Test Often

Integrate QA into the development process from the very beginning. Frequent testing helps identify and address issues before they become major problems.

Define Clear Requirements

Ensure that all stakeholders have a clear understanding of the software’s functionality, performance expectations, and user requirements.

Develop a Comprehensive Test Plan

Outline the types of tests to be conducted, the testing schedule, and the roles and responsibilities of the QA team.

Utilize Automated Testing

Automate repetitive and time-consuming tests to improve efficiency and coverage.

Perform Manual Testing

Conduct thorough manual testing to uncover usability issues, edge cases, and other defects that automated tests might miss.

Continuously Monitor & Improve

Gather feedback from users and stakeholders and use it to refine your QA processes and improve future releases.

Oblytech: Your QA Partner for Software Success

At Oblytech, we understand the critical role QA plays in the success of your software projects. Our QA team is dedicated to delivering high-quality software that meets your expectations. We offer a wide range of QA services, including test planning, test automation, manual testing, and performance testing.

Release quality and the evidence each decision needs

Quality assurance is often described as a list of testing activities, but the more useful starting point is the decision that quality is meant to support. A product owner needs to know whether a release can go to customers on a given date. An engineering manager needs to know which defects are blocking and which can be fixed later. A compliance lead needs evidence that a regulated process behaves as described. Each of those decisions needs a different kind of evidence, and the test plan should be built backwards from them. A team that starts by counting test cases tends to produce a large set of checks that do not answer any of those questions.

Decision the business facesEvidence that answers itWhere teams go wrong
Can this build go to users on the planned date?A short list of open defects grouped by severity, with the agreed exit criteria checkedCounting passed tests without knowing what they cover
Is a fix safe to release on its own?Regression checks on the areas the fix touches, plus a review of nearby behaviorRunning the full suite for every small change, or none at all
Will the system hold up under expected load?Performance results against an agreed load profile and response expectationLoad tests run on a machine unlike production
Does a regulated process work as documented?Traceable test cases linked to requirements, with recorded resultsTest notes that cannot be matched to any requirement

The point of the table is that each row names the evidence first. Test types follow from that evidence, not the other way round.

Setting exit criteria before the testing starts

Exit criteria are the conditions a build must meet before it is released. They are the most useful single artifact in a quality program, because they turn a debate about readiness into a check against an agreed list. Good criteria are specific: no open defects of the highest severity, all critical user journeys passing on the supported browsers, no unresolved security findings above an agreed level, and sign-off by a named business representative. Criteria written after the test results are known tend to bend to fit the outcome, so they should be agreed at the start of the cycle and recorded where the whole team can see them.

  • Severity definitions, written in terms of user impact, so that two testers classify the same defect the same way.
  • Critical journeys, chosen by the business, with the data and roles needed to run them.
  • Environment rules, stating which environment counts as representative and what differences are accepted.
  • Sign-off, naming the person who accepts residual risk and recording the decision.

How the balance between manual and automated testing is set

Automated tests are reliable at repeating checks that are stable and well understood. They catch regressions quickly and make it cheap to test often. They are weaker at judging whether a screen is confusing, whether an error message helps the user recover, or whether a rare combination of data produces a result that looks plausible but is wrong. Manual exploratory testing covers that ground, but it is slower and depends on the skill of the tester. A sensible plan puts stable, high-value checks into automation and reserves human attention for new features, changed workflows and risk areas. The split should be reviewed each cycle, because a feature that was once exploratory becomes a candidate for automation once its behavior settles.

Automation has its own maintenance cost. Scripts that break when a button is renamed create noise that the team learns to ignore, and that habit is dangerous. Each automated check should have an owner, a clear reason to exist and a rule for what happens when it fails.

Where quality work breaks down in practice

Three problems often recur. The first is late involvement: testers see the software only once the build is nearly finished, so they can report defects but cannot shape the requirements that caused them. Bringing testers into requirement reviews is usually inexpensive and can remove a class of rework. The second is shared responsibility without ownership, where developers assume the testers will find problems and testers assume the developers have checked their own work. The third is a defect process that records problems without deciding anything, so the backlog grows and nobody can say which items block release. A short triage meeting with a named decision-maker can help keep all three from compounding.

Sector regulation and data-protection obligations can add test evidence requirements, such as proof that personal data is masked in test environments. Those needs should be recorded in the exit criteria rather than discovered at audit.

Test data deserves more attention than it usually receives. A test environment that holds too little data misses defects that appear only with realistic volumes and odd records. An environment that holds a full copy of production data may breach data-protection obligations and expose personal information to people who do not need it. Most teams need a middle path: synthetic records that reproduce the shapes and edge cases of real data, with sensitive fields masked. Deciding that path at the start of a program avoids a last-minute scramble when a release is due.

Defect trends are a second source of evidence that teams underuse. A single defect count says little, but a count of defects that escaped to users, grouped by the part of the process that should have caught them, shows where the test plan is weak. Reviewing that grouping after each release lets the next cycle add checks where they are needed rather than repeating the same plan.

Questions to put to a quality assurance provider

How do you decide what not to test?

A good provider can explain the risk-based reasoning behind each exclusion and name the person who accepted it. Testing everything equally is neither possible nor useful.

Will you tell us when quality is not good enough to release?

The honest answer should describe the exit criteria and the process for raising a blocking finding. A provider that only reports pass rates is not giving a release recommendation.

Do testers need to read the code?

They need enough understanding of the design to target risky areas, but they do not need to own the code. The useful skill is knowing where the system is likely to fail and how a user would notice.

Can QA be added late in a project?

It can, but the first step is then a review of the current build and the requirements it claims to meet. Late QA finds defects. Early QA prevents some of them from being built.

Next step for a release quality decision

Before any testing is planned, it helps to write down the release calendar, the critical user journeys and the decision that quality evidence must support.

The testing services are described on the quality assurance and testing page. Pipelines that automate build, test and deployment are described on the DevOps and automation page. Custom builds are described on the custom software development page. For ServiceNow platforms, the automated testing and release assurance page describes how to choose which ServiceNow workflows to protect with repeatable tests.

Software quality assurance and where testing fits

Software quality assurance is the set of practices that make defects less likely and more visible: reviewing requirements, designing tests, controlling environments and test data, triaging defects and giving the release decision-maker honest evidence. Testing runs the checks. Quality assurance decides which checks matter and what the results mean.

The difference matters when comparing providers. One that offers only test execution reports what it found. One that offers quality assurance should also change how requirements are written, how builds are handed over and how a release is judged.

An engagement typically covers:

  • Requirement review, so untestable statements are caught before anyone builds them.
  • Test strategy and plan, stating what will be tested, what will not, and why.
  • Environments and test data, including how personal data stays out of test systems.
  • Execution and defect handling, with severity defined by user impact and a named person who triages.
  • Release evidence: a short summary of open risks so the business can decide whether to ship.

Ask what you will receive. Useful deliverables are a written test strategy, traceability from requirements to results, defect reports a developer can reproduce, and a release summary that states residual risk plainly. A provider that cannot name its deliverables has usually not thought about the decision they feed.

Settings differ. A platform release needs testing and acceptance checks around an upgrade, live systems often pair quality work with application management, and machine learning outputs need the separate review in AI evaluation and quality assurance. The wider IT consulting area shows where quality sits beside planning and cloud work.

What is the difference between quality assurance and quality control?

Quality assurance shapes the process so fewer defects occur. Quality control inspects the product to find those that did. A team needs both, and the first is cheaper than repeating the second on every release.

What does a software test plan contain?

Scope, risks being tested for, test types, environments and data, entry and exit criteria, roles, schedule and defect handling. It should also state what is out of scope so nobody assumes coverage that does not exist.

Ready to elevate your software quality and user experience? Contact Oblytech today to learn more about our comprehensive QA solutions.

ServiceNow guides on this topic

Guides from the Oblytech ServiceNow library that explain the practice behind this page.

More in this section