It is one of the significant phases of the software development life cycle that ensures the delivery of best quality software, to its end users or customers, in line with matching their expectations.
There are large number of people, which are being victimised by the myths, associated with software testing, and consider testing, inferior to the development process. However, the truth is very much different. Testing phase is as important as the development phase. Similar, to the development process, testing is a wider concept that encompasses numerous types of activities.
Let's go through the concept of software testing, in detail.
Before going through the mechanism of a process, it is desirable, to know the primary purpose of that particular process.
The main motive, behind software testing, is to attain the maximum level of quality, in a software product. The factor 'quality' is inversely proportional to the quantity of bugs or defects, present in the software product. Higher the bugs, lower will be the quality and vice-versa.
Therefore, the goal of testing, may be interpreted as, the verification of software product quality by the methodical elimination of bugs and defects.
After all, testing is done, with the vision of delivering the software product of maximum quality, to the client or stakeholders or customer, in order to satisfy their needs and expectation.
Yes, you have read the valid term, which exists and is very much similar to the software development life cycle. Performing testing over the software product, needs the implementation of a proper lifecycle, to produce effective results.
Software Testing Life Cycle defines the complete process in an organized and planned manner, from start to finish, to carry out the testing activity. The various phases in the testing life cycle are:-
Involves gathering of the requirements such as functional or business requirements, against which, the testing will be performed.
This phase deals with the analysis & feasibility study of the requirements, and accordingly, defining and preparing the plan and strategy, to carry out the testing activity.
During this phase, test cases are designed and prepared, based on the gathered requirements. These test cases are then used for the actual execution of testing activities.
This phase requires the setting up of conditions or factors in order to replicate the circumstances which perfectly simulate the real world scenarios for testing the product.
Actual testing activity is performed on the software product, with help of prepared test cases and testing tools.
Summary of the whole testing process, along with the defects, explored during the testing, are reported for the stakeholders involved i.e the client side.
Testing of the software product may be carried out, either manually or with the aid of automation.
It is a form of software testing, which does not depend on the use of automation for detection of bugs or errors in the software product. In the manual execution, test plan documentation acts as a tool or manual, to guide and direct the testing process, in order to ensure complete test coverage.
Testing types, covered under manual testing are
It is an effective and alternative approach to manual testing, which is well suited for performing testing, repeatedly, over a longer period of time. This testing approach makes use of pre-defined test scripts and automation tools, to carry out testing. Regression testing may be considered in the category of automated testing.
Both manual and automation have pros and cons. It is always recommended, to perform testing, using a mixed blend of these two forms, to generate, effective and efficient test results.
Usually, testing activity is performed at different levels of development process, using different testing techniques, which may be detailed, as under
Also known by the name of component testing, this testing is used to examine the proper functioning of each component belonging to the software product under development, before integrating them, to form the system.
This is done to ensure the proper interaction, compatibility, reliability and functioning of all the modules in aggregate or combinatorial form.
It is done, to validate the functioning of the wholly integrated system or software product, against the specified business requirements.
The purpose of acceptance testing, is to check the compliance of the software product, with its business specifications and meeting of user requirements.
The process of software testing, consists of different types of testing methodologies, depending upon various aspects, such as
Did you know that there are more than 100 testing types, existing in the field of software testing, for various purposes. Below are given some of the most commonly used variants of software testing:-
The informative attributes, formed during the phase-wise course of software testing, related to documentation work, are called test artifacts. They comprises of the following:
It is the most basic plan of action, enlisting the different tasks and objectives, related to the execution of testing.
A test case is a set of conditions, data and expected results, built to validate compliance of a software product functionality against the requirements for which it is developed.
It is a method, to collect and represent the test-case based requirements, in a tabular document format.
The observation made and the conclusions derived from the execution of test cases, are recorded, to form a useful document called test report.