Some IT professionals think that a tester’s role is redundant and that a developer alone can test the code that was written by him. Such notion is completely wrong. But can you guess why? A developer can definitely test his own code and also the code was written by other developers. But one thing that a developer would lack is the tester’s strategy, approach, and his mindset.
In this article, we will talk about the mindset of a developer and tester and how different it actually is. We will also emphasize on the gains of such different mindset and how a tester-developer relation be further enhanced. So let’s start with their individual approaches.
The difference between the approach of a developer and tester. A developer’s job is to create an application, while the testers are to find loopholes in it and find ways to break it. Even though the approaches are completely different, both roles point to a common goal, which is to create a stable application without any issues. During SDLC, both developers and testers work on the same application while their aim contradicts completely.
Tester’s Mindset during SDLC
- During requirement gathering phase, testers understand the application as a whole. They create Test plans, Test strategies and understand the scope of the application.
- Once the development is done and a stable and shippable product are available, they test the application rigorously on different environments and checks the overall application’s performance and functionalities.
- Testers start testing with the mindset that the development done by the developers might be faulty and need to be thoroughly tested before providing testing sign-off.
- Any defects that arose during the testing are logged in a defect tracking tool.
- Then automation scripts are created to reduce the manual overhead.
- Regression testing and retesting are performed to ensure a rock-solid product delivery.
Developer Mindset during SDLC
- Post requirement gathering developer analyzes the requirement and pinpoint the challenges involved and incorporate the best possible approach.
- Developers, irrespective of their skill, are confident about their coding. They assume their coding to be perfect and defect-free. Once coding is completed, they create unit tests and test the application according to their understanding.
- If issues arise during this phase, code patches are used to mend them.
Now that we are well aware of the individual tasks performed by developers and testers, we will now talk about the SDLC process as a whole, i.e. when developers and testers work in tandem.
- After requirement gathering has been performed, developers are mostly engaged in coding their tasks and features, while testers use the business requirement document to frame test cases, and test strategies.
- After a developer creates the unit test cases and performs at least one round of testing, the stable application is pushed to the tester’s bucket. During this phase, the developer generally sticks to the requirement or task in hand and provides test data for testing the application. Such testing has a narrow scope and can overlook a lot of possible defects.
- Now when a tester gets the developed application, he/ she goes through the requirement document and executes each test case. Also, a round of integration testing is done to ensure that the newly implemented logic or functionality doesn’t jeopardize the earlier version of the application.
- Such detailed and in-depth testing provides testers a great advantage and helps them identify defects which were missed by the developer. As testers are not involved in coding the application, they have a fresh outlook towards the application.
- Once a round of basic testing is completed, and known issues are logged, automation scripts are created and executed at periodic intervals to provide better test coverage.
- A tester is also responsible for performing different testing, the likes of Performance, API testing to eliminate any future problems. Such testing depends on the type of application and on the client’s request.
Should Tester and Developer have a Different Mindset
Now that we have found out the crude tasks of developers and testers, the question arises, “Is the different mindset among testers and developers a good trait? Well, the answer is, YES!
While the sole concern of a developer is to search solutions for the task in hand, a tester’s aim is to find flaws and vulnerable areas within the application. For this reason delegating core testing activities to testers is the best approach. When a developer tests the application, some of the test scenarios are let behind due to pre-conceived notions and lack of isolation from the code. But when a tester is put in this situation, he/ she has a fresh outlook and a better chance of targeting the loopholes.
Such difference is mindset during test execution is appreciated by most of the companies, and they have separate teams to develop and test the application.
How to get the Best of Both Worlds?
Even though testers and developers have different roles, both strive to make the application better. So for both entities to function optimally some practices can be adopted.
- Requirement grooming should be done in the presence of testers and developers. This will help developers identify bottlenecks in the requirement provided by the client and help testers to plan effectively.
- Unit tests written by developers should be reviewed by testers, to enhance the quality of the tests.
- Pair testing with developers to identify defects faster.