It is time for testing training and this class is on software tester responsibilities. If you want to work as a software tester or if you are already working as a software tester, it is important to know about the different tasks involved in the job of a software tester. So, let us know about these tasks. Well primarily, the job description of a software tester is to test the software and to find out any problems with the software and report those defects. This is the primary responsibility. But depending on the support required by the team and the organization for whom the software tester is working, there may be certain other responsibilities also. So let us look at those responsibilities in detail. Now, one thing to keep in mind is that testers working in smaller teams usually have a number of responsibilities because there is no one else to take care of those things. And testers working in bigger teams may have less responsibilities because there are sufficient people in the team and different responsibilities are allocated to different people in the bigger team. The first responsibility of the tester is to analyze the requirements. Now, the requirements may be available in the requirement documentation, whether it is use cases, user stories, software requirements specification, functional specification, whatever is the name of the requirement documentation, the tester should go through the requirements and make sure that he or she understands the requirements. Now when analyzing the requirements (that means reading the requirements with a critical point of view to try to understand them), it is possible to find out certain problems with the requirements. For example, there may be two requirements, which are conflicting with one another. So one requirement says something. The other requirement says something else. Or it is possible that a particular requirement is not testable. It is a wish rather than a requirement. Whatever problems are there in the requirements, the tester should bring those to the knowledge of the concerned business people so that the requirements can be corrected (made more solid). The second responsibility of the software tester is to explore the system that he or she is going to be testing. So that means getting comfortable with the system. If there is a previous version of the system available, install it. If it is a website, navigate to the website. Login to the system. Do certain tasks so as to become familiar with what is already there. And explore not only the system, but the related software. So maybe, the system uses a relational database. So, the tester should also log into the database to see what are the different tables, views, stored procedures etc. that are there in the database. And if the software uses certain built-in libraries, explore those software libraries also. The next responsibility of the software tester is to understand the project plan, first of all. So, the software tester would be working in a team and the team consists of for many different roles. Developers, business analysts, testers, technical writers… There may be a big team with many roles. So, the project plan is created for the entire team. So, what are the different testing related activities in the project plan? The tester should be aware of those. What are the different activities and what is their schedule and also sometimes, teams have a document called test plan. So the test plan contains additional information. It may contain just a schedule or it may contain other information like what is the approach that should be taken during the testing? What are the riskier areas of the system where more attention should be put? And it may contain certain assumptions or certain ways of doing things, reporting structure. All those things may be there in the other document (the test plan). So, the tester should make sure that he or she understands the project plan as well as the test plan. Then out of the tests that are assigned to the tester, the tester has to create his or her own test plan, which means that which tasks the tester is going to perform first? Which tasks depend on other tasks? So, one own work’s planning has to be done by the tester. Now obviously, this is in line with the overall project plan and in line with the overall test plan that the team is following. Now, if you see the responsibilities of the software tester are given in black and red fonts. So, black are the other responsibilities, but the red ones are the really important ones. So, one of the important responsibilities of the software tester is to write or design test cases based on requirements. So, for every requirement there should be a test case – a positive test case to see whether the requirement is satisfied by the system or not and there can be negative test cases also. So if Invalid input is given to the system, does the system handle it correctly etc.? And there may be other items on which to base the test cases. Like there may be certain standards that the system has to follow. There may be norms for the system, similar systems in the market. There may be competing systems in the market and there may be regulations governing the system. So, if you don’t know about how to write test cases based on requirements and other documents, you can go to my video that explains how to write test cases. And that gives deals with this topic in detail. But one of the prime responsibilities of the tester is to design and write the test cases to ensure that each and every requirement is correctly and completely. satisfied by the system, to test that. The next responsibility of the tester is to work to create the test data. So, test data is what the tester will use during the test. And also, the comparison data comparing what is expected with what is actually shown by the system. So if you are not familiar with test data there is another video on Test Data. Make sure you view that so you get a better understanding about what is test data. So, in order to execute the test, the tester needs test data. So, either the tester can procure the test data from somewhere, whether procured from the application database or existing test cases or they can even generate the test data automatically, whatever is required. But the test data is required in order to run the different tests. An important responsibility of the tester is to set up the test environment. So, the test environment (some people call it the QA environment also)… The test environment is an independent environment (independent of the development environment). So, the system is deployed in the test environment with all it’s prerequisites, whatever supporting software or hardware (whatever it requires). And then the testing is done on the test environment, because the developers have already developed the application in the development environment. And the once they are satisfied with it, they release it for testing. So, the tester has to set up the test environment ahead of time. So that when the system release is ready, they can deploy or install the system release on to the test environment and start the testing. It is possible that the team uses automation. Automation is not merely automated testing. Automation can be used to automatically perform certain tasks required for testing. For example automatically generating the test data or automatically running certain test cases. So, there are tasks that can be done with the help of automation in a faster and more convenient way. So, if automation is being used, the tester is responsible to build that automation and make sure it is working correctly. Then the tester has to test the system release by running the test cases and other tests. So, whatever test cases and tests are planned, the tester has to make sure that he or she runs those test cases and tests. The important task for the software tester is to find out the problems and report those defects to the concerned people. So, if it is a defect for the internal development team, the tester has to report that defect. Usually teams use a defect tracking system. The defect tracking system is sometimes part of a bigger system, such as a test management system or even a bigger project management software. So whatever is the system that is being used by the team to store their defects, the tester has to report the defects in that system to the concerned people, so that it comes to the knowledge of the relevant developer and they can analyze the defect report and take action on it. Now, let us reiterate one more time that the primary responsibility of the software tester is to test the software and report defects to the concerned persons. In detail, one more responsibility of the software tester is that to create the test logs. So, the tester can create a log, just to keep track of what testing has been done so far. So as to keep on track as per the schedule of the project. The tester may also be required to report test results to stakeholders. This reporting may be formal or informal. Formal meaning that it has to be put in the form of a documented report and sent to the project stakeholders, like the project manager, developers, test manager or all those people. Or it may be informal reporting the test results which can happen during a stand-up meeting. So, the tester has to report their test results. What is the status of the overall testing? How is the system looking go with respect to quality? So all those important information has to be communicated to the stakeholders in the project. Another responsibility of the tester is to track the defect reports that the tester has logged. Sometimes, developers return defect reports if there is insufficient information. Or they are not able to understand what is the defect or maybe they are not able to replicate the defect in their environment. So, they may return the defect report. So, the tester has to action the return defect reports and provide additional data or additional information or coordinate with the person who has written the defect report to make sure that the developer understands what the defect is all about. Developers fix the defects and after fixing in the next release of the system, the fixes are to be retested by the tester. So, the tester will take the defect report and execute the same steps which previously produced a problem and see that now the defect is resolved satisfactorily or not? Now, the tester has to write the test cases. But also in line with new requirement changes or defects that are found in the system, the tester has to keep the test cases (set which is called the test suite), updated. So, updating the test suite may require writing new test cases or updating existing test cases to make sure the entire test suite is up-to-date. If automation is being used, then the tester also has to update the automation. So, if the test cases are automated and the test cases themselves change, then the automation also has to be updated. And if the tasks are changed, then also the automation that was automatically doing those tasks has to be updated. One responsibility of the tester is to improve the overall test process. Organizations are today working in highly competitive market with a lot of pressures and constraints. And It is always a goal for the tester to make his or her testing better more efficient. So whenever there are opportunities to improve the test process, the tester should discuss these opportunities with their team to get their consensus and whatever improvements can be done, those should be done to improve the overall test process. One of the administrative responsibilities of the tester and other roles is to log their time. It is logged in the project management software or the test management software, whatever is being used by the team. And make sure that the time is correctly logged so that the correct data is available for analysis later on. The important responsibilities of the tester is not only to raise defects, but old also to raise issues with system quality. So, if for instance, there are some performance requirements of the system, but no performance testing is being done, it will never be certain whether the system satisfies those performance requirements or not. So, such a issue with the system quality that “we are not testing the system for performance at all” should be raised with the team and this is an important responsibility of the tester. The tester has to champion the system quality in the team. Because all testing is to find out what is the overall quality of the system, before it is sent to production or released to the customer. And finally, an important responsibility of the tester is to keep on learning new things, to know more about the system, to know more about the industry (that particular domain) in which the organization is working, to know the customers better, to know test techniques more test techniques/ better test techniques, learn about new tools, and it is an ongoing learning process. And there are many other measures that a tester can take to learn how to test better. So, these are the responsibilities of the software tester. So, let us recap. So overall, the prime job description of the tester is to test the software and report defects. And primarily, this involves designing and writing test cases based on the requirements, setting up the test environment, testing the system release by running the test cases and tests, reporting defects to the concerned people and also, raising issues with system quality and learning how to test better. So I hope you have a good idea about the different responsibilities of the software tester. Depending on whether you are working in a small or big team or depending on the organization of the team, you may have less responsibilities, or you may have more responsibilities. But it is always a good idea to know about the common responsibilities of software testers. So in case you are not doing something, you can start looking at doing that particular task and also, if you are you don’t have any particular skill whatever is required here, you can develop that skill and provide more value to your team and the overall system quality. That’s it. Thank you very much.