33
PRESENTED BY: AUNG THU RHA HEIN(5536871) BOONYA SUWANMANE(5436284) NATTACHART TAMKITTIKHUN (5637378) Partition-Based Regression Verification [1] 1 [1] MARCEL BO’HME, BRUNO C. D. S. OLIVEIRA, ABHIK ROYCHOUDHURY SCHOOL OF COMPUTING,NATIONAL UNIVERSITY OF SINGAPORE PUBLISHED ON ICSE’13, SAN FRANCISCO, USA

Partitioned Based Regression Verification

Embed Size (px)

DESCRIPTION

proposition of an alternative approach to regression testing

Citation preview

Page 1: Partitioned Based Regression Verification

1

PRESENTED BY:AUNG THU RHA HEIN(5536871)BOONYA SUWANMANE(5436284)

NATTACHART TAMKITTIKHUN (5637378)

Partition-Based Regression Verification[1]

[ 1 ] M A R C E L B O ’ H M E , B R U N O C . D . S . O L I V E I R A , A B H I K R O Y C H O U D H U R YS C H O O L O F C O M P U T I N G , N AT I O N A L U N I V E R S I T Y O F S I N G A P O R EP U B L I S H E D O N I C S E ’ 1 3 , S A N F R A N C I S C O, U S A

Page 2: Partitioned Based Regression Verification

2

Outline

IntroductionPartition-Based Regression VerificationEmpirical StudyResults and AnalysisThreats to ValidityRelated Works Discussion & Conclusion

Page 3: Partitioned Based Regression Verification

3

Introduction-Software Regression

Software Regression- software bugs occur after changes to software functionalities

Regression Testing- selective retesting of a software system

Regression Verification-verify the correctness of the program relative to earlier versions

Page 4: Partitioned Based Regression Verification

4

Introduction-Motivation

Verify error correctness of software version

Proposes a better approach than Regression verification

Page 5: Partitioned Based Regression Verification

5

Introduction-Problem Statement

Requires specifications

Verification process is time consuming

Partial verification

Page 6: Partitioned Based Regression Verification

6

Introduction-Research Contributions

Introduces (PRV) partition-based regression verification

Proposes a differential partitioning technique

Provides another way to regression test generation techniques

Page 7: Partitioned Based Regression Verification

7

Introduction-PRV

A gradual approach to RV based on the exploration of differential partitions

Verify inputs by partitions Shares the advantages of RV and RT

Page 8: Partitioned Based Regression Verification

8

Introduction-Differential Partitions

Computed the paths by symbolic executionRequire deterministic program execution

Page 9: Partitioned Based Regression Verification

9

Partition-Based Regression Verification

Emphasize: Regression error• Interrupt• Terminate

PRV Experiment:Continuous => return error

Page 10: Partitioned Based Regression Verification

10

PRV: A) Computing Differential Partitions

Base on the value detect of test suite(input) which lead to regression error.

Output a set of test suite and as set condition

Page 11: Partitioned Based Regression Verification

11

PRV: B) Computing Reachability Conditions

Base on the detect condition. Output is a condition depend on your proposal input value be the

criteria Reachable condition or Unreachable condition

Page 12: Partitioned Based Regression Verification

12

PRV: C) Computing Propagation Conditions

Base on the detect where the differential program states converge. Output: Statement instance at line Ni(i substitute line number)

Page 13: Partitioned Based Regression Verification

13

PRV: D) Computing Difference Conditions

Base on the detect where the differential program states converge. Algorithm as same as C) plus the change value process , check does

the converge output are different? Output: A set of change statement instance at line Ni(i substitute line

number) which lead the output at converge line are different.

Page 14: Partitioned Based Regression Verification

14

PRV: E) Generating Adjacent Test Cases

Base on the detect where the differential program states converge. Algorithm: If adjacent condition have been deleted after compute beyond the existing condition does program compute the output. : If place or add or reorder condition does program compute the output.If can compute how the output different or same at the converge statement.

Page 15: Partitioned Based Regression Verification

15

PRV: F) Theorems

In practice, the absence of regression errors can be guaranteed for all inputs to the same extent as symbolic execution can guarantee the absence of program errors. Specifically, they assume deterministic program execution.

Page 16: Partitioned Based Regression Verification

16

Empirical Study

Evaluate relative efficiency of PRV and discuss practicability based on authors’ experience.

Do not prove the scalability of PRV. It suffers from the same limitation as symbolic execution. However, it can benefit from optimizations like domain

reduction, parallelization, and better search strategies.

Page 17: Partitioned Based Regression Verification

17

Empirical Study – Setup and Infrastructure

Built into authors’ dynamic backward slicing tool JSlice. The differential partitions are explored in a breadth-first

manner starting from the same initial input within 5 minutes, unless stated otherwise.

Every version of the same subject uses the same test driver to construct necessary inputs.

Subject programs are analyzed on a desktop computer with an Intel 3 GHz quad-core processor and 4 GB of memory.

Page 18: Partitioned Based Regression Verification

18

Empirical Study – Subject Programs

Subject programs in the experiments are chosen according to the following 2 criteria: They represent a variety of evolving programs. They are discussed in related work (which allows the

comparison with our own experimental results). There are 83 versions of programs ranging from 20 to almost

5000 lines of code. Some are derived by seeding faults, called mutants, of the

original versions. Some are real versions that were committed to a version

control system.

Page 19: Partitioned Based Regression Verification

19

Empirical Study – Subject Programs

Page 20: Partitioned Based Regression Verification

20

Empirical Study – Subject Programs

The authors compare the empirical results of the references discussing regression verification and regression test generation.

No empirical results available for the regression test generation techniques and differenctial symbolic execution

All programs are tested as whole programs, except for Apache CLI. For Apache CLI, command line component was tested for

regression.

Page 21: Partitioned Based Regression Verification

21

Empirical Study – Research Questions

RQ1: How efficiently does PRV find the first input that exposes

semantic difference? RQ2:

How efficiently does PRV find the first input that exposes software regression?

RQ3: How practical is PRV in an example usage scenario?

Page 22: Partitioned Based Regression Verification

22

Results and Analysis – RQ1: Efficientcy – Semantic Difference

Measure 2 aspects when searching for the first difference-revealing input: average time

If > 5 min, not included. mutation score.

The fraction of versions for which a difference-revealing input can be found within 5 minutes.

Page 23: Partitioned Based Regression Verification

23

Results and Analysis – RQ1: Efficientcy – Semantic Difference

Page 24: Partitioned Based Regression Verification

24

Results and Analysis – RQ1: Efficientcy – Semantic Difference

Answer to RQ1. PRV generates a difference-revealing test case on average

for 21% mor version pairs in 41% less time, than the eXpress-like approach that analyzes only the changed version P’.

Page 25: Partitioned Based Regression Verification

25

Results and Analysis – RQ2: Efficientcy – Software Regression

In practice, not every difference-revealing test case reveals software regression.

A difference-revealing test case can be checked formally on informally against the programmer’s expectation.

Page 26: Partitioned Based Regression Verification

26

Results and Analysis – RQ2: Efficientcy – Software Regression

Page 27: Partitioned Based Regression Verification

27

Results and Analysis – RQ2: Efficientcy – Software Regression

Answer to RQ2. PRV generates a regression-revealing test case on average

for 48% more version pairs in 63% less time than the eXpress-like approach that analyzes on the changed version P’.

Page 28: Partitioned Based Regression Verification

28

Results and Analysis – RQ3 Practicability – Usage Scenario: Apache CLI

Apache CLI is used to evaluate PRV in a practical usage scenario.

PRV generates difference-revealing test cases within the bound of 20 minutes for every version pair.

A developer checks these test cases for regression and relates the regression revealing test cases to changes that semantically interfere.

Page 29: Partitioned Based Regression Verification

29

Results and Analysis – RQ3 Practicability – Usage Scenario: Apache CLI

Answer to RQ3. For the evolution of Apache CLI over 6 years, tests

generated as witnesses of differential behavior of 2 successive versions suggest: An average progression of 49%, regression of 18% and

intermediate semantic changes of 33% towards the latest revision.

Page 30: Partitioned Based Regression Verification

30

Threats to Validity

Main threat to internal validity: Implementation of PRV into JSlice Tried to mitigate by using the same implementation to

gather results for the DART-like and eXpress-like approches.

Main threat to external validity The generalization of the results

Limited choice and # of subjects does not suggest generallizability.

The subjects are served mainly as comparison to relavant works, and give an idea about practibility of PRV.

Page 31: Partitioned Based Regression Verification

31

Related Works

Regression Verification(RV) based on semantic equivalence time consuming no intermediate guarantees

Differential Symbolic Execution (DSE) based on symbolic summaries less scalable

Regression Test Generation (RTG) construct sample input that can expose software regression

Page 32: Partitioned Based Regression Verification

32

Discussion & Conclusion

Introduces differential partitions technique

Enable partial verification

Retain regression guarantees

Detect regression errors more

Page 33: Partitioned Based Regression Verification

33

Thank you.

Questions ?