June 9, 2021

How Software Testing & QA is done today?

Software Quality Assurance

Imagine a scenario where your fintech application gets launched on the Google Play Store. It is off to a good start and getting thousands of downloads each month. Until you see a comment that says that their app has been hacked. This could be the end of the road for many companies. To avoid scary incidents like this, a sound testing system needs to be in place and this is where testers or software quality assurance services play a vital role.

A Brief History of Software Testing and Quality Assurance

A few decades ago, software testing was not the priority and NASA was probably the only place where it was given some weightage. To be more specific, NASA’s Project Mercury in 1958 was the beginning of the space race and Jerry Weinberg was the head of the software operations. It was his job to make sure Astraunat Alan Shepard makes it back from space safely.

He was way ahead of his time when it came to software testing and paved way for software quality assurance services.

“We formed, as far as I know, the first real software testing group. Up to that time, programmers were only expected to write programs that didn’t have flaws. So [my software testing methodology] was picked by lots & lots of managers all over the world.”

According to The Humble Programmer by Edsger W. Dijkstra:

“The industry scaled too quickly at the dawn of software development.”

Back in the 1940s and 50s, software was built by those who would end up using it and on machines that would run that program.

In the 60s, IBM introduced System 360, a legendary mainframe developed to perform any task. Over a thousand people worked on it for a decade and the initial investment of $25 million was raised to $5 billion. A lot of developers were hired to speed the development process but there was a scarcity of talented programmers. There were no dedicated software quality assurance activities and because of that, they soon ended up delivering bug-infested and compromised software.

Software Testing and QA today

Fast forward to today, partnering with software quality assurance services or dedicated software testers is mandatory. The QA team maintains the product/service quality from start to finish and even after that as maintenance.

Now, feedback and bug fixes are instant and at all stages of the Software Development Life Cycle or SDLC. Automated tests are routine practice and the QA testers and software Project Managers take care of the planning, monitoring, and control aspects.

Planning is considered somewhat anti-agile. Agile leaders are more interested in making things simpler. Former Google employee and author of How Google Tests Software, James Whittaker, thinks test plans are annoying.

“Test plans were one of the things that were really annoying me about Google. They annoyed me at Microsoft. They’ve always annoyed me.”

James came up with a popular technique for writing test documentation that is widely used today. It is called the “Ten Minute Test Plan”.In it, are the three core elements of software testing.

  1. Attributes

These are the adjectives that describe the main testing purpose. (What is testing supposed to check?).

  1. Components

These are the nouns describing particular pieces of code or features. (What are we testing?)

  1. Capabilities

Here verbs are used to explain what a user can do.

Now, it’s not really possible for software quality assurance services or PMs to create a test plan in 10 minutes. What’s happening in this method is that we’re keeping the steps that are necessary and getting rid of the rest. This will bring us to the next stage.

Writing Test Cases & Test Scripts

This is a detailed description of the tasks required to perform necessary tests and determine whether the software is doing what it’s supposed to or not. For example; what happens when a user tries to book a ride via the Car hailing app. It will have all the necessary steps and conditions recorded.

There are also a few types of software testing that are used today or agile bosses prefer using.

Functional Testing

It usually consists of inputs like, what to do? & outputs i.e; what to expect? Such testing techniques can even be performed by people with minimal technical knowledge. This is called “Blackbox Testing”. You don’t have to read the code to determine the desired results. The Blackbox method also allows you to check system stability & performance.

Often QA testers need to test the quality & security of the code. For instance; how the smalled elements of the software work? This is the “Whitebox” approach and this type of functional testing is normally done by developers or test engineers.

Not all tests need written test documentations. Sometimes tests can be conducted sporadically. The idea here is to save time or simply observe see what happens when making a change. This is known as “ADHOC” testing. Such testing is performed by humans becasue machines cannot improvise the same way. So you must be thinking, what can a machine do here? This is where automated testing comes in.

Automated testing

Test automation makes perfect sense in a scenario where developers write a test script once and run it on multiple devices, for as long as it is required. AI & ML-driven software testing can learn these iterative processes and perform testing without any human intervention and even suggest new testing protocols through its deep learning capabilities. Thus eliminating human error and delivering high-quality software.

The Future of Software Quality Assurance

AI-powered testing is the fastest-growing space in software QA and investing in it will reap companies long-term benefits. The adoption of test automation in routine software development will allow businesses to focus on product quality.

It’s not going to be perfect but as long as there is progress, everything is good. One this is for sure though. The future of software testing is complete automation.