Software Testing is more than finding the bugs. It can be stated as Set of activities which are performed to check whether the application is designed, developed & working as per the customer requirements or not?
Purpose of Software Testing:
Software testing can be defined as the process of validating and verifying that a software product. Testing is conducted to check whether;
1) Application is designed as per customer requirements.
2) Working as per the customer requirements.
3) Any bugs exist in the application.
Facts about Software Testing:
- Testing is not done to provide the Quality. It is conducted to find the bugs.
- Through testing we can’t get 100% bug free product, it’s not possible all the time.
- Testing is all about checking all possible conditions i.e. valid & in valid conditions.
- In order to test any application one should know application flow.
- Minimum Data Base knowledge is required to understand how data flow is happening between front-end & back-end application.
- Testers should not test the application from developers view, should test application from customers view.
Roles & Responsibilities of Testers in a Project:
- Understanding Application related Documents:
It is very much important to get clear idea on the application i.e. need of the application, work flow of the application and also should go through the requirements documents & should review them
- Assist with preparation of test plan:
Testing process start with the preparation of Test Plan. Test plan is a document which includes introduction, assumptions, list of test cases, list of features to be tested, approach, deliverables, resources, risks and scheduling. It will be prepared by the Lead. As a tester it’s your responsibility to take part in the preparation of Test Plan.
- Preparation of Test Cases:
Before preparing the test cases it’s very necessary to have an idea on the application work flow. The basic objective of writing test cases is to validate the testing coverage of the application. Every organization has their own test case formats.
There is no assurance that, the person who authored test cases will execute them. So while preparing the test cases see that they simple, easy to understand & all the steps were in proper sequence, so that it will easy for the executioners to execute them.
- Preparation of test scripts:
If it’s necessary to automate the application, if organization accepts & if client is ready, basing on the requirement we can automate the application.
Preparation of test scripts is very crucial in the Automation process. For generating the scripts programming i.e. coding knowledge is required.
- Preparation of Test Data:
Test Data is the data which is used to test the application. Test Data may be provided by the client or if it’s necessary we have to prepare the Test Data. During the execution of test cases, we use test data and test the application. Basing on the test data the coverage of testing will depend.
There are different mechanisms which are used in preparation of the test data:
1) Boundary Value Analysis.
2) Equivalence Class Partition.
3) Error Guessing
- Execution of Test Cases:
Executing the test cases is one of the important phases in Testing. Execution is nothing but running the cases on the application. The Test cases should be executed in the manner specified. If there is no time to execute all the Test Cases, we have to execute the High Priority test cases first & then if the time permits others.
- Defect Tracking: It is the process of finding defects in a product or in Software. The defects found during the process of testing should be tracked. The defects are entered into Bug tracking tool for better maintenance.
Bugs can be detected through;
1) Smoke Testing.
2) Test Cases Execution.
3) Adhoc Testing.
4) Regression Testing.
5) Priority Based Testing.
6) Exploratory Testing.
- Retest fixed defects:
Once if the development team fixes the bug, we have to retest the application or that particular functionality.
- Attending Client Calls & Team Meetings:
It is very much important to attend the client calls or scrum calls. If we have any issues regarding requirements, validations etc, we can directly interact with the client and can get resolved. Team meetings are very important because, we can know what’s happening within the team & how tasks are being done, status of the application, any enhancements etc. If we have better ideas to develop the application we can share with the development team.
- Status Report:
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. In few organizations it is mandatory, to update status report daily.
- Assist the team members:
If it’s necessary & if it’s possible assist your team mates, in order to complete their duties.
- Be a Good Team Player:
Whether you are developer or tester it is very much important to have rapport with the members in the team.