Testing by QA means finding any glitches or odd behavior throughout the product. Whereas Peer Test includes If the bug is fixed properly OR missed anything. Can anyone help me to elaborate more.
I will rephrase the questions a bit to help in answering.
What is the difference between Testing done by Testers and Peer Review done by Programmers/Developers?
Main difference is that there’s different mindsets.
Testers will have a product perspective, looking for a problem that is happening or could happen to a user of the application, or impacts other stakeholders interested in the product.
Developers have a code/technical perspective mostly: is code readable, understandable, was it a bad technical solution implemented, can there be any optimizations, does it affect some other components linked to it, is it extendable(future proof), are the any coding ‘misspells’, failing unit tests, merge changes, meets some basic requirements;
In my opinion the answer should be “Who performed the testing”.
That ideal is a long way off, though, so for now the difference is that the dev or devs are much more likely to be focusing on whether the software works as designed. Testers are more likely to check that the software works as designed then focus on how it interacts with the rest of the system, how usable it is, how resilient it is when it gets unexpected input, and more.
I totally agree with the quote. I worked as a tester in a company where developers tested each other’s code (like at a higher level than unit or integration testing) and I worked closely alongside so believe I saw enough to be able to contribute a few thoughts. IMHO there was a tendency for developers to focus on the happy path more than a tester would and something approaching a tendency to not want to find/investigate fault (phrases I heard were like “it’s good enough” or “a customer won’t do that”). Developers appeared to be in a bit of a hurry to move to the next development task. That being said, the positive is that there would be fewer ‘silly’ or ‘should-not-have-got-to-QA’ bugs as they were found and fixed.
To my mind, by comparison with developers, the tester mindset is methodical, rigorous and dedicated to taking appropriate time to really dig into the application (obviously respecting business time constraints).
Is there a best of both worlds? Ideally developers are performing unit and some level of integration testing before concluding the code is dev complete, but sometimes that’s not the case. In those situations I personally try to get involved (though in some of my jobs it’s not really been possible) early in the lifecycle and work as closely with the developers as possible. Ideally before they push a commit we get a quick look at the application together or if they are doing peer testing I’d ask if I could work along with them then chip in as much as possible. Any bugs we find early is time/cost/frustration saved for all .
Another point worth talking about is that Testers generally have a degree of independence from the code which allows them to see things differently from Developers.
In general, the test is more effective when the tester has certain degree of independency of the code due to differences in the cognitive biases between devs and testers. That is related to the main goals of each professional: the main goal of a developer is to design and build. The tester main goal is to check and validate the product.
Of course there are levels of independent testing and in my opinion, having a tester working directly with the team is the option that brings the most value to the project because no familiarity is lost and the efficiency is boosted.
Testing by QA and Peer testing by Dev are similar tasks and are important in their own ways.
Peer testing by Dev is the process undertaken by a developer to identify the defect in the code and make corrections accordingly. These corrections made by the developer can also impact the other areas of the application which were not having any bug.
On the other hand, if we talk about testing, it’s the exploration of a module in order to find the mis-functioning, that is called a bug. Testing does not include fixing the defects as that is taken care by the developer and thus testing is different from Peer testing by Dev. Testing verifies the functionality of the fixed area and other areas as well those may be impacted by the fix.
Effective Peer testing by Dev should be done by a developer before the code is passed on to the tester for testing the fix. This is important in order to save time for both the developer and the tester especially near the time of critical releases of the product. It can be considered as the pre-step before testing as it does not ensure that the code is ready to go and there will be no issue with the release.
Testing gives an intense examination of the product or component behavior and reports the defects found during the testing. These defects are addressed to the developer for the fix and this chain keeps on moving till the QA services provide a GO from their side.
To summarize, both Testing by QA and Peer testing by Dev are important for tester and developer in order to deliver a bug-free product.
Hope this information is helpful for you.