3. Static Testing/ Dynamic Testing
Static testing is a software testing technique that
involves evaluating a software application's code,
requirements, and design without executing the
static testing focuses on identifying defects,
inconsistencies, and potential issues through a
thorough review of the software artifacts.
4. static testing
Static testing is a verification process used to test the
application without implementing the code of the
application. And it is a cost-effective process.
To avoid the errors, we will execute Static testing in the
initial stage of development because it is easier to
identify the sources of errors, and it can fix easily.
5. Need for static testing
Detection of Bugs/ Flaws at earlier stages –
Increased size of software –
Dynamic Testing is time-consuming –
Dynamic Testing is expensive
Early Defect Detection: Static testing identifies issues
before code execution, reducing the cost and effort
required for later-stage bug fixing.
Improved Quality: Identifying and rectifying defects
early results in higher-quality software.
Knowledge Sharing: Team members can learn from each
other's work and perspectives during the review process.
Process Improvement: Static testing helps identify areas
where processes, coding standards, or documentation
templates can be improved.
In static testing review is a process or technique that is
performed to find the potential defects in the design of
It is process to detect and remove errors and defects in
the different supporting documents like software
People examine the documents and sorted out errors,
redundancies and ambiguities. Review is of four types:
9. Software Inspection
Inspection process is performed in the earlier stages of
the SLDC and is applied to a specific part of product
like SRS, code, product design. etc.
It involves manually examining the various
components of the product at the earlier stages.
The software inspection process comprises six phases
which are as follows :
It is basically performed by experienced person or
expert to check the defects so that there might not be
problem further in the development or testing phase.
In informal review the creator of the documents put
the contents in front of audience and everyone gives
their opinion and thus defects are identified in the
12. Peer review:
Peer review means checking documents of one-
another to detect and fix the defects. It is basically
done in a team of colleagues.
Time and Resources: Conducting thorough static
testing requires time and resources, which may impact
Subjectivity: Interpretation of code and design may
vary among team members, leading to differing
opinions on issues.
Resistance: Developers might resist code reviews,
considering them as slowing down their development
14. Static Analysis:
Static Analysis includes the evaluation of the code
quality that is written by developers.
Different tools are used to do the analysis of the code
and comparison of the same with the standard. It also
helps in following identification of following defects:
(a) Unused variables (b) Dead code (c) Infinite loops
(d) Variable with undefined value (e) Wrong syntax
17. Cyclomatic Complexity:
Cyclomatic complexity defines the number of
independent paths in the control flow graph made
from the code or flowchart so that minimum number
of test cases can be designed for each independent
18. Dynamic Testing
Dynamic testing is a software testing technique that
involves evaluating the behavior of a program or
system while it's running.
This type of testing focuses on assessing the software's
performance, responsiveness, stability, and
functionality under various conditions.
Dynamic testing is generally performed by executing
the software and observing its behavior in real-time.
19. Key aspects
Execution: In dynamic testing, the software is
executed with input data, and its output is compared
against expected outcomes. This allows testers to verify
whether the actual behavior matches the intended
Functional Testing: Dynamic testing encompasses
various types of testing, including functional testing,
where the software's features and functions are tested
against the requirements specified in the design or
20. Non-functional Testing: Dynamic testing also
includes non-functional testing, which focuses on
aspects like performance, load, stress, and security.
These tests evaluate how well the software performs
under different conditions and stress levels.
Automation: Dynamic testing can be automated
using testing tools and frameworks. Automated tests
can repeat the same actions with different inputs and
compare the results with expected outcomes
21. Key aspects
Black Box Testing: Dynamic testing is often
associated with black-box testing, where testers focus
on evaluating the software's external behavior without
necessarily knowing its internal implementation
White Box Testing: However, dynamic testing can
also involve white-box testing, which considers the
internal logic and code structure of the software. This
is sometimes referred to as code-based testing.
22. Types of Dynamic Testing
Some common types of dynamic testing include unit
testing, integration testing, system testing, regression
testing, performance testing, load testing, stress
testing, security testing, and usability testing.
Dynamic testing helps identify bugs, defects, and
vulnerabilities in the software by simulating real-world
usage scenarios. It provides valuable insights into how
the software behaves in different situations.
Dynamic testing may not uncover all defects, and it's
often not feasible to test every possible scenario. It
requires a good understanding of the software's
behavior and potential issues that may arise.
25. Iterative Process:
Dynamic testing is typically performed iteratively
throughout the software development lifecycle. As the
software evolves, different testing techniques are
applied to ensure its reliability and quality.
dynamic testing plays a crucial role in ensuring the
quality and functionality of software applications by
assessing their behavior in real-world scenarios.
It complements other testing techniques, such as static
testing, which involves reviewing code and
documentation without executing the software.
28. Regression Testing
Regression testing is a type of software testing that
focuses on verifying that new code changes or updates
to a software application do not negatively impact the
existing functionality of the system.
The primary goal of regression testing is to ensure that
new changes do not introduce new bugs, defects, or
errors while maintaining the integrity of the software.
The purpose of regression testing is to detect any
unintended side effects caused by new code changes.
It ensures that modifications to the software do not
break existing features or functionalities.
30. When can we perform Regression
When new functionality added to the application.
When there is a Change Requirement.
When the defect fixed
When there is a performance issue fixed..
When there is an environment change
Re-testing is a testing technique that is used to verify that
defects that were found in a software system have been
This technique involves retesting a specific part of the
software that was previously identified as having a defect.
Re-testing is typically performed after a bug has been
fixed, and the software has been reworked to address the
The objective of re-testing is to ensure that the specific
issue that was previously identified has been resolved and
the software now works as expected.
32. Usability/accessibility testing
Usability testing is a method of testing the
functionality of a website, app, or other digital product
by observing real users as they attempt to complete
tasks on it.
The users are usually observed by researchers working
for a business during either an in-person or, more
commonly, a remote usability testing session.
33. Usability cycle
the product is ready,
customers are asked to test it,
if found any further changes,
product (software) is returned to the development
team with feedback to update the changes,
again the software had to run usability testing,
if there’re no more changes required,
the software is launched in the market.
35. Techniques/Methods of Usability
It is a type of testing where testers wander to public
places and ask random users about the prototype.
Also, a thank gift is offered to the users as a gesture of
token. It is the best way to perform usability testing
during the early phases of the product development
36. Usability Lab
Usability lab testing is conducted in a lab environment
where moderators (who ask for feedback on the
product) hire participants and ask them to take a
survey on the product. This test is performed on a
37. Screen or Video Recording
Screen or video recording kind of testing is in which a
screen is recorded as per the user’s action (navigation
and usage of the product). This testing describes how
the user’s mind runs while using a product.
38. Need for Usability Testing
Usability testing provides some benefits and the main
benefit and purpose of usability testing are to identify
usability problems with a design as early as possible, so
they can be fixed before the design is implemented or
mass produced and then such, usability testing is often
conducted on prototypes rather than finished
products, with different levels of fidelity depending on
the development phase.
39. Accessibility Testing
Accessibility testing is another type of software
testing used to test the application from the physically
challenged person's point of view.
Here the physical disability could be old age, hearing,
color blindness, and other underprivileged groups.
It is also known as 508 compliance testing.
In this, we will test a web application to ensure that
every user can access the website
41. The Law for Accessibility testing:
Web content accessibility guidelines: These
strategies are established to serve a purpose, which
helps us to increase the user-friendliness of a website.
Rehabilitation Act, section 504, and section 508:
Section 504: This section will help people with
disabilities by providing workspace access, education,
and other organizations.
Section 508: Section 508 will help those people by
giving access to technology.
43. Purpose of Accessibility testing
Hearing Deficiency: In this, the person is not able to hear or
hear clearly and has sensory issues such as hearing disabilities
Learning Impairment: The people who are facing reading
Physical Disabilities: In this type of disability, the people are
not capable of using the Keyboard or the Mouse with one hand
and facing the problem in hand activities, muscle detention, and
reduced motor abilities.
Visual Impairments: The visual or vision disabilities define
that when a person has complete blindness, poor vision abilities,
color blindness, and flashing effect problems and visual strobe.
Cognitive Deficiency: In this, the person will have poor
memory, not able to recognize more complex scenarios, and
44. Manual accessibility testing
Modifying the font size to large: We can use the large font size
and check the availability.
Testing for captions: Here, we will test that a caption should be
visible and also ensure that it is expressive. As we know that
while we are accessing the Facebook application, sometimes the
images and videos take lots of time to load, where the captions
will help us to understand what is in the pictures and video.
By deactivating the style: We can disable the method and test
if the content of the table is accurately lined up or not.
We can use high contrast mode: If we can use high-contrast
mode, we can highlight the website's content. When we turn the
high contrast mode in our windows, the content of the site gets
highlighted automatically as it turns into white or yellow, and the
background turns black.
45. Smoke testing
The purpose of smoke testing is to determine whether
the build software is testable or not.
The focus of Smoke Testing is on the workflow of the
core and primary functions of the application.
Testing the basic & critical feature of an application
before doing one round of deep, rigorous testing
(before checking all possible positive and negative
values) is known as smoke testing.
Smoke testing does not require to design test cases.
“Built verification testing”
47. Advantages of smoke testing
It is a time-saving process.
In the early stage, we can find the bugs.
It will help to recover the quality of the system, which
decreases the risk.
It is easy testing to perform because it saves our test
effort and time.
48. Sanity testing
Sanity testing is a type of software testing that aims to
quickly evaluate whether the basic functionality of a
new software build is working correctly or not.
It is usually performed on builds that are in the initial
stages of development, before the full regression
testing is performed.
Generally, Sanity testing is performed on stable builds
and it is also known as a variant of regression testing.
“Surface level testing”
49. Sanity testing
The primary aim of executing the sanity testing is to
define that the planned features work unevenly as
expected. If the sanity test fails, the build is refused to
save the costs and time complexity in more severe
The execution of sanity testing makes sure that new
modifications don't change the software's current
It also validates the accuracy of the newly added
features and components.
50. Advantages of Sanity Testing
It helps us to find any deployment or compilation
It is less expensive as compared to other types of
It helps in rapidly finding the bugs in the core
There is no documentation mandatory for sanity
testing, that's why it can be executed in lesser time
51. Unit testing
In a testing level hierarchy, unit testing is the first level
of testing done before integration and other remaining
levels of the testing.
It uses modules for the testing process which reduces
the dependency of waiting for Unit testing
frameworks, stubs, drivers and mock objects are used
for assistance in unit testing.
53. Unit testing
Unit testing helps tester and developers to understand
the base of code that makes them able to change defect
causing code quickly.
Unit testing helps in the documentation.
Unit testing fixes defects very early in the development
phase that's why there is a possibility to occur a smaller
number of defects in upcoming testing levels.
It helps with code reusability by migrating code and
54. Advantages of Unit testing
Unit testing uses module approach due to that any
part can be tested without waiting for completion of
another parts testing.
The developing team focuses on the provided
functionality of the unit and how functionality should
look in unit test suits to understand the unit API.
Unit testing allows the developer to refactor code after
a number of days and ensure the module still working
without any defect.
It cannot identify integration or broad level error as it
works on units of the code.
In the unit testing, evaluation of all execution paths is
not possible, so unit testing is not able to catch each
and every error in a program.
It is best suitable for conjunction with other testing
56. Integration testing
Integration testing is the second level of the software
testing process comes after unit testing.
In this testing, units or individual components of the
software are tested in a group.
The focus of the integration testing level is to expose
defects at the time of interaction between integrated
components or units.
59. Incremental approach
In the Incremental Approach, modules
are added in ascending order one by
one or according to need.
The selected modules must be
logically related. Generally, two or
more than two modules are added and
tested to determine the correctness of
The process continues until the
successful testing of all the modules.
60. Top down approach
The top-down testing strategy
deals with the process in which
higher level modules are tested
with lower level modules until
the successful completion of
testing of all the modules.
Major design flaws can be
detected and fixed early because
critical modules tested first.
In this type of method, we will
add the modules incrementally or
one by one and check the data
flow in the same order.
61. Top down approach
Identification of defect is difficult.
An early prototype is possible.
Due to the high number of stubs, it gets quite
Lower level modules are tested inadequately.
Critical Modules are tested first so that fewer chances
62. Bottom up approach
In the bottom-up method, we will ensure that the
modules we are adding are the parent of the
previous one as we can see in the below image:
63. Bottom up approach
Identification of defect is easy.
Do not need to wait for the development of all the
modules as it saves time.
Critical modules are tested last due to which the
defects can occur.
There is no possibility of an early prototype.
64. Non Incremental method
We will go for this method, when the data flow is very
complex and when it is difficult to find who is a parent
and who is a child.
And in such case, we will create the data in any
module bang on all other existing modules and check
if the data is present. Hence, it is also known as
the Big bang method
65. Big bang method
In this approach, testing is done
via integration of all modules at
It is convenient for small
software systems, if used for large
software systems identification of
defects is difficult.
Since this testing can be done
after completion of all modules
due to that testing team has less
time for execution of this process
so that internally linked
interfaces and high-risk critical
modules can be missed easily.
66. Big bang approach
It is convenient for small size software systems.
Identification of defects is difficult because finding the
error where it came from is a problem, and we don't
know the source of the bug.
Small modules missed easily.
Time provided for testing is very less.
We may miss to test some of the interfaces.
67. System testing
System Testing includes testing of a fully integrated
The software is developed in units and then interfaced
with other software and hardware to create a complete
To check the end-to-end flow of an application or the
software as a user is known as System testing
It is end-to-end testing where the testing
environment is similar to the production environment
68. System testing
System testing falls under Black box testing as it
includes testing of the external working of the
Testing follows user's perspective to identify minor
69. Steps in system testing
Verification of input functions of the application to
test whether it is producing the expected output or
Testing of integrated software by including external
peripherals to check the interaction of various
components with each other.
Testing of the whole system for End to End testing.
Behavior testing of the application via auser's
71. User Acceptance Testing
User acceptance testing (UAT) is an important phase
of the software development process that verifies
whether a product or software is fit for the purpose it
was built for in the first place.
It also checks weather the system
Fulfills business requirements
Provides a good user experience (UX) for end-users
73. Purpose of User Acceptance
Ensure that the software is user-friendly and easy to
Identify any defects or bugs that need to be fixed
Verify that the software meets the requirements and
specifications of the end-users or client and is suitable
for its intended purpose.
Confirm that the software is ready for deployment.
74. Types of User Acceptance Tests
Alpha testing: This type of test is typically conducted
by a small group of internal users, and is used to
identify any major issues with the software before it is
released to a larger group of users.
Beta testing: This type of test is typically conducted by
a group of external users and is used to identify any
remaining issues with the software before it is released
to the general public.
75. Alpha testing
Alpha testing takes place at the developer's site by the
internal teams, before release to external customers.
This testing is performed without the involvement of the
In the first phase of alpha testing, the software is tested by
in-house developers during which the goal is to catch bugs
In the second phase of alpha testing, the software is given
to the software QA team for additional testing.
Alpha testing is often performed for Commercial off-the-
shelf software (COTS) as a form of internal acceptance
testing, before the beta testing is performed.
76. Beta testing
Beta testing also known as user testing takes place at
the end users site by the end users to validate the
usability, functionality, compatibility, and reliability
Beta testing adds value to the software development
life cycle as it allows the "real" customer an
opportunity to provide inputs into the design,
functionality, and usability of a product
These inputs are not only critical to the success of the
product but also an investment into future products
when the gathered data is managed effectively.
77. Factors that depends on the
success of beta testing:
Number of Test Participants
Duration of Test
80. White box testing
White box testing is a testing technique, that examines
the program structure and derives test data from the
White box testing is a software testing technique that
involves testing the internal structure and workings of
a software application.
The tester has access to the source code and uses this
knowledge to design test cases that can verify the
correctness of the software at the code level
81. Working process of white box
Input: Requirements, Functional specifications,
design documents, source code.
Processing: Performing risk analysis to guide through
the entire process.
Proper test planning: Designing test cases so as to
cover the entire code. Execute rinse-repeat until error-
free software is reached. Also, the results are
Output: Preparing final report of the entire testing
82. Features of white box testing:
Code coverage analysis: White box testing helps to
analyze the code coverage of an application, which helps to
identify the areas of the code that are not being tested.
Access to the source code: White box testing requires
access to the application’s source code, which makes it
possible to test individual functions, methods, and
Knowledge of programming languages: Testers
performing white box testing must have knowledge of
programming languages like Java, C++, Python, and PHP to
understand the code structure and write tests.
83. Identifying logical errors: White box testing helps
to identify logical errors in the code, such as infinite
loops or incorrect conditional statements.
Integration testing: White box testing is useful for
integration testing, as it allows testers to verify that the
different components of an application are working
together as expected.
Unit testing: White box testing is also used for unit
testing, which involves testing individual units of code
to ensure that they are working correctly.
Features of white box testing:
84. Optimization of code: White box testing can help to
optimize the code by identifying any performance
issues, redundant code, or other areas that can be
Security testing: White box testing can also be used
for security testing, as it allows testers to identify any
vulnerabilities in the application’s code.
Features of white box testing:
White box testing is thorough as the entire code and
structures are tested.
It results in the optimization of code removing errors
and helps in removing extra lines of code.
It can start at an earlier stage as it doesn’t require any
interface as in the case of black box testing.
Easy to automate.
White box testing can be easily started in Software
Development Life Cycle.
Easy Code Optimization.
87. Black Box testing
Black box testing is a technique of software testing
which examines the functionality of software without
peering into its internal structure or coding.
The primary source of black box testing is a
specification of requirements that is stated by the
88. Black Box testing
In this method, tester selects a function and gives
input value to examine its functionality, and checks
whether the function is giving expected output or not.
If the function produces correct output, then it is
passed in testing, otherwise failed.
89. Black Box testing steps
The black box test is based on the specification of requirements,
so it is examined in the beginning.
In the second step, the tester creates a positive test scenario and
an adverse test scenario by selecting valid and invalid input
values to check that the software is processing them correctly or
In the third step, the tester develops various test cases such as
decision table, all pairs test, equivalent division, error
estimation, cause-effect graph, etc.
The fourth phase includes the execution of all test cases.
In the fifth step, the tester compares the expected output against
the actual output.
In the sixth and final step, if there is any flaw in the software,
then it is cured and tested again.
90. Functional testing
It is a type of software testing which is used to verify
the functionality of the software application, whether
the function is working according to the requirement
In functional testing, each function tested by giving
the value, determining the output, and verifying the
actual output with the expected value.
92. Functional Testing
Functional testing performed as black-box testing
which is presented to confirm that the functionality of
an application or system behaves as we are expecting.
It is done to verify the functionality of the application.
Functional testing also called as black-box testing,
because it focuses on application specification rather
than actual code. Tester has to test only the program
rather than the system.
93. Goal of functional testing
The purpose of the functional testing is to check the
primary entry function, necessarily usable function,
the flow of screen GUI.
Functional testing displays the error message so that
the user can easily navigate throughout the
94. process of functional testing?
Tester does verification of the requirement specification in
the software application.
After analysis, the requirement specification tester will
make a plan.
After planning the tests, the tester will design the test case.
After designing the test, case tester will make a document of
the traceability matrix.
The tester will execute the test case design.
Analysis of the coverage to examine the covered testing area
of the application.
Defect management should do to manage defect resolving.
95. advantages of Functional Testing?
It produces a defect-free product.
It ensures that the customer is satisfied.
It ensures that all requirements met.
It ensures the proper working of all the functionality of
It ensures that the software/ product work as expected.
It ensures security and safety.
It improves the quality of the product.
96. Disadvantages of functional
Functional testing can miss a critical and logical error
in the system.
This testing is not a guarantee of the software to go
The possibility of conducting redundant testing is
high in functional testing.
97. Non functional testing
Non-functional testing is a type of software testing to
test non-functional parameters such as reliability, load
test, performance and accountability of the software.
The primary purpose of non-functional testing is to
test the reading speed of the software system as per
The parameters of non-functional testing are never
tested before the functional testing.
98. Why Non-Functional Testing
Non-Functional testing checks the ability to work in
an external environment.
It sets the way for software installation, setup, and
execution. The measurement and metrics used for
internal research and development are collected and
produced under non-functional testing.
Non-functional testing gives detailed knowledge of
product behavior and used technologies. It helps in
reducing the risk of production and associated costs of
99. Performance testing
Performance Testing eliminates the reason behind the
slow and limited performance of the software.
Reading speed of the software should be as fast as
For Performance Testing, a well-structured and clear
specification about expected speed must be defined.
Otherwise, the outcome of the test (Success or Failure)
will not be obvious.
100. Load Testing
Load testing involves testing the system's loading
capacity. Loading capacity means more and more
people can work on the system simultaneously.
101. Stress testing
Stress Testing is testing used to check the accessibility and
robustness of software beyond usual functional limits. It
mainly considers for critical software but it can also be used
for all types of software applications.
It is also known as Endurance Testing, fatigue
testing or Torture Testing.
The stress testing includes the testing beyond standard
operational size, repeatedly to a breaking point, to get
It highlights the error handling and robustness under a
heavy load instead of correct behavior under regular
102. Penetration testing
Penetration testing serves as a pro-active measure to
try identify vulnerabilities in services and
organizations before other attackers can.
Penetration testing serves as a pro-active measure to
try identify vulnerabilities in services and
organizations before other attackers can
103. Cross platform testing
When we have to test our application on multiple
browsers, we need cross-browser testing tools. These
tools will help us to ensure that our web application is
working fine across the various browsers.
This tool will take place when both server-side and
client-side are accessing the web application in
multiple web browsers.