The beginnings of software engineering came at the start of the computer age, with government insistence on exacting standards from large technical defense contractors. Today, at virtually every level, quality assurance testing has become a critical part of software development. But how has that role changed?

Waterfall to Agile:

The software world has been moving into leaner methodologies to streamline product development. Engineers who used waterfall development strategies have slowly gravitated to Agile methods such as Scrum or Extreme Programming. Agile techniques have overtaken software development and the role of QA engineers since the Agile Manifesto appeared: https://www.agilemanifesto.org/

At one time a big allotment of time was designated for “testing”, and developers simply sent blocks of code to QA testing and moved on. Now programmers and QA engineers work together to produce quality code at each stage of development, while considering end-user feedback before moving forward. Today the QA engineer is an essential part of the development team.

Software development methods: https://noop.nl/2008/07/the-definitive-list-of-software-development-methodologies.html

Single to Multiple Platforms:

Not too long ago a software development company produced applications for use on one or two platforms only. Today’s applications, in a world of smart phones and Internet, often must have a server component and an API compatible with both mobile and desktop devices. In addition, each application must work across a variety of popular platforms, such as iOS, Android, Internet Explorer, Chrome, and Firefox, to name a few. Even a simple application must be tested across these different platforms, requiring quality assurance testing engineers to have familiarity or specialized knowledge of all of them.

But Agile, too, is forced to adapt as extensible, open-source software platforms become more of a norm. Unified process methodologies were created to provide a more extensible framework for development, and QA engineers have more testing to do as development embraces open-source solutions: https://www.opensourcetesting.org/

Manual to Automated Testing:

Browsing the Web these days, it’s hard to imagine the dull, non-interactive pages of early HTML pages that displayed text and photos and did little else. Today Web applications are full-service word processors, spreadsheets, translators, photo editors, and much more. These applications are often as sophisticated as many desktop versions, and also must work well not only the variety of browsers, but many scripting languages like JavaScript, Python, or Ruby. A software development company will often have many specialists writing the same functionality in different code.

Unfortunately there is no easy compilation step to check syntax over a wide variety of languages:

QA testing today can rely on automated checking tools to ensure that applications run together seamlessly, no matter what script is used, to meet standards from load-testing to multi-browser support. These tools also include essential features such as unit and load testing, or regression. Today’s QA needs not just some developer skills in software code and scripting, but specialized knowledge of these testing tools that would otherwise make todays complex, multi-platform approach to software development a nightmare.

Every project manager, regardless of background, has to be familiar with a growing variety of development methods and testing tools to get the most prolific results from his team in the shortest time span possible.

Software development is changing to the point where it’s the QA engineers and not developers who play a critical and central role.