Saturday 29 August 2015

Roles and Responsibilities of a Software Tester/ Lead

1. Be updated on the latest testing techniques, strategies, testing tools/ test frameworks and so on
2. Be aware of the current and upcoming projects in the organization
3. Review and analyze the project requirements
4. Plan and organize the knowledge transfer to the Software Test Engineers and self
5. Collect the queries related to the requirements and get them resolved by the business person (e.g. the client, business analyst, product manager or project manager) assigned to the project
6. Plan, organize and lead the testing kick-off meeting
7. Scope the required tests
8. Design the required test strategy in line with the scope and organization standards
9. Create the software test plan, get it reviewed and approved/ signed-off by the relevant stakeholders
10. Evaluate and identify the required test automation and test management tools
11. Estimate the test effort and team (size, skills, attitude and schedule)
12. Create the test schedule (tasks, dependencies and assigned team members)
13. Identify the training requirements of the Software Test Engineers
14. Identify any test metrics to be gathered
15. Communicate with the client or on site/ offshore team members, as required
16. Review the test cases and test data generated by the Software Test Engineers and get them to address the review comments
17. Track the new/ updated requirements in the project and modify testing artifacts accordingly
18. Determine, procure, control, maintain and optimize the test environment (hardware, software and network)
19. Get information on the latest releases/ builds from the development team/ the client
20. Create and maintain the required test automation framework(s)
21. Administer the project in the test management system
22. Administer the Application under test (e.g. add users for the tests), as required
23. Assign tasks to the Software Test Engineers based on the software test plan
24. Check the status of each assigned task daily and resolve any issues faced by the team members with their tasks
25. Ensure that each team member is optimally occupied with work (i.e. each Software Test Engineer should not be too overloaded or too idle)
26. Re-assign the testing tasks, as required
27. Track the assigned tasks with respect to the software test plan and the project schedule
28. Review the test automation created by the Software Test Engineers and get them to address the review comments
29. Own and maintain the test automation suite of the project
30. Schedule and execute the test automation on the project
31. Review defect reports  and assign valid defects to the relevant developer/ development manager
32. Assign returned defect reports and assist the concerned Software Test Engineer, as required
33. Ensure the resolved defects are re-tested
34. Consolidate and report test results to the concerned stakeholders
35. Be approachable and available to the Software Test Engineers, as required by them
36. Update the software test plan, as required
37. Ensure that the test cases are updated by the Software Test Engineers, as required
38. Ensure that the test automation is updated based on the updated test cases
39. Gather the decided test metrics
40. Escalate and obtain resolution of the issues related to the test environment and team
41. Plan, organize and lead team meetings and ensure action is taken based on the team discussions
42. Plan and organize training for the Software Test Engineers
43. Review the status reports of the Software Test Engineers
44. Review the time logged by the Software Test Engineers for various activities
45. Report the status to the stakeholders (e.g. the client, project manager/ test manager and the management)
46. Keep the Software Test Engineers motivated
47. Improve the test process based on the suggestions by others and own judgment
48. Manage own energy level and time


**********************************************************
Responsibilities of a Software Test Engineer :
 

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 


**********************************************************
1. Prepare Software QA Test Plan.
2. Estimate and review QA efforts as part of the overall development effort Check / Review QA artefacts
3. System, Integration and User Acceptance prepared by test engineers.
4. Get involved in analysing requirements during the requirements analysis phase of projects.
5. Keep track of the new requirements from the Project.
6. Forecast / Estimate the Project future requirements.
7. Arrange the Hardware and software requirement for the Test Setup.
8. Develop and implement test strategies.
9. Escalate the issues about project requirements (Software, Hardware, Resources) to Project Manager / QA Lead
10. Assign task to other QA Team members and ensure that all of them have sufficient work in the project.
11. Attend the regular client call and discuss the weekly status with the project leadership team.
12. Track and report upon testing activities, including testing results, test case coverage, required resources, defects discovered and their status, performance baselines, etc.
13. Assist in performing any applicable maintenance to tools used in Testing and resolve issues if any.
14. Ensure content and structure of all Testing documents / artefacts is documented and maintained.
15. Document, implement, monitor, and enforce all processes and procedures for testing is established as per standards defined by the organization.
16. Review various reports prepared by QA Engineers.
17. Log project related issues in the defect tracking tool identified for the project.
18. Check for timely delivery of different milestones.
19. Identify Training requirements and forward it to the Project 

Manager/QA Lead 

**********************************************************
 
1) Analyzing the Requirements from the client
2) Participating in preparing Test Plans
3) Preparing Test Scenarios
4) Preparing Test Cases for module, integration and system testing
5) Preparing Test Data’s for the test cases
6) Preparing Test Environment to execute the test cases
7) Analyzing the Test Cases prepared by other team members
8) Executing the Test Cases
9) Defect Tracking
10) Giving mandatory information of a defect to developers in order to fix it
11) Preparing Summary Reports
12) Preparing Lesson Learnt documents from the previous project testing experience
13) Preparing Suggestion Documents to improve the quality of the application
14) Communication with the Test Lead / Test Manager
15) Conducting Review Meetings within the Team