Software Testing Types:
White box testing –
This testing is based on knowledge of the internal logic of
an application’s code.
Internal software
and code working should be known for this type of testing. Tests are based on
coverage of code statements, branches, paths, conditions.
Testing conducted on the source code by developers to check
does the source code is working as expected or not is called white box testing.
Also known as Glass box Testing & Structural Testing.
Unit testing and
integration testing are known as white box testing.
Unit testing –
Testing of individual software components or modules.
Typically done by
the programmer and not by testers, as it requires detailed knowledge of the
internal program design and code. May require developing test driver modules or
test harnesses.
A smallest separable portion in the source code of the
application is called unit. (Functions, procedures, etc.)
It is also called
module testing or component testing.
Integration testing –
Testing of integrated modules to verify combined
functionality after integration. Modules are typically code modules, individual
applications, client and server applications on a network, etc. This type of
testing is especially relevant to client/server and distributed systems.
Once all units are tested the programmers will integrate
all units and check interactions among the units which are called integration
testing.
There is two way approach to do Integration Testing:
a.Top-Down b.Bottom-Up
Incremental integration testing –
Bottom up approach for testing i.e. continuous testing of
an application as new functionality is added
Application
functionality and modules should be independent enough to test separately.
Done by programmers or by testers.
Black box testing –
Internal system design is not considered in this type of
testing. Tests are based on requirements and functionality.
Testing is conducted on the application by test engineers
or by domain experts to check whether the application is working according to
customer requirements.
Black Box Testing is combination of System Testing, User
Accepting Testing which is called as requirement Based Testing (or)
Specification Based Testing.
It is also called as behavioural Testing.
Black box testing
is conducted by test engineers with end-user perception.
System testing –
Entire system is tested as per the requirements.
It is Black-box type testing that is based on overall
requirements specifications, covers all combined parts of a system.
It is classified into two types: Functional System Testing
& Non Functional System Testing.
Functional testing –
This type of testing ignores the internal parts and focus
on the output is as per requirement or not.
Testing the application against business requirements.
Functional testing is done using the functional
specifications provided by the client or by using the design specifications
There are different types of the functional Testing:
Unit Testing
Smoke testing / Sanity testing
Integration Testing (Top Down, Bottom up Testing)
Interface & Usability Testing
System Testing
Regression Testing
Pre User Acceptance Testing(Alpha & Beta)
User Acceptance Testing
White Box & Black Box Testing
Globalization & Localization Testing
Sanity testing –
Testing to determine if a new software version is
performing well enough to accept it for a major testing effort.
If application is crashing for initial use then system is
not stable enough for further testing and build or application is assigned to
fix.
Sanity testing is usually narrow and deep.
It is also called Tester Acceptance Testing.
Smoke Testing –
Smoke testing is conducted to ensure whether the most
crucial functions of a program are working, but not bothering with finer
details.
A Smoke test is designed to touch every part of the
application in a cursory way.
It’s shallow and wide.
Regression testing –
Testing the application as a whole for the modification in
any module or functionality.
Difficult to cover all the system in regression testing so
typically automation tools are used for these testing types.
It is process of identifying various features in the
modified build where there is a chance of getting affected and retesting these
features.
The new functionalities added to the existing system or
modifications made to the existing system or the bug fixes may introduce
side-effects. Regression testing is helpful to identify these side effects.
Positive Testing (+ve)-
Testing conducted on the application in a positive approach
to determine what system supposed to do is called positive testing.
Positive testing is helpful to check whether the customer
requirements are justifying by the application or not.
Negative Testing (-ve)-
Testing a software application with a negative perception
to check what system not supposed to do is called negative testing.
Negative testing is helpful to find defects from the
software.
Non-Functional Testing –
Testing the application against client's and performance
requirement.
Non-Functioning
testing is done based on the requirements and test scenarios defined by the
client.
There are different types of the Non-Functional Testing.
Load and Performance Testing
Ergonomics Testing
Stress & Volume Testing
Compatibility & Migration Testing
Data Conversion Testing
Operational Readiness Testing
Installation Testing
Security Testing
Stress testing –
System is stressed beyond its specifications to check how
and when it fails. Performed under heavy load like putting large number beyond
storage capacity, complex database queries, continuous input to system or
database load.
Performance testing –
Term often used interchangeably with ‘stress’ and ‘load’
testing. To check whether system meets performance requirements. Used different
performance and load tools to do this.
Load testing –
It’s a performance testing to check system behaviour under
load.
Testing an application under heavy loads, such as testing
of a web site under a range of loads to determine at what point the system’s
response time degrades or fails.
Tested for full, partial, or upgrade install/uninstall
processes on different operating systems under different hardware, software
environment.
Recovery testing –
Testing how well a system recovers from crashes, hardware
failures, or other catastrophic problems.
Can system be penetrated by any hacking way. Testing how
well the system protects against unauthorized internal or external access.
Checked if system, database is safe from external attacks.
Checking how easily the end user is able to understand and
operate the application
Checking if the application having a provision of setting
and changing languages date and time format and currency etc. If it is designed
for global users
Checking default languages currency date and time format
etc. If it is designed for a particular locality
Testing how well software performs in a particular
hardware/software/operating system/network environment and different combination
s of above.
Comparison of product strengths and weaknesses with
previous versions or other similar products.
In house virtual user environment can be created for this
type of testing. Testing is done at the end of development. Still minor design
changes may be made as a result of such testing.
Testing typically done by end-users or others. Final
testing before releasing application for commercial purpose.
Similar to system testing, involves testing of a complete
application environment.
If you tested software application by following all preplan
procedures and proper documentation then it is called formal testing.
If you test software without following any procedures and
documentation then it is called adhoc-testing. It is also called informal
testing.
Identifying the critical functionality in the system and
testing it first.
Testing functionality again or testing functionality
repetitively is called re-testing.
Testing functionality with multiple inputs to confirm if
the business validations are implemented or not.
Testing functionality on the modified build to confirm the
bug fixers are made correctly or not.
Exploring the application and testing the functionalities.
Testing conducted on
an application unevenly or zig zag way with an intension of finding tricky
defects is called monkey testing.
It is often used to discover the best coding techniques to
use for expanding a software solution.
In this testing, the tester/developer has full information
of the application’s source code, detailed network information, IP addresses
involved and all server information the application runs on. The aim is to
attack the code from several angles to expose security threats.
Ramp Testing –
Type of testing consisting in raising an input signal
continuously until the system breaks down.
It may be conducted by the testing team or the performance
engineer.
Fuzz Testing –
Software testing technique that provides invalid,
unexpected, or random data to the inputs of a program - a special area of
mutation testing.
Fuzz testing is performed by testing teams.
Requirement Testing –
In this validate that the requirements are correct,
complete, unambiguous and logically consistent and allows designing a necessary
and sufficient set of test cases from those requirements.
Really nice topics you had discussed above. I am much impressed. Thank you for providing this nice information here.
ReplyDeleteGame QA Company
Game Functionality Testing
Game Compatibility Testing
Game Compliance Testing
I was very interested in the article , it’s quite inspiring I should admit. I like visiting your site since I always come across interesting articles like this one. Keep sharing! Regards. Read more about
ReplyDeleteVery valuable post...! This information shared is helpful to improve my knowledge skill. Thank you...!
Offshore software testing services
software testing services company
software testing services
Software Qa Services
quality assurance service providers
Performance testing services
Security testing services
software testing Companies
regression testing services
The information which you have provided is very good. It is very useful who is looking for Game QA services
ReplyDeleteAbsolutely fantastic posting! Lots of useful information and inspiration, both of which we all need!Relay appreciate your work.
ReplyDeleteSoftware Testing Services
Functional Testing Services
Test Automation Services
QA Automation Testing Services
Regression Testing Services
API Testing Services
Compatibility Testing Services
Performance Testing Services
Security Testing Services
Vulnerability Testing Services
i am glad to discover this page : i have to thank you for the time i spent on this especially great reading !! i really liked each part and also bookmarked you for new information on your site.Top QA Companies
ReplyDeleteTop Automation Testing Companies
Top Mobile App Testing Companies
Top Performance Testing Companies
ReplyDeleteWonderful blog. It is really informative to all.keep update more information about this
Selenium Training in Bangalore
Selenium Training in Pune
Selenium Taining in Hyderabad
Selenium Training in Gurgaon
Selenium Training in Delhi
very very informative post for me thanks for sharing
ReplyDeleteread now