In literal terms, testing means revealing a person’s capabilities by putting them under scrutiny or strain.
When you replace “person” with “software” in the above statement you get an apt definition of software testing. There could be many ways to describe it and a more formal definition of software testing would be:
“Software testing is an investigation conducted to provide with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation.”
Software Tester is technical person who conducts testing on software applications to ensure that intended functionality is working and ensures quality and integrity in the solution provided.
Tester is an integral part of Software Development Life Cycle and is continuously working since the beginning of the cycle because there is a lot to be done before start of testing.
Let’s take a detour to Software Development Life Cycle with tester in driving seat:
1. Requirement Gathering –
Typically, testers would wait till all the requirements are analyzed, discussed and locked in the form of Requirement Document Specification. However, in recent times with development models like Agile*, Test Managers/Leads may participate in such discussions with customers and design excerpts which gives them better clarity, control and confidence.
2. Design –
In this phase, Test team starts preparing the Test Plan when Design team is working towards the solution. The Test Lead will prepare it but as a tester it’s your responsibility to take part in the preparation of the Test Plan. Test plan documents the strategy to ensure & verify whether the product/system has met its requirement, which includes introduction of assumptions, list of test cases, list of features to be tested, risks and scheduling, deliverables, approach, resources.
3. Implementation –
This phase takes the maximum time in cycle and hence it must be well utilized by the Tester. To be ready to start the execution, testers get all the documents ready and review completed and Test Environment configured:
4. Testing –
Tester has full ownership in this phase and by this time he should have everything he needs to get going. He/She is responsible for:
5. Deployment –
For a successful software delivery, Tester must have successfully completed his testing and performed test closure activity:
Also Read: Software Tester Skills, Challenges faced by Software Tester
6. Maintenance –
In the maintenance phase, whenever customer raises an issue from live site, tester needs to perform following tasks:
It’s important to get a clear idea on the application i.e. requirement of the application, work flow of the application and before starting testing they should go through the requirements’ documents & should review them properly.
Testing process start with the preparation of Test Plan.
The Test Lead will prepare it but as a tester it’s your responsibility to take part in the preparation of the Test Plan.
Test plan documents the strategy to ensure & verify whether the product/system has met it’s requirement, which includes introduction of assumptions, list of test cases, list of features to be tested, risks and scheduling, deliverable, approach, resources.
The objective of writing test cases is to validate the testing coverage of the application.
Before preparing the test cases it’s very essential to have an idea on the application work flow. There is no assurance that the person who authored test cases will execute them.
So while preparing the test cases, ensure that they are simple, all the steps are in proper sequence, easy to understand so that it will be easy for the executioners to execute them.
Execution is nothing but running the cases on the application.
The Test cases should be executed in the specified manner.
Executing the test cases is one of the important phases in Testing. If there is shortage of time to execute all the Test Cases, execute the High Priority test cases first & then if the time permits execute the remaining ones.
Preparation of test scripts is very crucial in the Automation process.
If it’s necessary to automate the application, if organization accepts & if client is ready, on the requirement basis we can automate the application.
Scripts programming requires coding knowledge.
Test Data is the data or the inputs given, which is used to test the application.
Test Data may be provided by the client or Testers have to prepare the Test Data or it can be taken from the database itself.
During the execution of test cases, we use the test data and test the application’s behavior on entering different Test Data.
It is the process of finding defects in a product or in Software.
The defects found during the process of testing should be tracked and entered into Bug tracking tool for better maintenance.
Once the development team fixes the bug, Tester’s have to retest the application or that particular functionality again to make sure that bug is fixed.
If Tester has any issues regarding requirements, validations etc, they can directly interact with the client and can get them resolved.
Team meetings are very important because, they can know what’s going on within the team & how tasks are being done, what is the status of the application, any enhancements etc. Sharing ideas to develop the application with development team for better development.
In few organizations it is mandatory, to update status report daily.
It is a good practice to maintain Work Sheet.
During the time of reviews it will be very much useful & also we can make self analysis of the tasks that we have completed and tasks that are pending
If it’s necessary & if it’s possible assist your teammates, in order to complete their duties.
This skill is very much important in every phase of Testing, whether you are a Tester or a Developer.
In Conclusion, the below are the roles and responsibilities of a software tester :
In case of software testing, every company defines its own level of hierarchy, roles and responsibilities but on a broader level.
A Test Lead/ Test Manager is responsible for:
There you go ! Here is a brief idea about the role of a software tester that you find in general. It does vary a bit based on the company size as well as company culture but ideally it should be around the above. Let us know about your own experience by adding the comments below.