Release the power of Business Driven QA in eCommerce
QA is the latest buzzword in IT.
It is safe to say that business is no longer surprised by the involvement of QA engineers in software development processes.
Questions as:
“Do you engage testers in your projects because you doubt your developers’ skills ?
Is that why you require testers to verify the quality of their work?”
or statements saying:
“The expenses on costly QA could be avoided but developers are keep making mistakes”
now tend to be a thing of the past.
People of the industry are becoming more aware of how complex and extensive software engineering is. Not only managers (who work closely with developers) but also senior management started to realize that investing in quality assurance is not a way to hide poor competencies of their teams but an effective way to reduce costs connected with the technical support of business processes.
IT has simply proven QA pays off and initiated the change!
So if it pays off — let’s invest!
But is QA really properly defined?
Unit Tests, Integration Tests, Regression Tests, Acceptance Tests — all those types of tests, both manual and automated. Almost every day we hear about the newest TDD, BDD, BDT methodologies, new frameworks as Behat, Mocha, Gherkin, Cucumber or tools like Selenium, Sashi, PhantomJS…
All those names might be confusing for those involved primarily in the business side of IT. But choosing all or even only some of those technologies might have a tremendous importance for a successful implementation of Behaviour Driven Development (BDD) process. This method or Continues Integration environment building are indisputable solutions to improve the quality.
However, business world representatives find it difficult to evaluate and decide what makes sense for the sake of their organizations. Those engineers… most probably every person representing the business has had an impression that software designers and developers, often in search of perfection and fulfillment of their professional ambitions, are drowning in code and technologies of little significance for the business.. or even if they are significant, the business does not understand their importance.
Non-functional testing is often more understandable for the business.
It is worth to learn how responsive, stable, scalable, reliable and fast our software and infrastructure is and what is its resource usage. Performance Testing can bring you savings on your server. Why waste your money if you can conduct optimizations indicated by Performance Testing and reduce server resources usage? On top of that, it’s not a secret that faster web pages convert much better.
We are not surprised by the fact that a fast-working software guarantees a higher conversion rate. Investing in marketing campaigns without making sure our infrastructure will sustain and service the traffic, is simply pouring your money down the drain. This is why all merchants having a huge fluctuation of traffic should be well aware of a Load Testing tool.
The business is especially aware of Security Tests importance. It is not difficult to imagine the fatal consequences of potential hacks or cyber-competition.
Usability Testing is another tool widely appreciated by the industry. “Don’t make me think” — a key principle for software development meeting the business requirements.
So what is the secret of the title’s Business Driven QA?
It lies in the definition of quality.
A software engineer or a tester will define it most probably as an assurance that all functionalities are working according to the specification and the application is fast, dependable, stable and so on. Said engineer will gather all tools mentioned earlier in this text and make sure he builds an environment allowing him to test in an inexpensive and fast manner…
It sounds really good but where is the place of business in this whole concept?
How does the business benefit from quality?
Well, it depends on what kind of business you develop and what outcome are you planning to achieve.
If you are building an e-commerce platform the most probable answer would be:
a high-quality software is a software that sells a lot.
If you are building a warehouse optimization solution, you would probably hear:
a high-quality software is a software that saves your time and money.
This is why it is crucial to ask ourselves this question at every stage of the project. We need to make sure all those smart tools, methodologies, frameworks and libraries we use are not only helping us to test the designed functionalities but, more importantly, are fulfilling the business needs.The easiest way is to show that on example.
The differences between the standard QA approach and the Business-Driven one
An IT department is redeveloping a webshop’s checkout.
The sprint ends with a spectacular success and the new checkout is deployed to production. Hundreds of unit tests and/or functional selenium tests wrapped in the testing framework are run by CI system on all possible devices and browsers. Our system works, new orders are streaming in, the pressure is off so the Release Manager is finally able to relax and enjoy a cup of cappuccino, with a sense of a job well done.
A success?
But what if the new checkout has a lower conversion rate?
Someone might say — but wait!
“It was the UX Designer who introduced those changes so AB tests should have been done! There should be a person responsible for monitoring that, we have done our part!”
And there’s the rub!
An effective QA team should be able to say more than “it works just fine and according to the specification”. It should give us the answer if, in this particular case, the shop sells more.
How to achieve that?
By merging tester’s and business analyst’s skills to create a Comprehensive QA Engineer. By engaging this person on every stage of a development process and burying the myth that effective IT or QA teams do not have to understand the business. An effective QA should feel responsible for monitoring indicators important to the business, and not just to the IT.
An effective QA team knows it should alarm the developers when a new security patch is required not only when testing the existing one but also as a result of regular condition monitoring assessments.
An effective QA is not only testing if the deployment helped to speed up the website. It monitors application’s speed, detects downgrades and is able to connect them with recent changes in the code to indicate the source of the problem.
It is no secret that the most efficient QA teams are those working closely with development teams. It is even better when a company has a UX and DevOps team and offers hosting services.
This is a common setup in product development companies but it is not as popular among those offering IT services.
When you want to outsource the services make sure your new team is complimentary. If you found the right company and you cooperate with an IT firm offering a team with all those competencies and this team is supported by a business-oriented IT — you can count on their proactive approach.
The QA branch should not only support you with business analyses and participate in defying requirements but with its business-driven approach, it should also monitor your application performance in the long-term period.
Business Driven QA work example
Let’s imagine a QA team involved in an e-commerce project and responsible for monitoring indicators that define a high quality.
On a daily or weekly basis, it checks:
- website conversion rate
- average order value
- page load time
- bounce rate
- safety plugins and software version
- Cron jobs time processing
All those information are captured and reflected in the diagram, along with the software versions deployed to the server. The diagram below shows a correlation between a page loading time and a conversion rate:
The black vertical lines show the moment of a new software version deployment.
It does not require an IT expert to notice that the deployment made on July 19th, a successful implementation of new functionalities from one perspective, had a major impact on website performance. After an analyze conducted by a QA engineer it turned out that the back-end loading time has not changed and on that day a new menu, which allowed to add pictures in the admin panel, was deployed.
An error report was escalated to the Leader, a front-end developer responsible for a new menu implementation was assigned and on the very same day a problem-solving deployment was made and all heavy/non-optimized images uploaded by the customer have been optimized without a quality loss.
As a result, a performance diagram from a week later looked completely different:
Thanks to the constant monitoring of website quality and performance and close cooperation of the QA and development teams
- the QA could detect an issue and estimate its importance, independently from the marketing team and its audits
- the QA was able to identify a particular deployment which has caused the problem
- the QA without engaging any developer, discover a modification that caused a loss to the business
- the QA on the client’s behalf, in this team found a specialist who was capable of solving the issue and then made sure the changes were deployed, images used by the client — optimized and everything was tested on the production server
- the QA checked it all again on production
It all could happen without the client’s engagement.
Thanks to combining a constant monitoring, business needs awareness, proactive QA approach and merging competencies required to develop an effective software it is possible to ensure a high quality and fulfill business requirements at the same time. Business Driven QA with a proactive approach is able to engage other specialists and conduct very complex projects as Eyerim’s case-study
Main characteristics of a Business Driven QA (BD QA):
- BD QA defines a quality in the same way as business (e.g. a good quality software not only looks well but sells well)
- BD QA takes part in the requirement gathering process; A QA engineer involved at this stage guarantees that the testing process will be conducted with a full understanding of the goals
- BD QA testing is business-oriented: The QA is not responsible for making sure the functionalities work but if they fulfill business goals. All those conducted tests should be an element of a bigger and well-thought strategy to make sure the elements crucial for the system can be verified in a short time
- BD QA monitors application’s effectiveness: monitoring its major indicators reflecting the business goals to detect possible malfunctions at an early stage
- BD QA should collaborate closely with an IT team: Only a QA team which has a possibility to cooperate closely with the business and the developers, DevOps, UX engineers, project managers is able to react quickly and efficiently to emerging problems
- And the last but not least: A good BD QA uses technology to provide an efficient and cost-optimized service, but BD QA focus on how much value this service brings to the business and not how many tools engineers can use ;)