Skip to main content
Search
two test engineers looking over an iphone testing an app

Despite the agile methodology having been around for almost 20 years, many people consider testing specialists as an unessential part of a project. With the arrival of Dev-Ops, automation and CI/CD, the time for thorough exploratory testing is often diminished. In many companies, the heavy coding skill set is being favoured to help deliver software, and there is even an adage that devs can do it, so why would they need testers?

The decision to exclude testers often stems from the lack of understanding as to what a tester really does and the value they can bring to a project. In the short term, they can help projects to establish a quality focus with different techniques and processes. Long term, they can coach and empower teams to implement better testing strategies in their day to day delivery. In order to truly understand the significance of testers, this blog focuses on their role on a project, the cost of not having testers on projects and looks at the argument as to why automation couldn’t and shouldn’t replace test engineers.

In a nutshell, testers help build confidence in a product and lower its risk of failure. Testers are teammates that get involved in the project as early as possible, often at the planning stages so they can work together with the developers to analyse the project specifications and formulate the test strategy. Throughout the project, testers are involved in sprint planning, executing tests for a new product or feature, overseeing regression and analysing the outcome of the tests. They will usually then report back to the team.

Testers are also responsible for coaching and mentoring fellow team members to think about quality throughout the whole process. Quality is a broad concept and testers are involved in everything from acceptance criteria, documentation, regression testing, unit and integration tests, compliance with usability and accessibility guidelines and security testing. It is an important part of their role to champion quality, and ensure it is being considered at every stage.

Failures happen because it is almost impossible to create 100% bug free software, however there are steps that can be taken to get that number as close to 100% as possible. The main step is to involve testers from the beginning. This allows testers to validate any testable pieces of software, and gives them a better chance to find and fix bugs in the early stages which significantly reduces the amount of work and money it would take to fix them later on.

Many argue that tasks outlined above can be completed by other members of the team such as developers. While this could be the case given that the developers and testers work on the application with the same goal of making a functional, stable application, their approach is very different. The developers main focus is to build a functional piece of software while the tester's main focus is to find a way to break it. Testers are usually not heavily involved in the coding itself until the feature is ready to test. Without deep knowledge of the internal code it’s easier for them to be objective, and approach the feature with a fresh pair of eyes. This together with the testing mindset makes testers much better for the job.

Similarly, while developers can and do write tests, they usually focus on writing tests at the code level. Just because the tests pass at code level, doesn’t necessarily mean that the application will work as well as it could for the end user. As in any other field, skills come with experience so having a dedicated tester on board would allow you to know what aspects of the feature to test, which parts of logic or functionality developers are likely to skip over or and which parts of the product will be heavily used by the end user. They can also think about edge cases and what other areas might be affected or regressed.

To best answer this question, we’ll start at the early stages of the project when the test strategy is formulated by the testing team. During the planning process, we analyse the whole project to see what the major risks, potential issues and dependencies are and what brings the most value to the user. It is at this point we can consider the automation approach and framework. Automation is an effective way to test some parts of your application, especially projects that process a lot of data, however, automation isn’t the answer for everything and it isn’t always the most suitable practice. Here are a few reasons why:

  • It requires a lot of human resources to automate every functionality that is added or changed in the application.
  • UI automation is not the most reliable, therefore the tests would need to be maintained frequently. Other non UI tests also require maintenance.
  • The automation tests follow the scripted path so there is no room for exploratory, accessibility, usability and many other types of testing performed by testers. The skill and expertise of a testing specialist can help in this regard by coaching and mentoring the team to investigate and explore the product from different angles.

Dedicated testers have a huge amount of value to offer on every project. Their experience and skillset is invaluable in delivering good quality software. Their domain knowledge, skill-set and testing expertise cannot simply be replaced by automation or other team members such as developers or delivery experts. Their active role right from the beginning allows them to shape the direction of the product and helps mitigate the risk of failure and grow confidence in the product.