0% found this document useful (0 votes)
10 views

Software Testing Chapter-1

The document provides an overview of software testing, emphasizing its importance in evaluating software functionality and ensuring quality. It discusses various types of testing, including functional, non-functional, and maintenance testing, along with their benefits such as cost-effectiveness, security, and customer satisfaction. Additionally, it highlights key principles, objectives, and common myths surrounding software testing.

Uploaded by

Sunny Ranpise
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

Software Testing Chapter-1

The document provides an overview of software testing, emphasizing its importance in evaluating software functionality and ensuring quality. It discusses various types of testing, including functional, non-functional, and maintenance testing, along with their benefits such as cost-effectiveness, security, and customer satisfaction. Additionally, it highlights key principles, objectives, and common myths surrounding software testing.

Uploaded by

Sunny Ranpise
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 33

INTRODUCTION TO

SOFTWARE TESTING
INTRODUCTION

 Software testing is a process to evaluate


the functionality of a software system
with an objective to find out whether the
developed software meets the specified
requirements or not and to identify the
defects to ensure that the software is
error free. It is just one mechanism that
can contribute to the quality
enhancement of IT systems.
BENEFITS OF SOFTWARE
TESTING
 Cost-effective: It is one of the important
advantages of software testing. Testing any software
project on time helps you to save your money. If the
bugs are caught in the earlier stage of software
testing, it costs less time and money to fix it.
 Security: It is the most susceptible and sensitive
benefit of software testing. People are looking for
trusted products. It helps in removing risks and
problems earlier.
 Product quality: Quality is an essential
requirement of any software product. Testing
ensures a quality product is delivered to customers.
 Customer satisfaction: The main aim of any
product is to give satisfaction to their customers
while using the software.
TESTING IS CLASSIFIED INTO
THREE CATEGORIES, THEY ARE
DISCUSSED BELOW
 Functional Testing: This is a type of software
testing method that validates the software
system against the functional requirements or
specifications. The purpose of Functional tests
is to test each function of the software
application, by providing appropriate input,
verifying the output against the Functional
requirements. Functional testing mainly
involves black box testing and it is not
concerned about the source code of the
application.
 The prime objective of Functional testing is
checking the functionalities of the software
system which mainly concentrates on:
 i. Mainline functions: Testing the 'main'
functions of an application.
 ii. Basic Usability: It involves basic usability
testing of the system. It checks whether user
can freely navigate through the screens
without any difficulties.
 iii. Accessibility: Checks the nature of
accessibility of the system for the user.
 iv. Error Conditions: Usage of testing
techniques to check for error conditions. it
checks whether suitable error messages are
displayed.
NON-FUNCTIONAL TESTING OR
PERFORMANCE TESTING
 While we perform testing, the focus is mainly
on functional testing which tests the
functionality of the product.
 But no functional testing is as important as
functional testing and its requirement should
be considered. Non-functional requirements are
used to perform non-functional testing
 These requirements include the performance
output that is expected from the application or
the software under test. This basically includes
the time taken by the software to operate a
particular system.
FACEBOOK LOGIN PAGE
TEST CASE FOR FACEBOOK
LOGIN PAGE
A non –functional requirement should be captured using inputs
a. User/technical stories
b. In Acceptance criteria
c. Artifacts

Non-function
requirement

User/
Acceptance Artifacts
technical
criteria
stories
 a. User Technical issues/stories: A non-
functional requirement can be captured
using user experience or technical
feedback.
 b. Acceptance criteria: Acceptance
criteria is the point that is defined for
accepting the product by the customer.
 C. In Artifacts: A separate artifact should
be prepared for the non-functional
requirements, this, in turn, would help to
have a better idea of what needs to be
tested and how it can be done in
iterations.
MAINTENANCE (REGRESSION
AND MAINTENANCE)
 In software testing, there are
more than 100 types of testing
and this maintenance testing is
one of them. As a tester, we do
software testing during its pre-
release stage. We also perform
testing on the software after it is
released. Performing testing
after it is released is known as
TYPES OF MAINTENANCE TESTING
 There are two types of maintenance testing:
 i. Confirmation Testing: Testing the modified
functionality. It is to test the modified functionality.
During this part of maintenance testing as a tester, you
have to test all the modifications (either small or big)
made in the software thoroughly and make sure that
there are no functionality issues and downtime.
 ii .Regression Testing: Testing the existing
functionality It is done after the confirmation
maintenance testing phase. It is to test the existing
functionality. As a tester, you have to test the complete
system to make sure the modified functionality
(maintenance work) should not affect the functionality
of the existing software which is known as regression
testing
TESTING STRATEGIES IN SOFTWARE
ENGINEERING
 Unit Testing: This software testing approach is used by
the programmer to test the unit of the program. It helps
developers to know whether the individual unit of the code
is working properly.
 Integration Testing: It focuses on the building and
design of the software. You need to see that the integrated
units are working without any errors.
 System Testing: In this method, your software is
compiled as a whole and then tested as a whole. This
testing strategy checks the functionality, security,
portability amongst others.
 Program Testing: It is a method of executing an actual
software program with the aim of testing program
behavior and finding errors. The software program is
executed with test case data to analyze the program
behavior or response to the test data. A good program
FAULT, ERRORS AND FAILURES
 An Error is the variance between the
actual output and the expected output.
 A Failure is the inability of a system or
its components to perform the required
task according to its specification.
 Defects any abnormal behaviour found
in the software.
 Bugs developer accepts the defects.
PROFESSIONAL SOFTWARE
TESTING PRACTICES INCLUDE
 i. Planning and design of testing from the
beginning of the software development life cycle.
 ii. Acceptance test criteria defined by users at the
same time as user requirements are being noted
or defined.
 iii. System tests identified during requirement
analysis.
 iv. Unit test cases identified during detailed
design.
 v. Execution of unit tests, integration tests,
system tests and acceptance tests.
 vi. Evaluation of test effectiveness.
TESTING OBJECTIVES
 Software testing is one of the most critical processes
performed during Software Development Life Cycle
(SDLC)
 It is a combination of various activities that are
performed continuously. since the commencement of the
project. It helps to verify and validate that the software
meets the requirements and works as per expectations.
 Testing allows testers to establish the quality and
performance of the software. In short, software testing
guarantees proper functioning of the software and
validates its security and stability.
 The goals and objectives of software testing are
numerous, which when achieved help developers build a
defect less and error free software and application that
has very good performance, quality, effectiveness,
security, among other things.
THESE OBJECTIVES ARE

 Verification: A prominent objective of testing is verification, which


allows testers to confirm that the software meets the various
business and technical requirements stated by the client before the
inception of the whole project.
 Validation: Confirms that the software performs as expected and as
per the requirements of the clients. Validation involves checking and
comparing the final output with the expected output and then
making necessary changes if there is a difference between them.
 Defects: The most important purpose of testing is to find bugs in
the software to prevent its failure or crash during implementation or
deployment. Defects if left undetected o unattended can harm the
functioning of the software and can lead to loss of money, and
reputation of the client.
 Providing Information: With the assistance of reports generated
during the process of software testing, testers can accumulate a
variety of information related to the software and the steps taken to
prevent its failure
 Preventing Defects: During the process of testing, the aim of tests
are to identify defects and prevent them from occurring again in the
future. To accomplish this goal, software is tested rigorously by
independent testers.
 Quality Analysis: Testing helps improve the quality of
the software by constantly measuring and verifying its
design and coding. Additionally, various types of testing
techniques are used by testers, which help them achieve
the desired software quality.
 Compatibility: It helps validate application's
compatibility with the implementation environment,
various devices, operating systems, user requirements,
among other things
 Optimum User Experience: Easy software and
application accessibility and optimum user experience
are two important requirements that need to be
accomplished for the success of any project as well as to
increase the revenue of the client
 Verifying Performance and Functionality: It ensures
that the software has superior performance and
functionality. This is mainly verified by placing the
software under extreme stress to identify and measure
its failure modes
PRINCIPLES OF TESTING

 Principles of Testing There are seven foundational principles for software


testing that reinforce its importance in the development process.
 Testing shows the presence of defects and not their absence: It is
important to note that, not finding defects does ensure software bug
freeness. Because no software is without its defects, testers repeat on their
tests to find as many defects as possible.
 Exhaustive testing is impossible: Testing all possible combinations of
inputs and preconditions is not always possible. In fact, teams and
managers should prioritize testing based on risk analysis.
 Early testing saves time and money: Testers don't need to wait until
the software is deployed, Bugs discovered earlier in a product's lifecycle are
significantly cheaper and easier to address than if it were a customer-
discovered bug.
 Defects cluster together: Most software issues follow the Pareto
Principle-80% of the issues arise from the same 20% of its modules.
 Beware of the pesticide paradox: In the software world, this means that
the usual test cases will eventually stop finding new defects. Review and
revise tests regularly.
 Testing is context-dependent: A rinse-and-repeat testing model won't
work for all cases. For instance, a high-traffic e-commerce website must
have different test cases than an inventory system.
 Absence of errors is a fallacy: Software without known issues doesn't
equal error-free software. Finding and fixing some defects won't guarantee
DIFFERENCES BETWEEN TESTING
AND DEBUGGING
TESTING DEBUGGING
Testing is the process to find bugs Debugging is the process to correct
and errors in the software. the bugs or errors found during
testing process.
It is the process to identify the It is the process to identify and fix
failure of implemented code in the errors.
software.
Testing process displays the errors. Debugging is a logical process.
Testing is done by the software Debugging is done by the
tester. programmer.
Design knowledge is not required Debugging requires proper design
in the testing process. knowledge.
Testing can be manual or Debugging is always manual.
automated. Debugging can't be automated.
It is based on different testing Debugging is based on different
levels, i.e. unit testing, integration types of bugs.
testing, system testing etc.
Testing is a stage of Software Debugging is not aspect of
Development Life Cycle (SDLC). Software an Development Life
Testing Metrics and Measurements
A software testing metric is a quantitative measure of the
degree to which a system, system component. or process
possesses a given attribute. Metrics can be defined as
"Standards of Measurement". Software metrics are used to
measure the quality of the project. A Metric is a unit used for
describing an attribute. Metric is a scale for measurement.
VERIFICATION AND VALIDATION
VERIFICATION VALIDATION
This process includes checking This process includes testing and
documents, design, codes and validating the actual product.
programs.
Verification is static testing. Validation is dynamic testing.
It does not include the execution of It includes the execution of the
the code. code.
Methods used in verification are Methods used in validation are
reviews, walkthroughs and black box testing, white box testing
inspections. and non-functional testing.
It checks whether the software It checks whether the software
conforms to specifications. meets requirements and
expectations of a customer.
It can find bugs in the early stage. The goal of validation is an actual
product.
It comes before validation. It comes after verification.
It consists of checking of It consists of execution of program
documents/files and is performed and is performed by computer.
by human.
TESTING LIFE CYCLE
TESTING LIFE CYCLE
TESTING LIFE CYCLE
TESTING LIFE CYCLE
 MYTH 1 : TESTING IS TOO EXPENSIVE
 Reality – Pay less for testing during software
development or pay more for maintenance or
correction later.
 MYTH 2 : TESTING IS TIME -CONSUMING
 Reality - During the software development life
cycle phases, testing is never a time-
consuming process
 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.
 MYTH 4 : COMPLETE TESTING IS POSSIBLE
 Reality - It becomes an issue when a client or
tester thinks that complete testing is possible.
 MYTH 5 : TESTED SOFTWARE IS BUG-FREE
 Reality-This is a very common myth that the
clients, project managers and the management
team believes in.
 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.
 MYTH 7 : TESTERS ARE RESPONSIBLE FOR Q
Reality- It is a very common misinterpretation
that only testers or the testing team should be
responsible for product quality UALITY OF
PRODUCT
 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.
 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.
 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.
Thank you

You might also like