SlideShare ist ein Scribd-Unternehmen logo
1 von 47
Software Engineering
WEEK 10
Testing Software
Sibel Kuzgun Akın
Software Testing
● Testing is the process of evaluating a
system or its component(s) with the intent to
find whether it satisfies the specified
requirements or not.
● Testing is executing a system in order to
identify any gaps, errors, or missing
requirements in contrary to the actual
requirements.
● Today we will discuss software testing, its
types, methods, levels, and other related
terminologies.
Testing
In simple words,
testing is executing a
system in order to
identify any gaps,
errors, or missing
requirements in
contrary to the actual
requirements.
https://youtu.be/TDynSmrzpXw
Who does testing?
In the IT industry, large companies have a team with
responsibilities to evaluate the developed software
in context of the given requirements.
Moreover, developers also conduct testing which is
called Unit Testing.
● Software Tester
● Software Developer
● Project Lead/Manager
● End User
When to start testing?
● An early start to testing reduces the cost
and time to rework and produce error-free
software that is delivered to the client.
● In Software Development Life Cycle
(SDLC), testing can be started from the
requirements gathering phase and
continued till the deployment of the
software.
“It is better to try to keep a bad thing from happening
than it is to fix the bad thing once it has happened.”
● https://www.seguetech.com/rising-costs-defects/
You should test at every phase of SDLC
● During the requirement gathering phase,
the analysis and verification of
requirements are also considered as
testing.
● Reviewing the design in the design phase
with the intent to improve the design is also
considered as testing.
● Testing performed by a developer on
completion of the code is also categorized
as testing.
Testing in Waterfall Model
● In the Waterfall model, formal
testing is conducted in the
testing (verification) phase.
● Testing starts at the end
when development work is
completed.
● In this phase we test the each
unit or component and make
sure the developed
components are working as
expected. All the testing
activities are performed in
testing phase.
Testing in Agile Methodologies
● Unlike the WaterFall method, Agile Testing can begin at
the start of the project with continuous integration
between development and testing.
● Agile testing is not sequential (in the sense it's executed
only after coding phase) but continuous.
● Agile team works towards a common objective of
achieving quality. Agile testing has shorter time frames
called iterations (1-4 weeks). This methodology is also
called release, or delivery driven approach since it gives
a better prediction on the workable products in short
duration of time.
● Testing is performed at the end of every iteration and
the whole application is tested at the end.
SDLC versus STLC
https://youtu.be/An7HC1LolDM
When to stop testing?
It is difficult to determine when to stop testing, as
testing is a never-ending process and no one can
claim that a software is 100% tested.
● Testing Deadlines
● Completion of test case execution
● Completion of functional and code coverage to a
certain point
● Bug rate falls below a certain level and no high-
priority bugs are identified
● Management decision
7 Testing Principles
https://youtu.be/rFaWOw8bIMM
Verification & Validation
Verification Validation
Verification addresses the concern:
"Are you building it right?"
Validation addresses the concern:
"Are you building the right thing?"
Ensures that the software system
meets all the functionality.
Ensures that the functionalities meet
the intended behavior.
Verification takes place first and
includes the checking for
documentation, code, etc.
Validation occurs after verification and
mainly involves the checking of the
overall product.
Done by developers. Done by testers.
It has static activities, as it includes
collecting reviews, walkthroughs, and
inspections to verify a software.
It has dynamic activities, as it includes
executing the software against the
requirements.
It is an objective process and no
subjective decision should be needed
to verify a software.
It is a subjective process and involves
subjective decisions on how well a
software works.
Myth 1: Testing is Too Expensive
Reality: There is a saying, pay less for testing
during software development or pay more for
maintenance or correction later. Early testing
saves both time and cost in many aspects,
however reducing the cost without testing
may result in improper design of a software
application rendering the product useless.
Myth 2: Testing is Time-Consuming
Reality: During the SDLC phases, testing is
never a time-consuming process. However
diagnosing and fixing the errors identified
during proper testing is a time-consuming but
productive activity.
Myth 3: Only Fully Developed
Products are Tested
Reality: No doubt, testing depends on the
source code but reviewing requirements and
developing test cases is independent from
the developed code. However iterative or
incremental approach as a development life
cycle model may reduce the dependency of
testing on the fully developed software.
Myth 4: Complete Testing is
Possible
Reality: It becomes an issue when a client or
tester thinks that complete testing is possible.
It is possible that all paths have been tested
by the team but occurrence of complete
testing is never possible. There might be
some scenarios that are never executed by
the test team or the client during the software
development life cycle and may be executed
once the project has been deployed.
Myth 5: A Tested Software is
Bug-Free
Reality: This is a very common myth that the
clients, project managers, and the
management team believes in. No one can
claim with absolute certainty that a software
application is 100% bug-free even if a tester
with superb testing skills has tested the
application.
Myth 6: Missed Defects are
due to Testers
Reality: It is not a correct approach to blame
testers for bugs that remain in the application
even after testing has been performed. This
myth relates to Time, Cost, and
Requirements changing Constraints.
However the test strategy may also result in
bugs being missed by the testing team.
Myth 7: Testers are Responsible for
Quality of Product
Reality: It is a very common misinterpretation
that only testers or the testing team should be
responsible for product quality. Testers’
responsibilities include the identification of
bugs to the stakeholders and then it is their
decision whether they will fix the bug or
release the software. Releasing the software
at the time puts more pressure on the testers,
as they will be blamed for any error.
Myth 8: Test automation should be
used wherever possible to reduce time
Reality: Yes, it is true that Test Automation
reduces the testing time, but it is not possible
to start test automation at any time during
software development. Test automaton
should be started when the software has
been manually tested and is stable to some
extent. Moreover, test automation can never
be used if requirements keep changing.
Myth 9: Anyone can Test a
Software Application
Reality: People outside the IT industry think
and even believe that anyone can test a
software and testing is not a creative job.
However testers know very well that this is a
myth. Thinking alternative scenarios, try to
crash a software with the intent to explore
potential bugs is not possible for the person
who developed it.
Myth 10 : A Tester's only Task is to
Find Bugs
Reality: Finding bugs in a software is the task
of the testers, but at the same time, they are
domain experts of the particular software.
Developers are only responsible for the
specific component or area that is assigned
to them but testers understand the overall
workings of the software, what the
dependencies are, and the impacts of one
module on another module.
QA, QC and Testing
Quality Assurance Quality Control Testing
Activities that ensure the
implementation of
processes, procedures
and standards in context
to verification of
developed software and
intended requirements.
It includes activities that
ensure the verification of
a developed software
with respect to
documented (or not in
some cases)
requirements.
It includes activities that
ensure the identification
of bugs/error/defects in a
software.
Focuses on processes
and procedures rather
than conducting actual
testing on the system.
Focuses on actual testing
by executing the software
with an aim to identify
bug/defect through
implementation of
procedures and process.
Focuses on actual
testing.
Process-oriented
activities.
Product-oriented
activities.
Product-oriented
activities.
Preventive activities. It is a corrective process. It is a preventive process.
It is a subset of Software
Test Life Cycle (STLC).
QC can be considered as
the subset of Quality
Assurance.
Testing is the subset of
Quality Control.
Testing and Debugging
Testing: It involves identifying bug/error/defect in a
software without correcting it. Normally
professionals with a quality assurance background
are involved in bugs identification. Testing is
performed in the testing phase.
Debugging: It involves identifying, isolating, and
fixing the problems/bugs. Developers who code the
software conduct debugging upon encountering an
error in the code. Debugging is a part of White Box
Testing or Unit Testing. Debugging can be
performed in the development phase while
conducting Unit Testing or in phases while fixing the
reported bugs.
Types of Testing: Manual Testing
● Manual testing includes testing a software
manually, i.e., without using any automated
tool or any script.
● In this type, the tester takes over the role of
an end-user and tests the software to
identify any unexpected behavior or bug.
– Unit testing
– Integration testing
– System testing
– User acceptance testing
Manual Testing
● Testers use test plans, test cases, or test
scenarios to test a software to ensure the
completeness of testing.
● Manual testing also includes exploratory
testing, as testers explore the software to
identify errors in it.
Types of Testing:
Automation Testing
● Automation testing, which is also known as
Test Automation, is when the tester writes
scripts and uses another software to test
the product.
● This process involves automation of a
manual process. Automation Testing is
used to re-run the test scenarios that were
performed manually, quickly, and
repeatedly.
Automation Testing
Apart from regression
testing, automation testing
is also used to test the
application from load,
performance, and stress
point of view. It increases
the test coverage,
improves accuracy, and
saves time and money in
comparison to manual
testing.
Method: Black box testing
● No knowledge of internal design or code is
required.
● Tests are based on requirements and
functionality.
● In BlackBox Testing we just focus on inputs
and output of the software system without
bothering about internal knowledge of the
software program.
Black box testing
https://youtu.be/Wi75S5TTfQ0
Method: White box testing
● Knowledge of the internal program design
and code is required.
● Tests are based on coverage of code
statements, braches, paths, conditions.
● It is one of two parts of the "box testing"
approach of software testing. Its counter-part,
blackbox testing, involves testing from an
external or end-user type perspective. On the
other hand, white box testing is based on the
inner workings of an application and revolves
around internal testing.
White box testing
https://youtu.be/3bJcvBLJViQ
Method: Grey box testing
● Grey-box testing is a technique to test the
application with having a limited knowledge of the
internal workings of an application.
● Unlike black-box testing, where the tester only
tests the application's user interface; in grey-box
testing, the tester has access to design
documents and the database.
● Having this knowledge, a tester can prepare
better test data and test scenarios while making a
test plan.
https://www.tutorialspoint.com/software_testing/software_testing_methods.htm
Comparison of testing methods
Block box testing Grey box testing White box testing
The internal workings of
an application need not
be known.
The tester has limited
knowledge of the internal
workings of the
application.
Tester has full knowledge
of the internal workings
of the application.
Also known as closed-
box testing, data-driven
testing, or functional
testing.
Also known as
translucent testing, as
the tester has limited
knowledge of the insides
of the application.
Also known as clear-box
testing, structural testing,
or code-based testing.
Performed by end-users
and also by testers and
developers.
Performed by end-users
and also by testers and
developers.
Normally done by testers
and developers.
Comparison of testing methods
Black box testing Grey box testing White box testing
Testing is based on
external expectations -
Internal behavior of the
application is unknown.
Testing is done on the
basis of high-level
database diagrams and
data flow diagrams.
Internal workings are fully
known and the tester can
design test data
accordingly.
It is exhaustive and the
least time-consuming.
Partly time-consuming
and exhaustive.
The most exhaustive and
time-consuming type of
testing.
Not suited for algorithm
testing.
Not suited for algorithm
testing.
Suited for algorithm
testing.
This can only be done by
trial-and-error method.
Not suited for algorithm
testing.
Data domains and
internal boundaries can
be better tested.
Testing levels
Functional testing:
A type of testing that is
based on the
specifications of the
software that is to be
tested.
– Unit testing
– Integration
testing
– System testing
Non-functional testing
– Performance
testing
– Load testing
– Stress testing
Usability testing
Security testing
Portability testing
https://www.tutorialspoint.com/software_testing/software_testing_levels.htm
While we are unit testing
Unit Testing
● Unit testing is performed by the respective
developers on the individual units of source
code assigned areas.
● The developers use test data that is
different from the test data of the quality
assurance team.
● The goal of unit testing is to isolate each
part of the program and show that
individual parts are correct in terms of
requirements and functionality.
Unit Testing
https://youtu.be/lj5nnGa_DIw
Integration Testing
Integration testing is defined as the testing of
combined parts of an application to determine if they
function correctly.
Bottom-up integration
This testing begins with unit testing, followed by
tests of progressively higher-level combinations of
units called modules or builds.
Top-down integration
In this testing, the highest-level modules are tested
first and progressively, lower-level modules are
tested thereafter.
Integration Testing
https://youtu.be/QYCaaNz8emY
System Testing
● The system as a whole is tested to uncover
requirement errors.
● It verifies that all system elements work
properly and that overall system function
and performance has been achieved.
– Alpha testing
– Beta testing
– Acceptance testing
– Performance testing
System Testing
Alpha testing
● It is carried out by the test team within the developing
organisation. It may also be done by the end users.
● https://www.guru99.com/alpha-beta-testing-demystified.html
Beta testing
● It is performed by a selected group of firendly customers.
Acceptence testing
● It is performed by the customer to determine whether to
accept or reject the delivery of the system.
Performance testing
● It is carried out to check whether the system meets the non-
functional requirements identified in the SRS documents.
System Testing &
Acceptance Testing
https://youtu.be/N8-qNMHOVyw
In Summary
White/Grey
Box
White/Grey
Box
White/Grey/
Black Box
Black Box Black Box
Performance Tests
Functional Tests
System Testing
Stakeholders Unit Testing Integration
Testing
Alpha
Testing
User
Acceptance
Beta Testing
Tester + + + - -
Developer + + + - -
Project
Manager
- - + - -
Scrum
master
+ + + - -
Product
owner
- - + - -
End user - - + + +
References
● Tutorialspoint: Software testing
https://www.tutorialspoint.com/software_testing/software_testing_overview.htm
● White box and black box testing
https://www.guru99.com/white-box-testing.html
● Alpha testing versus beta testing
https://www.softwaretestinghelp.com/what-is-alpha-testing-beta-testing/

Weitere ähnliche Inhalte

Was ist angesagt?

Chap2
Chap2Chap2
Chap2
Niit
 

Was ist angesagt? (20)

Chapter 16
Chapter 16Chapter 16
Chapter 16
 
Bai giang-se-03mar14
Bai giang-se-03mar14Bai giang-se-03mar14
Bai giang-se-03mar14
 
Ch02 process a generic view
Ch02 process a generic viewCh02 process a generic view
Ch02 process a generic view
 
Lecture 5 software process model (3)
Lecture 5   software process model (3)Lecture 5   software process model (3)
Lecture 5 software process model (3)
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 
V and v model
V and v modelV and v model
V and v model
 
Validation & verification software engineering
Validation & verification software engineeringValidation & verification software engineering
Validation & verification software engineering
 
Requirements Analysis
Requirements AnalysisRequirements Analysis
Requirements Analysis
 
Software Engineering Fundamentals
Software Engineering FundamentalsSoftware Engineering Fundamentals
Software Engineering Fundamentals
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
 
Notes on agile
Notes on agileNotes on agile
Notes on agile
 
Software development lifecycle
Software development lifecycleSoftware development lifecycle
Software development lifecycle
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Chap2
Chap2Chap2
Chap2
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software development
 
Quality of software
Quality of softwareQuality of software
Quality of software
 
Spm unit iii-configuration mgmt-responsibilities
Spm unit iii-configuration mgmt-responsibilitiesSpm unit iii-configuration mgmt-responsibilities
Spm unit iii-configuration mgmt-responsibilities
 

Ähnlich wie Testing Software

software_testing pdf.pdf
software_testing pdf.pdfsoftware_testing pdf.pdf
software_testing pdf.pdf
Gaurav Nigam
 
Software testing pdf
Software testing pdfSoftware testing pdf
Software testing pdf
Happy500
 

Ähnlich wie Testing Software (20)

Software_testing Unit 1 bca V.pdf
Software_testing Unit 1 bca V.pdfSoftware_testing Unit 1 bca V.pdf
Software_testing Unit 1 bca V.pdf
 
SOFTWARE TESTING
SOFTWARE TESTINGSOFTWARE TESTING
SOFTWARE TESTING
 
Basics in software testing
Basics in software testingBasics in software testing
Basics in software testing
 
Software testing & Quality Assurance
Software testing & Quality Assurance Software testing & Quality Assurance
Software testing & Quality Assurance
 
EFFECTIVE TEST CASE DESING: A REVIEW
EFFECTIVE TEST CASE DESING: A REVIEWEFFECTIVE TEST CASE DESING: A REVIEW
EFFECTIVE TEST CASE DESING: A REVIEW
 
Top 10 Practices for Software Testing in 2023.pptx
Top 10 Practices for Software Testing in 2023.pptxTop 10 Practices for Software Testing in 2023.pptx
Top 10 Practices for Software Testing in 2023.pptx
 
Software testing pdf
Software testing pdfSoftware testing pdf
Software testing pdf
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Software testing pdf
Software testing pdfSoftware testing pdf
Software testing pdf
 
Software testing
Software testingSoftware testing
Software testing
 
Software testing
Software testingSoftware testing
Software testing
 
Software testing(1)
Software testing(1)Software testing(1)
Software testing(1)
 
Software testing
Software testingSoftware testing
Software testing
 
software_testing pdf.pdf
software_testing pdf.pdfsoftware_testing pdf.pdf
software_testing pdf.pdf
 
Software testing pdf
Software testing pdfSoftware testing pdf
Software testing pdf
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Interview questions and answers for quality assurance
Interview questions and answers for quality assuranceInterview questions and answers for quality assurance
Interview questions and answers for quality assurance
 
Welingkar_final project_ppt_IMPORTANCE & NEED FOR TESTING
Welingkar_final project_ppt_IMPORTANCE & NEED FOR TESTINGWelingkar_final project_ppt_IMPORTANCE & NEED FOR TESTING
Welingkar_final project_ppt_IMPORTANCE & NEED FOR TESTING
 
Lesson 7...Question Part 1
Lesson 7...Question Part 1Lesson 7...Question Part 1
Lesson 7...Question Part 1
 
Software Testing
Software TestingSoftware Testing
Software Testing
 

Mehr von Sibel Kuzgun AKIN (8)

Cost Estimation
Cost EstimationCost Estimation
Cost Estimation
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Normal Formlar
Normal FormlarNormal Formlar
Normal Formlar
 
ER Şemaları
ER ŞemalarıER Şemaları
ER Şemaları
 
Veri Tabanı: SQL Gelişmiş Sorgular (Hafta 3)
Veri Tabanı: SQL Gelişmiş Sorgular (Hafta 3)Veri Tabanı: SQL Gelişmiş Sorgular (Hafta 3)
Veri Tabanı: SQL Gelişmiş Sorgular (Hafta 3)
 
Veri Tabani: SQL'e Giriş (Hafta 2)
Veri Tabani: SQL'e Giriş (Hafta 2)Veri Tabani: SQL'e Giriş (Hafta 2)
Veri Tabani: SQL'e Giriş (Hafta 2)
 
Veri Tabanı: Temel Kavramlar (Hafta 1)
Veri Tabanı: Temel Kavramlar (Hafta 1)Veri Tabanı: Temel Kavramlar (Hafta 1)
Veri Tabanı: Temel Kavramlar (Hafta 1)
 

Kürzlich hochgeladen

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Kürzlich hochgeladen (20)

WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 

Testing Software

  • 1. Software Engineering WEEK 10 Testing Software Sibel Kuzgun Akın
  • 2. Software Testing ● Testing is the process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified requirements or not. ● Testing is executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements. ● Today we will discuss software testing, its types, methods, levels, and other related terminologies.
  • 3. Testing In simple words, testing is executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements. https://youtu.be/TDynSmrzpXw
  • 4. Who does testing? In the IT industry, large companies have a team with responsibilities to evaluate the developed software in context of the given requirements. Moreover, developers also conduct testing which is called Unit Testing. ● Software Tester ● Software Developer ● Project Lead/Manager ● End User
  • 5. When to start testing? ● An early start to testing reduces the cost and time to rework and produce error-free software that is delivered to the client. ● In Software Development Life Cycle (SDLC), testing can be started from the requirements gathering phase and continued till the deployment of the software.
  • 6. “It is better to try to keep a bad thing from happening than it is to fix the bad thing once it has happened.” ● https://www.seguetech.com/rising-costs-defects/
  • 7. You should test at every phase of SDLC ● During the requirement gathering phase, the analysis and verification of requirements are also considered as testing. ● Reviewing the design in the design phase with the intent to improve the design is also considered as testing. ● Testing performed by a developer on completion of the code is also categorized as testing.
  • 8. Testing in Waterfall Model ● In the Waterfall model, formal testing is conducted in the testing (verification) phase. ● Testing starts at the end when development work is completed. ● In this phase we test the each unit or component and make sure the developed components are working as expected. All the testing activities are performed in testing phase.
  • 9. Testing in Agile Methodologies ● Unlike the WaterFall method, Agile Testing can begin at the start of the project with continuous integration between development and testing. ● Agile testing is not sequential (in the sense it's executed only after coding phase) but continuous. ● Agile team works towards a common objective of achieving quality. Agile testing has shorter time frames called iterations (1-4 weeks). This methodology is also called release, or delivery driven approach since it gives a better prediction on the workable products in short duration of time. ● Testing is performed at the end of every iteration and the whole application is tested at the end.
  • 11. When to stop testing? It is difficult to determine when to stop testing, as testing is a never-ending process and no one can claim that a software is 100% tested. ● Testing Deadlines ● Completion of test case execution ● Completion of functional and code coverage to a certain point ● Bug rate falls below a certain level and no high- priority bugs are identified ● Management decision
  • 13. Verification & Validation Verification Validation Verification addresses the concern: "Are you building it right?" Validation addresses the concern: "Are you building the right thing?" Ensures that the software system meets all the functionality. Ensures that the functionalities meet the intended behavior. Verification takes place first and includes the checking for documentation, code, etc. Validation occurs after verification and mainly involves the checking of the overall product. Done by developers. Done by testers. It has static activities, as it includes collecting reviews, walkthroughs, and inspections to verify a software. It has dynamic activities, as it includes executing the software against the requirements. It is an objective process and no subjective decision should be needed to verify a software. It is a subjective process and involves subjective decisions on how well a software works.
  • 14. Myth 1: Testing is Too Expensive Reality: There is a saying, pay less for testing during software development or pay more for maintenance or correction later. Early testing saves both time and cost in many aspects, however reducing the cost without testing may result in improper design of a software application rendering the product useless.
  • 15. Myth 2: Testing is Time-Consuming Reality: During the SDLC phases, testing is never a time-consuming process. However diagnosing and fixing the errors identified during proper testing is a time-consuming but productive activity.
  • 16. Myth 3: Only Fully Developed Products are Tested Reality: No doubt, testing depends on the source code but reviewing requirements and developing test cases is independent from the developed code. However iterative or incremental approach as a development life cycle model may reduce the dependency of testing on the fully developed software.
  • 17. Myth 4: Complete Testing is Possible Reality: It becomes an issue when a client or tester thinks that complete testing is possible. It is possible that all paths have been tested by the team but occurrence of complete testing is never possible. There might be some scenarios that are never executed by the test team or the client during the software development life cycle and may be executed once the project has been deployed.
  • 18. Myth 5: A Tested Software is Bug-Free Reality: This is a very common myth that the clients, project managers, and the management team believes in. No one can claim with absolute certainty that a software application is 100% bug-free even if a tester with superb testing skills has tested the application.
  • 19. Myth 6: Missed Defects are due to Testers Reality: It is not a correct approach to blame testers for bugs that remain in the application even after testing has been performed. This myth relates to Time, Cost, and Requirements changing Constraints. However the test strategy may also result in bugs being missed by the testing team.
  • 20. Myth 7: Testers are Responsible for Quality of Product Reality: It is a very common misinterpretation that only testers or the testing team should be responsible for product quality. Testers’ responsibilities include the identification of bugs to the stakeholders and then it is their decision whether they will fix the bug or release the software. Releasing the software at the time puts more pressure on the testers, as they will be blamed for any error.
  • 21. Myth 8: Test automation should be used wherever possible to reduce time Reality: Yes, it is true that Test Automation reduces the testing time, but it is not possible to start test automation at any time during software development. Test automaton should be started when the software has been manually tested and is stable to some extent. Moreover, test automation can never be used if requirements keep changing.
  • 22. Myth 9: Anyone can Test a Software Application Reality: People outside the IT industry think and even believe that anyone can test a software and testing is not a creative job. However testers know very well that this is a myth. Thinking alternative scenarios, try to crash a software with the intent to explore potential bugs is not possible for the person who developed it.
  • 23. Myth 10 : A Tester's only Task is to Find Bugs Reality: Finding bugs in a software is the task of the testers, but at the same time, they are domain experts of the particular software. Developers are only responsible for the specific component or area that is assigned to them but testers understand the overall workings of the software, what the dependencies are, and the impacts of one module on another module.
  • 24. QA, QC and Testing Quality Assurance Quality Control Testing Activities that ensure the implementation of processes, procedures and standards in context to verification of developed software and intended requirements. It includes activities that ensure the verification of a developed software with respect to documented (or not in some cases) requirements. It includes activities that ensure the identification of bugs/error/defects in a software. Focuses on processes and procedures rather than conducting actual testing on the system. Focuses on actual testing by executing the software with an aim to identify bug/defect through implementation of procedures and process. Focuses on actual testing. Process-oriented activities. Product-oriented activities. Product-oriented activities. Preventive activities. It is a corrective process. It is a preventive process. It is a subset of Software Test Life Cycle (STLC). QC can be considered as the subset of Quality Assurance. Testing is the subset of Quality Control.
  • 25. Testing and Debugging Testing: It involves identifying bug/error/defect in a software without correcting it. Normally professionals with a quality assurance background are involved in bugs identification. Testing is performed in the testing phase. Debugging: It involves identifying, isolating, and fixing the problems/bugs. Developers who code the software conduct debugging upon encountering an error in the code. Debugging is a part of White Box Testing or Unit Testing. Debugging can be performed in the development phase while conducting Unit Testing or in phases while fixing the reported bugs.
  • 26. Types of Testing: Manual Testing ● Manual testing includes testing a software manually, i.e., without using any automated tool or any script. ● In this type, the tester takes over the role of an end-user and tests the software to identify any unexpected behavior or bug. – Unit testing – Integration testing – System testing – User acceptance testing
  • 27. Manual Testing ● Testers use test plans, test cases, or test scenarios to test a software to ensure the completeness of testing. ● Manual testing also includes exploratory testing, as testers explore the software to identify errors in it.
  • 28. Types of Testing: Automation Testing ● Automation testing, which is also known as Test Automation, is when the tester writes scripts and uses another software to test the product. ● This process involves automation of a manual process. Automation Testing is used to re-run the test scenarios that were performed manually, quickly, and repeatedly.
  • 29. Automation Testing Apart from regression testing, automation testing is also used to test the application from load, performance, and stress point of view. It increases the test coverage, improves accuracy, and saves time and money in comparison to manual testing.
  • 30. Method: Black box testing ● No knowledge of internal design or code is required. ● Tests are based on requirements and functionality. ● In BlackBox Testing we just focus on inputs and output of the software system without bothering about internal knowledge of the software program.
  • 32. Method: White box testing ● Knowledge of the internal program design and code is required. ● Tests are based on coverage of code statements, braches, paths, conditions. ● It is one of two parts of the "box testing" approach of software testing. Its counter-part, blackbox testing, involves testing from an external or end-user type perspective. On the other hand, white box testing is based on the inner workings of an application and revolves around internal testing.
  • 34. Method: Grey box testing ● Grey-box testing is a technique to test the application with having a limited knowledge of the internal workings of an application. ● Unlike black-box testing, where the tester only tests the application's user interface; in grey-box testing, the tester has access to design documents and the database. ● Having this knowledge, a tester can prepare better test data and test scenarios while making a test plan. https://www.tutorialspoint.com/software_testing/software_testing_methods.htm
  • 35. Comparison of testing methods Block box testing Grey box testing White box testing The internal workings of an application need not be known. The tester has limited knowledge of the internal workings of the application. Tester has full knowledge of the internal workings of the application. Also known as closed- box testing, data-driven testing, or functional testing. Also known as translucent testing, as the tester has limited knowledge of the insides of the application. Also known as clear-box testing, structural testing, or code-based testing. Performed by end-users and also by testers and developers. Performed by end-users and also by testers and developers. Normally done by testers and developers.
  • 36. Comparison of testing methods Black box testing Grey box testing White box testing Testing is based on external expectations - Internal behavior of the application is unknown. Testing is done on the basis of high-level database diagrams and data flow diagrams. Internal workings are fully known and the tester can design test data accordingly. It is exhaustive and the least time-consuming. Partly time-consuming and exhaustive. The most exhaustive and time-consuming type of testing. Not suited for algorithm testing. Not suited for algorithm testing. Suited for algorithm testing. This can only be done by trial-and-error method. Not suited for algorithm testing. Data domains and internal boundaries can be better tested.
  • 37. Testing levels Functional testing: A type of testing that is based on the specifications of the software that is to be tested. – Unit testing – Integration testing – System testing Non-functional testing – Performance testing – Load testing – Stress testing Usability testing Security testing Portability testing https://www.tutorialspoint.com/software_testing/software_testing_levels.htm
  • 38. While we are unit testing
  • 39. Unit Testing ● Unit testing is performed by the respective developers on the individual units of source code assigned areas. ● The developers use test data that is different from the test data of the quality assurance team. ● The goal of unit testing is to isolate each part of the program and show that individual parts are correct in terms of requirements and functionality.
  • 41. Integration Testing Integration testing is defined as the testing of combined parts of an application to determine if they function correctly. Bottom-up integration This testing begins with unit testing, followed by tests of progressively higher-level combinations of units called modules or builds. Top-down integration In this testing, the highest-level modules are tested first and progressively, lower-level modules are tested thereafter.
  • 43. System Testing ● The system as a whole is tested to uncover requirement errors. ● It verifies that all system elements work properly and that overall system function and performance has been achieved. – Alpha testing – Beta testing – Acceptance testing – Performance testing
  • 44. System Testing Alpha testing ● It is carried out by the test team within the developing organisation. It may also be done by the end users. ● https://www.guru99.com/alpha-beta-testing-demystified.html Beta testing ● It is performed by a selected group of firendly customers. Acceptence testing ● It is performed by the customer to determine whether to accept or reject the delivery of the system. Performance testing ● It is carried out to check whether the system meets the non- functional requirements identified in the SRS documents.
  • 45. System Testing & Acceptance Testing https://youtu.be/N8-qNMHOVyw
  • 46. In Summary White/Grey Box White/Grey Box White/Grey/ Black Box Black Box Black Box Performance Tests Functional Tests System Testing Stakeholders Unit Testing Integration Testing Alpha Testing User Acceptance Beta Testing Tester + + + - - Developer + + + - - Project Manager - - + - - Scrum master + + + - - Product owner - - + - - End user - - + + +
  • 47. References ● Tutorialspoint: Software testing https://www.tutorialspoint.com/software_testing/software_testing_overview.htm ● White box and black box testing https://www.guru99.com/white-box-testing.html ● Alpha testing versus beta testing https://www.softwaretestinghelp.com/what-is-alpha-testing-beta-testing/