0% found this document useful (0 votes)
16 views26 pages

Unit 4

The document provides an overview of various software testing methodologies, including Black Box, White Box, and Grey Box testing, along with their definitions, examples, advantages, and disadvantages. It also discusses static and dynamic testing techniques, review techniques, test design techniques, and specific tools used in testing like Selenium and JMeter. Additionally, it outlines the objectives and techniques of Grey Box Testing, emphasizing the importance of understanding both functional and non-functional requirements in software testing.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views26 pages

Unit 4

The document provides an overview of various software testing methodologies, including Black Box, White Box, and Grey Box testing, along with their definitions, examples, advantages, and disadvantages. It also discusses static and dynamic testing techniques, review techniques, test design techniques, and specific tools used in testing like Selenium and JMeter. Additionally, it outlines the objectives and techniques of Grey Box Testing, emphasizing the importance of understanding both functional and non-functional requirements in software testing.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 26

UNIT-4

2Marks
1. Verification vs validation

2. Software Testing Methodologies


✅ White Box Testing
 Definition: Testing based on internal logic/code structure.
 Example: Unit testing, path testing, loop testing.
 Used By: Developers.
⬛ Black Box Testing
 Definition: Testing based on input-output without knowing internal
code.
 Example: Functional testing, system testing.
 Used By: Testers.
⚪ Grey Box Testing
 Definition: Testing with partial knowledge of internal workings.
 Example: Integration testing with some knowledge of database or logic.
 Used By: Testers with development insight.

3. Static and Dynamic Testing Techniques


🛑 Static Techniques
 Definition: Testing without executing the code.
 Example: Code reviews, static analysis tools.
▶️Dynamic Techniques
 Definition: Testing by executing the code.
 Example: Unit testing, functional testing.

🗂 4. Review Techniques
📝 Informal Review
 Definition: Unstructured, peer review without documentation.
 Example: Developer asks a colleague to review code.
🚶 Walkthrough
 Definition: Author leads the team through the document to gather
feedback.
 Example: Design walkthrough before development.
🔍 Technical Review
 Definition: Structured review conducted by peers to identify technical
issues.
 Example: Reviewing architectural decisions.
Inspection
 Definition: Formal and documented review with defined roles
(moderator, recorder).
 Example: Code inspection before release.

5. Test Design Techniques


🏗 Structural Techniques (White Box)
 Definition: Based on the structure of the code.
 Example: Statement coverage, branch coverage.
🎭 Black Box Techniques
 Definition: Based on specifications or user requirements.
 Example: Equivalence partitioning, boundary value analysis.
👨‍🔧 Experience-Based Techniques
 Definition: Based on the tester’s experience and intuition.
 Example: Error guessing, exploratory testing.

6. Testing Tools
⚙️Selenium
 Definition: Open-source tool for automating web application testing.
 Example: Automated regression tests for a login page.
⚙️JMeter
 Definition: Open-source tool for performance and load testing.
 Example: Simulating 100 users accessing a web app to test response
time.
7. Black Box Testing Vs White Box Testing

8. black box vs white box vs grey box testing


9. Black vs grey box testing
11 Marks

1.Software Testing Methodology


BLACK BOX TESTING
What is Black Box Testing?
Black-box testing is a Type of Software Testing in which the tester is not
concerned with the software’s internal knowledge or implementation
details but rather focuses on validating the functionality based on the
provided specifications or requirements.
Types Of Black Box Testing
The testing of application without knowing the internal code or
structure, following are the various Types of Black Box Testing:

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.
 This testing is not concerned with the source code of the application.
Each functionality of the software application is tested by providing
appropriate test input, expecting the output, and comparing the actual
output with the expected output.
 This testing focuses on checking the user interface, APIs, database,
security, client or server application, and functionality of the Application
Under Test. Functional testing can be manual or automated. It
determines the system’s software functional requirements.
2. Regression Testing
Regression Testing is like a Software Quality checkup after any changes
are made. It involves running tests to make sure that everything still
works as it should, even after updates or tweaks to the code. This
ensures that the software remains reliable and functions properly,
maintaining its integrity throughout its development lifecycle.
 Regression means the return of something and in the software field, it
refers to the return of a bug. It ensures that the newly added code is
compatible with the existing code.
 In other words, a new software update has no impact on the
functionality of the software. This is carried out after a system
maintenance operation and upgrades.
3. Nonfunctional Testing
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.
 It is designed to test the readiness of a system as per nonfunctional
parameters which are never addressed by functional testing.
 It is as important as functional testing.
 It is also known as NFT. This testing is not functional testing of software.
It focuses on the software’s performance, usability, and scalability.
Advantages of Black Box Testing
 The tester does not need to have more functional knowledge or
programming skills to implement the Black Box Testing.
 It is efficient for implementing the tests in the larger system.
 Tests are executed from the user's or client's point of view.
 Test cases are easily reproducible.
 It is used to find the ambiguity and contradictions in the functional
specifications.
Disadvantages of Black Box Testing
 There is a possibility of repeating the same tests while implementing the
testing process.
 Without clear functional specifications, test cases are difficult to
implement.
 It is difficult to execute the test cases because of complex inputs at
different stages of testing.
 Sometimes, the reason for the test failure cannot be detected.
 Some programs in the application are not tested.
 It does not reveal the errors in the control structure.
 Working with a large sample space of inputs can be exhaustive and
consumes a lot of time.

White Box Testing


What is White Box Testing
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.
White box testing is also known as Structural Testing or Code-based
Testing, and it is used to test the software’s internal logic, flow, and
structure. The tester creates test cases to examine the code paths and
logic flows to ensure they meet the specified requirements.
What Does White Box Testing Focus On?
White box testing include testing a software application with an extend
understanding of its internal code and structure. This type of testing
allows testers to create detailed test cases based on the application’s
design and functionality.
Here are some key types of tests commonly used in white box testing:
 Path Testing: White box testing will be checks all possible execution
paths in the program to sure about the each one of the function behaves
as expected. It helps verify that all logical conditions in the code are
functioning correctly and efficiently with as properly manner, avoiding
unnecessary steps with better code reusability.
 Input and Output Validation: By providing different inputs to a function,
white box testing check the the function gives the correct output each of
the time. This helps to confirm that the software consistently produces
the required results under various conditions.
 Security Testing: this will focuses on finding security issues in the code.
Tools like static code analysis are used to check the code for potential
security flaws, for checking the application for the best practices for
secure development.
 Loop testing: It will be check that loops (for or while loops) in the
program operate correctly and efficiently. It checks that the loop handles
variables correctly and doesn’t cause errors like infinite loops or logic
flaws.
 Data Flow Testing: This involves tracking the flow of variables through
the program. It ensures that variables are properly declared, initialized,
and used in the right places, preventing errors related to incorrect data
handling.
Types Of White Box Testing
White box testing can be done for different purposes at different places.
There are three main types of White Box testing which is follows:-
 Unit Testing: Unit Testing checks if each part or function of the
application works correctly. It will check the application meets design
requirements during development.
 Integration Testing: Integration Testing Examines how different parts of
the application work together. After unit testing to make sure
components work well both alone and together.
 Regression Testing: Regression Testing Verifies that changes or updates
don't break existing functionality of the code. It will check the
application still passes all existing tests after updates.
White Box Testing Techniques
One of the main benefits of white box testing is that it allows for testing
every part of an application. To achieve complete code coverage, white
box testing uses the following techniques:
1. Statement Coverage: In this technique, the aim is to traverse all
statements at least once. Hence, each line of code is tested. In the case
of a flowchart, every node must be traversed at least once. Since all lines
of code are covered, it helps in pointing out faulty code.
If we see in the case of a flowchart, every node must be traversed at
least once. Since all lines of code are covered, it helps in pointing out
faulty code while detecting.
2. Branch Coverage: Branch coverage focuses on testing the decision
points or conditional branches in the code. It checks whether both
possible outcomes (true and false) of each conditional statement are
tested. In this technique, test cases are designed so that each branch
from all decision points is traversed at least once. In a flowchart, all
edges must be traversed at least once.
In a flowchart, all edges must be traversed at least once.
3. Condition Coverage: In this technique, all individual conditions must
be covered as shown in the following example:
 READ X, Y
 IF(X == 0 || Y == 0)
 PRINT ‘0’
 #TC1 – X = 0, Y = 55
 #TC2 – X = 5, Y = 0
4. Multiple Condition Coverage: In this technique, all the possible
combinations of the possible outcomes of conditions are tested at least
once. Let’s consider the following example:
 READ X, Y
 IF(X == 0 || Y == 0)
 PRINT ‘0’
 #TC1: X = 0, Y = 0
 #TC2: X = 0, Y = 5
 #TC3: X = 55, Y = 0
 #TC4: X = 55, Y = 5
5. Basis Path Testing: In this technique, control flow graphs are made
from code or flowchart and then Cyclomatic complexity is calculated
which defines the number of independent paths so that the minimal
number of test cases can be designed for each independent path. Steps:
 Make the corresponding control flow graph
 Calculate the cyclomatic complexity
 Find the independent paths
 Design test cases corresponding to each independent path
 V(G) = P + 1, where P is the number of predicate nodes in the flow graph
 V(G) = E – N + 2, where E is the number of edges and N is the total
number of nodes
 V(G) = Number of non-overlapping regions in the graph
 #P1: 1 – 2 – 4 – 7 – 8
 #P2: 1 – 2 – 3 – 5 – 7 – 8
 #P3: 1 – 2 – 3 – 6 – 7 – 8
 #P4: 1 – 2 – 4 – 7 – 1 – . . . – 7 – 8
6. Loop Testing: Loops are widely used and these are fundamental to
many algorithms hence, their testing is very important. Errors often
occur at the beginnings and ends of loops.
 Simple loops: For simple loops of size n, test cases are designed that:
1. Skip the loop entirely
2. Only one pass through the loop
3. 2 passes
4. m passes, where m < n
5. n-1 ans n+1 passes
 Nested loops: For nested loops, all the loops are set to their minimum
count, and we start from the innermost loop. Simple loop tests are
conducted for the innermost loop and this is worked outwards till all the
loops have been tested.
 Concatenated loops: Independent loops, one after another. Simple loop
tests are applied for each. If they’re not independent, treat them like
nesting.
Grey Box Testing
What is Gray Box Testing?
Gray Box Testing is a software testing technique that is a combination of
the Black Box Testing technique and the White Box Testing technique.
1. In the Black Box Testing technique, the tester is unaware of the internal
structure of the item being tested and in White Box Testing the internal
structure is known to the tester.
2. The internal structure is partially known in Gray Box Testing.
3. This includes access to internal data structures and algorithms to design
the test cases.
4. Gray Box Testing is named so because the software program is like a
semitransparent or gray box inside which the tester can partially see.
5. It commonly focuses on context-specific errors related to web systems.
6. It is based on requirement test case generation because it has all the
conditions presented before the program is tested.

Objectives of Gray Box Testing:


1. To provide combined advantages of both black box testing and white box
testing.
2. To combine the input of developers as well as testers.
3. To improve overall product quality.
4. To reduce the overhead of long process of functional and non-functional
testing.
5. To provide enough free time to developers to fix defects.
6. To test from the user point of view rather than a designer point of view.
Gray Box Testing Techniques
Here are the main techniques of the Gray Box Testing which are included
in the gray box testing:
1. Matrix Testing
In matrix testing technique, business and technical risks which are
defined by the developers in software programs are examined.
Developers define all the variables that exist in the program. Each of the
variables has an inherent technical and business risk and can be used
with varied frequencies during its life cycle.
2. Pattern Testing
To perform the pattern testing , previous defects are analyzed. It
determines the cause of the failure by looking into the code. Analysis
template includes reasons for the defect. This helps test cases designed
as they are proactive in finding other failures before hitting production.
3. Orthogonal Array Testing
It is mainly a black box testing technique. In orthogonal array testing,
test data have n numbers of permutations and combinations. Orthogonal
array testing is preferred when maximum coverage is required when
there are very few test cases and test data is large. This is very helpful in
testing complex applications.
4. Regression Testing
Regression testing is testing the software after every change in the
software to make sure that the changes or the new functionalities are
not affecting the existing functioning of the system. Regression testing is
also carried out to ensure that fixing any defect has not impacted other
functionality of the software.
5. State transition Testing
State transition testing is frequently applied to systems that display
various states while they are being operated. Testers who have just a
limited understanding of the internal states create test cases with the
intention of making sure that state transitions are handled correctly.
6. Testing Decision Tables
Decision tables are a useful tool for organizing and condensing
complicated business rules and reasoning. Decision tables are used by
testers with limited understanding to generate test cases covering
multiple combinations of input conditions and expected results.
7. Testing APIs
Even though the main code is not entirely known, gray box testing, also
known as API (Application Programming Interface) testing , focuses on
testing the system’s exposed interfaces. The main goal of testing is to
make sure the API accepts various input formats and operates as
intended.
8. Data Flow Testing
Analyzing the flow of data testing through the system forms the basis of
data flow testing. Partial knowledge testers create test cases that
examine the data’s pathways throughout the application, assisting in the
identification of possible problems with handling and processing the
data.

2.Static Testing
What is Static Testing?
Static Testing also known as Verification testing or Non-execution testing
is a type of Software Testing method that is performed in the early stage
of development to avoid errors as it is easier to find sources of failures
and it can be fixed easily. The errors that cannot be found using Dynamic
Testing, can be easily found by Static Testing.
1. Static can be done manually or with the help of tools to find bugs and
improve the quality of the software.
2. It helps to find errors in the early stage of development which is also
called the verification process.
3. It enhances maintainability and ultimately saves time and money in the
long run.
Need for Static Testing
Static testing is needed whenever the following situations are
encountered while testing an application or software:
1. Increased software size: Static testing is required to get free from bugs in
the early stages of development as with testing activity the size of the
software increases which is difficult to handle due to a reduction in the
productivity of the code coverage.
2. Dynamic testing is expensive: Dynamic testing is more expensive than
static testing as dynamic testing uses test cases that have been created in
the initial stages and there is also a need to preserve the implementation
and validation of the test cases which takes a lot of time from test
engineers:
3. Dynamic testing is time-consuming: Static testing is required as dynamic
testing is a time-consuming process.
4. Bugs detection at early stages: Static testing is helpful as it finds bugs at
early stages, while dynamic testing finds bugs at later stages which
makes it time-consuming and costly to fix the bugs.
5. Improvement of development productivity: Static testing helps to
identify bugs early in the software development thus it helps to reduce
the flaws during production and increase development productivity.
Objectives of Static Testing
Below are some of the objectives of static testing:
1. Decreases Flaws: Static testing will decrease the flaws in production as
the bugs will be detected early in the software development.
2. Saves Time: Early detection of the bugs helps to save a lot of time, effort,
and cost that will be required to fix the bugs.
3. Easy Bug Fixing: Static testing is used to identify the bugs early in
software development, where it is quite easy to fix the bugs.
4. Quality Improvement: Enhance overall software quality of the software
product by ensuring the compliance with the coding standards and best
practices.
5. Cost Efficiency: Static testing helps to reduce the cost associated with
dynamic testing by catching defects early.
Features Tested in Static Testing
Static testing involves testing the following things:
1. Unit Test Cases: It ensures test cases are complete, written in the correct
manner, and follow the specified standards.
2. Business Requirements Document (BRD): It verifies that all business
requirements are clearly mentioned in the documentation.
3. Use Cases: It examines the use cases so that they accurately represent
user interactions with the system.
4. Prototype: It reviews the prototype to make sure that it accurately
represents the main design and functionality.
5. System Requirements: It check the system requirements document for
complete accuracy.
6. Test Data: It reviews the test data to ensure it is complete and covers all
possible input scenarios.
7. Traceability Matrix Document: This ensures that all requirements are
mapped to corresponding test cases.
8. Training Guides: It reviews training materials to make sure that they
accurately reflect the system functionality and user procedures.
9. Performance Test Scripts: It examines performance test scripts to ensure
they cover all critical performance aspects.

Static Testing Techniques

1. Review
In static testing, the review is a process or technique that is performed to
find potential defects in the design of the software. It is a process to
detect and remove errors and defects in the different supporting
documents like software requirements specifications. People examine
the documents and sorted out errors, redundancies, and ambiguities.
Review is of four types:
1. Informal: In an informal review the creator of the documents put the
contents in front of an audience and everyone gives their opinion and
thus defects are identified in the early stage.
2. Walkthrough: It is basically performed by an experienced person or
expert to check the defects so that there might not be problems further
in the development or testing phase.
3. Peer review: Peer review means checking documents of one another to
detect and fix defects. It is basically done in a team of colleagues.
4. Inspection: Inspection is basically the verification of documents by the
higher authority like the verification of software requirement
specifications (SRS).
2. 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 the following defects:
1. Unused variables.
2. Dead code.
3. Infinite loops.
4. Variable with an undefined value.
5. Wrong syntax.
Static Analysis is of three types:
1. Data Flow: Data flow is related to the stream processing.
2. Control Flow: Control flow is basically how the statements or
instructions are executed.
3. Cyclomatic Complexity: Cyclomatic complexity defines the number of
independent paths in the control flow graph made from the code or
flowchart so that a minimum number of test cases can be designed for
each independent path.
How Static Testing is Performed?
Below are the steps that can be followed to perform static testing:
1. Planning: This step involves defining what needs to be tested, setting
objectives, determining the scope of testing, and preparing a testing
strategy. This should involve identifying the software components to be
tested, developing the testing methods, and identifying the tools to be
tested.
2. Prepare artifacts: In this step, necessary artifacts like source codes,
design documents, requirement documents, and test cases are prepared.
3. Perform static analysis: Static analysis is conducted in this phase where
the code is reviewed and analyzed for compliance with coding standards,
code quality, and security issues using specialized static analysis tools
without executing the code.
4. Perform code reviews: Code reviews are performed where a small team
of experts systematically reviews the code and finds potential errors
using various methods.
5. Report and document bugs: Bugs identified during static testing are
reported and documented.
6. Analyze results: The results collected during static testing are analyzed
to determine the quality of the software product.
Benefits of Static Testing
Below are some of the benefits of static testing:
1. Early defect detection: Static testing helps in early defect detection
when they are most easy and cost-effective to fix.
2. Prevention of common issues: Static testing helps to fix common issues
like syntax errors, null pointer exceptions, etc. Addressing these issues
early in development helps the teams to avoid problems later.
3. Improved code quality: Static testing helps to make sure that the code is
easy to maintain and well-structured. This leads to a higher quality code.
4. Reduced costs: Early bug detection in static testing helps to fix them
early in the development thus saving time, effort, and cost.
5. Immediate feedback: Static testing provides immediate evaluation and
feedback on the software during each phase while developing the
software product.
6. Helps to find exact bug location: Static testing helps to find the exact
bug location as compared to dynamic testing.
Limitations of Static Testing
Below are some of the limitations of static testing:
1. Detect Some Issues: Static testing may not uncover all issues that could
arise during runtime. Some defects may appear only during dynamic
testing when the software runs.
2. Depends on the Reviewer's Skills: The effectiveness of static testing
depends on the reviewer's skills, experience, and knowledge.
3. Time-consuming: Static testing can be time-consuming when working on
large and complex projects.
4. No Runtime Environment: It is conducted without executing the code.
This means it cannot detect runtime errors such as memory leaks,
performance issues, etc.
5. Prone to Human Error: Static testing is prone to human error due to
manual reviews and inspections techniques being used.

Static Testing Tools


Some of the most commonly used static testing tools are:
1. Checkstyle
Checkstyle is a static analysis tool that helps developers to write Java
code and automates the process of checking Java code.
Features:
 It can verify the code layout and formatting issues.
 It can help to identify the method design problems and class design
problems.
 It is a highly configured tool that can support almost any coding standard
like Google Java Style, and Sun code conventions.
2. Soot
Soot is a Java optimization framework that has several analysis and
transformation tools.
Features:
 It can detect unnecessary code and thus improve the overall code
quality.
 It is a framework for analyzing and transforming Java and Android
applications to test aspects like named modules and modular jar files,
automatic modules, exploded modules, etc.
3. SourceMeter
SourceMeter is a static testing tool for static source code analysis of
various programming languages like C/ C++, Java, C#, Python, and RPG
Projects.
Features:
 It helps in the easy identification of vulnerable spots of the system under
development from the source code.
 It can analyze code in multiple programming languages and generates
reports that help developers to make informed decisions.
 The output of analysis and quality of analyzed source code can be used
to enhance the product.
4. Lint
Lint is a static analysis tool that scans code to flag programming errors
and bugs.
Features:
 It helps enforce coding standards and prevent errors and bugs in the
code.
 It helps to identify and correct common code mistakes without having to
run the application.
5. SonarQube
SonarQube is a static testing open-source tool to inspect code quality
continuously.
Features:
 It analyses and identifies the technical debt, bugs, and vulnerabilities
across different programming languages.
 It provides support for 29 languages and analyzes the quality of all the
languages in your projects.
 It has features like custom rules, integration with code repositories,
detailed code reports, and extensible plugins.

3.Dynamic Testing
What is Dynamic Testing?
Dynamic Testing is a type of Software Testing that is performed to
analyze the dynamic behavior of the code. It includes the testing of the
software for the input values and output values that are analyzed. It is
performed to describe the dynamic behavior of code. It refers to the
observation of the physical response from the system to variables that
are not constant and change with time.
Objectives of Dynamic Testing
1. Find errors and bugs: Through comprehensive testing, find and expose
flaws, faults, or defects in the software code and its functionality so that
they can be fixed as soon as possible.
2. Verify the behavior of the system: Verify that the software operates as
expected and complies with company requirements, industry or
regulatory standards, user expectations, and any applicable business
regulations.
3. Assessing Performance: To make sure the software satisfies performance
requirements, evaluate its performance by monitoring reaction times,
throughput, and use of resources under various scenarios.
4. Assure Trustworthiness: Examine the software's dependability by
determining how well it performs regularly under typical operating
conditions, free of unexpected faults or crashes.
5. Accuracy of Test Data: Verify the precision and consistency of the data
handled by the software to guarantee reliable and uniform information
handling.
6. Assess Scalability: Examine whether the application can grow to handle
more users, workloads, or data volumes without seeing an obvious
decline in performance.
Levels of Dynamic Testing
Several levels of dynamic testing are commonly used in the software
development process, including:
1. Unit testing: Unit testing is the process of testing individual software
components or "units" of code to ensure that they are working as
intended. Unit tests are typically small and focus on testing a specific
feature or behavior of the software.
2. Integration testing: Integration testing is the process of testing how
different components of the software work together. This level of testing
typically involves testing the interactions between different units of
code, and how they function when integrated into the overall system.
3. System testing: System testing is the process of testing the entire
software system to ensure that it meets the specified requirements and
is working as intended. This level of testing typically involves testing the
software's functionality, performance, and usability.
4. Acceptance testing: Acceptance testing is the final stage of dynamic
testing, which is done to ensure that the software meets the needs of
the end-users and is ready for release. This level of testing typically
involves testing the software's functionality and usability from the
perspective of the end-user.
5. Performance testing: Performance testing is a type of dynamic testing
that is focused on evaluating the performance of a software system
under a specific workload. This can include testing how the system
behaves under heavy loads, how it handles a large number of users, and
how it responds to different inputs and conditions.
6. Security testing: Security testing is a type of dynamic testing that is
focused on identifying and evaluating the security risks associated with a
software system. This can include testing how the system responds to
different types of security threats, such as hacking attempts, and
evaluating the effectiveness of the system's security features.
Dynamic Testing Process Phase

1. Test Case Design: It defines the test objectives, scope and criteria. It
defines test data and expected outcomes and develops test cases based
on requirements and specifications. It generates test cases that address
various programmes features.
2. Test Environment Setup: It sets up the settings and infrastructure
required for testing. It configured the network, hardware and software in
the test environment. Additionally, it makes sure that the test
environment matches the production environment by installing and
configuring the required test tools and test harnesses.
3. Test Case Execution: Using the specified test data, it runs the test cases
in order to verify the software's behavior. It keeps track of and logs the
actual outcomes, comparing them with the predicted results to find any
differences. It runs test scenarios in both positive and negative modes.
4. Test Analysis: It evaluates the general behavior of the system and finds
faults by analyzing the test case outcomes. Any inconsistencies or flaws
discovered during test execution are documented and reported. It works
along with development teams to figure out and address concerns that
are reported.
Advantages of Dynamic Testing
1. Disclosure of Difficult and Complex Defects: It discloses very difficult
and complex defects.
2. Improvement in Software Quality: It increases the quality of the
software product or application being tested.
3. Security Threat Detection: Dynamic testing detects security threats and
ensure the better secure application.
4. Early-Stage Functionality Testing: It can be used to test the functionality
of the software at the early stages of development.
5. Ease of Implementation: It is easy to implement and does not require
any special tools or expertise.
6. Testing with Different Inputs, Data Sets, and User Profiles: It can be
used to test the software with different input values, data sets and user
profiles.
7. Functionality and Performance Testing: It can be used to test the
functionality of the code and performance of the code.
Disadvantages of Dynamic Testing
1. Time-Consuming Process: It is a time consuming process as in dynamic
testing whole code is executed.
2. Increased Budget: It increases the budget of the software as dynamic
testing is costly.
3. Resource Intensive: Dynamic testing may require more resources than
static testing.
4. Less Effective in Some Cases: Dynamic testing may be less effective than
static testing in some cases.
5. Incomplete Test Scenario Coverage: It is difficult to cover all the test
scenarios.
6. Difficulty in Root Cause Analysis: It is difficult to find out the root cause
of the defects.

You might also like