+ All Categories
Home > Education > Software Testing-Dynamic testing technique-Mazenet solution

Software Testing-Dynamic testing technique-Mazenet solution

Date post: 19-Jan-2017
Category:
Upload: mazenetsolution
View: 126 times
Download: 0 times
Share this document with a friend
55
Dynamic Testing Techniques Presented by E Baskaran (Testing Trainer)
Transcript
Page 1: Software Testing-Dynamic testing technique-Mazenet solution

Dynamic Testing Techniques

Presented by E Baskaran(Testing Trainer)

Page 2: Software Testing-Dynamic testing technique-Mazenet solution

Dynamic Testing Techniques

1 Principles 2 Lifecycle

4 Dynamic testtechniques

3 Static testing

5 Management 6 Tools

Software Testing Chapter 4

Page 3: Software Testing-Dynamic testing technique-Mazenet solution

ContentsWhat is a testing technique?Black and White box testingBlack box test techniquesWhite box test techniques

Error Guessing

Dynamic Testing Techniques

1 2 3

4 5 6

Page 4: Software Testing-Dynamic testing technique-Mazenet solution

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

Page 5: Software Testing-Dynamic testing technique-Mazenet solution

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 should be rigorous, thorough and systematic

Page 6: Software Testing-Dynamic testing technique-Mazenet solution

Using techniques makes testing much more effective

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

Page 7: Software Testing-Dynamic testing technique-Mazenet solution

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 A60% Equivalence

partitions50% Boundaries75% Branches

Project B40% Equivalence

partitions45% Boundaries60% Branches

Page 8: Software Testing-Dynamic testing technique-Mazenet solution

Contents

What is a testing technique?Black and White box testingBlack box test techniquesWhite box test techniques

Error Guessing

Dynamic Testing Techniques

1 2 3

4 5 6

Page 9: Software Testing-Dynamic testing technique-Mazenet solution

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

Page 10: Software Testing-Dynamic testing technique-Mazenet solution

Some test techniquesStatic Dynamic

Structural

Behavioural

FunctionalNon-functional

Reviews

WalkthroughsDesk-checking

DataFlow

SymbolicExecution

Definition-Use

StatementBranch/Decision

Branch ConditionBranch ConditionCombination

LCSAJ

Arcs

EquivalencePartitioning

BoundaryValue Analysis

Cause-Effect Graphing

Random

UsabilityPerformance

Static AnalysisInspection

ControlFlow

etc.

etc.

etc.

etc.

etc.

State Transition

Page 11: Software Testing-Dynamic testing technique-Mazenet solution

Black box versus white box?

Integration

Component

Acceptance

System

Black box appropriateat all levels butdominates higherlevels of testing

White box usedpredominatelyat lower levelsto complimentblack box

Page 12: Software Testing-Dynamic testing technique-Mazenet solution

ContentsWhat is a testing technique?Black and White box testingBlack box test techniquesWhite box test techniques

Error Guessing

Dynamic Testing Techniques

1 2 3

4 5 6

Page 13: Software Testing-Dynamic testing technique-Mazenet solution

Black Box test design and measurement techniques Techniques defined in BS 7925-2

Equivalence partitioning Boundary value analysis State transition testing Cause-effect graphing Syntax testing Random testing

Also defines how to specify other techniques

= Yes= No

Also a measurementtechnique?

Page 14: Software Testing-Dynamic testing technique-Mazenet solution

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

1 100 1010

valid invalidinvalid

Page 15: Software Testing-Dynamic testing technique-Mazenet solution

Boundary value analysis (BVA)

faults tend to lurk near boundaries good place to look for faults test values on both sides of boundaries

1 100 1010

valid invalidinvalid

Page 16: Software Testing-Dynamic testing technique-Mazenet solution

Example: Loan application

Customer NameAccount numberLoan amount requested Term of loan Monthly repaymentTerm:Repayment:Interest rate:Total paid back:

6 digits, 1stnon-zero£500 to £90001 to 30 years

Minimum £10

2-64 chars.

Page 17: Software Testing-Dynamic testing technique-Mazenet solution

Customer nameNumber of characters:

2 64 65invalid valid invalid1

Conditions Valid Partitions

Invalid Partitions

Valid Boundaries

Invalid Boundaries

Customer name

2 to 64 chars valid chars

< 2 chars > 64 chars invalid chars

2 chars 64 chars

1 chars 65 chars 0 chars

Valid characters:Anyother

A-Za-z-’

space

Page 18: Software Testing-Dynamic testing technique-Mazenet solution

Account number

5 6 7invalid

validinvalid

number of digits:

first character:invalid: zerovalid: non-zero

Conditions Valid Partitions

Invalid Partitions

Valid Boundaries

Invalid Boundaries

Account number

6 digits 1st non-zero

< 6 digits > 6 digits 1st digit = 0 non-digit

100000 999999

5 digits 7 digits 0 digits

Page 19: Software Testing-Dynamic testing technique-Mazenet solution

Loan amount

500 9000 9001

invalid valid invalid

499

Conditions Valid Partitions

Invalid Partitions

Valid Boundaries

Invalid Boundaries

Loan amount

500 - 9000 < 500 >9000 0 non-numeric null

500 9000

499 9001

Page 20: Software Testing-Dynamic testing technique-Mazenet solution

Condition templateConditions Valid

Partitions Tag Invalid

Partitions Tag Valid

Boundaries Tag Invalid

Boundaries Tag

Customer name

2 - 64 chars valid chars

V1 V2

< 2 chars > 64 chars invalid char

X1 X2 X3

2 chars 64 chars

B1 B2

1 char 65 chars 0 chars

D1 D2 D3

Account number

6 digits 1st non-zero

V3 V4

< 6 digits > 6 digits 1st digit = 0 non-digit

X4 X5 X6 X7

100000 999999

B3 B4

5 digits 7 digits 0 digits

D4 D5 D6

Loan amount

500 - 9000 V5 < 500 >9000 0 non-integer null

X8 X9 X10 X11 X12

500 9000

B5 B6

499 9001

D7 D8

Page 21: Software Testing-Dynamic testing technique-Mazenet solution

Design test cases

TestCase

Description Expected Outcome New TagsCovered

1

2

Name: John SmithAcc no: 123456Loan: 2500Term: 3 years

Name: ABAcc no: 100000Loan: 500Term: 1 year

Term: 3 yearsRepayment: 79.86Interest rate: 10%Total paid: 2874.96Term: 1 yearRepayment: 44.80Interest rate: 7.5%Total paid: 537.60

V1, V2,V3, V4,V5 .....

B1, B3,B5, .....

Page 22: Software Testing-Dynamic testing technique-Mazenet solution

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

Page 23: Software Testing-Dynamic testing technique-Mazenet solution

Test objectives?

For a thorough approach: VP, IP, VB, IB Under time pressure, depends on your test objective

- minimal user-confidence: VP only?minimal user-confidence: VP only?- maximum fault finding: VB first (plus IB?)maximum fault finding: VB first (plus IB?)

Condition ValidPartition

Tag InvalidPartition

Tag ValidBoundary

Tag InvalidBoundary

Tag

Page 24: Software Testing-Dynamic testing technique-Mazenet solution

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– file exists– code valid

– policy expired– account in credit– due date > current date

Page 25: Software Testing-Dynamic testing technique-Mazenet solution

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 are the input and output conditions?

Page 26: Software Testing-Dynamic testing technique-Mazenet solution

List the input and output conditions

• list the ‘output conditions’ under the input conditions

Input Conditions Valid username Valid password Account in credit Output Conditions Login accepted Restricted access

• list the ‘input conditions’ in the first column of the table

Page 27: Software Testing-Dynamic testing technique-Mazenet solution

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

Page 28: Software Testing-Dynamic testing technique-Mazenet solution

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

Page 29: Software Testing-Dynamic testing technique-Mazenet solution

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

Page 30: Software Testing-Dynamic testing technique-Mazenet solution

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

Page 31: Software Testing-Dynamic testing technique-Mazenet solution

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

usernametoolong Invalid username A

3 Username BobU Password abcd

Invalid password B

4 Valid user, no disc space

Restricted access C

5 Valid user with disc space

Unrestricted access D

Page 32: Software Testing-Dynamic testing technique-Mazenet solution

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

Y F T F

Z F F T Output X Y Z

is equivalent to:

Page 33: Software Testing-Dynamic testing technique-Mazenet solution

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

Page 34: Software Testing-Dynamic testing technique-Mazenet solution

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

Page 35: Software Testing-Dynamic testing technique-Mazenet solution

Decision Tables in relation to EP and BVA

Input value Output value

FALSE

TRUE

Page 36: Software Testing-Dynamic testing technique-Mazenet solution

ContentsWhat is a testing technique?Black and White box testingBlack box test techniquesWhite box test techniques

Error Guessing

Dynamic Testing Techniques

1 2 3

4 5 6

Page 37: Software Testing-Dynamic testing technique-Mazenet solution

White Box test design and measurement techniques Techniques defined in BS 7925-2

Statement testing Branch / Decision testing Data flow testing Branch condition testing Branch condition combination testing Modified condition decision testing LCSAJ testing

Also defines how to specify other techniques

= Yes= No

Also a measurementtechnique?

Page 38: Software Testing-Dynamic testing technique-Mazenet solution

Stronger structural techniques (different structural elements)

More tests

Using structural coverage

Increasing coverage

Coverage OK?What'scovered?

Results OK?

Enoughtests?

Spec Software

Tests

More testsMore testsMore testsMore testsMore testsMore testsMore tests

Page 39: Software Testing-Dynamic testing technique-Mazenet solution

The test coverage trap

Structure exercised,insufficient function

Function exercised,insufficient structure

better testing

% Statement % Decision % Condition Combination

Structural testedness

Functionaltestedness

100% coverage doesnot mean 100% tested!

Coverage is notThoroughness

Page 40: Software Testing-Dynamic testing technique-Mazenet solution

Statement coverage

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 ad hoc testing achieves 60 - 75%

Statement coverageis normally measured

by a software tool.

?

Page 41: Software Testing-Dynamic testing technique-Mazenet solution

Example of statement coverage

Testcase

Input Expectedoutput

1 7 7

As all 5 statements are ‘covered’ bythis test case, we have achieved

100% statement coverage

read(a)IF a > 6 THEN b = aENDIFprint b

12345

Statementnumbers

Page 42: Software Testing-Dynamic testing technique-Mazenet solution

Decision coverage(Branch coverage) percentage of decision outcomes

exercised by a test suitenumber of decisions outcomes exercised total number of decision outcomes

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

Typical ad hoc testing achieves 40 - 60%

=

Decision coverageis normally measured

by a software tool.

True

False?

Page 43: Software Testing-Dynamic testing technique-Mazenet solution

Paths through code

? ?

1 2

? ?

1 2 31 2?

?

1 2 3 4

Page 44: Software Testing-Dynamic testing technique-Mazenet solution

Paths through code with loops

?

1 2 3 4 5 6 7 8 ….

for as many times as itis possible to go roundthe loop (this can beunlimited, i.e. infinite)

Page 45: Software Testing-Dynamic testing technique-Mazenet solution

End

Selecttrans...

Yes

Example 1Wait for card to be insertedIF card is a valid card THEN

display “Enter PIN number”IF PIN is valid THEN

select transactionELSE (otherwise)

display “PIN invalid”ELSE (otherwise)

reject cardEnd

Display“Enter..

Yes

ValidPIN?

No

Rejectcard

Display“PIN in..

No

Validcard?

Wait

Page 46: Software Testing-Dynamic testing technique-Mazenet solution

Read AIF A > 0 THEN IF A = 21 THEN

Print “Key” ENDIFENDIF

IF A > 0 THEN

ENDIF

Print “Key”

IF A = 21 THEN

ENDIF

Example 2

Cyclomatic complexity: _____ Minimum tests to achieve:

Statement coverage: ______ Branch coverage: _____

3

13

Read A

Print

YesA=21Yes

No

End

A>0

No

Read

Page 47: Software Testing-Dynamic testing technique-Mazenet solution

Example 3

Cyclomatic complexity: _____ Minimum tests to achieve:

Statement coverage: ______ Branch coverage: _____

Read ARead BIF A > 0 THEN IF B = 0 THEN

Print “No values” ELSE

Print BIF A > 21 THEN Print AENDIF

ENDIFENDIF

4

24

PrintYes

Print

A>21

No

No

B=0

Print

Yes

Yes

Read

A>0

End

No

Page 48: Software Testing-Dynamic testing technique-Mazenet solution

Example 4

Cyclomatic complexity: _____ Minimum tests to achieve:

Statement coverage: ______ Branch coverage: _____

Read ARead BIF A < 0 THEN Print “A negative”ELSE Print “A positive”ENDIFIF B < 0 THEN Print “B negative”ELSE Print “B positive”ENDIF

3

22

Read

End

PrintNo

PrintYesB<0

PrintNo

PrintYesA<0

Note: thereare 4 paths

Page 49: Software Testing-Dynamic testing technique-Mazenet solution

End

No

Example 5

Cyclomatic complexity: _____ Minimum tests to achieve:

Statement coverage: ______ Branch coverage: _____

Read ARead BIF A < 0 THEN Print “A negative”ENDIFIF B < 0 THEN Print “B negative”ENDIF

3

12

Read A<0 PrintYes

No

B<0 PrintYes

Page 50: Software Testing-Dynamic testing technique-Mazenet solution

Example 6

Cyclomatic complexity: _____ Minimum tests to achieve:

Statement coverage: ______ Branch coverage: _____

Read AIF A < 0 THEN Print “A negative”ENDIFIF A > 0 THEN Print “A positive”ENDIF

3

22

Read PrintYes

No

End

NoA>0 PrintYes

A<0

Page 51: Software Testing-Dynamic testing technique-Mazenet solution

Contents

What is a testing technique?Black and White box testingBlack box test techniquesWhite box test techniques

Error Guessing

Dynamic Testing Techniques

1 2 3

4 5 6

Page 52: Software Testing-Dynamic testing technique-Mazenet solution

Non-systematic test techniques Trial and error / Ad hoc Error guessing / Experience-driven User Testing Unscripted Testing

A testing approach that is onlyrigorous, thorough and systematic

is incomplete

Page 53: Software Testing-Dynamic testing technique-Mazenet solution

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 a good approach to start testing with

Page 54: Software Testing-Dynamic testing technique-Mazenet solution

Error Guessing: deriving test cases Consider:

past failures intuition experience brain storming “What is the craziest thing we can do?”

Page 55: Software Testing-Dynamic testing technique-Mazenet solution

Summary: Key Points

Test techniques are ‘best practice’: help to find faultsBlack Box techniques are based on behaviourWhite Box techniques are based on structure

Error Guessing supplements systematic techniques

Dynamic Testing Techniques

1 2 3

4 5 6


Recommended