Quality assurance is all about making sure a product is fit for purpose.
This means more than just testing: quality assurance is the implementation of processes, methodologies, and standards to ensure a piece of software meets a client’s exacting requirements in terms of functionality, design, reliability, durability, and price.
Collaboration is the key.
At Oradian we follow two main rules of quality assurance, inspired by legendary quality assurance Guru W. Edwards Deming:
- quality is everyone’s responsibility
- quality doesn’t happen by accident.
Achieving the highest standards requires the collaboration and input of experts and stakeholders from throughout the organisation. It involves the so-called “three amigos” approach to quality assurance, bringing together three main groups:
- the product team
- developers
- quality assurance analysts and engineers.
The product team are the project owners. They must write precise requirements, setting out in technical detail what they want the product to achieve, and the acceptance criteria it must meet by the end of the quality assurance phase. These criteria must, importantly, reflect the needs of the business, and include the requirements of all relevant stakeholders.
Developers and the quality assurance team look at these requirements and give feedback. The developers will then develop the code, and all three teams will then play their part in the final stages of quality assurance testing.
A thorough approach to quality assurance will involve holding daily stand-up meetings between these three teams to discuss the progress of the project and align expectations. At no point should any of these teams work in the dark.
Keeping the devs on their toes.
Even the very best developers can make mistakes, so an important part of the quality assurance process involves adding those extra steps of scrutiny to ensure no errors slip through the net.
For instance, when a developer wants to merge code, one of their colleagues must review it to ensure it’s written properly.
But to ensure the highest level of accuracy and effectiveness, developers conduct a series of different tests. These are typically performed locally in a purpose-built environment.
Software testing takes many forms:
- Smoke testing – preliminary testing of the most important functions of a software to make sure nothing is “burning”, i.e., whether the code is badly broken enough to stop the software working
- End-to-end testing – testing an entire software product from beginning to end
- Regression testing – re-running tests to ensure that previously developed and tested software still performs after a change
- Unit test – individual units of source code are tested to determine whether they are fit for use
- Integration test – individual software modules are combined and tested as a group
- System test – testing conducted on all the integrated components that have passed integration testing.
Such a rigorous testing schedule can be time-consuming for developers trying to release a new product quickly, so they will often employ time-saving testing methodologies.
One of these strategies is the agile testing methodology, designed to give developers the time to develop and release a product quickly, without compromising its effectiveness and security. It requires discipline and collaboration, as the developers performing the tests must maintain the same high standards as more thorough, long-term testing.
To ensure a product is meeting these high standards, developers will use a method known as “definition of done”. This is usually a checklist of end goals that the developers must tick off before a product is considered ‘done’, or ready for release.
Continual improvement.
Quality assurance never truly stops, because the lifecycle of a product necessarily involves a process of continual improvement and adaptation, not just to meet a client’s changing needs, but also so it continues to work no matter how the code evolves.
This ‘three amigos’ approach involving constant daily collaboration between different stakeholders is how Oradian makes this work. It means the success of our product belongs to everyone, no matter their place in the organisation.
That’s why we’re certain our core banking system continues to meet the high standards of quality for which we aim.
It’s something our success as a business, and the success of our clients depends on. After all, quality is the one thing that’s truly non-negotiable for any organisation.