Software testing engineers’ hidden depths

Today's software engineering testing needs multi-skilled people and the right tooling.
10 August 2023

Humans and robots, unite! Source: Shutterstock A!

Getting your Trinity Audio player ready...

A software testing engineer plays a unique and pivotal role in deploying any application. To those outside the technology industry, software testing might be considered analogous to consumer testing: a process that involves flagging potential issues that negatively impact the end-user experience. But ensuring software is fit for purpose is a much more considered and deeper process than feeding back opinions about whether things are working as they should or making suggestions to improve GUIs or expected results from actions. A software testing engineer is, first and foremost, someone who’s a software engineer able to identify the effects of any change in performance of the IT stack underpinning an application or service.

The demand for skilled testing engineers is growing. According to Denis Sheremetov, CTO of Onix-Systems, the role of a software tester is gaining more influence both within a software project team and within a company. “They are becoming full-stack software quality assurance engineers combining domain knowledge, testing experience, and technical skills with direct involvement in several developmental processes. The impact they provide results in higher levels of software product quality,” he said in a blog post.

An incorrect assumption is that software is, in some way, a finished product. Iterations, improvements, bug fixes, and extra feature rollouts mean testing is as continuous as the development process. A minor change in function anywhere in a body of code has the potential to affect the entire application anywhere. Therefore, in an ideal world, every aspect of an application and permutation of an end-user’s experience must be re-run. In a piece of software of any complexity, that’s a tall order to carry out once. In a CI/CD pipeline, it represents a list of workings-through that’s probably greater than the effort required to code the app from scratch. Automation is, therefore, necessary – it’s beyond even a large number of software testing engineers to undertake manually.

As companies and organizations adopt agile development methodologies, many build libraries of testing routines that take a product nearing or at release, and cycle through as many variations of the product’s use as possible. There are also discrete platforms that undertake these tasks – like Original Software‘s – providing an powerful testing facility that will adapt to the changing code base of a product that’s close to release and change what and where it tests, intelligently.

Colin Armitage, Original Software’s CEO, told TechHQ: “Full regression testing is the only way for businesses to ensure that their software releases are production ready. In an ideal world, regression testing should look for anything and everything that has changed in an application, whether new bits, bits that have changed, or bits that are now missing.

“Done manually, this has a massive impact on business users and as a result significantly limits the frequency at which it can be undertaken. Automation is obviously a more attractive approach, but coded automation requires skilled developers to build and maintain test scripts, and cannot hope to test every item on every screen.

“Code-free solutions like ours are the only way to satisfy the demand for frequent, full regression testing with our patented AI technology able to recognise objects, look for change and notify quality teams instantly.”

Manual testing by humans is only one of three commonly-used testing agencies. People join bespoke test routines and scripts that can be fired manually or at key stages of the CD pipeline, plus automated testing platforms that can replace at least some of the internally-developed sanity-checking scripts.

In any of these three areas, the software testing engineer’s skills stem from a deep understanding of how the application and its components work. Experience will inform manual tests, prowess in code development will improve self-penned testing algorithms, and a detailed overview will enable automated test platforms to perform at their optimum.

The need for a specifically-skilled software testing engineer is clear. There are also other prerequisites, such as the ability to follow existing documentation and create it, too. Data analysis garnered from combing log files and performance metrics is also a valued skill. As demand for suitably-qualified engineers grows (numbers of software testing jobs are expected to grow by 22% by 2029, much faster than the average for many IT occupations), there’s likely to be a hike in expected salary for the role.

A technically-astute and well-informed engineer is rightly highly-valued, but they shouldn’t be the be-all-and-end-all of testing. End-users (or the biological computer interfaces) should also be everpresent in any testing team, preferably seconded from the user base, internal or third-party. Humans have an innate and extraordinary ability to find a sixth way of achieving a goal if five have been pre-established. Allowing for edge cases and strange yet habituated behavior is part and parcel of software development. Many software development rollouts have been rendered worthless by not involving coal-face workers from an early stage. Bringing together technical staff and practical users from day one pays dividends.