SlideShare a Scribd company logo
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.pptx
sonalshitole
 
Session 05 - Testing Concepts
Session 05 - Testing ConceptsSession 05 - Testing Concepts
Session 05 - Testing Concepts
PoojaLQA
 
SWE-401 - 10. Software Testing Overview
SWE-401 - 10. Software Testing OverviewSWE-401 - 10. Software Testing Overview
SWE-401 - 10. Software Testing Overview
ghayour abbas
 
10. Software testing overview
10. Software testing overview10. Software testing overview
10. Software testing overview
ghayour abbas
 
Software testing
Software testingSoftware testing
Software testing
Sengu Msc
 
Software testing
Software testingSoftware testing
Software testing
Sengu Msc
 
softwaretestingppt-FINAL-PPT-1
softwaretestingppt-FINAL-PPT-1softwaretestingppt-FINAL-PPT-1
softwaretestingppt-FINAL-PPT-1FAIZALSAIYED
 
Manual testing
Manual testingManual testing
Manual testing
Vivek V
 
Software testing assignment
Software testing assignmentSoftware testing assignment
Software testing assignment
Muhammad 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 Testing
Vidya-QA
 
Testing Concepts and Manual Testing
Testing Concepts and Manual TestingTesting Concepts and Manual Testing
Testing Concepts and Manual Testing
ANKUR-BA
 
Testing Concepts and Manual Testing
Testing Concepts and Manual TestingTesting Concepts and Manual Testing
Testing Concepts and Manual Testing
Sachin-QA
 
Testing Concepts and Manual Testing
Testing Concepts and Manual TestingTesting Concepts and Manual Testing
Testing Concepts and Manual Testing
Fayis-QA
 
Testing Concepts and Manual Testing
Testing Concepts and Manual TestingTesting Concepts and Manual Testing
Testing Concepts and Manual Testing
Rajesh-QA
 
Software testing and types.pptx
Software testing and types.pptxSoftware testing and types.pptx
Software testing and types.pptx
KLS GOGTE INSTITUTE OF TECHNOLOGY
 
Sftwre engg.testng
Sftwre engg.testngSftwre engg.testng
Sftwre engg.testng
kanika20071990
 
Software testing career
Software testing careerSoftware testing career
Software testing career
Ahmed Ahmed Mokhtar
 
Software QA Fundamentals by Prabhath Darshana
Software QA Fundamentals by Prabhath DarshanaSoftware QA Fundamentals by Prabhath Darshana
Software QA Fundamentals by Prabhath Darshana
Shamain 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

Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
Massimo Talia
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
Amil Baba Dawood bangali
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
Pratik Pawar
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
SamSarthak3
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
ViniHema
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation & Control
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
AJAYKUMARPUND1
 
ML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptxML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptx
Vijay Dialani, PhD
 
ASME IX(9) 2007 Full Version .pdf
ASME IX(9)  2007 Full Version       .pdfASME IX(9)  2007 Full Version       .pdf
ASME IX(9) 2007 Full Version .pdf
AhmedHussein950959
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
WENKENLI1
 
ethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.pptethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.ppt
Jayaprasanna4
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
thanhdowork
 
space technology lecture notes on satellite
space technology lecture notes on satellitespace technology lecture notes on satellite
space technology lecture notes on satellite
ongomchris
 
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang,  ICLR 2024, MLILAB, KAIST AI.pdfJ.Yang,  ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
MLILAB
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
zwunae
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
VENKATESHvenky89705
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
R&R Consult
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
bakpo1
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
seandesed
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
ankuprajapati0525
 

Recently uploaded (20)

Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
 
ML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptxML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptx
 
ASME IX(9) 2007 Full Version .pdf
ASME IX(9)  2007 Full Version       .pdfASME IX(9)  2007 Full Version       .pdf
ASME IX(9) 2007 Full Version .pdf
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
 
ethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.pptethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.ppt
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
 
space technology lecture notes on satellite
space technology lecture notes on satellitespace technology lecture notes on satellite
space technology lecture notes on satellite
 
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang,  ICLR 2024, MLILAB, KAIST AI.pdfJ.Yang,  ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
 

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.