Testing is a process to detect and remove errors from the software product.
The purpose of testing is to show that the program performs its internal functionalities correctly.
It is the process to meet specifications of a software in order to improve quality and reduce risk in the software.
It is the procedure used to execute a program with intent of finding errors.
Software Quality Vs. Software Quality Testing
Software quality is the ability of the software product to perform as per the requirement with highest level of satisfaction to the users.
Software quality testing is the process of evaluating the system or its components in order to draw out defects.
Quality of a software product directly depends upon software testing process. If testing process is able to minimize as many defects as possible then, the software product obtained will be of highest quality.
The two major types of testing typically used to obtain quality software are:
Software Quality Testing : Functional-Testing
It is a type of testing that can be used to assess the features and functionality of the system or software product.
Functional-Testing has a special feature with the help of which each and every function of a software product so that it can be verified with requirement specifications.
Software Quality Testing : Functional-Testing Need
Checking a software product for its functionalities is the prime objective of functional-testing. It mainly focuses on:
Basic Usability: It deals with basic usability testing of software product which involves basic functionalities of user interface and navigation through pages.
Mainline Functions: Main functions and features are tested of the software product.
Accessibility: To check, how much the software product is accessible to users.
Error Conditions: Error conditions either generate warnings or displays error messages, if any.
Software Quality Testing : Structural-Testing
The structure of a software product is responsible for designing test cases in order to test a software product.
Since, the whole structure is known, it is also known as white box testing.
Structural-Testing is more technical than functional-testing as it attempts to design test cases from the source code and not from the specifications
The major structural testing approaches are:
Statement Coverage: In this, the aim is to achieve 100% statement coverage i.e. each and every statement of program is executed.
Branch Coverage: In this, the aim is to achieve 100% branch coverage i.e. every branch either containing “true” or “false” conditions needs to be executed.
Path Coverage: This technique corresponds to test all possible paths i.e. it is a combination of branch and statement coverage techniques.