Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
SOFTWARE TESTING PRESENTATION .pptx
1. Categories of Test
Design Techniques
Muhammad Imran 70077769
Musaddaq Ehsan 70077512
Hassan Rasool 70078598
Ammar Ahmad 70078970
Zahid Hassan 70078332
2. Types of Test Design Techniques?
Test design techniques can be broadly categorized into two main categories:
● White Box Techniques
● Black Box Techniques
4. White Box Technique
● Testers with knowledge of the system's internal workings use this technique.
● White-box testing examines the internal structure, code, and logic of the software
system.
● It involves designing and executing tests based on the internal structure of the software.
● The objective is to validate the correctness of individual components, modules, or code
segments.
● It is also known as clear-box testing or structural testing.
5. Key aspects of White-box Testing
● Code Coverage
● Structural Analysis
● Test Case Design
● Code-level Defect Detection
● Debugging and Root Cause Analysis
● Code Optimization
6. Code Coverage
● Code coverage is an important goal of white-box testing, aiming to exercise as much of
the code as possible.
● Different coverage criteria, such as statement coverage, branch coverage and path
coverage, are used to measure the effectiveness of white-box testing.
● Code coverage criteria help ensure that various parts of the code, including statements,
branches and paths, are thoroughly tested to identify potential issues or errors.
● The aim is to achieve high code coverage by thoroughly testing and identifying potential
defect-prone areas of the code.
7. Structural Analysis
● Structural analysis in white-box testing involves analyzing the structure of the software
system, including the source code.
● Testers perform this analysis to identify areas of potential risk and determine where to
focus their testing efforts.
● Structural analysis helps testers understand the internal dependencies, data flows, and
control flows within the system.
● The aim is to analyze the software system's structure, identify areas of risk, and focus
testing efforts for effective coverage.
8. Test Case Design
● Test cases are designed based on the internal logic and structure of the software,
focusing on critical areas prone to errors or defects.
● Testers identify specific conditions, loops, decision points, and code paths to cover
various scenarios and combinations.
● This approach ensures comprehensive testing by targeting critical areas of the code and
verifying its behavior under different scenarios.
● The aim is to targeting critical areas and covering various scenarios based on the
software's internal logic and structure.
9. Code-level Defect Detection
● White-box testing helps testers identify defects or vulnerabilities directly at the code
level.
● Testers examine the code itself to uncover issues such as coding errors, boundary
violations, data inconsistencies, and security vulnerabilities.
● By analyzing the code directly, white-box testing enables effective detection of coding-
related problems for improved software quality and security.
● Main aim is to identify code-level defects and vulnerabilities by directly examining the
code for issues like errors, violations, inconsistencies, and security risks.
10. Debugging and Root Cause Analysis
● During white-box testing, testers can analyze the internal state of the system when
failures occur.
● Testers have access to the code and can perform detailed debugging to identify the root
cause of the issue.
● This enables testers to pinpoint the exact source of the problem and understand why
the failure occurred, aiding in effective troubleshooting and resolution.
● Main aim is to analyze system state and identify root causes of failures or issues
through detailed code-level debugging and analysis.
11. Code Optimization
● White-box testing helps in optimizing code and improving software performance.
● Testers analyze the code structure and execution paths to identify areas that can be
optimized.
● By optimizing the code, resource consumption can be reduced, and overall efficiency
can be enhanced.
● Optimize code and improve software performance by analyzing code structure,
execution paths, and reducing resource consumption.
13. What is Specification Based Testing?
● Specification Based Testing Technique is also known as Behavior Based Testing and
Black Box Testing techniques because in this testers view the software as a black-box.
● As they have no knowledge of how the system or component is structured inside the
box.
● In essence, the tester is only concentrating on what the software does, not how it does
it.
14. Types of Specification Based Testing Techniques
•Equivalence Partitioning: Software Testing technique that divides the input data of a
software unit into partitions of equivalent data from which test cases can be derived.
•Boundary Value Analysis: Software Testing technique in which tests are designed to
include representatives of boundary values in a range.
•Decision Tables: Software Testing technique in which tests are more focused on business
logic or business rules. A decision table is a good way to deal with combinations of inputs.
15. •State Transitioning: Software Testing technique which is used when the system is defined
in terms of a finite number of states and the transitions between the states is governed by
the rules of the system.
•Use Case Testing: Use cases describe how the software is intended to be used from the
user's perspective. Test cases are derived from these use cases to ensure that the software
meets the desired functionality and behavior as specified by the users.
17. Introduction to State Transition
Testing
● State transition testing is a black box
testing technique used to verify the
behavior of a system as it transitions
between different states.
● Focuses on testing the transitions
between different states of a system or
an application.
18. Steps in State Transition
Testing
● Identify States: Determine the different
states that the system or application can
be in.
● Define Transitions: Identify the events
or actions that cause the system to
transition from one state to another.
● Create State Transition Diagram:
Develop a visual representation of the
system's states and transitions.
● Design Test Cases: Use the state
transition diagram to create test cases
that cover all possible transitions.
19. State Transition Diagram
Elements
● States: The different conditions or
modes that the system can be in.
● Transitions: The events or actions that
cause the system to move from one
state to another.
● Events: The triggers that cause a
transition to occur.
● Actions: The activities or behavior that
occur when a transition happens.
21. Introduction to Equivalence
Partitioning
● Equivalence partitioning is a black box
testing technique used to divide the
input domain into classes of equivalent
inputs.
● These classes can be used to derive test
cases that reduce the time required for
testing.
24. Example of Equivalence Partitioning
● Example Scenario: Testing a login form
● Input Variables: Username and Password
● Equivalence Classes: Valid usernames, Invalid usernames, Valid passwords,
Invalid passwords
● Test Cases:
● Valid username: "john@example.com" with a valid password
● Invalid username: "invalid user" with a valid password
Editor's Notes
Entered text
1. Introduction
State transition testing is a black box testing technique used to verify the behavior of a system as it transitions between different states. State transition testing focuses on testing the transitions between different states of a system or an application.
2. Steps in State Transition Testing
a. Identify States
b. Define Transitions
c. Create State Transition Diagram
d. Design Test Cases
3. State Transition Diagram Elements
- States
- Transitions
- Events
-Actions:
Entered text
1. Introduction
Equivalence partitioning is a black box testing technique used to divide the input domain into classes of equivalent inputs that can be used to derive test cases which reduces time required for testing because of small number of test cases.
2. Steps in Equivalence Partitioning
a. Identify Input Variables
b. Define Equivalence Classes
c. Select Test Cases
3. Benefits of Equivalence Partitioning
- Efficient test coverage: Reduces the number of test cases while covering all possible scenarios.
- Time and cost-effective: Optimizes testing efforts by focusing on representative values.
- Detecting defects: Faults within an equivalence class often affect all values within that class.
4. Example
- Example Scenario: Testing a login form
- Input Variables: Username and Password
- Equivalence Classes: Valid usernames, Invalid usernames, Valid passwords, Invalid passwords
- Test Cases:
- Valid username: "john@example.com" with a valid password
- Invalid username: "invalid user" with a valid password