There are a few ways to handle multiple packages used to create one project. The multirepo model assumes that the packages are located in different code repositories. Monorepo is a singl...
What is Quality Assurance in IT?
Have you ever gotten stuck in the process of signing into an electric scooter rental app because of some strange error message or got frustrated with extremely weak UX of a tax form? Or maybe you realized you have trouble making a purchase on a device that was supposed to support the online store. That’s when you experience bad quality assurance in IT. And when do you meet proper one? E.g. this perfectionist company’s website you’re reading this blog on, where every detail is precisely aligned and optimized for all mainstream devices.
Bugged commercial software products may cause losing some traffic or a decrease in client engagement but mistakes in the code of serious industrial or military apps have much more serious consequences. Software failures have wreaked havoc at banks, airlines and done billions of dollars of damage and devastating disruption.
In order to prevent such events and ensure a constant level of quality, Quality Assurance is introduced to software development processes. At Startup Development House Quality Assurance processes are implemented into the workflow and the QA Team guards defined standards with the use of manual and automated testing methods.
What is Quality Assurance in software development?
Quality assurance (QA) covers all project-related tasks. Starting from cooperation with the client, through defining the roles and responsibilities (choosing the project methodology, communication, timelines, tools), ending with defining requirements and the product’s life cycles. QA incorporates all members of the team, giving them opportunities to shape and define the definition of quality (which does not necessarily need to be perfect). It all depends on the context of the project, it’s business value. So we may say that the QA process aims at preventing mistakes in the whole software development process.
Quality Control, on the other hand, has a disruptive character - we’re looking for mistakes in previously carefully designed products with the use of different levels and types of testing.
But the first question would be what quality are you expecting? The first answer would be: the best! And that would be no surprise. But is it the best of all possible answers? When you buy a cake, does it have to be the sweetest? And a car the fastest? Not necessarily. For example, the quality can be lower when the product is really innovative and we’re not sure of its success. But when we are refactoring an existing product or replacing a legacy system with a new one, then we should aim at the highest-quality code possible.
Let’s try to look at the QA approach of software development
It all starts with
This includes three roles: a business analyst (somebody who knows the business contexts the best), a coder and a QA Tester. The results of the cooperation of these 3 Amigos (as they are nicknamed by Matt Wynne) are “user stories”. They define precisely what should be delivered in the form of descriptions and acceptance criteria. QA Tester input on this stage is asking the right question such as “Why the client needs this functionality” or “Are there any mockups”.
Then we proceed to
Implementation of the requirements (development phase).
This stage gives many opportunities to improve software quality, starting from choosing proper software development practices (AGILE/SCRUM or other) and other QA-related practices: unit tests*, code review* and integration testing*.
The last stage is dominated by QA activities and testers
This is a set of activities in the area of software validation/verification versus the defined requirements as well as from the field of non-functional testing: efficiency, security. There are three types of testing methods: manual testing, automatic testing, and an in-between class. The most popular recently, manual testing is where a tester has to walk over all test cases in a testing scenario, collect data and prepare a final report. It is hard and time-consuming work. In automatic testing, on the other hand, everything is done with tools and scripts. The data is collected automatically, as are the final reports. There is also a half-way scenario where the tests are performed automatically, but the whole testing environment is set manually (semi-automatic testing).
Software quality in IT — business benefits
As you already know basic QA principles and testing types, it’s time to ask a question:
why does quality assurance pay off?
First of all, if the QA process is done right—that is, from the very beginning of the software development lifecycle—it can help you save a lot of money on correcting bugs that were detected in software already in use. As a rule, the later in the process a bug is detected, the more it will cost to fix this bug.
Second of all, a properly designed QA process allows for proper quality management of a product. It will help you verify if a newly developed feature or release is compatible with already operational versions. Nobody wants to see the software stop working after an upgrade has been released. It goes without saying that such a faulty upgrade can crush a company’s reputation. And it has happened many times in the past like e.g. British Airways IT glitch in August 2019 when system failure caused more than 100 flights to be canceled and more than 200 others to be delayed.
There is no question that project quality is crucial in ensuring successful product launch or upgrade; a quality management plan, on the other hand, identifies quality requirements and provides all project stakeholders with precise guidelines for delivering a great quality product just like the one you’re now reading (again, no boasting).
If you found our article interesting, please share with us your experience with Quality Assurance in software development!
You may also like...
It’s no surprise that the number one reason for startups failing is not solving an existing market problem. Identifying real users’ pains is crucial when creating a new produ...