Software Testing is not a standalone activity. It is a process which consists of all testing life cycle activities like static and dynamic testing, planning, preparation and evaluation of software products to determine that the software products satisfy end-user requirements and are fit for customers use.
Testing is the necessary part of software development lifecycle as it helps in finding software issues or bugs well in advance.
Definition of Software Testing as per ISTQB
ISTQB classifies testing in two parts, “Testing as a process” and “Objectives of Testing”.
Software Testing as a process
As mentioned above testing is a not a standalone activity. It is a process which consists of both static and dynamic software testing.
It includes planning, preparation, evaluation and verifying other software products and related work product.
Let us understand all of the “Testing as a Process” activities one by one.
1. Software Testing is a process
Testing cannot happen standalone, and it is relevant only when it is part of Software Development Lifecycle(SDLC). You cannot test something which is not developed. It occurs in all phases of SDLC and is a series of activities among SDLC.
In fact, testing is a lifecycle of activities that go hand in hand with SDLC activities. It starts with static testing, planning, preparation, evaluation, reporting and closure activities.
2. Software Testing is both Static & Dynamic
Testing involves both Static and Dynamic Testing.
In initial phases of Software Development Life Cycle, testers perform Static testing which includes Technical Reviews, Walkthrough, Inspection, Static Code Analysis and when the developers start delivering working build, dynamic testing starts with the intent of validating that software meets customer requirements
3. Test Planning
Planning is the crucial activity for the success of any project.
Similarly, planning is also a paramount activity in software testing.
You need to do planning to identify what is the critical goal for testing activity and what roles and responsibilities are in the testing team.
Test planning also determines the timeframe for all the testing related activities and control actions in case the testing activity is not progressing as per plan.
Planning also identifies the key deliverables from the testing team like the final test summary reporting and scripts.
4. Test Preparation
Next activity in testing is preparation. After the planning finalizes, test preparation activities start which consists of, but not limited to preparing the test cases, preparing the test environment and also preparing the test data.
Evaluation is another activity of the testing process wherein you need to evaluate the software during test execution to ensure that it is meeting the defined exit criteria, user-friendly and meets the end user/business requirements.
6. Software products and related work products
Software testing is not about just testing a piece of code or an executable file. It is testing the whole package which consists of many other related utilities and documentation like Software requirements documents(SRS), Design documents, Quick reference guide, Training Materials, User Guides, Installation guide and any other related products or documents.
Objectives of Software Testing
When we are performing software testing, there are some objectives that we want to achieve before we say that testing has been a successful activity. We say that software testing has been a successful activity only when the defined objectives fulfill.
The second classification of software testing as per ISTQB is “Objectives of testing.” Let us understand few objectives of software testing one by one.
1. Determine that software meets end-user requirements
Testing adds value to end-user or client only when it fulfills the business requirements of end users who are using that software. Software Testing verifies products against requirements.
The design document is being reviewed to ensure that it meets the requirements and during execution phase testers ensure that software meets the design and requirements.
Testing also helps in making release decisions by making sure that delivered product is meeting the business specification.
2. Confirm that Software is fit for use
Another objective of software testing is to prove that the software is fit for use.
Testing is done to ensure that software is doing what an end user is expecting it to do and it is appropriate to end users expectation.
3. Discovering Defects/Bugs in software
Finding defects/bugs is another objective of software testing. When defects are found and fixed during test execution, it improves software quality.
After doing root-cause analysis on the discovered defects, it helps to identify the cause of that defect which eventually benefits in improving the development process.