Software testing is a process of executing a program or application with the intent of finding the software bugs and debugs. It can be stated as a process of validating and verifying that a software product or an application:-
- It works as we expect.
- Can be implemented as the same characteristic.
- Meets the business and technical requirements that guided its design and development.
It is a process used to identify the correctness, completeness and quality of developed computer software. It includes a set of activities contended with the intent of finding errors in software so that it could be corrected before the product is release to end the users. In simple language we can say software testing is an activity to check whether the actual results match the expected results to ensure the software system is defected free.
As the number of possible tests for even a simple software components is practically infinite all software testing uses some strategies to select the tests that are feasible for the available time and resources. Software testing typically attempts to execute a program or an application with the intent of finding bugs and debugs. The job of testing is an iterative process as one bug is fixed, it can illuminate other, deeper bugs or can create others. The overall approach to software development often determines when and how testing is conducted. Like we take an example:- In a phased process, most testing occurs after system requirements have been defined and then implemented in testable programmes.
Software testing can be done by software testers. Until the 1980’s, the term “software tester” was used generally but later it also seen as separate profession. Regarding to the periods and different goals in testing different roles have been established: – Manager, Test lead, Test analyst, Test designer, Tester, Automation developer and test administrator.
Levels of testing”-
There are mainly four recognized levels of test unit testing, integration testing, component interface testing and system testing. Tests are frequently grouped by where they are added in software development process or by the level of specify test. The main levels during the development process are defined as unit, integration, testing that is distinguished by the test target without implying a specific process model. Other test levels are classified by the testing objective. There are two different levels of test from the perspective of customers: – Low level testing, High level testing. Low level testing is a group of tests of different level of components of software application or product. High level testing is a group of tests for the whole software application or product.
A common process of software testing is that testing performed by an independent group of testers after the functionality is developed, before it is shipped it to the customer. This practice often results in the testing phase being used as the project buffer to compensate the project buffers for project delays, thereby compromising the time devoted to testing. Another way is to start software testing at the same monument the project starts and it is continuous process until the project finishes.