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

Unit 1

Uploaded by

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

Unit 1

Uploaded by

Nishant BHARDWAJ
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 41

Software Testing

Software Development Life Cycle


SDLC stands for Software Development Life Cycle. It is a systematic
process for planning, creating, testing, deploying, and maintaining
software applications or systems. The SDLC aims to produce high-
quality software that meets or exceeds customer expectations while
staying within budget and time constraints. There are several different
models of SDLC, but the most common ones include:

1.Waterfall Model

2. Iterative Model

3. V Model

4. Agile Model’
Waterfall Model
Iterative Model
V Model
Agile Model
Testing Process
•Testing is an important aspect of the software development life cycle.
•It is basically the process of testing the newly developed software, prior to its actual
use.
•The program is executed with desired input(s) and the output(s) is/are observed
accordingly.
•The observed output(s) is/are compared with expected output(s). If both are same, then
the program is said to be correct as per specifications, otherwise there is something
wrong somewhere in the program.
•Testing is a very expensive process and consumes one-third to one-half of the cost of a
typical development project.
What is Software testing
Testing is a process of exercising a program with the
intention of finding errors.

Testing ensures that the software meets the specified


requirements and functions correctly.

Testing improves quality, reliability and security of


software
Process of executing a program or system with the intent of
finding errors.
To deduct software failures
Evaluating an attribute or capability of a program or system
and determining that it meets its required results.
Scope of Software Testing:
 Examination of code (does it to)
 Execution of that code in various environments and
conditions (what it is supposed to do)
 Examining the aspects of code (do what it needs to do).
When to Start Testing

Start Early: Software testing should ideally start as early as


possible in the software development lifecycle.

Start After Development: Typically, formal testing begins


after the initial coding phase when developers believe the
software is ready for evaluation.

Start with Test Planning: Before executing tests, start by


planning and designing the testing strategy, including test
cases, test data, and testing environments.
When to Stop Testing
Stop When Objectives Are Met

Stop When Resources Are Exhausted

Stop for Release

Stop for Deadlines

Continuous Monitoring
Testing is done in different forms 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.
Positive Testing
Positive testing focuses on verifying that the software performs as
expected under

Normal

Valid

Positive conditions.

It aims to ensure that the software's intended functionality works correctly.


Negative Testing
Negative testing, also known as error or failure testing, involves
evaluating how the software handles

unexpected or incorrect input and situations.

It checks if the software gracefully manages errors and does not crash
or produce unexpected results.
Alpha Testing

The alpha tests are conducted at the developer’s site by the customer.

These tests are conducted in a controlled environment

May start when the formal testing process is near completion.


Beta Testing
•The beta tests are conducted by potential customers at their sites.
•Unlike alpha testing, the developer is not present here.
• It is carried out in an uncontrolled real life environment by many potential
customers.
•Customers are expected to report failures, if any, to the company.
•These failure reports are studied by the developers and appropriate changes
are made in the software. Beta tests have shown their advantages in the past
and releasing a beta version of the software to the potential customer has
become a common practice.
•The company gets the feedback of many potential customers without making
any payment. The other good thing is that the reputation of the company is not
at stake even if many failures are encountered.
Verification & Validation
Verification:
"Are we building the product right”.
The software should conform to its specification.
Validation:
"Are we building the right product”.
The software should do what the user really wants.
Verification Validation
The verifying process includes checking It is a dynamic mechanism of testing
documents, design, code, and program and validating the actual product
It does not involve executing the code It always involves executing the code
Verification uses methods like reviews, It uses methods like Black Box
walkthroughs, inspections, and desk- Testing, White Box Testing, and non-
checking etc. functional testing
Whether the software conforms to Whether the software conforms to
specification is checked expectations of a customer
It finds bugs early in the development It can find bugs that the verification
cycle process can not catch
Target is application and software
architecture, specification, complete Target is an actual product
design, high level, and database design etc.
QA team does verification and make sure
With the involvement of testing team
that the software is as per the requirement
validation is executed on software code.
in the SRS document.
It comes before validation It comes after verification
Independent Validation and Verification
Can be done by another internal team or external (other company)

Developer Independent Tester


Difference between Quality
Assurance/Quality Control and
Testing
Quality Assurance Quality Control Testing
QATesting, Qualitythat
includes activities Assurance,
It includesand Quality
activities that Control
It includes activities that
ensure the implementation ensure the verification of a ensure the identification of
of processes, procedures developed software with bugs/error/defects in a
and standards in context to respect to documented (or software.
verification of developed not in some cases)
software and intended requirements.
requirements.

Focuses on processes and Focuses on actual testing by Focuses on actual testing.


procedures rather than executing the software with
conducting actual testing an aim to identify
on the system. bug/defect through
implementation of
procedures and process.

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 QC can be considered as Testing is the subset of
Test Life Cycle (STLC). the subset of Quality Quality Control.
Assurance.
Software Testing Life Cycle
What is a test case?
Module
Expected
Input Output
ToUpper()
Expected
Input Output
ToUpper()
Expected
Input Output

“a” ?
ToUpper()
Expected
Input Output
“a” “A”
ToUpper()
Expected
Input Output

“A” ?
ToUpper()
Expected
Input Output

“1” ?
ToUpper()
Expected
Input Output

“@” ?
Expected
Input Output

“?” ?
Test Case Format
A typical test case format includes the following elements:

1. Test Case ID
2. Test Case Name

3. Test Objective

4. Preconditions

5. Test Steps

6. Expected Results

7. Actual Results

8. Status

9. Notes
A test case is like a recipe for testing software.

It's a set of clear instructions that explain what to do, what to expect, and
how to check if a specific part of the software works correctly.

Think of it as a checklist that helps make sure the software does what it's
supposed to do.
Quality
Software quality measures how well
software is designed (quality of design),
and how well the software conforms to
that design (quality of conformance)
Quality is meeting the requirements
expected of the software, consistently and
predictably
Error, Defect, Failure and bug
Error: Any mistake in a program called error.
Defect: Mistakes found by tester during system
testing called defect.
Failure: Executing defect code, sometimes will
produce wrong results, causes failure.
Bug: Reported defect is accepted by developer to
resolve called bug.
A software bug is the common term used to describe
an error, flaw, mistake, failure, or fault in a computer
program or system that produces an incorrect or
unexpected result, or causes it to behave in
unintended ways.
Most bugs arise from mistakes and errors made by
people in either a program's source code or its
design, and a few are caused by compilers
producing incorrect code.
A program that contains a large number of bugs,
and/or bugs that seriously interfere with its
functionality, is said to be buggy
Testing Process
 Organize Project involves creating a System Test Plan,
Schedule & Test Approach, and requesting/assigning
resources.
Design/Build System Test involves identifying Test
Cycles, Test Cases, Entrance & Exit Criteria, Expected
Results, etc. In general, test conditions/expected results
will be identified by the Test Team in conjunction with the
Project Business Analyst or Business Expert. The Test Team
will then identify Test Cases and the Data required. The
Test conditions are derived from the Business Design and
the Transaction Requirements Documents
 Design/Build Test Procedures includes setting up
procedures such as Error Management systems and Status
reporting, and setting up the data tables for the Automated
Testing Tool
. Build Test Environment includes
requesting/building hardware, software and data set-ups.
 Execute Project Integration Test - See Section 3 - Test
Phases & Cycles
 Execute Operations Acceptance Test - See Section 3 -
Test Phases & Cycles
 Signoff - Signoff happens when all pre-defined exit
criteria have been achieved
Software Testing Life Cycle
Phases Activities Outcome
Planning Test plan, Refined
Create high level test plan
Specification
Analysis Create detailed test plan,
Revised Test Plan, Functional
Functional Validation Matrix,
validation matrix, test cases
test cases
Designs test cases are revised; select Revised test cases, test data
which test cases to automate sets, sets, risk assessment sheet
Construction Test procedures/Scripts,
Scripting of test cases to
Drivers, test results, Bug
automate,
reports.
Testing cycle Complete testing cycles Test results, Bug Reports
Final testing Execute remaining stress and
Test results and different
performance tests, complete
metrics on test efforts
documentation
Post implementation Plan for improvement of
Evaluate testing processes
testing process

You might also like