Software Testing
Software Testing is an activity to examine whether or not the particular results match the expected results and make sure that the software package is bug-free. It is the process of verifying and validating software product. It will check if the software met all the business requirement to provide quality software.

Why Software Testing is used?
Software Testing helps us to find the defects before the software is deployed. So that we can rectify those defects and correct them. The ultimate goal for a product owner is to present the most effective client satisfaction. Being the most effective product during this saturated market can assist you to gain trustworthy shoppers which can have nice long-run effects. Users always look for the trusted products that they can rely on so we need to provide security too. It works on elements immediately. Users can simply look at code and include an element on an experimental basis. For this case, the manual is not only less costly to implement it could also provide quicker feedback than an automated test.
Reasons for using Software Testing
Cost-Effective
Testing the project on time can save money. software development consists of many stages and if bugs are caught in the earlier stage, it costs much less time and money to fix them.
Security
This is the most sensitive part of software testing. Users always look for the trusted products that they can rely on.
Product Quality
It’s mandatory to follow the product requirements because it helps you to yield good results and increase expectations.
Customer Satisfaction
The final goalmouth for a product holder is to provide the finest client fulfillment. User-friendly applications will help gain the trust and expectations of clients which will have great long-term benefits.
Manual Testing
We need to perform user actions directly on the application and verify the actual result with the expected result in the test case document. Here every activity is done by testers without using any automation tools. It does not require knowledge of any automation tool. 100% automation is not possible in software testing. This makes manual testing imperative. The goal of manual testing is to ensure that the application is error-free and it is working as per the requirements.
Why Manual Testing is used?
To give quality software to the customer, will do manual testing. Automation testing can be done when software is stable before that we need to perform manual testing to make sure the application is working as expected as the requirement says. It is not possible to cover all negative seniors with the help of automation testing.
What are the types of Manual Testing?
Unit Testing
It’s the testing of individual units and components performed by the developer. It’s essential for developers to unit test the software before handing over the release to QA
Integration Testing
It is performed after unit testing. It’s performed when different units, components and modules of the software are integrated.
System Testing
It’s the next step after Integration testing. System testing is carried out on a complete, fully integrated software product to evaluate the behavior of the system and its compliance with its software requirements specification.
Acceptance Testing
It’s the testing that is performed by the users before can accept the software product.
What are the phases involved in Software Testing Life Cycle?
It is a step by step procedure to check any new software.
Phases of STLC:
- Requirement Analysis
- Test Planning
- Test Case Development
- Test Environment Setup
- Test Execution
- Test Cycle Closure
Requirements Analysis
In this phase, the tester will analyze the requirements. Testers will have meetings with the team to check whether the requirements are testable or not. If any feature is not testable, communicate it during this phase so that the mitigation strategy can be planned.
Test Plan
It is the document that covers future testing related activities. It is nothing but how many test engineers are going to work on this product. Which test engineers are going to work on which particular module, how many days will test engineers take to complete this process. Which bug tracking tool we are going to use for this release.
Test case development
In this case, the testing team will prepare test cases and test scripts. Once the test cases are prepared then these test cases are reviewed by the team lead or peer members. Also, the test team will prepare a request Traceability matrix (RTM). RTM traces the requirements to the test cases that are needed to verify whether the requirements are fulfilled. This phase will include different test conditions with input data and expected outcomes.
Test Environment Setup
This phase can be started in parallel with the test case development. Test Environment setups are done based on the software and hardware requirement list. The testing team may not involve in this case. Developers or customers will provide the test environment. The testing team will perform the smoke test cases to check the readiness of the environment.
Test Execution
In this phase, the testing team will start executing the test cases which are prepared. Based on the results of test cases, the same information will be updated in the test cases. If any failure test cases are there then the testing team will prepare a defect report. This defect report will be reported to the development team through a bug tracking tool (Jira) for fixing the defects. Resting will be done once the bugs are fixed.
Test Cycle Closure
This is the final stage. The testing team will prepare a closure report, Test metrics. The testing team will be called out for a meeting to check cycle completion criteria based on test coverage, quality, time, cost, software, hardware objectives.