Monday, February 8, 2010

Responsibilities and Roles of a Software Test Engineer

There are many talented and promising Software Test Engineers in the industry today. Their obvious responsibilities are testing software and reporting defects. However, different companies have different sets of additional responsibilities that are assigned to their respective Software Test Engineer roles. Therefore, I thought it would be a good idea to consolidate a list of the responsibilities of a Software Test Engineer. I hope that this list would help current Software Test Engineers to acquire any skills missing in their skill set. This list would also help any aspiring Software Test Engineers to get an understanding of the responsibilities of this role. View the video, Software tester job role or read on.

Responsibilities of a Software Test Engineer

The responsibilities of a Software Test Engineer can be:
1. Go through the software requirements and get clarifications on one’s doubts (learn using my video on Requirement Analysis)
2. Become familiar with the software under test and any other software related to it
3. Understand the master test plan and/ or the project plan
4. Create or assist in creating own test plan
5. Generate test cases based on the requirements and other documents
6. Procure or create test data required for testing
7. Set up the required test beds (hardware, software and network)
8. Create or assist in creating assigned test automation
9. Test software releases by executing assigned tests (manual and/ or automated)
10. Report defects (usually in a defect database) to the stakeholders
11. Create test logs
12. Report test results to the stakeholders
13. Reply to returned bug reports (for example, when a bug report is returned as not reproducible)
14. Re-test resolved defects
15. Update test cases based on the discovered defects
16. Update test automation based on the updated test cases
17. Provide inputs to the team in order to improve the test process
18. Log own time in the project management software or time tracking system
19. Report work progress and any problems faced to the Test Lead or Project Manager as required
20. (If applicable) Support the team with testing tasks as required
21. Keep himself/ herself up-to-date on the overview of the development technology, the popular testing tools (e.g. automated testing tools and test management systems) and the overview of the business domain

As I mentioned before, one may expect the responsibilities tailored to the specific organization with which one is working. For example,
1. Small companies would have a less number of people and therefore would expect one to take care of most or all responsibilities.
2. Technology companies would focus more on the technical skills (e.g. design and development of the automation)

Overall, though the responsibilities of Software Test Engineer may remain static within an organization, it is only fair to suppose that the expectations from each responsibility would constantly increase.