Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Software Testing

No description
by

Yasmeen Eldeen

on 31 July 2018

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Software Testing

Introduction
Introduction
Why Testing is Important?
Airplane Crash
Introduction
Software Quality Assurance :
is a set of activities for ensuring quality in software engineering processes (that ultimately result in the quality of software products)
Introduction
Software Quality Control :
is a set of activities for ensuring quality in software products.
Software Quality Control is limited to the Review/Testing phases of the Software Development Life Cycle and the goal is to ensure that the products meet
specifications/requirements
Software Testing
Software Quality:
The totality of functionality and features of a software product that bear on its ability to satisfy stated or implied needs

Software Testing:
A process of
executing a program
or application with the intent of finding the software bugs

Introduction
264 people dead
Why Testing is Important?
Radiation Therapy
Why Testing is Important ?
Software Testing
is necessary because we all make mistakes. Some of those mistakes are unimportant, but some of them are expensive or dangerous. We need to check everything and anything we produce because things can
always go wrong
Testing Principles
1)
Testing shows presence of
defects
2)
Exhaustive testing is impossible
3)
Early testing
4)
Defect clustering
5)
Pesticide paradox
6)
Testing is context dependent
7)
Absence – of – errors fallacy
Fundamental
Test Process
1)
Planning and Control
2)
Analysis and Design
3)
Implementation and Execution
4)
Evaluating exit criteria and Reporting
5)
Test Closure activities
Fundamental Test Process
Test Planning and Controlling :
1)
Identifying objective / scope for testing
2)
Prepare specifications
3)
Implementation of test strategy
4)
Maintaining / tracking progress of project
5)
Test controlling affects test planning
Fundamental Test Process
Test analysis and design :
1)
Review test basis
2)
Prioritizing test conditions
3)
Define high level tests
4)
Considering test environment
setup
5)
Identifying test data
Fundamental
Test Process
Test Implementation and Execution :
1)
Implementation of test cases
2)
Writing automation test scripts
3)
Creating test data
4)
Creating test suites so that executions became easy
5)
Execution of test cases

Fundamental
Test Process
Evaluating exit criteria
and Reporting :
1)
Verify if exit criteria is meet
2)
Reporting test execution
3)
To assess if more test are needed or if the exit criteria should specified should be changed
Fundamental
Test Process
Test Closure activities :
1)
Performed when project milestone is achieved
2)
Closure of all activities
3)
Keeping test ware so that can be used later
4)
To evaluate how the testing went and learn lessons for future projects
Software Development Model
(
SDLC
)
A framework that describes the activities performed at each stage of a software development project.
Software Development
Model
(
SDLC
)
Waterfall Model :
Software Development
Model
(
SDLC
)
Waterfall Model Strength :
Easy to understand, easy to use
Provides structure to inexperienced staff
Milestones are well understood
Works well when quality is more important than cost or schedule
Software Development
Model
(
SDLC
)
Waterfall Model Deficiencies:
All requirements must be known upfront
Integration is one big bang at the end
Little opportunity for customer to preview the system (until it may be too late)
Software Development
Model
(
SDLC
)
When to use the Waterfall Model:
Requirements are very well known
Product definition is stable
Technology is understood
New version of an existing product
Porting an existing product to a new platform
Software Development
Model
(
SDLC
)
V-Model:
Software Development
Model
(
SDLC
)
V-Model Strength :
Emphasize planning for verification and validation of the product in early stages of product development
Each deliverable must be testable
Project management can track progress by milestones
Easy to use
Software Development
Model
(
SDLC
)
V-Model Weaknesses :
Does not easily handle concurrent events
Does not handle iterations or phases
Does not easily handle dynamic changes in requirements
Does not contain risk analysis activities
Software Development
Model
(
SDLC
)
When to use the V-Model:
Excellent choice for systems requiring high reliability – hospital patient control applications
All requirements are known up-front
Solution and technology are known
Software Development
Model
(
SDLC
)
Agile Model:
Testing Levels
1)
Unit Testing
2)
Integration Test
3)
System Testing
4)
Acceptance Testing
5)
Alpha Testing
6)
Beta Testing
Testing Levels
Unit Testing:
Unit tests are typically written and run by software developers to ensure that code meets it's design and behaves as intended
Testing Levels
Integration Testing:
test interface between components, interactions with different parts of a system
tester should use both functional and non-functional testing
they should focus only on the integration modules not modules themselves
Testing levels
System Testing:
System testing is concerned with behavior of the system as a whole
the test environment should correspond to the production
Testing Levels
Acceptance Testing:
Acceptance testing is always responsibility of the customers or the user of the system
the goal is to establish confidence in the system
finding defects is not the main focus in acceptance testing
Testing Levels
Alpha Testing:
is a type of acceptance testing, performed at the developing organizations site by the developing team
Testing Levels
Beta Testing :
Beta Testing of a product is performed by "real users" of the software application in a "real environment" and can be considered as a form of external User Acceptance Testing
Testing Types
1) Functional Testing :
- Functional Testing refer to activities that verify a specific action or function of the code
- Functional tests tend to answer the question of "
can the user do this?
"
Testing Types
2)Non-Functional Testing :
Non-functional testing is refer to aspects of the software that may not be related to a specific function or user action such as security or other performance
Testing Methods
1)
Static Testing
2)
Dynamic Testing
3)
Black Box Testing
4)
White Box Testing
5)
Gray Box Testing
Tester Skills
How To Write Bug Report !?
How To Write Test Cases ?!
Severity
It is the extent to which the defect can affect the software. In other words it defines the impact that a given defect has on the system
Critical , Moderate , Major
Priority
Priority defines the order in which we should resolve a defect.
Should we fix it now, or can it wait?
Low , Medium , High
Why Testing is Important
1) Finding Defects
2) Gaining confidence about the level of quality
3)
Why testing is important?
1)
Finding Defects
2)
Gaining confidence about the level of quality
3)
Providing information to decision making
4)
Because failure can be very expensive
5)
To guarantee that software product works as user anticipated
Level of Independence of design Tests
1)
Tests designed by the person(s) who wrote the software (
Low Level
)
2)
Tests designed by another person(s)
form development team
3)
Tests designed by a person(s) from a different organizational group (e.g.
an

independent

test

team
)
4)
Tests designed by a person(s) from a different organization or company (
outsourcing
)

Testing Methods
Black Box Testing :
1)
Equivalence Partitioning
2)
Boundary Value
3)
Decision Table Testing
4)
Use case Testing
5)
State Transition Testing

Testing Methods
White Box Testing :
1)
Statement Testing and coverage
2)
Decision Testing and coverage
Test Cases
Test cases involve the set of steps, conditions and inputs which can be used while performing the testing tasks
The main intent of this activity is to ensure whether the Software Passes or Fails in terms of its functionality and other aspects
Test Cases
There are many types of test cases like:
1)
Positive functional testing.
2)
Negative functional testing.
3)
Error guessing.
4)
UI test cases.
5)
Logical test cases.(test design techniques)

Non-Functional Testing
load Test:
Determine system behavior under both normal and anticipated peak load condition
Stress Test:
testing to a breaking point, in order to observe the results
Mobile App's VS Desktop and Web App's
Automation Testing
Automation is the use of tools and
strategies that reduce human involvement or interaction in unskilled, repetitive or redundant tasks

Advantage&Disadvantage
Advantage :
1)Reliable: eliminating human error
2)Reusable
3)Better Quality Software
4)Fast
5)Cost Reduction

Advantage&Disadvantage
Disadvantage:
1)High investment is needed in the tools and training
2)High man power requirement for test preparations
3)A lot of testing areas left uncovered

When to use Automation testing
Large and critical projects.

Requirements not changing frequently.

Stable Software with respect to manual testing.

Availability of time
Automation Testing Tool
HP Quick Test Professional

Selenium

IBM Rational Functional Tester

Visual Studio Test Professional
Full transcript