We use a lot of applications every day. The Internet has become a part of each of our lives. Behind those applications, whether it's shopping, learning or booking, they are the dedication of a powerful team to create products that make life more comfortable. Those who make these applications are Testers and Developers.
In this article, we will see different views between Testers – Developers and their relationship to make a successful application together.
The goal of Testers and Developers is to provide the same quality product for users or businesses. But their thoughts are extremely different. In other words, "Testers and Developers are different but they follow the same path to achieve a common goal."
Developers thought: "How can I make an application?" Testers thought: "How can I ruin the application?"
Testers and Developers act like Tom and Jerry. But the end result will only be positive when they work together. By saying "How can I break the application", that doesn't mean a tester's motto is to ruin the work done by developers. That means a tester with a "think out of the box" thought and by "walking around in the client's belly", applying all possible situations to the application. That will really be done when the application is not broken when it exists in its own environment.
With any application development, Software Development life Cycle (SDLC) plays a very important role. In other words, testing a product will serve as the final step in the development cycle. However, the correction of errors / defects at the final stage has been proved to be very difficult and costly. Therefore, to avoid complicated things, software testing was born as an important part of other parts of the SDLC cycle. That means testing will be conducted right from the first step of the development cycle.
Testers have a comprehensive view of all applications from different creative perspectives, and if they really fully understand the customer's requirements, they will create many other differences.
Let's take a look and get a brief idea of the tester's perspective at different stages of SDLC:
1) Collect requirements and analyze:
At this stage at the request of the stakeholders and by accumulating the required points of the application, a document of requirements is prepared. Required documents are shared with the testing team to get their views on the requirements they want as well as submit their questions in the form of "Review comments".
Questions can cover every topic, be it an understanding of any specific part or prediction of some possibility in the future where an error occurs.
Let's take a basic example: The user's request is "There are no special characters in the input field."
Dev's role: It is clear, write a code that inserts a field by checking whether the user enters any special characters, an appropriate error or error message is displayed.
The point of Tester: Tester will first check the requirements outlined, but then set many scenarios in the head. They will have questions like:
- What happens if only special characters are included in the input box? Will it display the same message or another message for the user?
- What if the user copied and pasted any combination of special characters and numeric characters into that box?
There are many other scenarios as mentioned above that testers have to think in the process of reading customer request documents. To evaluate any product or application, testing means asking questions about a product to cover all scenarios because end users can be anyone and can use applications. in any way they want.
2) System / application design:
After collecting data and completing requests, dev starts their design on the application. This includes reviewing design documents before implementing them by dev.
Tester from personal insights and creative thoughts that analyze all scenarios for all the new features, improvements, integrations, user interface updates, everything covered in the required document. They create test cases, checklists and data so that when the application is ready to test, they are also ready with their own test parameters.
3) Implementation stage:
During this period, dev actually implemented the complete system design.
When we look from the dev point of view, they are focusing on building functions – that is required. In their view, the function will work perfectly and effectively.
But when we look from a tester's perspective, that view is completely opposite to that of dev. While devs focus on implementing functions, the tester applies all of his creativity to the testing of functions. There are also cases when dev misunderstanding the request, and in that case testers apply their scripts to the test, the application will completely fail.
4) Check the system:
During this phase, devs upload applications to staged the QA environment / environment (the environment is available for testers to perform the test) with the set of functions defined by the home develop in other cycles / release.
Dev uploads the application with the view that the implementation functions are perfectly developed according to the requirements stated; They just put these applications to testers to confirm.
But for testers, different from the desired functions, there are many different ways that users can think of using a specific application. It is the task of the tester to use his own creative thinking and explore the most feasible scenarios.
5) Maintenance phase:
This stage is to test collaboration efforts between dev and testers.
After completing the implementation, the application is sent to the user so that it can exist. No matter what happens if it works as expected, but if there are any errors, it requires a collaborative effort by both dev and tester during the maintenance phase.
Testers and dev together create an effective team as if it is a responsibility to fulfill to ensure the best product. This will be achieved if both work together with the right understanding and collect positive feedback.
Let's see some important points to determine the role of Testers and Dev.
While dev needs to make sure there are no errors in what they develop, Testers must make sure that if there are errors, they must be notified and fixed in time. Dev should get comments from the tester in a positive and constructive way. It can be said that devs are "experts" in their own technical areas and they can use all their technical skills to develop the project as required. A tester is a third party (assuming an application virtual user) who will report errors and defects effectively. On that basis, the quality of the application will be determined and improved.
Working as a Tester:
Of course, many good dev can test themselves very well. The important point is that a person should not test what he / she has created / his own application, and we do not require a second opinion or feedback.
"Tester" is a person who is not affected by the developed applications and they test based on practical experience and use applications with all possible situations.
A good Tester will know that users can generate hundreds of thousands of errors when learning and using a product. Users will actually learn how to use the product by trying and see what happened rather than just reading the manual.
Therefore, the main goal that Testers aims at is "What's going on wrong". The main focus of devs is to operate the project as required.
A good Tester and a good dev:
A good tester is someone who is always comfortable with conflicts. If many times, it will become difficult to determine the source of the error. For example, it could be an encryption error, a document error, a design error, and it may not even be an error. But the work of Tester is the error message.
A good dev is a recipient who responds positively and constructively, diagnose problems, and debugs them. But often dev will avoid conflicts that can cause obstacles.
Whether you are a test or a dev, no matter who you stand on, you are expected to have a useful product. Lacking the dev you will not be able to create products, lack of test you will not be able to have the least error-prone product. Therefore, test and dev, though seemingly confrontation, are interlinked and support each other. Through the article, I hope the two sides can understand each other better, from that, cooperate happily to make a miracle.