Why Quality Assurance Is So Important [Main Reasons]
Why Quality Assurance Is So Important [Main Reasons]
How Quality Assurance Can Influence The Outcome of a Project
September 21, 2020
8 min read
What do NASA, Knight's Capital Group, and Heathrow Airport have in common? All these guys know from their own experience what is a really costly software error. They learned the hard way how small software failure could bring huge losses. What hurts most that those errors could be easily avoided by timely software testing. That's why today we will talk about why the testing stage is crucial and how a quality assurance engineer can save your finances and reputation.
What is software quality control?
If you ask us "Why software quality control matters?", the answer will be simple: a top-notch digital solution must be properly reviewed and tested. Otherwise, strange things happen. In 1998 NASA sent a Climate Orbiter to Mars. Unfortunately, a spacecraft worth $125 million was lost in space because NASA's engineers failed to convert metric measurements.
In 2012 Knight's Capital Group lost $460 million in 45 minutes because the trading algorithms on one of Knight's production servers were deployed incorrectly. Heathrow Airport got into trouble with the opening of a new luggage handling system when thousands of bags were left behind and hundreds of planes were stranded and caused mass cancellations. It happened because the system wasn't tested for various scenarios (for instance, when passengers are demanding their baggage back because they left documents inside), and as a result, it was overloaded and crashed.
But we are not here for moaning and groaning: even such costly failures are not causes for despair but a lesson for all companies to take care of testing products or services before the launch. No matter how good a developer is, he or she can still make mistakes. That's why a quality control engineer is an indispensable member of every software development team.
While Quality Control is generally an end-product focused process, Quality Assurance is a process-focused set of activities intended to prevent software defects before the production work begins. Let's note that the responsibilities of QC and QA experts are often mixed and within the IT industry world we have a kind of universal expert called QA engineer.
QA is more than just testing
Some quality assurance engineers call their job "thankless", "often looked down upon by the pompous people within the IT industry", and such that "has a horrid problem at marketing itself". That is frequently true and obviously unfair while the importance of the quality assurance process can't be overestimated. So what does a QA engineer do?
That's a lot, right? Let's move on and outline certain interesting points.
There are a lot of reasons why a particular change works on a developer machine but fails on others, including different machine/system environment, hardcoded directory or path in the code, missing dependencies, and so on. Now IT-world probably may be at the peak of difficulty in software development: there are more variables, OS's, CPUs out there today than ever before. And the common task of developers and QAs is to create cross-platform software that will run flawlessly on different devices with different screen sizes, operating systems and its versions. Busy bees.
Why do you need a quality assurance engineer?
Perhaps the most succinct explanation of why is the following: properly QA testing is essential for ensuring the provision of accurate, reliable, and swift software development and deployment.
Let's mark that QA engineer is much needed before not after the project development starts. Debugging isn't such a fascinating process, and the crucial task is to prevent any mistake, define product standards and build a proper development progress plan before it starts.
We have already mentioned failure cases with such business giants as Nasa, Some software errors happen with such tech superheroes as Apple too. In its rivalry with Google, Apple decided to create its own map app as an alternative to Google Maps to replace it on iOS devices. The company released the project in 2012 and caused a burst of resentment: in Apple's Maps whole lakes, bridges, tourist attractions, and stations were mislabeled or missing. The Washington Monument was across the street, while New Zealand's main railway station moved to the middle of the Pacific ocean, and so on.
Meshing the data underlying mapping apps together takes a lot of handwork — which Google had years to achieve, and Apple hadn't. Step by step, Apple has been fixing these problems, but, obviously, left its users with an unpleasant after-taste. To a large extent, no one is safe from issues. But our crucial task is to prevent possible errors and make sure we test every possible detail before the product launch.
<medium>If it happened to such giants as Apple and NASA, you should keep calm and keep on the lookout with your QA team.<medium>
6 stages of software testing life cycle (STLC)
STLC stands for Software testing life cycle. It's an algorithm where each activity is carried out systematically. Here is a scheme showing the sequence of the six process phases.
How QA team has saved our client money
QA engineers saved a lot of projects. Besides saving precious time, QA also saves clients money. While the duration of the project is directly proportional to the size of the bill, and fewer mistakes amounts to less work time.
Freshcode QA engineers are given a seat at the table during the requirements phase to create the most effective collaboration and vision of the future product\service. Furthermore, we have cases when our QA engineer besides carrying out his direct duties led the project as a business development manager.
<medium>Every software development project at Freshcode has a quality assurance engineer on board. However, the exception proves the rule.<medium> Once upon a time one of our clients didn't deem it necessary to get a QA on the team. His project X (out of respect to our clients we don't disclose their names) was developed by 3 persons. When it сame to testing, responsibilities for QA processes were delegated to developers by client order. Considering the developer's hourly rate is far above, such a decision caused exceeding the estimated budget by more than $6000. <medium>While iterative cost estimation of the described project amounted to $25000, the outcome budget was $31100.
Moreover, the estimated time frame was shifted by 5 weeks. So the release date in February was missed and was rescheduled to March. In March the release date was changed to April because of the need for new automated tests set. The result was delaying the release, over-budgeting, and unsatisfied clients that didn't get the expected features in time.
The requirements and tasks were defined without properly test documenting and it was difficult to understand described cases, bugs, and fixing processes quickly. No doubt, the presence of a software quality assurance engineer, who can manage the process, create clear documentation, link all the parts and create proper automated tests could be a great booster for a quicker finish.
Freshcode QA engineers have two most crucial missions: ensuring the quality of product/service through software progress control and super thorough testing of each feature. We try to be a cross-functional team to spot any problem and fix the issue as quickly as possible. Our project managers collaborate with the QA team keeping it in the loop and informing about every change in requirements or new features or schedule changes. In turn, quality assurance engineers prepare feedback for developers on what needs to be fixed or rewritten. Bug report describes device type, OS version, description of performed action and error occurred while it performing, etc. According to the PractiTest research bug report is the most common test documentation used by companies – 79% note using them in 2019.
Freshcode QA team provides detailed reports produced on every run. The report includes screenshots & videos indicating what needs to be fixed. So developers can quickly locate the bug and fix it. We at Freshcode use Jira software for bug tracking and bug reporting.
Here is an example of the part of the <medium>bug report document in the context of the booking website development<medium> (configuration of the hotel reservation settings, adding check-in / check-out dates).
What are the top 3 skills for QA?
As we've already mentioned, QA is a multi-handed and multi-skilled specialist in the team. But let us figure out the top 3 skills that we consider the most important.
Attention to detail. Of course, this bugbuster should be super thorough in order not to miss any issue or non-compliance. Attention to detail prevents tasks from needing to be revised to meet requirements later.
Problem-solving. That kind of skills, including researching, analysis, and decision-making, help QA to find the best solutions to meet the quality standards. A mix of logic, creativity, and critical thinking will serve you well while facing challenges.
Multitasking. Few IT specialists ever have a single task or duty. Strong multitasking skills help QA experts to switch from one task to another one without compromising quality standards.
Why is QA required?
In short, the success of your future software product fully depends on software QA. Quality assurance engineers should be involved in the process at an early stage, when it's crucial to identify risks, adjust requirements, review all tech details, and advise more suitable options if it could be. QA can do it.
Why developers are not good testers?
It's not a good idea to shift QA's responsibility onto devs. Simply it just doesn't work well. Developers in the team create just a part of the project ad often they lack the overall picture. Sometimes they misunderstand requirements or omit bugs which cause delays. It's easy to overlook your own mistake through tired eyes, isn't it?
The developer's mission is to implement the predefined features and not to verify the client's ideas. This is a QA engineer superpower and what he is good at.
Freshcode Quality Assurance team is constantly growing due to clients requests and their demand for quality software standards. We provide cutting-edge QA methodologies and tools to make sure that the software we deliver meets all requirements and standards. You can contact us via the website form or via LinkedIn to get a free consultation about Freshcode QA process.