0% found this document useful (0 votes)
23 views54 pages

ISTQBCH4

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views54 pages

ISTQBCH4

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 54

Chapter 4

Software Testing
ISTQB / ISEB Foundation Exam Practice

1 Principles 2 Lifecycle 3 Static testing

4 Dynamic test
5 Management 6 Tools
techniques

Dynamic Testing Techniques


1 2 3 ISTQB / ISEB Foundation Exam Practice
4 5 6
Dynamic Testing Techniques

Contents
What is a testing technique?
Black and White box testing
Black box test techniques
White box test techniques
Error Guessing
Why dynamic test techniques?


Exhaustive testing (use of all possible inputs
and conditions) is impractical
- must use a subset of all possible test cases
- must have high probability of detecting faults

Need thought processes that help us select
test cases more intelligently
- test case design techniques are such thought
processes
What is a testing technique?


a procedure for selecting or designing tests

based on a structural or functional model of
the software

successful at finding faults

'best' practice

a way of deriving good test cases

a way of objectively measuring a test effort

Testing
Testing should
should be
be rigorous,
rigorous, thorough
thorough and
and systematic
systematic
Advantages of techniques


Different people: similar probability find faults
- gain some independence of thought

Effective testing: find more faults
- focus attention on specific types of fault
- know you're testing the right thing

Efficient testing: find faults with less effort
- avoid duplication
- systematic techniques are measurable

Using
Using techniques
techniques makes
makes testing
testing much
much more
more effective
effective
Measurement


Objective assessment of thoroughness of
testing (with respect to use of each technique)
- useful for comparison of one test effort to another

E.g.

Project A Project B
60% Equivalence 40% Equivalence
partitions partitions
50% Boundaries 45% Boundaries
75% Branches 60% Branches
1 2 3 ISTQB / ISEB Foundation Exam Practice
4 5 6
Dynamic Testing Techniques

Contents
What is a testing technique?
Black and White box testing
Black box test techniques
White box test techniques
Error Guessing
Three types of systematic technique

Static (non-execution)
• examination of documentation,
source code listings, etc.
Functional (Black Box)
• based on behaviour /
functionality of software
Structural (White Box)
• based on structure
of software
Some test techniques
Static
Static Dynamic
Dynamic
Reviews etc.
Static Analysis
Behavioural
Behavioural
Inspection
Walkthroughs Structural Non-functional
Non-functional Functional
Functional
Structural
Desk-checking etc.
etc.
Equivalence
Control Usability Partitioning
Data Flow
Flow Performance
etc. Boundary
Value Analysis
etc.
Statement
Symbolic Cause-Effect Graphing
Execution Branch/Decision Arcs
Random
Definition Branch Condition LCSAJ
-Use State Transition
Branch Condition
Combination
Black box versus white box?

Black box appropriate Acceptance


Acceptance
at all levels but
dominates higher
levels of testing System
System

White box used


predominately Integration
Integration
at lower levels
to compliment
Component
Component
black box
1 2 3 ISTQB / ISEB Foundation Exam Practice
4 5 6
Dynamic Testing Techniques

Contents
What is a testing technique?
Black and White box testing
Black box test techniques
White box test techniques
Error Guessing
Black Box test design and
measurement techniques

Techniques defined in BS 7925-2
- Equivalence partitioning
- Boundary value analysis Also a measurement
technique?
- State transition testing = Yes
- Cause-effect graphing = No

- Syntax testing
- Random testing

Also defines how to specify other techniques
Equivalence partitioning (EP)

- divide (partition) the inputs, outputs, etc. into areas


which are the same (equivalent)
- assumption: if one value works, all will work
- one from each partition better than all from one
invalid valid invalid

0 1 100 101
Boundary value analysis (BVA)

- faults tend to lurk near boundaries


- good place to look for faults
- test values on both sides of boundaries
invalid valid invalid

0 1 100 101
Example: Loan application
2-64 chars.
Customer Name
Account number 6 digits, 1st
non-zero
Loan amount requested
Term of loan £500 to £9000

Monthly repayment
1 to 30 years
Term:
Minimum £10
Repayment:
Interest rate:
Total paid back:
Customer name
Number of characters:

1 2 64 65
invalid valid invalid

Valid characters: A-Z


-’ a-z Any
space other

Conditions Valid Invalid Valid Invalid


Partitions Partitions Boundaries Boundaries
Customer 2 to 64 chars <2 chars 2 chars 1 chars
name valid chars >64 chars 64 chars 65 chars
invalid chars 0 chars
Account number
valid: non-zero
first character:
invalid: zero

number of digits: 5 6 7
invalid invalid
valid

Conditions Valid Invalid Valid Invalid


Partitions Partitions Boundaries Boundaries
Account 6 digits <6 digits 100000 5 digits
number 1st non-zero >6 digits 999999 7 digits
1st digit =0 0 digits
non-digit
Loan amount

499 500 9000 9001

invalid valid invalid

Conditions Valid Invalid Valid Invalid


Partitions Partitions Boundaries Boundaries
Loan 500 - 9000 <500 500 499
amount >9000 9000 9001
0
non-numeric
null
Condition template
Conditions Valid Tag Invalid Tag Valid Tag Invalid Tag
Partitions Partitions Boundaries Boundaries
Customer 2 - 64 chars V1 < 2 chars X1 2 chars B1 1 char D1
name valid chars V2 > 64 chars X2 64 chars B2 65 chars D2
invalid char X3 0 chars D3
Account 6 digits V3 < 6 digits X4 100000 B3 5 digits D4
number 1st non-zero V4 > 6 digits X5 999999 B4 7 digits D5
st
1 digit = 0 X6 0 digits D6
non-digit X7
Loan 500 - 9000 V5 < 500 X8 500 B5 499 D7
amount >9000 X9 9000 B6 9001 D8
0 X10
non-integer X11
null X12
Design test cases

Test Description Expected Outcome New Tags


Case Covered
1 Name: John Smith Term: 3 years V1, V2,
Acc no: 123456 Repayment: 79.86 V3, V4,
Loan: 2500 Interest rate: 10% V5 .....
Term: 3 years Total paid: 2874.96

2 Name: AB Term: 1 year B1, B3,


Acc no: 100000 Repayment: 44.80 B5, .....
Loan: 500 Interest rate: 7.5%
Term: 1 year Total paid: 537.60
Why do both EP and BVA?


If you do boundaries only, you have covered all
the partitions as well
- technically correct and may be OK if everything works
correctly!
- if the test fails, is the whole partition wrong, or is a
boundary in the wrong place - have to test mid-partition
anyway
- testing only extremes may not give confidence for
typical use scenarios (especially for users)
- boundaries may be harder (more costly) to set up
Test objectives?
Condition Valid Tag Invalid Tag Valid Tag Invalid Tag
Partition Partition Boundary Boundary


For a thorough approach: VP, IP, VB, IB

Under time pressure, depends on your test objective
- minimal user-confidence: VP only?
- maximum fault finding: VB first (plus IB?)
Decision tables


explore combinations of inputs, situations or
events,

it is very easy to overlook specific
combinations of input

start by expressing the input conditions of
interest so that they are either TRUE or FALSE
– record found – policy expired
– file exists – account in credit
– code valid – due date > current date
Example: student access

A university computer system allows students


an allocation of disc space depending on their
projects.
If they have used all their allotted space, they
are only allowed restricted access, i.e. to
delete files, not to create them. This is
assuming they have logged on with a valid
username and password.

What
What are
are the
the input
input and
and output
output conditions?
conditions?
List the input and output conditions

• list the ‘input Input Conditions


conditions’ in the first Valid username
column of the table Valid password
Account in credit
• list the ‘output Output Conditions
conditions’ under the Login accepted
input conditions Restricted access
Determine input combinations


add columns to the table for each unique
combination of input conditions.

each entry in the table may be either ‘T’ for
true, ‘F’ for false.

Input Conditions
Valid username T T T T F F F F
Valid password T T F F T T F F
Account in credit T F T F T F T F
Rationalise input combinations


some combinations may be impossible or not
of interest

some combinations may be ‘equivalent’

use a hyphen to denote “don’t care”

Input Conditions
Valid username F T T T
Valid password - F T T
Account in credit - - F T
Complete the table

determine the expected output conditions for
each combination of input conditions
Input Conditions
Valid username F T T T
Valid password - F T T
Account in credit - - F T
Output Conditions
Login accepted F F T T
Restricted access - - T F
Determine test case groups

each column is at least one test case

Input Conditions
Valid username F T T T
Valid password - F T T
Account in credit - - F T
Output Conditions
Login accepted F F T T
Restricted access - - T F
Tags A B C D
Design test cases

usually one test case for each column but can
be none or several
Test Description Expected Outcome Tag
1 Username BrbU Invalid username A
2 Username Invalid username A
usernametoolong
3 Username BobU Invalid password B
Password abcd
4 Valid user, no disc Restricted access C
space
5 Valid user with disc Unrestricted access D
space
Rationalising outputs


if outputs or effects are mutually exclusive,
I.e. T occurs in only one place in each column,
we can combine them

for example:

X T F F
is equivalent to:
Y F T F
Z F F T Output X Y Z
Rationalising dangers


rationalising is based on assumptions

assumptions may be wrong!

assumptions should be stated

assumptions may change over time

be aware of the dangers
- filling in the full table may find errors which will be
missed if you rationalise
- it is possible to rationalise too far
Extending decision tables


Entries can be more than just ‘true’ or ‘false’
- completing table needs to be done carefully
- rationalising becomes more important

E.g.

Code = 1, 2, or 3 1 1 1 1 2 2 2 2 3 3 3 3
Exp.date < now T T F F T T F F T T F F
Class A product T F T F T F T F T F T F
Decision Tables in relation to EP and
BVA
Input value Output value

FALSE

TRUE
1 2 3 ISTQB / ISEB Foundation Exam Practice
4 5 6
Dynamic Testing Techniques

Contents
What is a testing technique?
Black and White box testing
Black box test techniques
White box test techniques
Error Guessing
White Box test design and
measurement techniques

Techniques defined in BS 7925-2
- Statement testing Also a measurement
- Branch / Decision testing technique?
= Yes
- Data flow testing = No
- Branch condition testing
- Branch condition combination testing
- Modified condition decision testing
- LCSAJ testing

Also defines how to specify other techniques
Using structural coverage
Spe
Spe Enough
cc Software
Software tests?
Tests
Results OK?
What's
covered
More tests ? Coverage OK?

Stronger structural
techniques (different
structural elements)

Increasing coverage
The test coverage trap
Function better
better testing
testing
Function exercised,
exercised,
insufficient
insufficient structure
structure
Functional
testedness

Structure
Structure exercised,
exercised,
insufficient
insufficient function
function
% Statement % Decision % Condition
Combination
Structural testedness

100%
100% coverage
coverage does
does Coverage
Coverage isis not
not
not
not mean
mean 100%
100% tested!
tested! Thoroughness
Thoroughness
Statement
Statement coverage
coverage
Statement coverage is
is normally
normally measured
measured
by
by aa software
software tool.
tool.

percentage of executable statements
exercised by a test suite
number of statements exercised ?
=
total number of statements

example:
- program has 100 statements
- tests exercise 87 statements
- statement coverage = 87%

Typical
Typical ad
ad hoc
hoc testing
testing achieves
achieves 60
60 -- 75%
75%
Example of statement coverage
1 read(a) Test Input Expected
2 IF a > 6 THEN case output
3 b=a 1 7 7
4 ENDIF
5 print b

As all 5 statements are ‘covered’ by


this test case, we have achieved
Statement 100% statement coverage
numbers
Decision
Decision coverage
coverage
Decision coverage is
is normally
normally measured
measured
by
by aa software
software tool.
tool.
(Branch coverage)

percentage of decision outcomes
exercised by a test suite
number of decisions outcomes exercised False
= ?
total number of decision outcomes
True

example:
- program has 120 decision outcomes
- tests exercise 60 decision outcomes
- decision coverage = 50%

Typical
Typical ad
ad hoc
hoc testing
testing achieves
achieves 40
40 -- 60%
60%
Paths through code 1234

12 12 123
?

? ? ? ?

?
Paths through code with loops

1 2 3 4 5 6 7 8 ….

for as many times as it


is possible to go round
? the loop (this can be
unlimited, i.e. infinite)
Wait
Example 1
Wait for card to be inserted Yes
Valid Display
IF card is a valid card THEN card? “Enter..
display “Enter PIN number” No
IF PIN is valid THEN
Reject Valid Yes Select
select transaction PIN?
card trans...
ELSE (otherwise) No
display “PIN invalid”
ELSE (otherwise) Display
“PIN in..
reject card
End

End
Example 2 Read

Read A Yes Yes


A>0 A=21
IF A > 0 THEN
IF A = 21 THEN No No
Print
Print “Key”
ENDIF
ENDIF

End
- 3
Cyclomatic complexity: _____
- Minimum tests to achieve:
1
• Statement coverage: ______
3
• Branch coverage: _____
Example 3 Read

Read A Yes No
Read B A>0 B=0 Print
IF A > 0 THEN No Yes
Yes
IF B = 0 THEN Print A>21 Print
Print “No values”
No
ELSE
Print B
IF A > 21 THEN End
Print A 4
- Cyclomatic complexity: _____
ENDIF
ENDIF - Minimum tests to achieve:
ENDIF 2
• Statement coverage: ______
4
• Branch coverage: _____
Yes
Read A<0 Print
Example 4 No

Read A Note: there Print


Read B are 4 paths
IF A < 0 THEN Yes
Print “A negative” B<0 Print
ELSE No
Print “A positive” Print
ENDIF
IF B < 0 THEN
Print “B negative” End
ELSE 3
- Cyclomatic complexity: _____
Print “B positive”
ENDIF - Minimum tests to achieve:
2
• Statement coverage: ______
2
• Branch coverage: _____
Yes
Read A<0 Print
Example 5 No

Read A
Read B Yes
B<0 Print
IF A < 0 THEN
No
Print “A negative”
ENDIF
IF B < 0 THEN End
Print “B negative”
ENDIF
- 3
Cyclomatic complexity: _____
- Minimum tests to achieve:
1
• Statement coverage: ______
2
• Branch coverage: _____
Yes
Read A<0 Print
Example 6 No

Read A
IF A < 0 THEN Yes
A>0 Print
Print “A negative”
No
ENDIF
IF A > 0 THEN
Print “A positive” End
ENDIF

- 3
Cyclomatic complexity: _____
- Minimum tests to achieve:
2
• Statement coverage: ______
2
• Branch coverage: _____
1 2 3 ISTQB / ISEB Foundation Exam Practice
4 5 6
Dynamic Testing Techniques

Contents
What is a testing technique?
Black and White box testing
Black box test techniques
White box test techniques
Error Guessing
Non-systematic test techniques


Trial and error / Ad hoc

Error guessing / Experience-driven

User Testing

Unscripted Testing

AA testing
testing approach
approach that
that isis only
only
rigorous,
rigorous, thorough
thorough and and systematic
systematic
isis incomplete
incomplete
Error-Guessing


always worth including

after systematic techniques have been used

can find some faults that systematic
techniques can miss

a ‘mopping up’ approach

supplements systematic techniques

Not
Not aa good
good approach
approach to
to start
start testing
testing with
with
Error Guessing: deriving test cases


Consider:
- past failures
- intuition
- experience
- brain storming
- “What is the craziest thing we can do?”
1 2 3 ISTQB / ISEB Foundation Exam Practice
4 5 6
Dynamic Testing Techniques

Summary: Key Points


Test techniques are ‘best practice’: help to find faults
Black Box techniques are based on behaviour
White Box techniques are based on structure
Error Guessing supplements systematic techniques

You might also like