Today, I got an interesting question from a reader, How is testing carried out in a company i.e in a practical environment?
Those who just pass out from college and start searching for jobs have this curiosity, as how would be the actual working environment in a company?
Here I have focused on the actual working process of Software Testing in the companies.
As of now, I got a good experience of software testing career and day to day testing activities. So I will try to share more practically rather than theoretically.
Whenever we get any new project there is an initial project familiarity meeting. In this meeting, we basically discuss on who is the client? what is the project duration and when is its delivery? Who are all involved in the project i.e manager, Tech leads, QA leads, developers, testers etc.?
From the SRS (software requirement specification) project plan is developed. The responsibility of testers is to create a software test plan from this SRS and project plan. Developers start coding from the design. The project work is divided into different modules and these project modules are distributed among the developers.
In the meantime, the responsibility of a tester is to create test scenario and write test cases according to the assigned modules. We try to cover almost all the functional test cases from SRS. The data can be maintained manually in some excel test case templates or bug tracking tools.
When developers finish the individual modules, those modules are assigned to the testers. Smoke testing is performed on these modules and if they fail this test, modules are reassigned to the respective developers for a fix.
For passed modules, manual testing is carried out from the written test cases. If any bug is found that gets assigned to the module developer and get logged in bug tracking tool. On bug fix, a tester does bug verification and regression testing of all related modules. If bug passes the verification it is marked as verified and marked as closed. Otherwise above mentioned bug cycle gets repeated.(I will cover the bug life cycle in another post)
Different tests are performed on individual modules and integration testing on module integration. These tests include Compatibility testing i.e testing application on different hardware, OS versions, software platform, different browsers etc.
Load and stress testing are also carried out according to SRS. Finally, system testing is performed by creating virtual client environment. On passing all the test cases test report is prepared and the decision is taken to release the product!
So this was a brief outline of the process of project life cycle.
Details of each testing step:
Given below are the details of each testing step that is carried out in each software quality and testing life cycle specified by IEEE and ISO standards:
#1) SRS Review: Review of the software requirement specifications
#2) Objectives are set for Major releases
#3) Target Date planned for the Releases
#4) Detailed Project Plan is built. This includes the decision on Design Specifications
#5) Develop Test Plan based on Design Specifications
#6) Test Plan: This includes objectives, the methodology adopted while testing, features to be tested and not to be tested, risk criteria, testing schedule, multi-platform support and the resource allocation for testing.
#7) Test Specifications
This document includes technical details (Software requirements) required prior to testing.
#8) Writing of Test Cases
- Smoke (BVT) test cases
- Sanity Test cases
- Regression Test Cases
- Negative Test Cases
- Extended Test Cases
#9) Development – Modules are developed one by one
#10) Installers Binding: Installers are built around the individual product.
#11) Build procedure :
A build includes Installers of the available products – multiple platforms.
Smoke Test (BVT): Basic application test to take decision on further testing
- Testing of new features
- Cross-browser and cross-platform testing
- Stress testing and memory leakage testing.
#13) Test Summary Report
- Bug report and other reports are created
#14) Code freezing
- No more new features are added at this point.
- Build and regression testing.
#16) Decision to release the product
#17) Post-release scenario for further objectives.
This was a summary of an actual testing process in a company environment.
Kindly share your valuable suggestions and comments in the below section, so that we can implement the same in our next article.