One often hears an opinion that role of the tester in the IT project is undervalued or marginalised. That developers treat him as the person who at all costs wants to criticise the code. Some projects managers complain on the delays connected with the amount of time that testing requires. These are – to a large extent – damaging stereotypes, which come from the times when role of the tester only started to develop. How does it look in the mature IT team?
Phrase “in the project” is key here. Tester is not an island in the most distant part of the office. It is a person who actively participates in the meetings of the whole team, which consist 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 the daily basis; he also takes part in most of the meetings. An exception is so-called independent tester, hired to test application that has already been created. He is purposely “protected” from contacting the business team so that he can keep fresh perspective. In that way the team can obtain suggestions concerning the way the product works from the person who doesn’t know the requirements according to which it was created. Sometimes such a job is done by the whole team of independent testers. In this article we will focus on the work of the tester in the IT project employed in the software development company, who from the very beginning participates in the creation of the software. In this case very significant for the way the tester’s role is structured is methodology of the work that particular IT team embraced.
Scrum, i.e. the so-called Agile approach to project management, is currently one of the most popular and frequently used methodologies in the modern IT teams. Its opposite is so-called waterfall. Simplistically, it aims at planning the work of IT team (which should effect in the product ready to use by the customer) so that from the very beginning each phase of work is clearly defined, without possibility of implementing major changes. In effect tester obtains product ready to go, already after the implementation phase. Scrum in the Agile approach divides work in the project into smaller phases (so called sprints), so that a product is created “in parts”. It enables i.e. for 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 tester the most obvious consequence of this approach is that he starts working not on the already created product, but on its part – i.e. specific functionality, which developers commited in sprint.
What are the specific tasks assigned to tester? These are the very basic ones:
It would appear that these tasks could be easily performed by one person alone and our previous claim, that the teamwork is crucial for the tester, was highly exaggerated. Nothing could be more wrong. Of course, each company sets its own rules and has different approach as to how tester’s work 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 tester discovers a mistake or lack of precision in the documentation, which could later affect the way product is created.
A little bit. A good tester will not only study diligently 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 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, because they enable them to objectively assess the work already done and take on a new perspective on solving the problem. These remarks are different than standard code review, which focuses more on the technical issues and is performed by another developer. Offered by tester approach: “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 programmer’s work. Such proactive, focused on finding new solutions attitude is required in projects conducted in scrum.
In the Agile approach there is a popular saying: „Fail quickly. Fail often. Fail cheap”. This methodology aims at quick bug identification, what in a broader perspective enables for delivering a high class product. Its maintenance would not generate additional costs because all potential risks had been identified and addressed when product was created. That is why role of the tester is crucial here. The most frequently used types of tests in this job are:
Exploratory tests mean testing on “living organism”, without sufficient documentation. In this phase you get acquainted with the application in the testing environment. It is rather starting point for creation of the suitable testing scenarios, in which your knowledge and experience play 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 the 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. Check out first Polish tool for automated tests – BugBug
System acceptance tests it is a real cherry on the cake in tester’s work. Its aim is not discovering the bugs, but confirmation that product that has been created functions perfectly and in accordance with client’s requirements.
As you can see, in a well-planned project work tester cannot be absent. His role 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!