Software Testing
Software testing is the process of evaluation a software item to detect differences between given input and expected output.
Also to assess the feature of A software item. Testing
assesses the quality of the product. Software testing is a process that should be done during the development process. In other words software testing is a
verification and validation process.
Verification
Verification is the process to make sure the product satisfies the conditions imposed at the start of the development phase.
In other words, to make sure the product behaves the way we want it to.
Validation
Validation is the process to make sure the product satisfies the specified requirements at the end of
the development
phase. In other words, to make sure the product is built as per customer requirements.
Basics of software testing
There are two basics of software testing: blackbox testing and whitebox testing.
Blackbox Testing
Black box testing is a testing technique that ignores the internal mechanism of the system and focuses on the
output generated against any input and execution of the system. It is also called functional testing.
Whitebox Testing
White box testing is a testing
technique that takes into account the internal mechanism of a system. It is
also called structural testing and glass box testing.
Black box testing is often used
for validation and white box testing is often used for verification.
Types of testing
There are many types of testing like
- Unit Testing
- Integration
Testing
- Functional
Testing
- System
Testing
- Stress
Testing
- Performance
Testing
- Usability
Testing
- Acceptance
Testing
- Regression
Testing
- Beta Testing
Unit Testing
Unit testing is the testing of an
individual unit or group of related units. It falls under the class of
white box testing. It is often done by the programmer to test that the unit he/she
has implemented is producing expected output against given input.
Integration Testing
Integration testing is testing
in which a group of components are combined to produce output. Also, the interaction
between software and hardware is tested in integration testing if software and
hardware components have any relation. It may fall under both white box testing and black box testing.
Functional Testing
Functional testing is the testing
to ensure that the specified functionality required in the system requirements
works. It falls under the class of black box testing.
System Testing
System testing is the testing to
ensure that by putting the software in different environments (e.g., Operating
Systems) it still works. System testing is done with full system implementation and
environment. It falls under the class of black box testing.
Stress Testing
Stress testing is the testing to
evaluate how system behaves under unfavorable conditions. Testing is conducted at
beyond limits of the specifications. It falls under the class of black box
testing.
Performance Testing
Performance testing is the testing
to assess the speed and effectiveness of the system and to make sure it is
generating results within a specified time as in performance requirements. It
falls under the class of black box testing.
Usability Testing
Usability testing is performed to
the perspective of the client, to evaluate how the GUI is user-friendly? How
easily can the client learn? After learning how to use, how proficiently can the client perform? How pleasing
is it to use its design? This falls under the class of black box testing.
Acceptance Testing
Acceptance testing is often done
by the customer to ensure that the delivered product meets the requirements and
works as the customer expected. It falls under the class of black box testing.
Regression Testing
Regression testing is the testing
after modification of a system, component, or a group of related units to ensure
that the modification is working correctly and is not damaging or imposing other
modules to produce unexpected results. It falls under the class of black box
testing.
Beta Testing
Beta testing is the testing which
is done by end users, a team outside development, or publicly releasing full
pre-version of the product which is known as beta version. The aim of beta
testing is to cover unexpected errors. It falls under the class of black
box testing.