Updated: May 4
The software testing world is changing. New trends in software development and testing now require an evolution from the traditional functional tester skill-set. Until recently, testers only used documented manual tests as the testing standard for a system or acceptance test. Nowadays tester requirements during the early software development process are becoming a crucial element instead of a separate procedure afterwards.
In this post we’d like to focus on how to transform yourself from a traditional functional tester to a modern agile tester and which additional skills you need to comply to minimal market requirements.
The Four Corners of Agile
The introduction of agile methodologies were a game changer for the world of software testing. Designed to meet the need for fast changing and dynamic applications in an ever faster growing digital world, with the addition of continuous development, integration and testing.
In response to the traditional V-model, agile testing evangelists such as Janet Gregory and Lisa Crispin introduced the “agile testing quadrants”. This model emphasizes the paradigm shift when it comes to testing and a testers role.
Below (Q1/Q4) we can find technical inspired test types as opposed to the business facing tests in the upper two quadrants (Q2/Q3). The difference between the left and right side quadrants is in the purpose. Left-side tests (Q1/Q2) are guiding the development whereas those on the right (Q3/Q4) are really validating the product. Left-side testing is essentially focused around defect prevention in a “test-first” approach whereas the other side is all about defect detection. As development is typically iterative in an agile approach, tests on the left side have to be automated to run upon each iteration.
Let’s compare the agile testing quadrants to the traditional with the agile testing role. A traditional functional tester is primarily active in the Q3 and partly Q2 quadrants. Their role was to perform system and acceptance tests from a business perspective. An agile counterpart will similarly be involved in Q2, Q3 tests, but also in Q1 testing. An agile tester’s role is to perform business facing manual and automated tests as well as technical integration tests.
So let’s look at what it will take for a traditional tester to survive in an agile world. Clearly they will need additional skills and shift in mindset to become a true agile tester.
Firstly, an agile tester is more active on the left-sided quadrants, guiding and supporting the embryonal stages in the development process. Traditionally the tester’s focus was on independently validating the product, now they are an integral part of the team, actively trying to prevent bugs and accelerate the development stage. To fully play their role the traditional tester’s mindset will need to be broadened to be independent but also co-operative.
Next, let’s focus on the test types themselves. The traditional tester is familiar with Q3 testing so the focus should be on learning new aspects of Q2 and Q1 testing, where testers can add value without becoming a full technical expert. Clearly, the technical aspect has gained a lot of ground in testing. It sounds like everyone should become developers… We don’t think so, but traditional manual testers should definitely focus on adding a minimum of automated integration, functional and business testing skills.
In Q2 tests an agile tester needs to assure that there’s no regression from a functional and business perspective on the changes in each iteration. Typical methods like Acceptance Test Driven Development (ATDD) and Behavior Driven Development (BDD) are key. In order to support these method types, the tester needs to adapt their user acceptance scenario writing skills to a particular language (e.g. Gherkin), facilitating underlying automation. The tester needs to learn how to use tools such as Cucumber and possibly go the extra mile to translate the Gherkin scenarios or user story into coded scripts. If necessary they will need the development team’s support. A good knowledge of Selenium, the de-facto standard agile automated test tool, is essential.
In the pure, technology facing testing Q1 quadrant, the traditional tester can help with the acquisition of a minimum of new skills. The difference between technology and business facing tests is mainly in the lack of a proper graphical user interface (GUI). So technical testing is not focused on visual inspection in a GUI but rather on sending requests and checking responses.
Whereas unit testing is still preferably done by the developer and peers, modern application architecture is centered around services or even micro-services. Applications are no longer monolithic pieces but are consuming all kind of services by sending requests to the service and receiving responses. For example: an application which needs to know the temperature forecast and therefore sends out a question with the necessary parameters (such as location) to a weather service and receives the prediction. The graphical user interface is replaced by an application programming interface (API), a convention on the requests you can send to the service and the answers you can expect to receive.
API testing is essential to an agile tester. It’s key for a tester to learn how to check if a request provides the correct answer and if exceptions are properly handled. Much like Selenium is the de-facto standard in agile test automation, SOAPUI should be the standard automation tool for everyone API testing.
In conclusion a traditional tester can start the journey to becoming an agile tester by acquiring the skills of agile test automation for ATDD and API testing.
Clearly this is only the beginning… because with agile’s continuous software, learning in testing is a life-long assignment.
Check out our courses to support you in up-skilling towards test automation.