SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Software Engineering
MCA-303

Mayank Gupta(Student of MCA)
ABES Engineering College, Ghaziabad
Software Testing
Software testing is the process of testing the
software product.
Effective software testing is the delivery of higher
quality software products , more satisfied users,
lower maintenance costs, more accurate and
reliable results.
However, ineffective testing will lead to opposite
results, low quality
products, unhappy users,
increased maintenance cost s, unreliable and in
accurate results.
Testing Objectives
In an excellent book on software testing, Glen
Myers states a number of rules that can serve well
as testing objectives:
1.Testing is a process of executing a program with
the intent of finding an error.
2. A good test case is one that has a high
probability of finding an as-yet-undiscovered error.
3. A successful test is one that uncovers an as-yetundiscovered error.
•
Software testing is process of executing
software in a controlled manner.
•
The objective of testing is to show
incorrectness and testing is considered to
success when error is detected (Myers 1979).
•
Software testing involves operation of a
system or application under controlled conditions
and evaluating results.
•
The controlled condition should include both
normal and abnormal conditions.
The goal of testing is to find bugs and fixed them
as early as possible. But testing is potentially
endless process.
We cannot test till all the defects are unearthed
and removed -- it is simply impossible and
expensive.
At some point, we have to stop testing and ship
the software.
Test case

Test case is a set of test data and test programs
(test scripts) and their expected results. A test
case validates one or more system requirements
and generates a pass or fail.
Test suite

Test suite is a collection of test scenarios and / or
test cases that are related or that may cooperate
with each other. In other words Test suit contains
set of test cases ,which are both related or
unrelated
Test Scenario
Test scenario is set of test cases that ensure that
the business process flows are tested from end to
end .
They may be independent tests or a series of tests
that follow each other , each dependent on the
output of the previous one .
The terms “ test scenario “ and test case” are often
synonymously.
Testing Principles
• All tests should be traceable to customer requirements.
• Tests should be planned long before testing begins.
• Testing should begin “in the small” and progress toward
testing “in the large.”
• Exhaustive testing is not possible.
• To be most effective, testing should be conducted by an
independent third party.
Manual Testing
Test case generation with using
paper
Automation Testing
WINRUNNER
QTP
LOAD RUNNER
SELINIUM
etc.

Pen and
Test Case generation Format-1
Test
Cas
e ID

Descriptio
n/ function

Test
Prerequisit
e

I/O
Action

Expected
Values

Test Case generation Format-1
Test Case No. Test
Case Procedure
purpose

Expected
Result

ID which can What to test
be referred to
in
other
documents like
‘Traceability
Matrix’,
Root
Cause Analysis
of Defects etc.

What should What actually
happen
happened?
This
column
can be omitted
when
Defect
Recording
Tool is used.

How to test

Actual result
WHITE-BOX TESTING
White-box testing, sometimes called glass-box
testing, is a test case design method that uses the
control structure of the procedural design to derive
test cases.
White box testing is based on knowledge of the
internal logic of an application’s code. Tests are
based on coverage of code statements, branches,
paths and conditions.
WHITE-BOX TESTING
Using white-box testing methods, the software
engineer can derive test cases that
(1) Guarantee that all independent paths within a
module have been exercised at least once,
(2) exercise all logical decisions on their true and
false sides,
(3) execute all loops at their boundaries and within
their operational bounds, and
(4) exercise internal data structures to ensure their
validity.
Boundary value analysis
It is a test case design technique
complements equivalence partitioning.

that

Rather than selecting any element of an
equivalence class, BVA leads to the selection of
test cases at the "edges" of the class.
Rather than focusing only on input conditions,
BVA derives test cases from the output domain as
well
Guidelines for BVA are similar in many respects
to those provided for equivalence partitioning:
1. If an input condition specifies a range
bounded by values a and b, test cases should be
designed with values a and b and just above and
just below a and b.
2. If an input condition specifies a number of
values, test cases should be developed that
exercise the minimum and maximum numbers.
Values just above and below minimum and
maximum are also tested.
3. Apply guidelines 1 and 2 to output
conditions.
For example, assume that a temperature vs.
pressure table is required as output from an
engineering analysis program. Test cases should
be designed to create an output report that
produces the maximum (and minimum) allowable
number of table entries.
4. If internal program data structures have
prescribed boundaries (e.g., an array has a
defined limit of 100 entries), be certain to design a
test case to exercise the data structure at its
boundary.
Testing Strategies
Software Testing Steps
Unit testing
Unit testing focuses verification effort on the
smallest unit of software design—the software
component or module.
Using the component-level design description as a
guide, important control paths are tested to uncover
errors within the boundary of the module.
Unit testing
The relative complexity of tests and uncovered
errors is limited by the constrained scope
established for unit testing.
The unit test is white-box oriented, and the step can
be conducted in parallel for multiple components.
Unit testing
Unit testing is the first level of dynamic testing and is
first the responsibility of developers and then that of
the test engineer .
Unit testing is performed after the expected test
results
are
met
or
differences
are
explainable/acceptable.
User Acceptance Testing
User Acceptance testing occurs just before the
software is released to the customer.
The end-users along with the developers perform
the User Acceptance Testing with a certain set of
test cases and typical scenarios.
When custom software is built for one customer,
a series of acceptance tests are conducted to
enable the customer to validate all requirements.
Conducted by the enduser rather than software
engineers, an acceptance test can range from
an informal "test drive" to a planned and
systematically executed series of tests.
In fact, acceptance testing can be conducted
over a period of weeks or months, thereby
uncovering cumulative errors that might degrade
the system over time.
Integration Testing
Integration testing is a systematic technique for
constructing the program structure while at the
same time conducting tests to uncover errors
associated with interfacing.
The objective is to take unit tested components
and build a program structure that has been
dictated by design.
Usually, the following methods of Integration
testing are followed:
1. Top-down Integration approach.
2. Bottom-up Integration approach.
Top-Down Integration
Top-down integration testing is an incremental
approach to construction of program structure.
Modules are integrated by moving downward
through the control hierarchy, beginning with the
main control module.
Modules subordinate to the main control module
are incorporated into the structure in either a
depth-first or breadth-first manner.
The Integration process is performed in a
series of five steps:
1.The main control module is used as a test
driver and stubs are substituted for all
components directly subordinate to the main
control module.
2.Depending on the integration approach
selected subordinate stubs are replaced one
at a time with actual components.
3.Tests are conducted as each component is
integrated.
4.On completion of each set of tests, stub is
replaced with the real component.
5.Regression testing may be conducted to
ensure that new errors have not been
introduced.
Bottom-Up Integration
Bottom-up integration testing begins construction
and testing with atomic modules (i.e. components at
the lowest levels in the program structure).
Because components are integrated from the
bottom up, processing required for components
subordinate to a given level is always available and
the need for stubs is eliminated.
A Bottom-up integration strategy
implemented with the following steps

may

be

1. Low level components are combined into clusters
that perform a specific software sub function.
2. A driver is written to coordinate test case input
and output.
3. The cluster is tested.
Performance testing
It is designed to test the run-time performance of
software within the context of an integrated system.
Performance testing occurs throughout all steps in
the testing process. Even at the unit level, the
performance of an individual module may be
assessed as white-box tests are conducted.
However, it is not until all system elements are fully
integrated that the true performance of a system can
be ascertained.
The Designing Process
Performance tests are often coupled with stress
testing and usually require both hardware and
software instrumentation.
That is, it is often necessary to measure resource
utilization (e.g., processor cycles) in an exacting
fashion.
External instrumentation can monitor execution
intervals, log events (e.g., interrupts) as they
occur, and sample machine states on a regular
basis.
By incrementing a system, the tester can
uncover situations that lead to degradation and
possible system failure.
Regression Testing
Each time a new module is added as part of
integration testing, the software changes.
New data flow paths are established, new I/O may
occur, and new control logic is invoked.
These changes may cause problems with functions
that previously worked flawlessly.
In the context of an integration test strategy,
regression testing is the re-execution of some
subset of tests that have already been conducted to
ensure that changes have not propagated
unintended side effects.
Regression testing is the activity that helps to
ensure that changes (due to testing or for other
reasons) do not introduce unintended behavior
or additional errors.
Regression testing may be conducted manually,
by re-executing a subset of all test cases or
using automated capture/playback tools.
Capture/playback tools enable the software
engineer to capture test cases and results for
subsequent playback and comparison
The regression test suite (the subset of tests to
be executed) contains three different
classes of test cases:
• A representative sample of tests that will
exercise all software functions.
• Additional tests that focus on software functions
that are likely to be affected by the change.
• Tests that focus on the software components
that have been changed.
As integration testing proceeds, the number of
regression tests can grow quite large.
Therefore, the regression test suite should be
designed to include only those tests that
address one or more classes of errors in each
of the major program functions.
It is impractical and inefficient to re-execute
every test for every program function once a
change has occurred.
Smoke testing is an integration testing approach
that is commonly used when “shrink wrapped”
software products are being developed.
It is designed as a pacing mechanism for timecritical projects, allowing the software team to
assess its project on a frequent basis.
In essence, the smoke testing approach
encompasses the following activities:
1. Software components that have been
translated into code are integrated into a “build.”
A build includes all data files, libraries, reusable
modules, and engineered components that are
required to implement one or more product
functions.
2. A series of tests is designed to expose errors
that will keep the build from properly performing
its function. The intent should be to uncover “show
stopper” errors that have the highest likelihood of
throwing the software project behind schedule.
3. The build is integrated with other builds and the
entire product (in its current form) is smoke tested
daily. The integration approach may be top down or
bottom up.
Smoke testing
The smoke test should exercise the entire
system from end to end.
It does not have to be exhaustive, but it
should be capable of exposing major
problems.
The smoke test should be thorough enough
that if the build passes, you can assume that
it is stable enough to be tested more
thoroughly.
Black-box testing
Black-box testing, also called behavioral testing,
focuses on the functional requirements of the
software.
That is, black-box testing enables the software
engineer to derive sets of input conditions that
will fully exercise all functional requirements for a
program.
Black-box testing is not an alternative to whitebox techniques. Rather, it is a complementary
approach that is likely to uncover a different class
of errors than white-box methods.
Black-box testing attempts to find errors in the
following categories:
(1)Incorrect or missing functions,
(2)interface errors,
(3)errors in data structures or external data base
access,
(4) behavior or performance errors, and
(5) initialization and termination errors.
Black-box testing purposely disregards control
structure, attention is focused on the information
domain.
Tests are designed to answer the following
questions:
• How is functional validity tested?
• How is system behavior and performance tested?
• What classes of input will make good test cases?
• How are the boundaries of a data class
isolated?
• What data rates and data volume can the
system tolerate?
• What effect will specific combinations of data
have on system operation?
Black box is a test design method. Black box
testing treats the system as a "black-box", so it
doesn't explicitly use Knowledge of the internal
structure.
Or in other words the Test engineer need not
know the internal working of the “Black box”.
It focuses on the functionality part of the module.
Some people like to call black box testing as
behavioral, functional, opaque-box, and closedbox.
While the term black box is most popularly use,
many people prefer the terms "behavioral" and
"structural" for black box and white box
respectively.
Behavioral test design is slightly different from
black-box test design because the use of internal
knowledge isn't strictly forbidden, but it's still
discouraged.
Advantages of Black Box Testing
• Tester can be non-technical.
• This testing is most likely to find those bugs as
the user would find.
• Testing helps to identify the vagueness and
contradiction in functional specifications.
• Test cases can be designed as soon as the
functional specifications are complete
Disadvantages of Black Box Testing
• Chances of having repetition of tests that are
already done by programmer.
• The test inputs needs to be from large sample
space.
• It is difficult to identify all possible inputs in
limited testing time. So writing test cases is slow
and difficult Chances of having unidentified paths
during this testing
Black-Box Testing
•
•
•
•
•

Graph-Based Testing Methods
Equivalence Partitioning
Boundary Value Analysis
Comparison Testing
Orthogonal Array Testing
White Box testing
•Basic Path Testing
•Flow Graph Notation
•Cyclomatic Complexity
•Graph Matrices
•Control Structure Testing
Condition Testing
Data Flow Testing
•Loop Testing
Simple Loops
Nested Loops
Concatenated Loops
Unstructured Loops
•Data Structure
Structure
approach

of
[

testing
Functional Testing
{User Interface Testing,
Validation testing, functionality testing}

]
[

Integration
{Intra-Modular Testing,
Application and System Testing,
Integration Testing}

],
[

Performance Testing
{Load Testing,
Stress Testing,
Volume Testing,
Stability Testing}

],
[

System Testing
{Usability Testing,
Accessibility Testing,
Compatibility Testing,
Portability Testing,
Localization Testing,
Security Testing
(Web, Window)}

]
Alpha Testing
A software prototype stage when
software is first available for run.

the

Here the software has the core functionalities
in it but complete functionality is not aimed
at. It would be able to accept inputs and give
outputs.
Usually the most used functionalities (parts
of code) are developed more. The test is
conducted at the developer’s site only.
Aim
•is to identify any serious errors
•to judge if the indented functionalities are implemented
•to provide to the customer the feel of the software
– Client uses the software at the
developer’s environment.
– Software used in a controlled
setting, with the developer
always ready to fix bugs.
Alpha testing is simulated or actual operational testing
by potential users/customers or an independent test
team at the developers’ site.
Alpha testing is often employed for off-the-shelf
software as a form of internal acceptance testing,
before the software goes to beta testing.
Alpha Tests are conducted at the developer’s site by
some potential customers. These tests are conducted
in a controlled environment.
Alpha testing may be started when formal testing
process is near completion.
Beta Testing
The Beta testing is conducted at one or more customer
sites by the end-user of the software.
The beta test is a live application of the software in an
environment that cannot be controlled by the developer.
Beta Testing Objectives
Evaluate software technical content
Evaluate software ease of use
Evaluate user documentation draft
Identify errors
Report errors/findings
Beta Testing

– Conducted at client’s
(developer is not present)

environment

– Software gets a realistic workout in target
environment
• Beta testing comes after alpha testing. Versions
of the software, known as beta versions, are
released to a limited audience outside of the
company.
• The software is released to groups of people so
that further testing can ensure the product has
few faults or bugs.
• Sometimes, beta versions are made available to
the open public to increase the feedback field to
a maximal number of future users.
• Beta Tests are conducted by the customers /
end users at their sites.
• Unlike alpha testing, developer is not present
here.
• Beta testing is conducted in a real
environment that cannot be controlled by the
developer

Weitere ähnliche Inhalte

Was ist angesagt?

Testing documents
Testing documentsTesting documents
Testing documentssuhasreddy1
 
Difference between functional testing and non functional testing
Difference between functional testing and non functional testingDifference between functional testing and non functional testing
Difference between functional testing and non functional testingpooja deshmukh
 
Planning for software quality assurance lecture 6
Planning for software quality assurance lecture 6Planning for software quality assurance lecture 6
Planning for software quality assurance lecture 6Abdul Basit
 
Software Testing Techniques
Software Testing TechniquesSoftware Testing Techniques
Software Testing TechniquesKiran Kumar
 
자동화된 Test Case의 효과
자동화된 Test Case의 효과자동화된 Test Case의 효과
자동화된 Test Case의 효과도형 임
 
Principles of Software testing
Principles of Software testingPrinciples of Software testing
Principles of Software testingMd Mamunur Rashid
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategiesSHREEHARI WADAWADAGI
 
Unit 2 - Test Case Design
Unit 2 - Test Case DesignUnit 2 - Test Case Design
Unit 2 - Test Case DesignSelvi Vts
 
System testing ppt
System testing pptSystem testing ppt
System testing pptL ESHWAR
 
Equivalence partitions analysis
Equivalence partitions analysisEquivalence partitions analysis
Equivalence partitions analysisVadym Muliavka
 
Test automation principles, terminologies and implementations
Test automation principles, terminologies and implementationsTest automation principles, terminologies and implementations
Test automation principles, terminologies and implementationsSteven Li
 
TestComplete – A Sophisticated Automated Testing Tool by SmartBear
TestComplete – A Sophisticated Automated Testing Tool by SmartBearTestComplete – A Sophisticated Automated Testing Tool by SmartBear
TestComplete – A Sophisticated Automated Testing Tool by SmartBearSoftware Testing Solution
 
Non Functional Testing
Non Functional TestingNon Functional Testing
Non Functional TestingNishant Worah
 
Jmeter Performance Testing
Jmeter Performance TestingJmeter Performance Testing
Jmeter Performance TestingAtul Pant
 
Manual testing concepts course 1
Manual testing concepts course 1Manual testing concepts course 1
Manual testing concepts course 1Raghu Kiran
 
Load Test Drupal Site Using JMeter and Amazon AWS
Load Test Drupal Site Using JMeter and Amazon AWSLoad Test Drupal Site Using JMeter and Amazon AWS
Load Test Drupal Site Using JMeter and Amazon AWSVladimir Ilic
 

Was ist angesagt? (20)

Testing documents
Testing documentsTesting documents
Testing documents
 
Difference between functional testing and non functional testing
Difference between functional testing and non functional testingDifference between functional testing and non functional testing
Difference between functional testing and non functional testing
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Planning for software quality assurance lecture 6
Planning for software quality assurance lecture 6Planning for software quality assurance lecture 6
Planning for software quality assurance lecture 6
 
Software Testing Techniques
Software Testing TechniquesSoftware Testing Techniques
Software Testing Techniques
 
자동화된 Test Case의 효과
자동화된 Test Case의 효과자동화된 Test Case의 효과
자동화된 Test Case의 효과
 
Principles of Software testing
Principles of Software testingPrinciples of Software testing
Principles of Software testing
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategies
 
Unit 2 - Test Case Design
Unit 2 - Test Case DesignUnit 2 - Test Case Design
Unit 2 - Test Case Design
 
System testing ppt
System testing pptSystem testing ppt
System testing ppt
 
Equivalence partitions analysis
Equivalence partitions analysisEquivalence partitions analysis
Equivalence partitions analysis
 
Test automation principles, terminologies and implementations
Test automation principles, terminologies and implementationsTest automation principles, terminologies and implementations
Test automation principles, terminologies and implementations
 
Load testing with J meter
Load testing with J meterLoad testing with J meter
Load testing with J meter
 
TestComplete – A Sophisticated Automated Testing Tool by SmartBear
TestComplete – A Sophisticated Automated Testing Tool by SmartBearTestComplete – A Sophisticated Automated Testing Tool by SmartBear
TestComplete – A Sophisticated Automated Testing Tool by SmartBear
 
Non Functional Testing
Non Functional TestingNon Functional Testing
Non Functional Testing
 
Automation Testing
Automation TestingAutomation Testing
Automation Testing
 
Jmeter Performance Testing
Jmeter Performance TestingJmeter Performance Testing
Jmeter Performance Testing
 
Manual testing concepts course 1
Manual testing concepts course 1Manual testing concepts course 1
Manual testing concepts course 1
 
Load Test Drupal Site Using JMeter and Amazon AWS
Load Test Drupal Site Using JMeter and Amazon AWSLoad Test Drupal Site Using JMeter and Amazon AWS
Load Test Drupal Site Using JMeter and Amazon AWS
 
Software Testing
Software TestingSoftware Testing
Software Testing
 

Ähnlich wie software testing (20)

Software testing
Software testingSoftware testing
Software testing
 
Object Oriented Testing
Object Oriented TestingObject Oriented Testing
Object Oriented Testing
 
Software testing
Software testingSoftware testing
Software testing
 
Introduction to testing.
Introduction to testing.Introduction to testing.
Introduction to testing.
 
Software test proposal
Software test proposalSoftware test proposal
Software test proposal
 
Software testing2
Software testing2Software testing2
Software testing2
 
Software testing
Software testingSoftware testing
Software testing
 
Software testing
Software testingSoftware testing
Software testing
 
Demo1ghjkl
Demo1ghjklDemo1ghjkl
Demo1ghjkl
 
Software testing
Software testingSoftware testing
Software testing
 
Software testing
Software testingSoftware testing
Software testing
 
Software testing
Software testingSoftware testing
Software testing
 
software testing strategies
software testing strategiessoftware testing strategies
software testing strategies
 
Types
TypesTypes
Types
 
Testing type
Testing typeTesting type
Testing type
 
Software testing
Software testingSoftware testing
Software testing
 
Testing ppt
Testing pptTesting ppt
Testing ppt
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Chapter 9 Testing Strategies.ppt
Chapter 9 Testing Strategies.pptChapter 9 Testing Strategies.ppt
Chapter 9 Testing Strategies.ppt
 
Testing
TestingTesting
Testing
 

Kürzlich hochgeladen

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 

Kürzlich hochgeladen (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 

software testing

  • 1. Software Engineering MCA-303 Mayank Gupta(Student of MCA) ABES Engineering College, Ghaziabad
  • 2. Software Testing Software testing is the process of testing the software product. Effective software testing is the delivery of higher quality software products , more satisfied users, lower maintenance costs, more accurate and reliable results. However, ineffective testing will lead to opposite results, low quality products, unhappy users, increased maintenance cost s, unreliable and in accurate results.
  • 3. Testing Objectives In an excellent book on software testing, Glen Myers states a number of rules that can serve well as testing objectives: 1.Testing is a process of executing a program with the intent of finding an error. 2. A good test case is one that has a high probability of finding an as-yet-undiscovered error. 3. A successful test is one that uncovers an as-yetundiscovered error.
  • 4. • Software testing is process of executing software in a controlled manner. • The objective of testing is to show incorrectness and testing is considered to success when error is detected (Myers 1979). • Software testing involves operation of a system or application under controlled conditions and evaluating results. • The controlled condition should include both normal and abnormal conditions.
  • 5. The goal of testing is to find bugs and fixed them as early as possible. But testing is potentially endless process. We cannot test till all the defects are unearthed and removed -- it is simply impossible and expensive. At some point, we have to stop testing and ship the software.
  • 6. Test case Test case is a set of test data and test programs (test scripts) and their expected results. A test case validates one or more system requirements and generates a pass or fail.
  • 7. Test suite Test suite is a collection of test scenarios and / or test cases that are related or that may cooperate with each other. In other words Test suit contains set of test cases ,which are both related or unrelated
  • 8. Test Scenario Test scenario is set of test cases that ensure that the business process flows are tested from end to end . They may be independent tests or a series of tests that follow each other , each dependent on the output of the previous one . The terms “ test scenario “ and test case” are often synonymously.
  • 9. Testing Principles • All tests should be traceable to customer requirements. • Tests should be planned long before testing begins. • Testing should begin “in the small” and progress toward testing “in the large.” • Exhaustive testing is not possible. • To be most effective, testing should be conducted by an independent third party.
  • 10. Manual Testing Test case generation with using paper Automation Testing WINRUNNER QTP LOAD RUNNER SELINIUM etc. Pen and
  • 11. Test Case generation Format-1 Test Cas e ID Descriptio n/ function Test Prerequisit e I/O Action Expected Values Test Case generation Format-1 Test Case No. Test Case Procedure purpose Expected Result ID which can What to test be referred to in other documents like ‘Traceability Matrix’, Root Cause Analysis of Defects etc. What should What actually happen happened? This column can be omitted when Defect Recording Tool is used. How to test Actual result
  • 12. WHITE-BOX TESTING White-box testing, sometimes called glass-box testing, is a test case design method that uses the control structure of the procedural design to derive test cases. White box testing is based on knowledge of the internal logic of an application’s code. Tests are based on coverage of code statements, branches, paths and conditions.
  • 13. WHITE-BOX TESTING Using white-box testing methods, the software engineer can derive test cases that (1) Guarantee that all independent paths within a module have been exercised at least once, (2) exercise all logical decisions on their true and false sides, (3) execute all loops at their boundaries and within their operational bounds, and (4) exercise internal data structures to ensure their validity.
  • 14. Boundary value analysis It is a test case design technique complements equivalence partitioning. that Rather than selecting any element of an equivalence class, BVA leads to the selection of test cases at the "edges" of the class. Rather than focusing only on input conditions, BVA derives test cases from the output domain as well
  • 15. Guidelines for BVA are similar in many respects to those provided for equivalence partitioning: 1. If an input condition specifies a range bounded by values a and b, test cases should be designed with values a and b and just above and just below a and b. 2. If an input condition specifies a number of values, test cases should be developed that exercise the minimum and maximum numbers. Values just above and below minimum and maximum are also tested.
  • 16. 3. Apply guidelines 1 and 2 to output conditions. For example, assume that a temperature vs. pressure table is required as output from an engineering analysis program. Test cases should be designed to create an output report that produces the maximum (and minimum) allowable number of table entries. 4. If internal program data structures have prescribed boundaries (e.g., an array has a defined limit of 100 entries), be certain to design a test case to exercise the data structure at its boundary.
  • 19. Unit testing Unit testing focuses verification effort on the smallest unit of software design—the software component or module. Using the component-level design description as a guide, important control paths are tested to uncover errors within the boundary of the module.
  • 20. Unit testing The relative complexity of tests and uncovered errors is limited by the constrained scope established for unit testing. The unit test is white-box oriented, and the step can be conducted in parallel for multiple components.
  • 21. Unit testing Unit testing is the first level of dynamic testing and is first the responsibility of developers and then that of the test engineer . Unit testing is performed after the expected test results are met or differences are explainable/acceptable.
  • 22.
  • 23. User Acceptance Testing User Acceptance testing occurs just before the software is released to the customer. The end-users along with the developers perform the User Acceptance Testing with a certain set of test cases and typical scenarios.
  • 24. When custom software is built for one customer, a series of acceptance tests are conducted to enable the customer to validate all requirements. Conducted by the enduser rather than software engineers, an acceptance test can range from an informal "test drive" to a planned and systematically executed series of tests. In fact, acceptance testing can be conducted over a period of weeks or months, thereby uncovering cumulative errors that might degrade the system over time.
  • 25. Integration Testing Integration testing is a systematic technique for constructing the program structure while at the same time conducting tests to uncover errors associated with interfacing. The objective is to take unit tested components and build a program structure that has been dictated by design. Usually, the following methods of Integration testing are followed: 1. Top-down Integration approach. 2. Bottom-up Integration approach.
  • 26. Top-Down Integration Top-down integration testing is an incremental approach to construction of program structure. Modules are integrated by moving downward through the control hierarchy, beginning with the main control module. Modules subordinate to the main control module are incorporated into the structure in either a depth-first or breadth-first manner.
  • 27. The Integration process is performed in a series of five steps: 1.The main control module is used as a test driver and stubs are substituted for all components directly subordinate to the main control module. 2.Depending on the integration approach selected subordinate stubs are replaced one at a time with actual components.
  • 28. 3.Tests are conducted as each component is integrated. 4.On completion of each set of tests, stub is replaced with the real component. 5.Regression testing may be conducted to ensure that new errors have not been introduced.
  • 29. Bottom-Up Integration Bottom-up integration testing begins construction and testing with atomic modules (i.e. components at the lowest levels in the program structure). Because components are integrated from the bottom up, processing required for components subordinate to a given level is always available and the need for stubs is eliminated.
  • 30. A Bottom-up integration strategy implemented with the following steps may be 1. Low level components are combined into clusters that perform a specific software sub function. 2. A driver is written to coordinate test case input and output. 3. The cluster is tested.
  • 31. Performance testing It is designed to test the run-time performance of software within the context of an integrated system. Performance testing occurs throughout all steps in the testing process. Even at the unit level, the performance of an individual module may be assessed as white-box tests are conducted. However, it is not until all system elements are fully integrated that the true performance of a system can be ascertained.
  • 33. Performance tests are often coupled with stress testing and usually require both hardware and software instrumentation. That is, it is often necessary to measure resource utilization (e.g., processor cycles) in an exacting fashion. External instrumentation can monitor execution intervals, log events (e.g., interrupts) as they occur, and sample machine states on a regular basis. By incrementing a system, the tester can uncover situations that lead to degradation and possible system failure.
  • 34. Regression Testing Each time a new module is added as part of integration testing, the software changes. New data flow paths are established, new I/O may occur, and new control logic is invoked. These changes may cause problems with functions that previously worked flawlessly. In the context of an integration test strategy, regression testing is the re-execution of some subset of tests that have already been conducted to ensure that changes have not propagated unintended side effects.
  • 35. Regression testing is the activity that helps to ensure that changes (due to testing or for other reasons) do not introduce unintended behavior or additional errors. Regression testing may be conducted manually, by re-executing a subset of all test cases or using automated capture/playback tools. Capture/playback tools enable the software engineer to capture test cases and results for subsequent playback and comparison
  • 36. The regression test suite (the subset of tests to be executed) contains three different classes of test cases: • A representative sample of tests that will exercise all software functions. • Additional tests that focus on software functions that are likely to be affected by the change. • Tests that focus on the software components that have been changed.
  • 37. As integration testing proceeds, the number of regression tests can grow quite large. Therefore, the regression test suite should be designed to include only those tests that address one or more classes of errors in each of the major program functions. It is impractical and inefficient to re-execute every test for every program function once a change has occurred.
  • 38. Smoke testing is an integration testing approach that is commonly used when “shrink wrapped” software products are being developed. It is designed as a pacing mechanism for timecritical projects, allowing the software team to assess its project on a frequent basis. In essence, the smoke testing approach encompasses the following activities:
  • 39. 1. Software components that have been translated into code are integrated into a “build.” A build includes all data files, libraries, reusable modules, and engineered components that are required to implement one or more product functions. 2. A series of tests is designed to expose errors that will keep the build from properly performing its function. The intent should be to uncover “show stopper” errors that have the highest likelihood of throwing the software project behind schedule.
  • 40. 3. The build is integrated with other builds and the entire product (in its current form) is smoke tested daily. The integration approach may be top down or bottom up.
  • 41. Smoke testing The smoke test should exercise the entire system from end to end. It does not have to be exhaustive, but it should be capable of exposing major problems. The smoke test should be thorough enough that if the build passes, you can assume that it is stable enough to be tested more thoroughly.
  • 42. Black-box testing Black-box testing, also called behavioral testing, focuses on the functional requirements of the software. That is, black-box testing enables the software engineer to derive sets of input conditions that will fully exercise all functional requirements for a program. Black-box testing is not an alternative to whitebox techniques. Rather, it is a complementary approach that is likely to uncover a different class of errors than white-box methods.
  • 43. Black-box testing attempts to find errors in the following categories: (1)Incorrect or missing functions, (2)interface errors, (3)errors in data structures or external data base access, (4) behavior or performance errors, and (5) initialization and termination errors.
  • 44. Black-box testing purposely disregards control structure, attention is focused on the information domain. Tests are designed to answer the following questions: • How is functional validity tested? • How is system behavior and performance tested? • What classes of input will make good test cases?
  • 45. • How are the boundaries of a data class isolated? • What data rates and data volume can the system tolerate? • What effect will specific combinations of data have on system operation?
  • 46. Black box is a test design method. Black box testing treats the system as a "black-box", so it doesn't explicitly use Knowledge of the internal structure. Or in other words the Test engineer need not know the internal working of the “Black box”. It focuses on the functionality part of the module.
  • 47. Some people like to call black box testing as behavioral, functional, opaque-box, and closedbox. While the term black box is most popularly use, many people prefer the terms "behavioral" and "structural" for black box and white box respectively. Behavioral test design is slightly different from black-box test design because the use of internal knowledge isn't strictly forbidden, but it's still discouraged.
  • 48. Advantages of Black Box Testing • Tester can be non-technical. • This testing is most likely to find those bugs as the user would find. • Testing helps to identify the vagueness and contradiction in functional specifications. • Test cases can be designed as soon as the functional specifications are complete
  • 49. Disadvantages of Black Box Testing • Chances of having repetition of tests that are already done by programmer. • The test inputs needs to be from large sample space. • It is difficult to identify all possible inputs in limited testing time. So writing test cases is slow and difficult Chances of having unidentified paths during this testing
  • 50. Black-Box Testing • • • • • Graph-Based Testing Methods Equivalence Partitioning Boundary Value Analysis Comparison Testing Orthogonal Array Testing
  • 51. White Box testing •Basic Path Testing •Flow Graph Notation •Cyclomatic Complexity •Graph Matrices •Control Structure Testing Condition Testing Data Flow Testing •Loop Testing Simple Loops Nested Loops Concatenated Loops Unstructured Loops •Data Structure
  • 52. Structure approach of [ testing Functional Testing {User Interface Testing, Validation testing, functionality testing} ] [ Integration {Intra-Modular Testing, Application and System Testing, Integration Testing} ], [ Performance Testing {Load Testing, Stress Testing, Volume Testing, Stability Testing} ], [ System Testing {Usability Testing, Accessibility Testing, Compatibility Testing, Portability Testing, Localization Testing, Security Testing (Web, Window)} ]
  • 53. Alpha Testing A software prototype stage when software is first available for run. the Here the software has the core functionalities in it but complete functionality is not aimed at. It would be able to accept inputs and give outputs. Usually the most used functionalities (parts of code) are developed more. The test is conducted at the developer’s site only.
  • 54. Aim •is to identify any serious errors •to judge if the indented functionalities are implemented •to provide to the customer the feel of the software
  • 55. – Client uses the software at the developer’s environment. – Software used in a controlled setting, with the developer always ready to fix bugs.
  • 56. Alpha testing is simulated or actual operational testing by potential users/customers or an independent test team at the developers’ site. Alpha testing is often employed for off-the-shelf software as a form of internal acceptance testing, before the software goes to beta testing. Alpha Tests are conducted at the developer’s site by some potential customers. These tests are conducted in a controlled environment. Alpha testing may be started when formal testing process is near completion.
  • 57. Beta Testing The Beta testing is conducted at one or more customer sites by the end-user of the software. The beta test is a live application of the software in an environment that cannot be controlled by the developer.
  • 58. Beta Testing Objectives Evaluate software technical content Evaluate software ease of use Evaluate user documentation draft Identify errors Report errors/findings
  • 59. Beta Testing – Conducted at client’s (developer is not present) environment – Software gets a realistic workout in target environment
  • 60. • Beta testing comes after alpha testing. Versions of the software, known as beta versions, are released to a limited audience outside of the company. • The software is released to groups of people so that further testing can ensure the product has few faults or bugs. • Sometimes, beta versions are made available to the open public to increase the feedback field to a maximal number of future users.
  • 61. • Beta Tests are conducted by the customers / end users at their sites. • Unlike alpha testing, developer is not present here. • Beta testing is conducted in a real environment that cannot be controlled by the developer