Index / Software Testing and Quality Assurance

Software Testing and Quality Assurance

Abstraction Creative
Index

“It works” is incomplete unless we understand what the system is expected to do and under which conditions.

Software Testing examines how software and its supporting work products meet the needs and expectations they are meant to serve. Quality Assurance also considers the processes through which that work is defined, developed, reviewed and improved.

They are closely connected, but they are not interchangeable. Testing can reveal that an order is missing information. Quality assurance can lead us to question how that information was specified, how the handoff was reviewed and what would help the team avoid repeating the problem. This product-and-process distinction is reflected in the ISTQB Foundation Level syllabus.

At Abstraction Creative, quality begins with the people who will rely on the result. A broken interaction may cost someone time, leave a staff member to reconstruct a record or make a customer uncertain whether they should try again. Understanding those consequences helps us decide what deserves attention.

Agree on what should happen

“It works” is incomplete unless we understand what the system is expected to do and under which conditions.

When a customer submits an order, which records should exist? When an employee changes a permission, who should gain or lose access? When a form cannot complete its request, what should the person see and what should the business know?

Those questions can expose ambiguity before code is written. They can also help when we inherit software whose behavior has evolved through years of changes and informal workarounds.

We examine the available requirements, designs, business rules, integrations and operating knowledge. Where expectations are missing or conflict, we help clarify them with the people responsible. A new preference should not be recorded as a defect in an agreement that never existed. Equally, an omitted requirement may reveal a serious gap that deserves attention regardless of who first noticed it.

Clear expectations give the team a basis for investigating differences and agreeing on an appropriate response.

Choose coverage around consequences

There are more combinations of users, information, devices, permissions and system states than a typical project can examine exhaustively. A responsible plan makes its choices visible.

We consider the tasks people depend on, the impact of a failure, what has changed, the systems involved and the evidence already available. A rarely used account-recovery path may deserve careful examination because it matters so much when someone needs it. A shared component may deserve attention because a small change reaches many parts of the experience.

The plan should name what is included, the conditions being covered and the limits that remain. Representative browsers, devices, input variations and account types can all matter, but their relevance depends on the product and its audience.

We also ask what the team can actually observe. If nobody can confirm what happened after information left the website, a successful-looking screen may give false reassurance. Systems Integration makes those handoffs part of the experience we need to understand.

Examine the parts and the relationships

Different checks reveal different kinds of problems.

Unit or component tests examine focused pieces of behavior. Integration tests examine whether components work together. Microsoft's testing overview explains this distinction in a software context. Broader journey testing then follows selected paths through the assembled experience.

For an order, that could mean examining a calculation, checking how the store sends order information and following the customer's purchase through the expected staff workflow. None of those views makes the others unnecessary.

We consider ordinary use and relevant exceptions: missing fields, invalid values, repeated actions, expired sessions, unavailable dependencies and insufficient permissions. What should happen when the expected path cannot continue? Can someone understand the state they are in and recover appropriately?

Reviewing requirements, implementation and supporting instructions also contributes. Some problems are misunderstandings that can be found by examining the work together; they do not need to wait until a browser reproduces them.

The mix of review, manual investigation and automated checks should serve the questions we need to answer. It is not a competition to perform every check through the same tool.

The confirmation is only the beginning

When testing an order journey, we follow the customer's confirmation into the work it should set in motion. With the store and fulfillment teams, we establish what must be recorded and acknowledged before the business can treat the order as ready to prepare.

From the customer's perspective, the transaction appears complete. From the warehouse team's perspective, there may be nothing to prepare. Support may learn about the problem only when the customer asks where the order is.

A test focused entirely on whether the confirmation page appears could miss the broken relationship. We would first establish what the agreed behavior should be: where the order is recorded, how its handoff is acknowledged, what status is shown and how staff learn that something needs attention.

The test could then follow representative order information across the relevant boundaries. Does the fulfillment record contain the expected products, quantities and delivery details? If transmission fails, is the order retained somewhere recoverable? Is an unresolved handoff distinguishable from an accepted one?

We would also consider what happens when a request is repeated after an uncertain response. Could recovery create duplicate fulfillment instructions? Which identifiers allow the team to reconcile the records? Those questions help shape the testing; they do not prescribe a particular integration design in advance.

The customer-facing language matters, too. It should describe the actual state clearly enough that the person is not encouraged to pay again or left waiting for a promise the business cannot yet support.

A finding would connect what was observed to the agreed expectation and the people affected. Correcting it could involve implementation, reporting, content or the operating procedure. The relevant checks would then be repeated, with nearby behavior examined according to the change.

The test follows the promise through the system. A confirmation screen is one part of that examination, not its endpoint.

Prepare an environment that is safe to learn in

Testing should not casually create real orders, contact customers or alter operational records.

Abstraction works with development, testing and production environments so changes can be examined before release. We still need to understand what each environment is connected to. A separate website address does not automatically isolate its email service, payment integration or external database.

We agree on appropriate test accounts and data, restrict access and use authorized test arrangements for connected services. Representative data can reveal important conditions without unnecessarily copying sensitive customer information. Screenshots, logs and recordings also need appropriate handling.

For existing systems, missing safeguards may become the first scoped work. Recoverable backups, including databases, and a usable test environment help create a responsible starting point. The recovery plan should account for the system's actual dependencies and the business activity that continues while changes are prepared.

Test conditions should be recorded. A finding from a particular configuration is evidence about that configuration, not proof that every production condition has been reproduced.

Make findings actionable, then verify the correction

A useful issue record explains what was being attempted, the reviewed version and conditions, the expected result, the observed result and a way to reproduce the difference. Relevant evidence helps another person investigate without guessing what the original reviewer meant.

We distinguish impact from urgency. A problem that exposes inappropriate access may need attention even if few people encounter it. A visible cosmetic issue may be less consequential but important to the agreed experience. The explanation should support prioritization rather than assign every item the same level of alarm.

The record also needs an owner and a status people can trust. “Fixed” may mean a developer has made a change; verification establishes what was checked afterward. Rechecking the original problem and examining possible effects elsewhere answer related but different questions.

When a finding cannot be reproduced, it should not simply disappear. We can record the evidence available, identify missing conditions and agree what further investigation is warranted.

Keep different forms of evaluation connected

Design Quality Assurance examines how the implementation carries the agreed design intent. Usability Testing gathers evidence from people attempting relevant tasks. Software testing does not replace either perspective.

Accessibility, performance and security also need appropriate methods and scope. A functional check may expose a concern without constituting a comprehensive assessment. Digital Accessibility provides a deeper connection, and specialist collaborators can contribute where the work calls for expertise beyond the agreed review.

User Acceptance Testing can help the client or designated participants examine agreed business requirements. We can plan and facilitate it; final acceptance belongs to the client. Their approval does not remove the need to make serious unresolved risks visible or seek appropriate specialist advice.

Test Automation provides repeatable checks that can support this wider work. It deserves its own treatment because selecting, implementing and maintaining those checks is a capability—not merely pressing a button before launch.

Quality belongs throughout the work

Abstraction's process remains a continuing cycle:

Discover → Define → Explore → Design / Develop / Market → Learn → Advance → Discover

We can discover a risk while examining an existing system, clarify expected behavior while defining the work and test uncertain capabilities during exploration. Testing accompanies implementation. Release findings and real operating experience then inform what needs attention next.

Quality assurance asks how that learning should change the way we work. A repeated misunderstanding may call for clearer examples in a requirement. A recurring release problem may call for a different review or environment arrangement. Product Intelligence helps retain those lessons so the next team does not start without them.

A release recommendation should explain what was examined, what passed, what remains unresolved and what was not covered. Testing provides evidence for a decision; it cannot prove that no defects remain. The ISTQB syllabus makes that limit explicit.

Build confidence you can explain

We can help define and carry out quality work within a development engagement or examine a focused concern in an existing website or application. The scope should make clear who investigates, who implements corrections, who verifies them and who decides on release.

The records should remain useful afterward: findings, coverage, known limitations and relevant operating guidance. Continued testing and maintenance can support later changes when included in the agreed relationship; they are not automatically unlimited obligations.

If something appears to work but you are unsure what happens beyond the screen—or your team needs a clearer basis for trusting the next change—we can help trace the questions and turn them into a practical plan.

Contact Us

Start a conversation.

Tell us what you’re working toward and where you could use help. We’ll reply by email.

Tell us a little about yourself or your organization, what you’re trying to accomplish and what’s getting in the way.