Software testers come in many shades. Some software testers are actually programmers who can write source code. Some other testers are more of business analysts. There could also be testers who are more like software hackers. Let us understand what are all these shades of work any software tester is required to do.
Some software tester’s work involves writing source code. Who are these testers and why they are still called testers even though they are doing a job similar to a software developer? In software testing, test automation is one job which is always present on software projects. On most of software projects, some amount of incremental software development is done. In this scenario, regression testing is always a part of testing efforts. Regression testing is done to ensure that old product features still work after integration of new product features. These regression tests are performed after each release of the software product is launched. Doing regression testing is tedious and time consuming. It is better to have test scripts which when run can do all the regression tests automatically. This way manual running of the regression tests can be avoided. Test scripts are programs which need to be developed programmatically. Some software tester’s job on a project is to write these automation scripts for regression tests.
Similarly unit tests also need to be developed for performing unit testing. A software tester or a software developer writes the unit tests. These unit tests are again used for regression testing as well. Since these unit tests are software programs, they can run automatically.
A large part of testing effort is required for performing system level testing. System level testing is done by testers who have business knowledge. This is especially true when functional testing (a part of system level testing) is done. Functional testing requires functional knowledge of the software product which is being tested.
Security functionality of a software product is also done at system level testing. A software product should be secure so that it is not hacked by anyone who can steal data or destroy the software product. A software tester tests the software product by trying to hack it like a hacker. Good hacking skills like finding security holes in the product and finding if unauthorized access to the product can be done is essential for a software tester to find these security risks so that they can be fixed.
So you can see a software tester can have many shades of work which are integral part of any software testing work.