what is software testing,what we need to about software testing,Relevance of software testing
Published: 2023-12-02 13:22:02

Software Testing can be broadly classified into 3 types: 

Functional Testing:
=====================
 Functional testing is a type of software testing that validates the software systems against the functional requirements. It is performed to check whether the application is working as per the software’s functional requirements or not. Various types of functional testing are Unit testing, Integration testing, System testing, Smoke testing, and so on.
Non-functional Testing:
===========================
 Non-functional testing is a type of software testing that checks the application for non-functional requirements like performance, scalability, portability, stress, etc. Various types of non-functional testing are Performance testing, Stress testing, Usability Testing, and so on.


Manual Testing:
================
 Manual testing includes testing software manually, i.e., without using any automation tool or script. In this type, the tester takes over the role of an end-user and tests the software to identify any unexpected behavior or bug. There are different stages for manual testing such as unit testing, integration testing, system testing, and user acceptance testing. Testers use test plans, test cases, or test scenarios to test software to ensure the completeness of testing. Manual testing also includes exploratory testing, as testers explore the software to identify errors in it. 
Automation Testing:
====================
 Automation testing, which is also known as Test Automation, is when the tester writes scripts and uses another software to test the product. This process involves the automation of a manual process. Automation Testing is used to re-run the test scenarios quickly and repeatedly, that were performed manually in manual testing.
Apart from regression testing, automation testing is also used to test the application from a load, performance, and stress point of view. It increases the test coverage, improves accuracy, and saves time and money when compared to manual testing.

Preparation:
===============
Once you know what you have to do, you have to build the foundation for testing. This includes preparing the test environment, collecting test-cases, researching product features and test-cases. Gathering tools and techniques for testing and getting familiar with them should also be done here.

Execution:
============
This is when you actually run tests on the product. You execute test-cases and collect the results. Then you compare the results with the expected result and see if the product is working as expected or not. You make a note of all the successful and failed tests and test-cases.

Reporting:
=============
This is the last phase of software testing where you have to document all your findings and submit it to the concerned personnel. Test-case failures are of most interest here. A proper and clear explanation of tests run and outputs should be mentioned.

For complex tests, steps to reproduce the error, screenshots, and whatever is helpful should be mentioned.

Two Ways to Test:
====================
As we know, in the current age of machines, everything that involves manual effort is slowly automated. And the same thing is happening in the testing domain. There are two different ways of performing software testing—manual and automation.

Manual labor in any field requires a lot of time and effort. Manual testing is a process in which testers examine different features of an application. Here, the tester performs the process without using any tools or test scripts. Without using any automated tools, testers perform execution of different test cases. Finally, they generate a test report.

Quality assurance analysts test the software under development for bugs. They do so by writing scenarios in an excel file or QA tool and testing each scenario manually.

But in automated testing, testers use scripts for testing (thus automating the process). The pre-scripted tests run automatically to compare actual and expected outcomes. With test automation, when constant human intervention is not necessary, things like regression testing and execution of repetitive tasks don’t seem like much effort. 

Relevance of software testing:
=================================
A definitive objective for a product owner is to give the best consumer loyalty.  The reason why apps and software should be tested is to bring the best user experience possible. Being the best product in this immersed market will assist you with increasing reliable customers which will have incredible long haul impacts. When clients will have astounding client experience they will, point of fact, advise their companions, and word to mouth will cause it to publicize itself, yet this works the two different ways.