There is a common misconception that testing should not be done by developers and it is somehow demeaning. Au contraire, it is equally (if not more) awesome as development. In testing you get to think of ways you can break your colleagues' software/website and are actually paid to try. And if you succeed, you're not reprimanded, but congratulated!
Testing done by a programmer has several advantages:
Testing done by a programmer has several advantages:
- The tester will know how the developer thinks, so it will be easier for him to find discrepancies.
- Being a developer himself, he will be able to suggest solutions that are actually feasible.
- He can design test scripts for automated testing so he doesn't necessarily have to do it himself. Automated testing would also allow him to run thousands of test cases.
Let's go to the types of testing. It is classified mainly into the following types:
- White box (Glass box) testing and Black box testing
- Alpha testing and Beta testing
White box testing
It is also known as Glass box testing. This is done mainly by programmers in the early stages of development. This testing requires the tester to understand the internal working of the program: the control flow, backend, complexity etc. Hence it is called white/glass box testing, because the tester has to look into the metaphorical box.
Black box testing
This can be done by non programmers and is mostly done at the near-completion stages of development. As opposed to white box, the tester does not need to know the internal working. He just has to compare the desired output with the obtained output for a given range of input values.
Alpha testing
This testing is done by the developers all through development. This term is mostly heard in term of apps and software. Before the release, the developers test whether it is in fine working condition and does not unexpectedly crash or have bugs.
Beta testing
Everyone has heard this term. Developers release the beta version online so that people the world over can use it and report any bugs if they occur. They may point out some things that the developers might have missed. Also, even if there are no bugs, the developers may gain valuable inputs pertaining to how to make it more efficient, how to improve the user experience etc.
So, in conclusion, designing smart ways of testing a product is also a challenge. Plus, it's fun and you get paid for nullifying your colleagues' work.
Cheers!