statistical techniques in software testing -...

29
12 Statistical Techniques in Software Testing Alessandro Di Bucchianico 2nd Dutch Workshop on Formal Testing Techniques September 13, 2007

Upload: dangdung

Post on 06-Mar-2018

229 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

Statistical Techniques inSoftware Testing

Alessandro Di Bucchianico

2nd Dutch Workshop on Formal Testing Techniques

September 13, 2007

Page 2: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 1/28JJ J N I II 1/28

Outline

• Software Reliability Growth Models

• Certification of Software

• Walking Strategies in Software Models

Page 3: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 2/28JJ J N I II 2/28

Acknowledgements

This presentation is based on joint work in progress with:

• Kees van Hee (TU/e)

• Jan-Friso Groote (TU/e)

• Isaac Corro Ramos (TU/e)

• Lusine Hakobyan (TU/e)

• Ed Brandt (Refis)

• Rob Henzen (Refis)

Our research has been supported by grants from

• NWO (STRESS project)

• the Dutch Ministry of Economic Affairs (innovation voucher)

Page 4: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 3/28JJ J N I II 3/28

Uses of Statistics in Software Testing

We need to distinguish between:

• statistical methods to analyze data from software tests

– quantify reliability growth (e.g., certification)

– prediction of testing process

• statistical methods to generate software tests (use cases) based on

– operational profiles

– formal software models

Page 5: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 4/28JJ J N I II 4/28

Software reliability growth models (SRGM)

SRGM used to:

• resource planning

• release decisions

• certification

• . . .

Typical statistical quantities of interest:

• probability of no failure in a given time period

• expected time until next failure

• number of errors left

• . . .

Page 6: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 5/28JJ J N I II 5/28

0T 0 = 5T4T3T2T1T

1X 3X 4X2X0X

U n g r o u p e d o r e x a c t d a t a

xxxx x

2m

0T 0 = 5T4T3T2T1T

4m 5m3m1m

G r o u p e d o r i n t e r v a l c o u n t d a t a

x xxxxxxxx

Page 7: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 6/28JJ J N I II 6/28

Reliability growth data

Page 8: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 7/28JJ J N I II 7/28

Problems with SGRM

• insufficient documentation of the models

• more than 200 models known

• out-dated algorithms

What is needed:

• systematic description of SRGM (general methodology + algorithms)

• support pre-selection of models

• apply specific state-of-the-art algorithms for the models (convergence is-sues)

• adaptable tool to perform analyses

Page 9: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 8/28JJ J N I II 8/28

Systematic description of software reliabilitygrowth models

1. Probability model

(a) Joint distribution of {N(t)}t>0 and/or T1, T2, . . . , Tn and/orX1, X2, . . . , Xn (including (in)dependence structure)

(b) Model assumptions

(c) Interpretation of model parameters

2. Trend analysis

(a) . . .

Page 10: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 9/28JJ J N I II 9/28

Systematic description of software reliabilitygrowth models (Cont.)

3. Parameter estimation

(a) Point estimation procedures for parameters (Maximum Likelihoodand/or Least Squares)

i. Data requirementsii. Existence results for parameter estimatesiii. Performance of parameter estimators (bias, efficiency)iv. Algorithms to compute parameter estimates

(b) Confidence interval procedures for parameters (Maximum Likeli-hood and/or Least Squares)

i. Distributional description of underlying estimatorsii. Algorithms to compute confidence intervals

Page 11: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 10/28JJ J N I II 10/28

SRGM description

• GOS models: T1, T2, . . . , Tn order statistics of a sample Z1, Z2, . . . , ZN

with c.d.f. Fθ.

– Jelinski-Moranda or EOS: Xi ∼ Exp(λ(N − i + 1)) i.i.d.

• NHPP models: N(ti) − N(ti−1) ∼ Poisson(λ(t)) independent withmean

P [N(ti)−N(ti−1) = k] = e−(Λ(ti)−Λ(ti−1))(Λ(ti)− Λ(ti−1))k

k!

– Goel-Okumoto: Λ(t) = a(1− e−bt)

– Yamada S-shaped: Λ(t) = a(1− (1 + bt)e−bt)

– Duane: Λ(t) =

(t

α

Page 12: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 11/28JJ J N I II 11/28

Model Pre-selection

Page 13: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 12/28JJ J N I II 12/28

Systematic implementations: software reliabil-ity tool

• Existing packages do not make full use of state-of-the art statisticalmethodology

• Interface in Java (platform independent)

• Statistical computations in R (open-source free software)

• Communication: JRI and JavaGD libraries (Computational Statisticsgroup, University of Augsburg)

• Financially supported by a grant of the Dutch Innovation Platform

Page 14: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 13/28JJ J N I II 13/28

Page 15: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 14/28JJ J N I II 14/28

Certification of software

Traditional approaches to release procedures:

• estimation of number of remaining errors (usually unstable procedure)

• optimization of cost function:

– costs of further testing

– costs due to remaining errors in software (quantification of costs isdifficult)

We wish to: certify software by using a statistical test procedure that

• guarantees the software is error free with a certain probability

• makes no assumptions on the initial number of errors

Page 16: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 15/28JJ J N I II 15/28

Basic set-up of model

• n errors (unknown, fixed)

• discrete time: number of test runs (test run is sequence of actions withpredefined begin and end (use case))

• θ detection probability of one error during one test run, ϕ = 1− θ

• detection of errors independent during test runs

• test runs are independent

• perfect repair of errors

• one error only will be repaired after detection of errors

• only number of tests until detection of failures is recorded

Page 17: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 16/28JJ J N I II 16/28

Distribution of number of test runs

• n number of initial errors

• θ detection probability of one error during one test run, ϕ = 1− θ

• detection of errors independent during test runs

Probability of no error detection during test run after detection of (i − 1)therror:

(1− θ)n−i+1 = ϕn−i+1

Distribution of number of test runs after detection of (i − 1)th error anduntil detection of ith error (Xi):

P (Xi = m) = ϕ(m−1) (n−i+1)(1− ϕn−i+1

)Xi has geometric distribution with success rate 1− ϕn−i+1.

Page 18: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 17/28JJ J N I II 17/28

Test procedure

t e s t c a s e e r r o r # t e s t s > k e r r o r

f r e en o

y e s n oy e s

s t a r t t e s t c a s e e r r o re r r o r # t e s t s > k# t e s t s > k e r r o r

f r e en o

y e s n oy e s

s t a r t

Statistical setup :

• sequential testing of null hypothesis: there are undetected errors

• type I error = stop testing when there are undetected errors (with proba-bility α)

• no type II error: continue testing when there are no undetected errors

Observations Ti = min(Xi, k + 1); Stopping time: I = min{i | Ti > k}

Must choose k such that Pθ,n(I ≤ n) ≤ α for given α and all n.

Page 19: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 18/28JJ J N I II 18/28

Scenarios for test procedure

• θ known

• prior distribution for θ (learning from previous tests), no update duringtesting

• one-stage testing with prior distribution (update of detection probabilityat end)

• adaptive testing (continuous updating of detection probability)

Main Result: strategies for one-stage testing work reasonably well for adap-tive testing.

Page 20: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 19/28JJ J N I II 19/28

White Box Testing

• Defining a test procedure that uses knowledge of the structure of thesoftware system and the prior test history

– By having an accurate description of how the system behaves weachieve exhaustive testing

• Statistical release procedure based on the test history

– Defining stopping criterion based on the probability of certain num-ber of remaining errors

• It is not conformance or model based testing

• It is not statistical testing (generate test cases using probability distribu-tions)

Page 21: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 20/28JJ J N I II 20/28

Assumptions

• Software systems running one sequential process only

• Modeled as a workflow transition system (WTS)

• Errors are only in the transitions

– Symbolic markings

– Found when error marked transitions are executed

• Run: path from the initial state to either the final state or an errormarked transition

Page 22: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 21/28JJ J N I II 21/28

Workflow transition system

W = (S, T, R), is a labelled transition system with special states i and fcalled initial and final states, respectively

• S non empty finite set of states

• T non empty finite set of transitions

• R ⊆ S × T × S

Error is a function M : T → {0, 1}

M(t) =

1, if t is error marked

0, if t is error free

Run is a path (iW , t1, . . . , sn, tn, sn+1). If sn+1 = fW , then the run is said tobe successful. If sn+1 6= fW , then the run is said to be failure.

Page 23: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 22/28JJ J N I II 22/28

Modelling framework for testing

Walking strategy and update: Special test procedure with probability distri-bution on branching points. Update of the walking strategy is assigningprobability zero to some already executed the transitions

• Purpose: After each successful run increase the probability of visitingnew transition.

• How: By discarding already some visited parts.

Page 24: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 23/28JJ J N I II 23/28

Walking Strategy (case of SMWf nets)

1. First approach: random walk. Being in place pi, equal probability ofvisiting its neighbours.

2. Second approach: optimal. The probabilities to visit each transition,starting from the initial place i, are as "equal as possible".

3. Third approach: adaptive. The probabilities to visit each transition areadapted after each run (like sampling without replacement: we discardpreviously visited parts).

Page 25: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 24/28JJ J N I II 24/28

Test Model

• G = (P, T, F )

– where P = set of places, T = set of transitions.

– F ⊆ P × T × P

– P [G = g] is known.

• D ⊆ T , the defect transitions where P [D = d | G = g] is known in ourtest environment .

• X1, X2, X3, . . . outcomes of the test-runs

– can be just Success of Failure,

– can be the sequence of visited transitions,

– or anything in between.

Page 26: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 25/28JJ J N I II 25/28

• X1, X2, X3, . . . outcomes of the test-runs, X0 = ∅.

• Gn = (P, T, F, wn)

– wn : T → [0, 1] probabilities for transitions, w0 determined by algo-rithm.

– wn+1 = W (G, wn, Xn)

– W is determined by the walking strategy.

– Gn is a Markov chain.

– P [Xn = x | Gn = g] is known

• Dn+1 is equal to

– Dn, if Xn is a successful run, or

– Dn \ {Tn}, where Tn is the last transition of Xn if it is a failure run.

Page 27: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 26/28JJ J N I II 26/28

• X1, X2, X3, . . . outcomes of the test-runs.

• G1, G2, G3, . . . Markov chains for the test-runs.

• S is a stopping rule for X1, X2, X3, . . .

– may be dependent of the structure of G.

• Quality measures:

– E [(D −DS) /D] expected percentage of errors left.

– P [DS 6= D] error of the first kind.

Page 28: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 27/28JJ J N I II 27/28

Statistical release procedure

Error marking process: select without replacement a transition and labelingit as an error with unknown probability θ.

1. W = (S, T, R)

2. T = {t1, . . . , tN}3. εi ∼ Ber(θ), i = 1, . . . , N , i.i.d.

4. M(ti) = ei for all ti ∈ T , where M is the error marking function and ei

the realizations of εi

5. ti is error marked with probability θ

6. D =

N∑i=1

εi ∼ Bin(N, θ) unknown number of error marked transitions

Page 29: Statistical Techniques in Software Testing - FMTfmt.cs.utwente.nl/dwftt2007/presentations/AleBuc... · Statistical Techniques in Software Testing ... Traditional approaches to release

12

JJ J N I II 28/28JJ J N I II 28/28

Bayesian release procedure

1. The error probability is a random variableΘwith prior distribution func-tion FΘ(θ)

2. Probability of having at most k remaining errors when we decide to stoptesting is greater than or equal to 1− α (α small, normally 0.05 or 0.01)

3. s =

n∑j=1

xj the number of error marked transitions in the sample of

visited transitions

4. Calculate the minimal value of n such that

P [s ≤ D ≤ s + k|X = x] =

s+k∑d=s

P [D = d|X = x] ≥ 1− α (1)