ISEB Software Testing Presentation
ISEB Software Testing Presentation
Testing Terminology
You will need to read the document and start to learn the
terminology used in software testing
Why Test?
To find bugs
What is a bug?
What is Testing?
EMU
e Commerce
Increased complexity
Speed to Market
ERROR
“A human action that produces an incorrect result”
FAULT
“A manifestation of an ERROR in software”
FAULT
A Fault, if encountered, may cause a failure
FAILURE
“A deviation of the software from its expected delivery or
service”
DEFECT
“The departure of a quality characteristic from its specified value
that results in a product or service not satisfying its normal
usage requirements”
RELIABILITY
“The probability that software will not cause the failure of a
system for a specified period of time under specified
conditions”
QUALITY
“The totality of the characteristics of an entity that bear on its
ability to satisfy stated or implied needs”
QUALITY ASSURANCE
No one is perfect!
We all make mistakes or omissions
Poor Training
Poor Communication
ASSUMPTIONS!
Why Test?
Identifies faults
Reduces live defects
Improves the quality of the users application
Increases reliability
To help ensure live failures don’t impact costs & profitability
To help ensure requirements are satisfied
To ensure legal requirements are met
To help maintain the organisation’s reputation
Quality Measurements
correctness
reliability
usability
maintainability
testability
reusability
Exhaustive Testing
Summary
TEST MANAGEMENT
SPECIFICATION
COMPLETION
RECORDING
EXECUTION
PLANNING
Test Planning
Test Analysis and Specification
Test Execution
Test Recording (Verification)
Checking for Completion
Background Resources
Reference documents Dependencies
Approach Reporting
Method Test Asset Identification
Timetable Exit Criteria
Test preparation
Expected Results
Cross-Referencing &
Classification
Enables maintainability of
Test Assets
Allows testing to be
performed in a focussed
manner directed at specific
areas
Test verification
Summary
z Test Planning
z Test Analysis and Specification
z Test Execution
z Test Recording (Verification)
z Checking for Completion
Intellectual qualities
Knowledge
Testing Independence
Levels of Independence
Summary
The tests will need to be run again to prove that the fault is
fixed
8
Module 93 v1.3.5
How can you fix this
but break that? ~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~
9
9
~~~~~~~~~~~~~~~~
Module 14 v1.4.2 ~~~~~~~~~~~~~~~~
Print (x);
Module 14 v1.4.3
~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~ 9 ~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~
Declare String x =Date();
~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~
Global String x = Date();
~~~~~~~~~~~~~~~~
9
~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~ Module 41 v1.8.9
~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
Declare Integer x = 0;
~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~
8
~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~
For x = 1 to 5
~~~~~~~~~~~~~~~~
Summary
Expected Results
Summary
Prioritisation of Tests
Summary
Verification
z “The process of evaluating a system or component to determine
whether the products of the given development phase satisfies
the conditions imposed at the start of that phase”
Validation
z “Determination of the correctness of the products of software
development with respect to the user needs and requirements”
Testing
z “process of exercising software to verify that it satisfies specified
requirements and to detect faults”
high level
T
requirements UAT
T
design system
T test
code unit
test
low level time
Design Integration
Specifications Testing (large)
Functional System
Specification Testing
level
Program Component
Specification Testing
time
Requirements T UAT
time
R PR R T T T
Reqs
UAT
RPR T T
Spec System Test
R P T
Code Unit Test
level
time
Summary
There are other models used for testing, but these are less
widely used
z Inc. V,V & T
z Other models have been created
Economics of Testing
Watts Humphrey
An example
Change specifications
Change specifications
Change specifications
Change specifications
Re-do UAT
Change specifications
Re-do UAT
Plus...
Loss of business
Additionally
Administration costs
Which is cheaper?
z Testing and finding faults before release
z Not testing and finding faults once the system is live
Summary
List all features of the SUT that will be tested under this
plan
List all features of the SUT that will not be tested under
this plan
All documentation
z e.g. Specification, test plans, procedures, reports
Code releases
Testing tools
z Test management tools, automation tools, excel, word etc
Test systems
z Manual and automated test cases
Inter-dependencies
Configuration
z Maybe operating systems or middleware to test against
Facilities
z Office space, desks, internet access
Who is responsible?
Staff required
z Test managers, team leaders, testers, test analysts
Training requirements
z Tools specific training
z Refresher courses, etc.
z Overall project resource requirements
Deliverables
Why is it so important
z Evidence that the document has been viewed
z Shows that the approach has been agreed and has the backing
of those who matter
z You have commitment, now make them stick to it!
Summary
Acceptance Testing
Unit
Test
Systems
Test
UAT
Alpha /
Beta
Design Integration
Specifications Testing (large)
Functional System
Specification Testing
level
Program Component
Specification Testing
time
Why plan?
Things to consider
Preparing Tests
Manual
Automated
Avoids repetition
Timescales
Resources
Availability
The Business
Copied Environments
Created Environments
Order of Tests
Confidence Checks
Summary
Integration testing
z “Testing performed to expose faults in the interfaces and in the
interaction between integrated components”
DATA
Data Model
Databases
Typical approach
DATA
Multiple Platforms
Communications between platforms
Management of the environments
Coordination of changes
Different technical skills required
Planning testing
Incremental
z Top down
z Bottom-up
z Functional
Non-incremental
z “Big bang”
Summary
“Testing the ease with which users can learn and use the
product”
Summary
A Functional Requirement is
Summary
Integration testing
z “Testing performed to expose faults in the interfaces and in the
interaction between integrated components”
Databases
The SUT
- made up of 000’s of units
External
systems
DATA
Integration testing
Testing components
Planning testing
Incremental
z Top down
z Bottom-up
z Functional
Non-incremental
z “Big bang”
Summary
Component Testing
What is a component?
Testing techniques
Summary
Maintenance Testing
Checking that the fixes have been made and that the system
has not regressed
The Challenge
Old Code
No Documentation
A regression test is
Other Risks
Summary
Summary
A technique
z i.e. how to do it
Equivalence Partitioning
Boundary Value Analysis
State Transition
Cause & Effect Graphing
Syntax Testing
Random Testing
Partition Input & Output values into sets such that each value
within a set can be reasonably expected to be treated in the
same manner
Partitions exercised:
z Valid partitions
z Invalid partitions
Expected results
Example
Course grade
Boundaries to be exercised:
z Just below
z On
z Just above
Expected results
Examples
The exam mark and the coursework mark both have two
boundaries
Identifies
z The various states that the software may be in
z The transitions between these points
z The events that cause the transactions
z Actions resulting from the transactions
Identify initial state and the data / events that will trigger the
transition
Example
Syntax Testing
z Uses the syntax of the components’ inputs as the basis for the
design of the test case
Random Testing
z Not as odd a concept as it sounds
z Not Ad-Hoc testing, but a means of testing functionality with a
randomly selected set of values
Summary
Example
z <100 lines of code
z 100,000,000,000,000 possible
paths
z At 1,000 tests per second
would still take 3,170 years to
test all paths
Databases used
Statement Testing
Branch / Decision Testing
Branch Condition Testing
Branch Condition Combination Testing
Modified Condition Decision Testing
Linear Code Sequence & Jump
Data Flow Testing
Statement Testing
a;
if (b)
{
c;
}
d;
Any test case with b TRUE will achieve full statement coverage
a;
if (b)
{
c;
}
d;
Other techniques
LCSAJ
z Linear Code Sequence And Jump
Summary
Error Guessing
Not ad-hoc testing, but testing that targets certain parts of the
application
e.g.
e.g.
e.g.
If you have the time to run an extra (Ad-Hoc) test that passes
there is little loss
z If it finds a defect then that’s a bonus
Summary
Error guessing can help ensure that areas where defects are
likely to occur are fully tested
Session Topics
Session Objectives
Why review
When to review?
What to Review
Lack of Preparation
Summary
Types of Review
Session Topics
Author’s Review
Informal Review
Walkthroughs
Presentations
Prototypes
Checklists
Templates
Technical Review
Inspections
Author’s review
Informal Review
Walkthrough
Presentations
Prototypes
Checklists
Templates
Inspections
Fagan Inspections
Goals
Activities
Preparation
Follow-up
For each type of review (especially the formal ones) roles and
responsibilities must be clearly defined
Deliverables
Pitfalls
Lack of training
z And therefore understanding of role, responsibilities and
purpose of review
Lack of documentation
Review Management
Peer Technical
Walkthrough Inspections
Review Reviews
What Req.'s & Designs Everything Everything Specs & Code
Why / when Before detail Always* Before detail Before sign off
Summary
Static Analysis
Session Topics
Compilers
Can identify
z Infinite loops
z Unreachable code
z Cyclomatic complexity and other metrics
B1 B2 B3 B4 B8
B9 B5 B6
B7
Metrics
Cyclomatic Complexity
z Identifies the number of decision points in a control flow
z Can be calculated by counting the number of decision points in
a control flow graph and adding 1
Summary
Test Organisation
A “Buddy system”
Guarantees independence
Summary
Configuration Management
Configuration identification
z Requires that all Configuration Items (CI’s) and their versions
are known
Configuration control
z Maintenance of the Configuration Items in a library and
maintenance of records on how Configuration Items change
over time
Status accounting
z The function recording and tracking problem reports, change
requests etc
Configuration auditing
z The function to check on the contents of libraries etc for
standards compliance
Summary
Test Estimation
Test Estimation
Factors to Consider
Risk of Failure
Criticality
Coverage
Stability Of SUT
You can in certain situations load the data for testing & test in
one pass
Test Monitoring
Test Preparation
Test Execution
Test Control
Controlling measures
Re-allocate resource
Summary
Incident Management
What is an incident?
The emphasis will move towards the product and what will
compromise its success
Environment in use
Analysing incidents
Summary
Testing Standards
Testing standards
Summary
Identify the areas in which tools can best help the testing
process
There are tools on the market that can help with analysing
code
These are small modules that drive data into the area under
test
Simulators
Load generation
z How the system performs when accessed by many users
z The tool simulates a number of users accessing the SUT
Debugging tools
Comparison tools
Summary
Find tools that fit in with your processes and address the
weak areas
z This may be more important than selecting the tool with the
most number of features
Software testing tools are not low cost items and there is
usually a large amount of man hours required as well
Summary