Software Testing
Software Testing
Black box testing is a software testing method where in testers are not required to know coding or internal
structure of the software. Black box testing method relies on testing software with various inputs and
validating results against expected output.
13. Boundary Value Testing (BVT):
Boundary Value Testing is a testing technique that is based on concept error aggregates at boundaries. In
this testing technique, testing is done extensively to check for defects at boundary conditions. If a field
accepts value 1 to 100 then testing is done for values 0, 1, 2, 99, 100 and 101.
15. Bottom up Integration testing:
Bottom up integration testing is an integration testing approach where in testing starts with smaller pieces or
sub systems of the software till all the way up covering entire software system. Bottom up integration testing
begins with smaller portion of the software and eventually scale up in terms of size, complexity and
completeness.
16. Branch Testing:
Is a white box testing method for designing test cases to test code for every branching condition. Branch
testing method is applied during unit testing.
18. Browser compatibility Testing (BCT) :
Its one of the sub types of testing of compatibility testing performed by testing team. Browser compatibility
testing is performed for web applications with combination of different browsers and operating systems.
21. Compatibility Testing:
Compatibility testing is one of the test types performed by testing team. Compatibility testing checks if the
software can be run on different hardware, operating system, bandwidth, databases, web servers, application
servers, hardware peripherals, emulators, different configuration, processor, different browsers and different
versions of the browsers etc.,
24. Component Testing:
is a type of software testing performed by developers. Component testing is carried out after completing unit
testing. Component testing involves testing a group of units as code together as a whole rather than testing
individual functions, methods.
30. Code-driven Testing:
is related to types of testing that makes uses of frameworks like Junit, XUnit, Nunit used for Unit testing.
31. Condition Coverage Testing:
Condition coverage testing is a testing technique used during unit testing, where in developer tests for all the
condition statements like if, if else, case etc., in the code being unit tested.
Functional testing is a formal type of testing performed by testers. Functional testing focuses on testing
software against design document, Use cases and requirements document. Functional testing is a black box
type of testing and does not require internal working of the software unlike white box testing.
48. GUI (Graphical User Interface) Testing:
is aimed at testing the software GUI (Graphical User Interface) of the software meets the requirements as
mentioned in the GUI mockups and Detailed designed documents. For e.g. checking the length and capacity of
the input fields provided on the form, type of input field provided, e.g. some of the form fields can be
displayed as dropdown box or a set of radio buttons. So GUI testing ensures GUI elements of the software are
as per approved GUI mockups, detailed design documents and functional requirements. Most of the functional
test automation tools work on GUI capture and playback capabilities. This makes script recording faster at the
same time increases the effort on script maintenance.
52. Hybrid Integration Testing:
Also known as sand witch testing is a combination of both bottom up and top down integration testing
techniques. By combining both of these once can find more defects at the same time provide better
integration test coverage.
53. Happy Path Testing:
Also known as Golden path testing, this type of testing focuses on selective execution of tests that do not
exercise the software for negative or error conditions.
54. Integration Testing:
Integration testing also known as I&T in short, in one of the important types of software testing. Once the
individual units or components are tested by developers as working then testing team will run tests that will
test the connectivity among these units/component or multiple units/components. There are different
approaches for Integration testing namely, Top-down integration testing, Bottom-up integration testing and a
combination of these two known as Sand-witch testing.
55. Interface Testing:
Software provides support for one or more interfaces like Graphical user interface, Command Line
Interface or Application programming interface to interact with its users or other software. Interfaces
serves as medium for software to accept input from user and provide result. Approach for interface testing
depends on the type of the interface being testing like GUI or API or CLI.
59. Keyword-driven Testing:
Keyword driver testing is more of an automated software testing approach than a type of testing itself.
Keyword driven testing is known as action driven testing or table driven testing.
60. Load Testing:
Load testing is a type of non-functional testing; load testing is done to check the behavior of the software
under normal and over peak load conditions. Load testing is usually performed using automated testing tools.
Load testing intends to find bottlenecks or issues that prevent software from performing as intended at its
peak workloads.
61. Localization Testing:
Localization testing a type of software testing performed by software testers, in this type of testing, software is
expected to adapt to a particular locale, it should support a particular locale/language in terms of display,
accepting input in that particular locale, display, font, date time, currency etc., related to a particular locale.
For e.g. many web applications allow choice of locale like English, French, German or Japanese. So once locale
is defined or set in the configuration of software, software is expected to work as expected with a set
language/locale.
62. Loop Testing:
Loop testing is a type of white box testing technique, it is one of the most commonly used white box testing
technique while performing unit testing.
63. Monkey testing:
Monkey testing is a type of testing that can be performed by software testing team or new users of the
software. Objective of monkey testing is to use the software without any specific tests in mind. Monkey test
tries to break the software by entering incorrect dates like 31-Feb-2012 or long strings of text or numbers or
special characters etc.,
is a software testing technique that can be done by software testers, developers or Business analysts (BA). As
the name suggests, two people are paired together, one to test and other to monitor and record test results.
Pair testing can also be performed in combination of tester-developer, tester-business analyst or developerbusiness analyst combination. Combining testers and developers in pair testing helps to detect defects faster,
identify root cause, fix and test the fix.
69. Parallel Testing:
is a software testing technique, where in you test two or more versions of the software the current version
and previous version or versions of the software together to see the differences of existing functionality.
70. Path Testing:
is a type of software testing technique that is used as part of white box testing approach. Objective of path
testing is to exercise and test each of the branch statements. These testing techniques are applied by
developers while performing Unit testing.
is a type of software testing and an different approach towards testing a software. In Risk based testing,
requirements and functionality of software to be tested are prioritized as Critical, High, Medium and low. In
this approach, all critical and High priority tests are tested and them followed by Medium. Low priority or low
risk functionality are tested at the end or may not based on the time available for testing.
79. Smoke testing:
is a type of testing that is carried out by software testers to check if the new build software provided by
development team is stable enough i.e., major functionality is working as expected in order to carry out
further or detailed testing. Smoke testing is intended to find 'show stopper defects' that can prevent testers
from testing the application in detail. This testing carried out for a build is also known as build verification test.
80. Security Testing:
is a type of software testing carried out by specialized team of software testers. Objective of security testing is
to secure the software is to external or internal threats from humans and malicious programs. Security testing
basically checks, how good is softwares authorization mechanism, how strong is authentication, how software
maintains confidentiality of the data, how does the software maintain integrity of the data, what is the
availability of the software in an event of an attack on the software by hackers and malicious programs is for
Security testing requires good knowledge of application, technology, networking, security testing tools. With
increasing number of web applications necessarily of security testing has increased to a greater extent.
81. Sanity Testing:
is a type of testing that is carried out mostly by testers and in some projects by developers as well. Sanity
testing is a quick evaluation of the software, environment, network, external systems are up & running,
software environment as a whole is stable enough to proceed with extensive testing. Sanity tests are narrow
and most of the time sanity tests are not documented.
82. Scalability Testing:
is a non functional test intended to test one of the software quality attributes i.e. Scalability. Scalability test
is not focused on just one or few functionality of the software instead performance of software as a whole.
Scalability testing is usually done by performance engineering team. Objective of scalability testing is to test
the ability of the software to scale up with increased users, increased transactions, increase in database size
etc., It is not necessary that softwares performance increases with increase in hardware configuration,
scalability tests helps to find out how much more workload the software can support with expanding user
base, transactions, data storage etc.,
83. Stability Testing:
is a non functional test intended to test one of the software quality attributes i.e. Stability. Stability testing
focuses on testing how stable software is when it is subject to loads at acceptable levels, peak loads, loads
generated in spikes, with more volumes of data to be processed. Scalability testing will involve performing
different types of performance tests like load testing, stress testing, spike testing, soak testing, spike testing
etc.,
85. Static Testing:
is a form of testing where in approaches like reviews, walkthroughs are employed to evaluate the correctness
of the deliverable. In static testing software code is not executed instead it is reviewed for syntax,
commenting, naming convention, size of the functions and methods etc. Static testing usually has check lists
against which deliverables are evaluated. Static testing can be applied for requirements, designs, test cases by
using approaches like reviews or walkthroughs.
86. Stress Testing:
is a type of performance testing, in which software is subjected to peak loads and even to a break point to
observe how the software would behave at breakpoint. Stress testing also tests the behavior of the software
with insufficient resources like CPU, Memory, Network bandwidth, Disk space etc. Stress testing enables to
check some of the quality attributes like robustness and reliability.
87. System Testing:
this includes multiple software testing types that will enable to validate the software as a whole (software,
hardware and network) against the requirements for which it was built. Different types of tests (GUI testing,
Functional testing, Regression testing, Smoke testing, load testing, stress testing, security testing, stress
testing, ad-hoc testing etc.,) are carried out to complete system testing.
88. Soak Testing:
is a type of performance testing, where in software is subjected to load over a significant duration of time,
soak testing may go on for few days or even for few weeks. Soak testing is a type of testing that is conducted
to find errors that result in degeneration of software performance with continued usage. Soak testing is
extensively done for electronic devices, which are expected to run continuously for days or months or years
without restarting or rebooting. With growing web applications soak testing has gained significant importance
as web application availability is critical for sustaining and success of business.
90. System Integration Testing:
known as SIT (in short) is a type of testing conducted by software testing team. As the name suggests, focus of
System integration testing is to test for errors related to integration among different applications, services,
third party vendor applications etc., As part of SIT, end-to-end scenarios are tested that would require
software to interact (send or receive data) with other upstream or downstream applications, services, third
party application calls etc.,
92. Top-down Integration Testing:
is one of the integration testing approaches. Top down integration testing is an incremental testing approach
for integration testing where in testing of top level modules are done first before moving on to testing of
branch modules. Top down integration testing helps to find design issues in the beginning of the Integration
test stage.
94. Unit Testing:
is a type of testing that is performed by software developers. Unit testing follows white box testing approach
where developer will test units of source code like statements, branches, functions, methods OR class,
interface in OOP (object oriented programming). Unit testing usually involves in developing stubs and drivers.
Unit tests are ideal candidates for automation. Automated tests can run as Unit regression tests on new builds
or new versions of the software. There are many useful unit testing frames works like Junit, Nunit etc.,
available that can make unit testing more effective.
96. Usability Testing:
is a type of software testing that is performed to understand how user friendly the software is. Objective of
usability testing is to allow end users to use the software, observe their behavior, their emotional response
(whether users liked using software or were they stressed using it? etc.,) and collect their feedback on how the
software can be made more useable or user friendly and incorporate the changes that make the software
easier to use.
97. User Acceptance testing (UAT ):
User Acceptance testing is a must for any project; it is performed by clients/end users of the software. User
Acceptance testing allows SMEs (Subject matter experts) from client to test the software with their actual
business or real-world scenarios and to check if the software meets their business requirements.
98. Volume Testing:
is a non-functional type of testing carried out by performance engineering team. Volume testing is one of the
types of performance testing. Volume testing is carried out to find the response of the software with different
sizes of the data being received or to be processed by the software. For e.g. If you were to be testing Microsoft
word, volume testing would be to see if word can open, save and work on files of different sizes (10 to 100
MB).
99. Vulnerability Testing:
involves identifying, exposing the software, hardware or network Vulnerabilities that can be exploited by
hackers and other malicious programs likes viruses or worms. Vulnerability Testing is key to software security
and availability. With increase number of hackers and malicious programs, Vulnerability Testing is critical for
success of a Business.
100. White Box Testing:
White box testing is also known as clear box testing, transparent box testing and glass box testing. White box
testing is a software testing approach, which intends to test software with knowledge of internal working of
the software. White box testing approach is used in Unit testing which is usually performed by software
developers. White box testing intends to execute code and test statements, branches, path, decisions and data
flow within the program being tested. White box testing and Black box testing complement each other as each
of the testing approaches have potential to un-cover specific category of errors.