SlideShare a Scribd company logo
1 of 27
Black and White Box Testing
By
Pavan Nikhil
26 th july 2023
Black Box testing
software testing technique in which the internal workings or code
implementation of the software being tested are not known to the tester.
Instead, the tester focuses entirely on the external inputs provided to the
software and the corresponding outputs it produces. The name "Black
Box" comes from the idea that the software is treated as a black box,
where only its inputs and outputs are visible, and its internal structure
remains hidden.
In Black Box testing, the tester's primary goal is to assess the correctness
of the software's functionality, as seen from the user's perspective. It is
typically carried out by testers who may not have access to the source
code or may not be developers themselves. The purpose of this testing
approach is to validate that the software meets the specified
requirements and performs as expected.
Key characteristics of Black Box Testing:
 Independence of Internal Structure: The tester does not have any
knowledge of the internal code, design, or implementation details of
the software under test. This ensures that the testing is unbiased
and resembles the experience of an end-user.
 Focus on Requirements and Specifications: The testing is conducted
based on the software's functional and non-functional requirements
and specifications provided during the software development
process.
Testing Technique
Functional Testing is a type of software testing that focuses on verifying the functionality of a software application or system. It aims to ensure that the software performs its intended tasks and functions
correctly according to the specified requirements and design. In functional testing, the software is tested based on the functional specifications, and the primary goal is to validate that it meets the expected
behavior and produces the correct outputs for given inputs.
Unit Testing:
Unit testing is the smallest and most basic level of functional testing. It involves testing individual units or components of the software in isolation to ensure they work correctly. Developers typically perform
unit testing to validate that each unit of code behaves as expected, according to the design and requirements.
Integration Testing:
Integration testing is conducted to verify the interaction and integration between different units or modules of the software. The goal is to identify any issues that might arise when these components are
combined. Integration testing ensures that the units work together smoothly and produce the expected results.
System Testing:
System testing evaluates the entire software system as a whole to verify that it meets the specified requirements and works as intended. It involves testing the integrated system against the defined
functional and non-functional requirements. System testing is usually performed by QA teams.
Acceptance Testing:
Acceptance testing is the final phase of functional testing and is performed to determine whether the software meets the user's acceptance criteria and
business requirements. It is typically carried out by end-users or stakeholders to ensure that the software is ready for production deployment.
a. User Acceptance Testing (UAT): Involves end-users testing the software in a real-world scenario to validate its usability and functionality based on their
needs.
b. Alpha Testing: Performed by the internal team within the organization before releasing the software to external users.
c. Beta Testing: Involves releasing the software to a select group of external users to gather feedback and identify potential issues before the official launch.
Regression Testing:
Regression testing is executed to ensure that new code changes or modifications to the software do not negatively impact existing functionalities. It involves
retesting the application to validate that the changes introduced have not caused any unintended side effects or regressions.
Smoke Testing:
Smoke testing is a preliminary test performed to check the most critical functionalities
of the software to determine if it is stable enough for further testing. If the smoke test
passes, the testing team proceeds with more in-depth testing. It helps identify critical
defects early in the testing process.
Sanity Testing:
Sanity testing is a subset of regression testing and is conducted to quickly verify
specific areas or functionalities of the software after making minor changes or bug
fixes. The goal is to ensure that the changes have not adversely affected the overall
system behavior.
These different types of functional testing help ensure the quality and reliability of the
software by verifying its functional aspects at various levels of development and
deployment.
Non-functional Testing
software testing that focuses on evaluating the attributes of a software application that are not related to its specific functionalities. Unlike
functional testing, which verifies whether the application works as intended, non-functional testing assesses how well the software performs under
various conditions and measures its quality based on different criteria. Non-functional testing helps ensure that the software meets specific
performance, security, usability, and other non-functional requirements. Here are some common types of non-functional testing:
Performance Testing:
Performance testing evaluates how well the software performs under different workload conditions. It aims to identify potential performance
bottlenecks, measure response times, and assess the scalability and stability of the application. Types of performance testing include:
Load Testing: Evaluates performance under expected load levels.
Stress Testing: Tests the system's performance beyond its normal capacity.
Endurance Testing: Checks performance over an extended period to identify memory leaks or other issues.
Spike Testing: Measures the application's response to sudden spikes in user activity.
Security Testing:
Security testing assesses the software's ability to protect data and maintain the integrity of the system. It involves
identifying vulnerabilities and weaknesses that could lead to data breaches or unauthorized access. Security
testing includes:
Penetration Testing: Simulates real-world attacks to identify security flaws.
Usability Testing:
Usability testing evaluates the user-friendliness and ease of use of the software from an end-user's perspective.
Testers assess how intuitive the user interface is, how easily users can navigate through the application, and
whether it meets user expectations.
Compatibility Testing:
Compatibility testing ensures that the software works effectively across different platforms, devices, browsers, and
operating systems. It verifies that the application behaves consistently and delivers a seamless user experience in
various environments.
Scalability Testing:
Scalability testing assesses the software's ability to handle increased workload, data, or user demand. It helps
determine whether the application can scale up or down without compromising its performance.
Reliability Testing:
Reliability testing evaluates the software's stability and ability to perform consistently over time and under
different conditions. It aims to identify potential failures and measure the mean time between failures (MTBF).
Maintainability Testing:
Maintainability testing examines how easy it is to maintain and support the software over its lifecycle. It assesses
factors like code readability, modularity, and the ease of making changes without introducing defects.
Availability Testing:
Availability testing checks the application's ability to remain accessible and functional at all times, ensuring
minimal downtime or disruptions.
Testing Techniques: Various techniques are employed in Black Box testing, such as Equivalence Partitioning, Boundary Value Analysis,
Decision Table Testing, State Transition Testing, etc., to design test cases and scenarios.
Equivalence Partitioning:
Equivalence Partitioning is a testing technique that divides the input data into groups (partitions) to simplify the testing process. The idea
is that if a test case in one partition is valid, then all other test cases in the same partition should be valid as well. Likewise, if a test case in
one partition is invalid, then all other test cases in that partition should be invalid.
For example, if a software accepts numeric inputs between 1 and 100, you can divide this input range into three partitions:
Partition 1: Values less than 1 (Invalid data)
Partition 2: Values between 1 and 100 (Valid data)
Partition 3: Values greater than 100 (Invalid data)
Test cases are then derived from each partition to ensure the software handles inputs correctly and produces expected outputs.
Boundary Value Analysis:
Boundary Value Analysis (BVA) is an extension of Equivalence Partitioning and focuses specifically on testing the boundaries or edges of the input data. The rationale behind this technique is that defects are often concentrated near the boundaries of valid
input ranges.
Following the previous example, BVA would consider test cases at the boundaries of the input range:
Test with the value 1 (Boundary value - lower limit)
Test with the value 100 (Boundary value - upper limit)
Test with values just below 1 and just above 100 (Invalid data)
By testing these boundary values, testers can identify potential issues related to off-by-one errors, boundary checks, and other edge cases.
Decision Table Testing:
Decision Table Testing is a technique used when the behavior of the software depends on multiple combinations of inputs and conditions. It is particularly useful for testing business rules and logic.
A decision table consists of rows and columns, where each row represents a specific combination of inputs, and each column represents a condition or rule. The intersections between rows and columns indicate the corresponding actions or outcomes.
Test cases are derived from different combinations of inputs to validate the correct application of rules and ensure the software behaves as expected under various conditions
State Transition Testing:
State Transition Testing is employed when the software's behavior changes based on its
current state or previous inputs. This technique is commonly used to test systems with a finite
number of states, such as state machines or event-driven applications.
Test cases are designed to cover transitions between different states, including valid and
invalid state transitions. By testing various state transitions, testers can assess the software's
robustness and its ability to handle state changes correctly.
These Black Box testing techniques are valuable tools for designing comprehensive test cases
and scenarios without needing knowledge of the software's internal code. By using these
techniques, testers can efficiently cover different aspects of the software's functionality and
increase the likelihood of identifying defects or unexpected behavior.
Testing Levels: Black Box testing can be applied at all testing levels,
including unit testing, integration testing, system testing, and acceptance
testing.
Positive and Negative Testing: Testers validate both expected (positive)
and unexpected (negative) inputs to ensure the software handles
different scenarios correctly.
Test Coverage: Testers aim to achieve maximum test coverage to ensure
that all possible paths and functionalities are tested without knowledge
of the internal code.
Advantages: It allows for early testing in the software development life
cycle, promotes better separation of concerns between developers and
testers, and supports more thorough testing by covering different
scenarios that developers might overlook.
However, Black Box testing has its limitations as well. It may not explore
all possible code paths and might overlook certain issues that only
become apparent during White Box (structural) testing, where the tester
has access to the internal code. Therefore, it is often beneficial to use a
combination of both Black Box and White Box testing to achieve
comprehensive software testing.
White-box testing
clear-box testing or structural testing, is a software testing technique in which the tester has access to the internal
structure and code of the software being tested. The primary objective of white-box testing is to evaluate the
correctness and quality of the internal logic, data flows, and control structures of the application. This testing
approach is usually performed by developers or specialized testers who are familiar with the programming
languages and the codebase of the software.
Key characteristics of white-box testing:
Access to Source Code: Testers can view and analyze the source code, including the application's algorithms, loops,
conditions, variables, and branches.
In-Depth Testing: White-box testing involves a detailed examination of the software's internal components, aiming
to test each statement, branch, and path in the code.
Verification of Code Logic: It focuses on validating the logical flow of the
code to ensure that the expected outputs are produced for various
inputs.
Coverage Metrics: White-box testing often uses coverage metrics like
statement coverage, branch coverage, and path coverage to measure how
much of the code has been exercised during testing.
White-box testing techniques:
Statement Coverage: This technique aims to execute all executable statements in the code at least once during testing.
Branch Coverage: It ensures that all possible branches (decision points) in the code are executed at least once during
testing.
Path Coverage: Path testing aims to execute all possible paths through the code, which includes different combinations of
branches and conditions.
Boundary Value Analysis (BVA): This technique involves testing the application using boundary values of input
parameters to check for errors at the edges of the input domain.
Cyclomatic Complexity Testing: This technique uses the Cyclomatic complexity metric to determine the number of
independent paths through the code and helps identify areas with a higher risk of defects.
Advantages of white-box Testing:
It provides thorough coverage of the codebase, helping to identify potential defects and logical errors.
It can be used early in the development process to catch bugs at an early stage.
It helps in improving code quality and maintainability by identifying poorly structured code.
The testing process can be automated using various testing tools, reducing manual effort.
Limitations of white-box testing:
Testers need to have programming skills and knowledge of the code, which may limit the testing team.
It may not cover all possible scenarios, as it focuses on the implementation details rather than the system's behavior as a whole.
Since it requires access to the source code, it may not be suitable for testing third-party or closed-source components.
In conclusion, white-box testing is a valuable testing technique that complements other testing methods like black-box testing. By delving into the
internal workings of the software, it helps ensure the correctness of the code and enhances the overall quality of the application.
black and white Box testing.pptx
black and white Box testing.pptx

More Related Content

Similar to black and white Box testing.pptx

Software Testing.pptx
Software Testing.pptxSoftware Testing.pptx
Software Testing.pptxsonalshitole
 
Session 05 - Testing Concepts
Session 05 - Testing ConceptsSession 05 - Testing Concepts
Session 05 - Testing ConceptsPoojaLQA
 
SWE-401 - 10. Software Testing Overview
SWE-401 - 10. Software Testing OverviewSWE-401 - 10. Software Testing Overview
SWE-401 - 10. Software Testing Overviewghayour abbas
 
10. Software testing overview
10. Software testing overview10. Software testing overview
10. Software testing overviewghayour abbas
 
Software testing
Software testingSoftware testing
Software testingSengu Msc
 
Software testing
Software testingSoftware testing
Software testingSengu Msc
 
softwaretestingppt-FINAL-PPT-1
softwaretestingppt-FINAL-PPT-1softwaretestingppt-FINAL-PPT-1
softwaretestingppt-FINAL-PPT-1FAIZALSAIYED
 
Manual testing
Manual testingManual testing
Manual testingVivek V
 
Software testing assignment
Software testing assignmentSoftware testing assignment
Software testing assignmentMuhammad Arshad
 
Software testing sengu
Software testing  senguSoftware testing  sengu
Software testing senguSengu Msc
 
Testing Concepts and Manual Testing
Testing Concepts and Manual TestingTesting Concepts and Manual Testing
Testing Concepts and Manual TestingRajesh-QA
 
Testing Concepts and Manual Testing
Testing Concepts and Manual TestingTesting Concepts and Manual Testing
Testing Concepts and Manual TestingANKUR-BA
 
Testing Concepts and Manual Testing
Testing Concepts and Manual TestingTesting Concepts and Manual Testing
Testing Concepts and Manual TestingSachin-QA
 
Testing Concepts and Manual Testing
Testing Concepts and Manual TestingTesting Concepts and Manual Testing
Testing Concepts and Manual TestingVidya-QA
 
Testing Concepts and Manual Testing
Testing Concepts and Manual TestingTesting Concepts and Manual Testing
Testing Concepts and Manual TestingFayis-QA
 
Software QA Fundamentals by Prabhath Darshana
Software QA Fundamentals by Prabhath DarshanaSoftware QA Fundamentals by Prabhath Darshana
Software QA Fundamentals by Prabhath DarshanaShamain Peiris
 

Similar to black and white Box testing.pptx (20)

Software Testing.pptx
Software Testing.pptxSoftware Testing.pptx
Software Testing.pptx
 
Manual testing
Manual testingManual testing
Manual testing
 
Session 05 - Testing Concepts
Session 05 - Testing ConceptsSession 05 - Testing Concepts
Session 05 - Testing Concepts
 
SWE-401 - 10. Software Testing Overview
SWE-401 - 10. Software Testing OverviewSWE-401 - 10. Software Testing Overview
SWE-401 - 10. Software Testing Overview
 
10. Software testing overview
10. Software testing overview10. Software testing overview
10. Software testing overview
 
Software testing
Software testingSoftware testing
Software testing
 
Software testing
Software testingSoftware testing
Software testing
 
softwaretestingppt-FINAL-PPT-1
softwaretestingppt-FINAL-PPT-1softwaretestingppt-FINAL-PPT-1
softwaretestingppt-FINAL-PPT-1
 
Manual testing
Manual testingManual testing
Manual testing
 
Software testing assignment
Software testing assignmentSoftware testing assignment
Software testing assignment
 
Software testing sengu
Software testing  senguSoftware testing  sengu
Software testing sengu
 
Testing Concepts and Manual Testing
Testing Concepts and Manual TestingTesting Concepts and Manual Testing
Testing Concepts and Manual Testing
 
Testing Concepts and Manual Testing
Testing Concepts and Manual TestingTesting Concepts and Manual Testing
Testing Concepts and Manual Testing
 
Testing Concepts and Manual Testing
Testing Concepts and Manual TestingTesting Concepts and Manual Testing
Testing Concepts and Manual Testing
 
Testing Concepts and Manual Testing
Testing Concepts and Manual TestingTesting Concepts and Manual Testing
Testing Concepts and Manual Testing
 
Testing Concepts and Manual Testing
Testing Concepts and Manual TestingTesting Concepts and Manual Testing
Testing Concepts and Manual Testing
 
Software testing and types.pptx
Software testing and types.pptxSoftware testing and types.pptx
Software testing and types.pptx
 
Sftwre engg.testng
Sftwre engg.testngSftwre engg.testng
Sftwre engg.testng
 
Software testing career
Software testing careerSoftware testing career
Software testing career
 
Software QA Fundamentals by Prabhath Darshana
Software QA Fundamentals by Prabhath DarshanaSoftware QA Fundamentals by Prabhath Darshana
Software QA Fundamentals by Prabhath Darshana
 

Recently uploaded

CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and usesDevarapalliHaritha
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxvipinkmenon1
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learningmisbanausheenparvam
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLDeelipZope
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 

Recently uploaded (20)

CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and uses
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptx
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learning
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCL
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 

black and white Box testing.pptx

  • 1. Black and White Box Testing By Pavan Nikhil 26 th july 2023
  • 2.
  • 3.
  • 4. Black Box testing software testing technique in which the internal workings or code implementation of the software being tested are not known to the tester. Instead, the tester focuses entirely on the external inputs provided to the software and the corresponding outputs it produces. The name "Black Box" comes from the idea that the software is treated as a black box, where only its inputs and outputs are visible, and its internal structure remains hidden. In Black Box testing, the tester's primary goal is to assess the correctness of the software's functionality, as seen from the user's perspective. It is typically carried out by testers who may not have access to the source code or may not be developers themselves. The purpose of this testing approach is to validate that the software meets the specified requirements and performs as expected.
  • 5. Key characteristics of Black Box Testing:  Independence of Internal Structure: The tester does not have any knowledge of the internal code, design, or implementation details of the software under test. This ensures that the testing is unbiased and resembles the experience of an end-user.  Focus on Requirements and Specifications: The testing is conducted based on the software's functional and non-functional requirements and specifications provided during the software development process.
  • 7.
  • 8. Functional Testing is a type of software testing that focuses on verifying the functionality of a software application or system. It aims to ensure that the software performs its intended tasks and functions correctly according to the specified requirements and design. In functional testing, the software is tested based on the functional specifications, and the primary goal is to validate that it meets the expected behavior and produces the correct outputs for given inputs. Unit Testing: Unit testing is the smallest and most basic level of functional testing. It involves testing individual units or components of the software in isolation to ensure they work correctly. Developers typically perform unit testing to validate that each unit of code behaves as expected, according to the design and requirements. Integration Testing: Integration testing is conducted to verify the interaction and integration between different units or modules of the software. The goal is to identify any issues that might arise when these components are combined. Integration testing ensures that the units work together smoothly and produce the expected results. System Testing: System testing evaluates the entire software system as a whole to verify that it meets the specified requirements and works as intended. It involves testing the integrated system against the defined functional and non-functional requirements. System testing is usually performed by QA teams.
  • 9. Acceptance Testing: Acceptance testing is the final phase of functional testing and is performed to determine whether the software meets the user's acceptance criteria and business requirements. It is typically carried out by end-users or stakeholders to ensure that the software is ready for production deployment. a. User Acceptance Testing (UAT): Involves end-users testing the software in a real-world scenario to validate its usability and functionality based on their needs. b. Alpha Testing: Performed by the internal team within the organization before releasing the software to external users. c. Beta Testing: Involves releasing the software to a select group of external users to gather feedback and identify potential issues before the official launch. Regression Testing: Regression testing is executed to ensure that new code changes or modifications to the software do not negatively impact existing functionalities. It involves retesting the application to validate that the changes introduced have not caused any unintended side effects or regressions.
  • 10. Smoke Testing: Smoke testing is a preliminary test performed to check the most critical functionalities of the software to determine if it is stable enough for further testing. If the smoke test passes, the testing team proceeds with more in-depth testing. It helps identify critical defects early in the testing process. Sanity Testing: Sanity testing is a subset of regression testing and is conducted to quickly verify specific areas or functionalities of the software after making minor changes or bug fixes. The goal is to ensure that the changes have not adversely affected the overall system behavior. These different types of functional testing help ensure the quality and reliability of the software by verifying its functional aspects at various levels of development and deployment.
  • 11.
  • 12.
  • 13. Non-functional Testing software testing that focuses on evaluating the attributes of a software application that are not related to its specific functionalities. Unlike functional testing, which verifies whether the application works as intended, non-functional testing assesses how well the software performs under various conditions and measures its quality based on different criteria. Non-functional testing helps ensure that the software meets specific performance, security, usability, and other non-functional requirements. Here are some common types of non-functional testing: Performance Testing: Performance testing evaluates how well the software performs under different workload conditions. It aims to identify potential performance bottlenecks, measure response times, and assess the scalability and stability of the application. Types of performance testing include: Load Testing: Evaluates performance under expected load levels. Stress Testing: Tests the system's performance beyond its normal capacity. Endurance Testing: Checks performance over an extended period to identify memory leaks or other issues. Spike Testing: Measures the application's response to sudden spikes in user activity.
  • 14. Security Testing: Security testing assesses the software's ability to protect data and maintain the integrity of the system. It involves identifying vulnerabilities and weaknesses that could lead to data breaches or unauthorized access. Security testing includes: Penetration Testing: Simulates real-world attacks to identify security flaws. Usability Testing: Usability testing evaluates the user-friendliness and ease of use of the software from an end-user's perspective. Testers assess how intuitive the user interface is, how easily users can navigate through the application, and whether it meets user expectations. Compatibility Testing: Compatibility testing ensures that the software works effectively across different platforms, devices, browsers, and operating systems. It verifies that the application behaves consistently and delivers a seamless user experience in various environments.
  • 15. Scalability Testing: Scalability testing assesses the software's ability to handle increased workload, data, or user demand. It helps determine whether the application can scale up or down without compromising its performance. Reliability Testing: Reliability testing evaluates the software's stability and ability to perform consistently over time and under different conditions. It aims to identify potential failures and measure the mean time between failures (MTBF). Maintainability Testing: Maintainability testing examines how easy it is to maintain and support the software over its lifecycle. It assesses factors like code readability, modularity, and the ease of making changes without introducing defects. Availability Testing: Availability testing checks the application's ability to remain accessible and functional at all times, ensuring minimal downtime or disruptions.
  • 16. Testing Techniques: Various techniques are employed in Black Box testing, such as Equivalence Partitioning, Boundary Value Analysis, Decision Table Testing, State Transition Testing, etc., to design test cases and scenarios. Equivalence Partitioning: Equivalence Partitioning is a testing technique that divides the input data into groups (partitions) to simplify the testing process. The idea is that if a test case in one partition is valid, then all other test cases in the same partition should be valid as well. Likewise, if a test case in one partition is invalid, then all other test cases in that partition should be invalid. For example, if a software accepts numeric inputs between 1 and 100, you can divide this input range into three partitions: Partition 1: Values less than 1 (Invalid data) Partition 2: Values between 1 and 100 (Valid data) Partition 3: Values greater than 100 (Invalid data) Test cases are then derived from each partition to ensure the software handles inputs correctly and produces expected outputs.
  • 17. Boundary Value Analysis: Boundary Value Analysis (BVA) is an extension of Equivalence Partitioning and focuses specifically on testing the boundaries or edges of the input data. The rationale behind this technique is that defects are often concentrated near the boundaries of valid input ranges. Following the previous example, BVA would consider test cases at the boundaries of the input range: Test with the value 1 (Boundary value - lower limit) Test with the value 100 (Boundary value - upper limit) Test with values just below 1 and just above 100 (Invalid data) By testing these boundary values, testers can identify potential issues related to off-by-one errors, boundary checks, and other edge cases. Decision Table Testing: Decision Table Testing is a technique used when the behavior of the software depends on multiple combinations of inputs and conditions. It is particularly useful for testing business rules and logic. A decision table consists of rows and columns, where each row represents a specific combination of inputs, and each column represents a condition or rule. The intersections between rows and columns indicate the corresponding actions or outcomes. Test cases are derived from different combinations of inputs to validate the correct application of rules and ensure the software behaves as expected under various conditions
  • 18. State Transition Testing: State Transition Testing is employed when the software's behavior changes based on its current state or previous inputs. This technique is commonly used to test systems with a finite number of states, such as state machines or event-driven applications. Test cases are designed to cover transitions between different states, including valid and invalid state transitions. By testing various state transitions, testers can assess the software's robustness and its ability to handle state changes correctly. These Black Box testing techniques are valuable tools for designing comprehensive test cases and scenarios without needing knowledge of the software's internal code. By using these techniques, testers can efficiently cover different aspects of the software's functionality and increase the likelihood of identifying defects or unexpected behavior.
  • 19. Testing Levels: Black Box testing can be applied at all testing levels, including unit testing, integration testing, system testing, and acceptance testing. Positive and Negative Testing: Testers validate both expected (positive) and unexpected (negative) inputs to ensure the software handles different scenarios correctly. Test Coverage: Testers aim to achieve maximum test coverage to ensure that all possible paths and functionalities are tested without knowledge of the internal code.
  • 20. Advantages: It allows for early testing in the software development life cycle, promotes better separation of concerns between developers and testers, and supports more thorough testing by covering different scenarios that developers might overlook. However, Black Box testing has its limitations as well. It may not explore all possible code paths and might overlook certain issues that only become apparent during White Box (structural) testing, where the tester has access to the internal code. Therefore, it is often beneficial to use a combination of both Black Box and White Box testing to achieve comprehensive software testing.
  • 21.
  • 22. White-box testing clear-box testing or structural testing, is a software testing technique in which the tester has access to the internal structure and code of the software being tested. The primary objective of white-box testing is to evaluate the correctness and quality of the internal logic, data flows, and control structures of the application. This testing approach is usually performed by developers or specialized testers who are familiar with the programming languages and the codebase of the software. Key characteristics of white-box testing: Access to Source Code: Testers can view and analyze the source code, including the application's algorithms, loops, conditions, variables, and branches. In-Depth Testing: White-box testing involves a detailed examination of the software's internal components, aiming to test each statement, branch, and path in the code.
  • 23. Verification of Code Logic: It focuses on validating the logical flow of the code to ensure that the expected outputs are produced for various inputs. Coverage Metrics: White-box testing often uses coverage metrics like statement coverage, branch coverage, and path coverage to measure how much of the code has been exercised during testing.
  • 24. White-box testing techniques: Statement Coverage: This technique aims to execute all executable statements in the code at least once during testing. Branch Coverage: It ensures that all possible branches (decision points) in the code are executed at least once during testing. Path Coverage: Path testing aims to execute all possible paths through the code, which includes different combinations of branches and conditions. Boundary Value Analysis (BVA): This technique involves testing the application using boundary values of input parameters to check for errors at the edges of the input domain. Cyclomatic Complexity Testing: This technique uses the Cyclomatic complexity metric to determine the number of independent paths through the code and helps identify areas with a higher risk of defects.
  • 25. Advantages of white-box Testing: It provides thorough coverage of the codebase, helping to identify potential defects and logical errors. It can be used early in the development process to catch bugs at an early stage. It helps in improving code quality and maintainability by identifying poorly structured code. The testing process can be automated using various testing tools, reducing manual effort. Limitations of white-box testing: Testers need to have programming skills and knowledge of the code, which may limit the testing team. It may not cover all possible scenarios, as it focuses on the implementation details rather than the system's behavior as a whole. Since it requires access to the source code, it may not be suitable for testing third-party or closed-source components. In conclusion, white-box testing is a valuable testing technique that complements other testing methods like black-box testing. By delving into the internal workings of the software, it helps ensure the correctness of the code and enhances the overall quality of the application.