0% found this document useful (0 votes)
22 views27 pages

Chapter 1

Software testing is a process aimed at evaluating the functionality of software applications to ensure they meet specified requirements and are defect-free. It involves identifying defects, errors, bugs, failures, and faults, and encompasses various types of testing such as functional, non-functional, unit, integration, and system testing. The testing process includes verification and validation to ensure both the correctness of the software and its alignment with user needs.

Uploaded by

sidharth patil
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)
22 views27 pages

Chapter 1

Software testing is a process aimed at evaluating the functionality of software applications to ensure they meet specified requirements and are defect-free. It involves identifying defects, errors, bugs, failures, and faults, and encompasses various types of testing such as functional, non-functional, unit, integration, and system testing. The testing process includes verification and validation to ensure both the correctness of the software and its alignment with user needs.

Uploaded by

sidharth patil
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/ 27

Introduction to software

Testing
Software Testing
• Software testing is a process, to evaluate the functionality of a
software application with an intent to find whether the developed
software met the specified requirements or not and to identify the
defects to ensure that the product is defect-free in order to produce
the quality product.
• Software testing is a process used to identify the correctness,
completeness, and quality of software. It involves executing a
software application or system to find defects or bugs, verify that it
works as intended, and ensure it meets the specified requirements.
• Definition:
• Software Testing Definition according to ANSI/IEEE 1059 standard –
• A process of analyzing a software item to detect the differences
between existing and required conditions (i.e., defects) and to
evaluate the features of the software item.
• Software testing is required to check the reliability of the software.
• It required to make sure that the final product is user friendly.
• Software testing ensures that the product is in line with requirement
of the client.
• Software is developed by a team of a all having different viewpoints
and approach.
Difference between Defect, Error, Bug, Failure and Fault
Testing is the process of identifying defects, where a defect is any
variance between actual and expected results.
“A mistake in coding is called Error, error found by tester is called
Defect, defect accepted by development team then it is called Bug,
build does not meet the requirements then it Is Failure.
DEFECT
• It can be simply defined as a variance between expected and actual.
Defect is an error found AFTER the application goes into production.
It commonly refers to several troubles with the software products, with
its external behavior or with its internal features.
• BUG: A bug is the result of a coding error. An Error found in the
development environment before the product is shipped to the customer.
A programming error that causes a program to work poorly, produce
incorrect results or crash. An error in software or hardware that causes a
program to malfunction. Bug is terminology of Tester.
• FAILURE: A failure is the inability of a software system or component to
perform its required functions within specified performance
requirements. When a defect reaches the end customer it is called a
Failure.
• FAULT: A fault is introduced into the software as the result of an error. It
is an anomaly in the software that may cause it to behave incorrectly, and
not according to its specification. It is the result of the error.
Benefits of Software Testing
• Customer Satisfaction:
• Cost Savings:
• Security Assurance:
• Improve software quality
• Product Quality
Types of Testing
1)Functional Testing:
2)Non Functional Testing
3)Maintenance (Regression)
4)Unit Testing
5)Integration Testing
6)System Testing
7)Program Testing
Functional Testing:
• Functional Testing is a type of software testing that verifies whether
the software functions according to the specified requirements and
performs its intended tasks correctly.
• It focuses on testing the functional aspects of the software, ensuring
that each feature works as expected from the end user's perspective.

• Objective of Functional Testing


a)Mainline Functions
b)Basic Usability
c)Accessibility
d)Error Conditions
Non Functional Testing
• Non-functional Testing is a type of Software Testing that is
performed to verify the non-functional requirements of the
application.
• It verifies whether the behavior of the system is as per the
requirement or not. It tests all the aspects that are not tested in
functional testing.
• Non Functional requirement
user/Technical issues/stories
Acceptance criteria
Artifacts
Maintenance Testing

• Maintenance testing involves testing software after it has been


released to ensure that modifications (like enhancements, updates, or
bug fixes) do not introduce new issues and that the system continues
to function as expected.
• In this testing type that is done during this upgrading or enhancing or
migration phase is known as maintenance testing.
Types of Maintenance Testing
1)Confirmation Testing
Confirmation Testing (also known as Re-testing) is a type of
software testing conducted to verify whether a specific defect or issue
that was previously identified has been successfully fixed.
The primary purpose of confirmation testing is to confirm that the
defect has been resolved and the fix works as intended, ensuring that
the software functions correctly after changes have been made.
2)Regression Testing:
Regression Testing is a type of software testing that ensures that
recent changes, such as bug fixes, enhancements, or other
modifications, have not adversely affected the existing functionality of
the software.
The main goal of regression testing is to confirm that the software still
behaves as expected after changes are made, and that new defects
have not been introduced into previously tested areas.
• Confirmation Testing vs. Regression Testing:
• Confirmation Testing is specifically targeted at verifying that a
particular defect has been fixed. It only tests the affected part of the
application, ensuring that the issue is resolved.
• Regression Testing, on the other hand, is broader in scope. It checks
that no other parts of the system are adversely affected by the
changes made during defect resolution, including potential issues
introduced by code fixes.
Unit Testing
• Unit Testing is a type of software testing that focuses on verifying the
functionality of individual units or components of a software
application.
• The primary goal of unit testing is to validate that each unit of the
software performs as expected in isolation.
• A "unit" typically refers to the smallest testable part of the software,
often a single function or method within a class or module.
Integration Testing
• Integration Testing is a type of software testing that focuses on
verifying the interaction between different components, modules, or
systems within an application.
• The goal of integration testing is to ensure that the components work
together as expected, ensuring data flow and functionality across
interfaces.
System Testing
• System Testing is a comprehensive testing process that evaluates the
entire software application or system as a whole to ensure it meets the
specified requirements.
• This type of testing is performed after integration testing and before
acceptance testing.
• It aims to validate the complete system’s behavior, performance,
security, and compatibility across different environments and use
cases.
Program Testing
• Program Testing is a process of executing a program or a piece of
software code to detect and fix bugs, verify its functionality, and
ensure that it behaves as expected.
• It is an integral part of the software development lifecycle and is often
carried out during different phases such as unit testing, integration
testing, and system testing.
• Program testing aims to validate that the software works correctly
under specified conditions and to identify potential issues before the
program is deployed.
Testing Objectives
• Verification:
In software testing is the process of evaluating whether a software system
meets its specifications and design requirements.
Verification checks if the software meets the design specifications and works
as intended during development.
answers the question, "Are we building the product right?“
• Validation:
Validation ensures that the product is the right one for the user and meets
their needs and expectations.
Compare the final output with expected o/p and then making changes if need.
It answers “Are we building the right product?”
Verification Validation

1. Verification means checking the Validation means testing the actual product.
documents, languages, designs,
and other programming things.
2. Verification does not involve the Validation involves the execution.
execution of the code.
3. It is considered static testing. It is considered dynamic testing.
4. Verification uses methods such as Validation uses a method such as White Box
walkthroughs, reviews, desk- Testing, Black Box Testing, etc.
checking, and inspection.
5. It has the ability to detect errors It can only detect errors that could not be
quickly determined by the verification method.

6. It includes checking documents It includes the execution of a program


delivered by humans. executed by a computer.
3.Defects
4.Providing Information
5.Preventing Defects
6.Quality Analysis
7.Compatibility
8.Optimum User Experience
9.Verifying Performance and functionality
Principles of Testing
i. Testing shows the presence of defects and not their absence
ii. Exhaustive testing is impossible
iii. Early testing saves time and money
iv. Defects cluster together
v. Beware of the pesticide paradox
vi. Testing is context dependent
vii. Absence of errors is a fallacy
Testing and Debugging
Testing Life Cycle

1)Decision to enter the test phase


2)Introducing the test process
3)Test plan preparation
4)Development of test case
5)Execution and management of test plan
6)Test process evaluation and improvement
• Measurement:
• A measurement is the process of quantifying a specific attribute or
characteristic of a software product or process.
• It refers to collecting raw data or values, typically obtained from the
system, the testing process, or the development cycle.
• Metrics:
• Metrics are the derived values obtained from measurements, often
after processing and analysis, and they are used to evaluate and assess
the quality, effectiveness, or efficiency of the software or the testing
process.
• Metrics provide a higher-level understanding and decision-making
insight by comparing multiple measurements.

You might also like