Unit IV- Testing
Unit IV- Testing
Software Testing is a type of investigation to find out if there is any default or error present in the software so
that the errors can be reduced or removed to increase the quality of the software and to check whether it fulfills the
specifies requirements or not.
The main objective of software testing is to design the tests in such a way that it systematically finds different
types of errors without taking much time and effort so that less time is required for the development of the
software.
The overall strategy for testing software includes:
1. Before testing starts, it’s necessary to identify and specify the requirements of the product in a
quantifiable manner.
Different characteristics quality of the software is there such as maintainability that means the ability to
update and modify, the probability that means to find and estimate any risk, and usability that means how it can
easily be used by the customers or end-users. All these characteristic qualities should be specified in a
particular order to obtain clear test results without any error.
3. For the software, identifying the user’s category and developing a profile for each user.
Use cases describe the interactions and communication among different classes of users and the system
to achieve the target. So as to identify the actual requirement of the users and then testing the actual use of the
product.
7. Conduct formal technical reviews to evaluate the nature, quality or ability of the test strategy and test
cases.
The formal technical review helps in detecting any unfilled gap in the testing approach. Hence, it is
necessary to evaluate the ability and quality of the test strategy and test cases by technical reviewers to improve
the quality of software.
8. For the testing process, developing a approach for the continuous development.
As a part of a statistical process control approach, a test strategy that is already measured should be
used for software testing to measure and control the quality during the development of software.
Types of Software Testing
Introduction:-
Testing is the process of executing a program with the aim of finding errors. To make our software perform
well it should be error-free. If testing is done successfully it will remove all the errors from the software.
Principles of Testing:-
Types of Testing:-
Unit Testing
It focuses on the smallest unit of software design. In this, we test an individual unit or group of interrelated
units. It is often done by the programmer by using sample input and observing its corresponding outputs.
Example:
Black Box testing: - It is used for validation. In this we ignore internal working mechanism and focused on
“What is the output?”
White Box testing : - It is used for verification. In this we focus on internal mechanism
i.e. “how the output is achieved?”
Regression Testing
Every time a new module is added leads to changes in the program. This type of testing makes sure that the
whole component works properly even after adding components to the complete program.
Example
In school record suppose we have module staff, students and finance combining these modules and
checking if on integration these module works fine is regression testing
Alpha Testing
This is a type of validation testing. It is a type of acceptance testing which is done before the product is
released to customers. It is typically done by QA people.
Verification:
Verification is the process of checking that software achieves its goal without any bugs. It is the process to
ensure whether the product that is developed is right or not. It verifies whether the developed product fulfills the
requirements that we have. Verification is Static Testing.
Activities involved in verification:
1. Inspections
2. Reviews
3. Walkthroughs
4. Desk-checking
Validation:
Validation is the process of checking whether the software product is up to the mark or in other words product
has high level requirements. It is the process of checking the validation of product i.e. it checks what we are
developing is the right product. it is validation of actual and expected product.
Validation is the Dynamic Testing.
Activities involved in validation:
System Testing
System Testing is a type of software testing that is performed on a complete integrated system to evaluate the
fulfillment of the system with the corresponding requirements.
System testing detects defects within both the integrated units and the whole system. The result of system
testing is the observed behavior of a component or a system when it is tested.
System Testing is carried out on the whole system in the background of either system requirement
specifications or functional requirement specifications or in the background of both.
System testing tests the design and behavior of the system and also the expectations of the customer. It is
performed to test the system beyond the bounds mentioned in the software requirements specification (SRS).
It has both functional and non-functional testing.
System Testing is a black-box testing
System Testing is performed after the integration testing and before the acceptance testing.
Debugging
Definition:
Debugging is the process of finding and resolving defects or problems within a computer program that prevent correct
operation of computer software or a system.
Debugging Approaches:
The following are a number of approaches popularly adopted by programmers for debugging.
Backtracking:
During this approach, starting from the statement at which an error symptom has been discovered, the
source code is derived backward till the error is discovered.
Cause Elimination Method:
In this approach, a listing of causes that may presumably have contributed to the error symptom is
developed and tests are conducted to eliminate every error.
Program Slicing:
This technique is similar to backtracking. Here the search house is reduced by process slices. A slice of a
program for a specific variable at a particular statement is that the set of supply lines preceding this statement
which will influence the worth of that variable.
Testing is used to ensure that the program is correct and it was supposed to do with a certain minimum
success rate. Testing can be manual or automated. There are several different types of testing like unit
testing, integration testing, alpha and beta testing, etc.
Debugging requires a lot of knowledge, skills, and expertise. It can be supported by some automated tools
available but is more of a manual process as every bug is different and requires a different technique.
Testing Tactics
Testing can either be done manually or using an automated testing tool:
Manual - This testing is performed without taking help of automated testing tools. Manual testing is time and
resource consuming. The tester needs to confirm whether or not right test cases are used. Major portion of
testing involves manual testing.
Automated - This testing is a testing procedure done with aid of automated testing tools. The limitations with
manual testing can be overcome using automated test tools.
Testing Approaches
Tests can be conducted based on two approaches –
Functionality testing
Implementation testing
When functionality is being tested without taking the actual implementation in concern it is known as black-box
testing. The other side is known as white-box testing where not only functionality is tested but the way it is
implemented is also analyzed.
Black-box testing
It is carried out to test functionality of the program. It is also called ‘Behavioral’ testing. The tester in this
case, has a set of input values and respective desired results. On providing input, if the output matches with the
desired results, the program is tested ‘ok’ and problematic otherwise.
In this testing method, the design and structure of the code are not known to the tester, and testing engineers
and end users conduct this test on the software.
Black-box testing techniques:
Equivalence class - The input is divided into similar classes. If one element of a class passes the test, it is
assumed that all the class is passed.
Boundary values - The input is divided into higher and lower end values. If these values pass the test, it is
assumed that all values in between may pass too.
Cause-effect graphing - In both previous methods, only one input value at a time is tested. Cause (input) –
Effect (output) is a testing technique where combinations of input values are tested in a systematic way.
Pair-wise Testing - The behavior of software depends on multiple parameters. In pair wise testing, the
multiple parameters are tested pair-wise for their different values.
State-based testing - The system changes state on provision of input. These systems are tested based on their
states and input.
White-box testing
It is conducted to test program and its implementation, in order to improve code efficiency or structure. It is
also known as ‘Structural’ testing.
In this testing method, the design and structure of the code are known to the tester. Programmers of the code
conduct this test on the code.
Department of ISM…