Skip to main content
Post Made Community Wiki by tschaible
Source Link

The Developer should do the initial testing so that we would know the piece which we have coded would work the way it is expected to work, as per the requirements we have got. So we have do the normal testing as well as write Unit Tests for the code we have written.

The next step is the QAs' job to find out what the developers don't see when we write the code. A developer thinks in a higher level but the user might not think in the same level. When developer is testing his piece and has to enter some text in a textbox he might always enter a full string thinking user would also do that. May be user might do it too, but randomly when he enters a special character like %&$^ in the text and that breaks the application it doesn't look good at the end-user. A developer cannot and will not think about all the possibilities that could happen because he is not trained to think that way. When it comes to a QA(tester) they always think about what the user might do to break this application and try every stupid thing in the book, not the users are stupid but we should not leave anything to chance.

Now we also have to understand that there generally more than one piece done at the same time and both will be going to production. The developer could test only his piece and think that is working fine but the overall regression testing needs to be done for all the pieces that are being pushed as well as to find out that the combination of two different pieces could break the application and it does not look good either. We also have to consider the load testing scenarios and other things the testers are more acquainted of.

Finally we have to go through UAT(User Acceptance Test) to see if the piece we did is what that is expected. Generally though the requirements get through BAs the final person might not exactly know how it looks like and he/she might think its not what they expected or they might want to add something else to make it look better or for some reason they might scrap the whole piece as they think the piece would not go with the already functionality available.

As explained above these are very important and cannot be done by the developer alone and are absolutely needed for the application to work fine. The management can say this is a conservative approach but it is the better approach. We can make some tweaks to the above said but cannot avoid as of whole.