anchor

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.

Software Quality Control

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?

QA Engineer Responsibilities

That's a lot, right? Let's move on and outline certain interesting points.

1
Falling in love at first сlick sight
Considering that the critical time interval to get the users hooked is approximately the first 7 day period, your product release should be perfect and even better. To achieve this, don't miss the professional quality control engineer in the team who will be your software guard coordinating all quality control activities to ensure a product's reliability before the product launch.
2
Houston, we have a problem
Quality assurance teams do the work review after analyzing the test documents to find any shortcomings in the testing phase. They prevent developers from working down the drain - building software on the untested basis is kinda a house of cards that could fall apart at every moment.
3
Bugs shall not pass
The bug is not so terrible. Not so terrible, as the undetected bug that was not fixed on time. According to HackerRank's 2019 Report the most common production bug found by testers and developers was the deploying untested or broken code at over 60%. The second most common bug was a wiped out database, at approximately 10%. If you don't want to waste time on endless bug fixes and suffer reputation losses because of angry reviews from unhappy clients, QA is waiting for you.
red
In many ways, being a good tester is harder than being a good developer because testing requires not only a very good understanding of the development process and its products, but it also demands an ability to anticipate likely faults and errors.
John D. McGregor
"Practical Guide to Testing Object-Oriented Software"
4
But It Works On My Machine
"This is by design", "I want 100% test coverage", "But it works on my machine" are probably the best names for horror movies for QA tester. We will stop on the latter.

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.

red
Quality Assurance engineer is the first, the most demanding, and surely the most annoying user that finds every little flaw. And you're gonna love them for it.
Dawid Krala
Head of QA

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.

If it happened to such giants as Apple and NASA, you should keep calm and keep on the lookout with your QA team.

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.

Stages of software testing life cycle
1
Reqiurement analysis
Reqiurement analysis is the initial step where the QA engineer gets to know the requirements from a testing point of view to define future testable requirements. QA team discusses requirements in detail with stakeholders, defines testing priorities, creates a Requirements Traceability Matrix (RTM) draft and prepares the Automation Feasibility Report if it's applicable.
2
Test planning
In this phase, we identify the test environment, testing schedule, and cost estimates to meet the objectives regarding the test strategy and risk analysis. Within this step, the method of gathering and tracking metrics should be defined. Here QA team creates a Test Plan + effort estimations.
3
Test case development
Here is the development of Test Cases starting, along with test data report creating. The QA team keeps track of the link between the requirement and the test using the RTM, which was partially prepared during the REQUIREMENT ANALYSIS stage.
4
Test environment setup
Fourth phase includes preparing key areas for test running, including system and applications test data, hardware, front-end environment, the required documentation, etc. Here we should identify the required server OS and databases, determine the need of test data archiving, verify the network configuration, and so on. Most often developers provide the test environment, and the QA team may not be involved in this activity. Finally, when everything's all set and deployed QA runs a Smoke Testing targeted at checking the most significant user flows.
5
Test execution
This stage covers test case running and preparing a list of bugs to forward it to the development team for fixing. If the cases are ok, they are marked as Pass, and otherwise as Fail. Completed Bug Report and updated Test Cases are considered as an outcome of this stage.
6
Test cycle closure
It involves such activities as Test Completion Reporting and structuring Test Metrics. Team members analyze testing artifacts and discuss strategies that can be implemented next time. The main goal is to eliminate any bottleneck for future test cycles.

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.

Every software development project at Freshcode has a quality assurance engineer on board. However, the exception proves the rule. 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. 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.

The #1 bug in production

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 bug report document in the context of the booking website development  (configuration of the hotel reservation settings, adding check-in / check-out dates).

1
Summary:
The message "Please, select both dates" should be displayed next to the check-in / check-out date selection fields if the user fills in only one of them
2
Environment description:
Linux\Chrome 83.0.1…..
3
Preconditions:
The user is on the page with a booking form
4
Steps to reproduce:
  1. Fill in all required fields inputting a valid data except check-in / check-out dates → The required fields are filled
  2. Fill in only check-in date only → Data has been entered into a field
  3. Click the Confirm Booking button
Pay attention to the display error.
5
Actual result:
A confirmation message "Room is successfully booked" is displayed.
6
Expected result:
  1. Error message "Please, select both dates" message should be displayed
  2. The user remains on the current Registration Form page
7
Additional info:
video steps
[link to the file storage]

FAQ

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.

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.

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.

red
Testers do the hard work of testing, retesting, and testing again. (...) Developers – take some time today to thank your tester.
Nuala Turner
Content writer and strategist

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.

Build Your Team
with Freshcode
Author
No items found.

Share your idea

Uploading...
fileuploaded.jpg
Upload failed. Max size for files is 10 MB.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
What happens after
you fill this form?
We review your inquiry and respond within 24 hours
A 30-minute discovery call is scheduled with you
We address your requirements and manage the paperwork
You receive a tailored budget and timeline estimation

Talk to our expert

Nick Fursenko

Nick Fursenko

Account Executive
With our proven expertise in web technology and project management, we deliver the solution you need.
We review your inquiry and respond within 24 hours
A 30-minute discovery call is scheduled with you
We address your requirements and manage the paperwork
You receive a tailored budget and timeline estimation
Shall we discuss
your idea?
Uploading...
fileuploaded.jpg
Upload failed. Max size for files is 10 MB.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
What happens after you fill this form?
We review your inquiry and respond within 24 hours
We hold a discovery call to discuss your needs
We map the delivery flow and manage the paperwork
You receive a tailored budget and timeline estimation
Looking for a Trusted Outsourcing Partner?