[go: up one dir, main page]

0% found this document useful (0 votes)
20 views18 pages

Testing and Debugging

The document outlines the differences between testing and debugging in software engineering, highlighting that testing identifies defects while debugging fixes them. It details various types of testing, including manual (white box, black box, gray box) and automated testing, as well as functional and non-functional testing types. Additionally, it defines debugging as the process of fixing software errors after they have been identified.

Uploaded by

Mahvash Lodhi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views18 pages

Testing and Debugging

The document outlines the differences between testing and debugging in software engineering, highlighting that testing identifies defects while debugging fixes them. It details various types of testing, including manual (white box, black box, gray box) and automated testing, as well as functional and non-functional testing types. Additionally, it defines debugging as the process of fixing software errors after they have been identified.

Uploaded by

Mahvash Lodhi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 18

Testing and

Debugging
Differences between Testing
and Debugging
• Testing and Debugging are important processes in software
engineering.
• Testing and Debugging seems to be similar but they are quite
different.
• The main difference between Testing and Debugging are testing is the
process of identifying defects or errors in the software system while
debugging is the process to to fix those defects or errors that affect
the working of software.
What is Testing?

• Testing is the process of verifying and validating that a software or


application is bug-free, meets the technical requirements as guided by
its design and development, and meets the user requirements
effectively and efficiently by handling all the exceptional and
boundary cases.
• The purpose of software testing is to identify the errors, faults, or
missing requirements in contrast to actual requirements.
Types of Testing
• Manual Testing
• White Box Testing
• Black Box Testing
• Gray Box Testing
• Automated Testing
• Functional Testing
• Unit Testing
• Integration Testing
• System Testing
• Non-Functional Testing
• Performance Testing
• Usability Testing
• Compatibility Testing
Manual Testing:White box Testing

• White box testing techniques analyze the internal structures the used
data structures, internal design, code structure, and the working of
the software rather than just the functionality as in black box testing.
• It is also called glass box testing clear box testing or structural testing.
White Box Testing is also known as transparent testing or open box
testing.
Manual Testing: Black Box Testing

• Black-box testing is a type of software testing in which the tester is not


concerned with the software’s internal knowledge or implementation
details but rather focuses on validating the functionality based on the
provided specifications or requirements.
Manual Testing: Gray Box Testing

• In the Black Box Testing technique, the tester is unaware of the


internal structure of the item being tested and in White Box Testing
the internal structure is known to the tester.
• The internal structure is partially known in Gray Box Testing.
• This includes access to internal data structures and algorithms to
design the test cases.
• Gray Box Testing is named so because the software program is like a
semitransparent or gray box inside which the tester can partially see.
• It commonly focuses on context-specific errors related to web
systems.
• It is based on requirement test case generation because it has all the
conditions presented before the program is tested.
Automation Testing

• Automated Testing means using special software for tasks that people
usually do when checking and testing a software product.
• The engineering team runs tests automatically with the help of
software tools .
• It will help to keep the testing team to make the process faster.
• Continuous delivery (CD) and quickly sends the new code to users.
• Automated testing is important for this because it converts the manual steps
into automation.
• Continuous integration (CI) checks the new code changes to prevent issues.
• CD gets after CI done everything well.
• Automated testing, CI & CD will together prove that the new code is error-
free and ready for deployment quickly for the project purpose.
Functional Testing

• Functional Testing is a type of Software Testing in which the system is


tested against the functional requirements and specifications.
• Functional testing ensures that the application properly satisfies the
requirements or specifications.
• This type of testing is particularly concerned with the result of
processing.
• It focuses on the simulation of actual system usage but does not
develop any system structure assumptions.
Functional Testing : Unit Testing

• Unit Testing is a software testing technique in which individual units


or components of a software application are tested in isolation. These
units are the smallest pieces of code, typically functions or methods,
ensuring they perform as expected.
• Unit testing helps in identifying bugs early in the development cycle,
enhancing code quality, and reducing the cost of fixing issues later.
Functional Testing : Integration
Testing
• Integration testing is the process of testing the interface between two
software units or modules. It focuses on determining the correctness
of the interface. The purpose of integration testing is to expose faults
in the interaction between integrated units. Once all the modules
have been unit-tested, integration testing is performed.
Functional Testing : System
Testing
• System testing is a type of software testing that evaluates the overall
functionality and performance of a complete and fully integrated
software solution. It tests if the system meets the specified
requirements and if it is suitable for delivery to the end-users. This
type of testing is performed after the integration testing and before
the acceptance testing.
Non-Functional Testing
• It is a type of Software Testing that is performed to verify the non-
functional requirements of the application.
• It verifies whether the behavior of the system is as per the
requirement or not.
• It tests all the aspects that are not tested in functional testing.
Non-Functional Testing:
Performance Testing
• Performance Testing is a type of software testing that ensures
software applications perform properly under their expected workload.
• It is a testing technique carried out to determine system performance in
terms of sensitivity, reactivity, and stability under a particular workload.
Non-Functional Testing:
Usability Testing
• Usability testing is a method used to evaluate the user
experience and navigation of websites, apps, and digital products.
Non-Functional Testing:
Compatibility Testing
• it is performed on an application to check its compatibility (running
capability) on different platforms/environments.
• This testing is done only when the application becomes stable.
• This means simply this compatibility test aims to check the developed
software application functionality on various software, hardware
platforms, networks and browsers, etc.
• This compatibility testing is very important in product production and
implementation point of view as it is performed to avoid future issues
regarding compatibility.
What is Debugging?

• Debugging is the process of fixing a bug in the software.


• It can be defined as identifying, analyzing, and removing errors.
• This activity begins after the software fails to execute properly and
concludes by solving the problem and successfully testing the
software.
• It is considered to be an extremely complex and tedious task because
errors need to be resolved at all stages of debugging.

You might also like