Software development is not an academic work. The product not only needs to fulfil the creators' assumptions but first of all it needs to please the end-client. Therefore quality assurance is one of the most important aspects of an IT project.
The opinion on how undervalued and marginalized software tester's role is, might be heard all over the market. Some project managers complain about delays connected with the amount of time that the QA team requires.
These are – to a large extent – damaging stereotypes, which come from times when the role of the tester only started to develop. How does it look in a mature IT team?
Software Tester - What Does he/she do in The Project?
Phrase “in the project” is key here. The test engineer is not an island in the most distant part of the office. It is a person who should work closely within the whole development team consisting of developers, analytics, project manager and product owner.
Depending on the specifics of the work that needs to be done, in the same group you can also find graphic designer, UX designer and other roles that are in demand. Tester stays in contact with all these people and communicates with them on a daily basis.
**The so-called independent tester is an exception. **
Such a person is hired to test an application that has already been created. He/she is purposely taken away from the business team in order to keep a fresh perspective. That way the team can obtain suggestions about how the product works from the person who doesn’t know the requirements beforehand. Sometimes such a job is done by a completely independent test team.
In this article we will use the example of an in-house tester who was included into the project from the very beginning. In this case very significant for the way the tester’s role is structured and the methodology that particular IT team embraced.
Role of a Tester in Scrum
Scrum, the so-called Agile approach to project management, is currently one of the most popular and frequently used methodologies in the modern IT teams.
The work is divided into small chunks (called sprints) so that a product is created “in parts”. In effect, the tester obtains the product ready to go, already after the implementation phase.
It also allows modification of requirements formulated in the beginning, when work on the product just started, and quick reaction to mistakes/bugs can be identified later.
For testers the most obvious consequence of this approach is that he starts creating and executing test cases not on a fully created product, but on its part – i.e. specific functionality, which developers completed in a given sprint.
Read more about Scrum Testing.
Role of The Tester in the IT Project – Software Test Tasks?
What are the specific roles and responsibilities assigned to tester?
These are the very basic ones that an experienced tester is able to perform:
- writing the test scenarios,
- performing the tests according to the scenarios designed earlier,
- creating bug reports (and adding them to the backlog),
- preparation of the testing documentation,
- if test automation is included in the project - managing it is also in the tester job description.
It would appear that these tasks could be easily performed by one person alone and our previous claim, that teamwork is crucial for the tester, was highly exaggerated.
Nothing could be more wrong.
Of course, each test manager sets his/her own rules and has a different approach as to how test execution should be organised. Although our long-term experience shows that the more testers are included in the work of the whole team, the better for the product that is created in this way.
In the scrum testers get acquainted with the product documentation and closely cooperate with analysts, who gather requirements for the application from the client and present the way it should work.
Sometimes already at this stage the tester discovers a mistake or lack of precision in the documentation, which could later affect the way the product is created.
Soft Skills in the Job Description - is the Tester a Renaissance Man?
A little bit.
A good tester will not only diligently study the technical documentation, but also conduct thorough market research (if he is not a specialist in his branch).
Thanks to that he has wide knowledge about state-of-the art technological solutions and he can suggest viable changes concerning product design or broadly understood UI/UX design. It can happen during direct talks with developers and UX designers or 15-minute meetings of the whole team (characteristic to scrum), when each member of the team gives an update on his work.
Based on his professional knowledge or bugs identified in the particular phase tester can inspire the product owner as well as developers to act.
Contrary to prevailing stereotypes, developers often appreciate testers’ suggestions. They enable the team to objectively assess the work already done and take on a new perspective on solving the problem.
These remarks are different from a standard code review, which focuses more on the technical issues and is performed by another developer. An approach that focuses on increasing usability such as: “how should it work” and “in this part this functionality can perform better, because later it generates errors such as…”, is also very important in the daily routine of a software engineer.
Such a proactive, focused on finding new solutions attitude is required in projects conducted in scrum. That means that a good tester must have good communication skills. The ability to obtain and present knowledge is also one of the key responsibilities of a tester.
Role of the Tester in the Project – Why his/her Time is so Valuable?
In the Agile approach there is a popular saying: „Fail quickly. Fail often. Fail cheap”.
This methodology aims at quick bug identification, which in a broader perspective enables delivering of a high class product. Its maintenance would not generate additional costs because all potential risks had been identified and addressed when the product was created. That is why software testing roles are crucial here.
The most frequently used types of tests in this job are:
Exploratory tests means testing on “living organisms”, without sufficient documentation. In this phase you get acquainted with the application in the testing environment. It is usually the starting point for creating more suitable testing scenarios, in which your knowledge and experience plays a very important role.
That is why novices are almost never engaged in these tasks. The undoubted advantage of exploratory tests is that they offer plenty of potential for detecting bugs that were overseen while creating requirements for the product and new user stories.
They are performed after each deployment.
They shall check whether after the implementation of a new functionality the whole application (including solutions added earlier) works properly.
This group of tests also includes smoke testing (assessment if main functionalities of the application work seamlessly after the implementation) and sanity testing (tests performed after the application had been debugged).
This type of tests has plenty of potential for wasting testers’ time, therefore it can be easily replaced with automated tests.
Thanks to them tester in the IT project can focus on creating new user stories and searching for yet undiscovered bugs instead of rather tiring research of the “old” parts of the code.
See how BugBug helps QA to perform Regression tests.
System Acceptance Tests (SAT)
System acceptance tests it is a real cherry on the cake in tester’s work. The goal for the QA engineers here is not to discover new bugs, but to confirm that the product functions perfectly and in accordance with client’s requirements.
As you can see, although there are many different roles in an IT project, the tester cannot be absent. The presence of a tester or a team of testers is very important – there is a saying in the scrum that every member of the team is a developer, and it is not without a reason! It means that each person from the team shares equal responsibility for delivering the product perfectly adapted to the assumptions.
And without the tester it is simply unattainable!
Happy (automated) testing!