Software Testing
Software Testing
Software Testing
functionality.
Basically, it checks whether the software product matches anticipated
requirements and makes sure it is defect-free
Type Description
A programmatic test that tests the internal working of a unit of
Unit Testing
code, such as a method or a function.
Integration Ensures that multiple components of systems work as expected
Testing when they are combined to produce a result.
Regression Ensures that existing features/functionality that used to work are
Testing not broken due to new code changes.
System Complete end-to-end testing is done on the complete software to
Testing make sure the whole system works as expected.
A quick test performed to ensure that the software works at the
Smoke most basic level and doesn’t crash when it’s started. Its name
Testing originates from the hardware testing where you just plug the
device and see if smoke comes out.
Ensures that the software performs according to the user’s
Performance
expectations by checking the response time and throughput
Testing
under specific load and environment.
User- Ensures the software meets the requirements of the clients or
Acceptance users. This is typically the last step before the software is live, i.e.
Testing it goes to production.
Ensures that the performance of the software doesn’t degrade
when the load increases. In stress testing, the tester subjects the
Stress Testing
software under heavy loads, such as a high number of requests or
stringent memory conditions to verify if it works well.
Measures how usable the software is. This is typically performed
Usability
with a sample set of end-users, who use the software and provide
Testing
feedback on how easy or complicated it is to use the software.
Now more important than ever. Security testing tries to break a
Security software’s security checks, to gain access to confidential data.
Testing Security testing is crucial for web-based applications or any
applications that involve money.
Unit testing : It a level of the software testing process where individual
units/components of a software/system are tested.
Integration testing : It is a level of the software testing process where individual
units are combined and tested as a group.
System testing : It is a level of the software testing process where a complete,
integrated system/software is tested.
4. Acceptance testing : It is a level of the software testing process where a
system is tested for acceptability.
The purpose of this test is to evaluate the system’s compliance with the
business requirements and assess whether it is acceptable for delivery.
1. Functional Testing
Functional Testing is a type of Software Testing in which the system is tested
against the functional requirements and specifications. Functional testing
ensures that the requirements or specifications are properly satisfied by the
application.
Non-functional Testing is a type of Software Testing that is performed to verify
the non-functional requirements of the application. It verifies whether the
behavior of the system is as per the requirement or not. It tests all the aspects
that are not tested in functional testing
Performance Testing is a type of software testing that ensures software
applications perform properly under their expected workload.
In Stress Testing , we give unfavorable conditions to the system and check how
it perform in those conditions.
Smoke Testing is done to make sure that the software under testing is ready or
stable for further testing
Key Differences:
Feature Regression Testing Sanity Testing
Scope Entire system or specific modules Core functionalities
Ensure existing functionality
Goal Quick check for stability
remains intact
Test cases Re-execution of existing test cases Small subset of test cases
When to After major releases or significant
After any changes to the software
use changes
Sanity
Testing is
a high-
level
testing
process
that
verifies
the basic
functional
ity of a
software
applicatio
n after a
change or
update.
It's a quick
smoke
test to
ensure
that the
core
features
are
working
as
expected.
Acceptance testing is done by the customers to check whether the delivered
products perform the desired tasks or not, as stated in the requirements.
User Acceptance Testing is a testing methodology where clients/end users
participate in product testing to validate the product against their requirements
Exploratory Testing is a type of software testing in which the tester is free to
select any possible methodology to test the software. It is an unscripted
approach to software testing.
Adhoc testing is a type of software testing that is performed informally and
randomly after the formal testing is completed to find any loophole in the
system
Security Testing is a type of Software Testing that uncovers vulnerabilities in the
system and determines that the data and resources of the system are protected
from possible intruders.
Advantages of Software Testing