Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research...

26
Presentation on Software Testing: A research Travelogue ( 2000 - 2014) Presented by : Ji Gao 1 Department of Computer Science, University of Virginia https://qdata.github.io/deep2Read/ August 26, 2018 Presented by : Ji Gao (University of Virginia) Presentation on Software Testing: A research Travelogue ( 2000 - 2014) August 26, 2018 1 / 26

Transcript of Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research...

Page 1: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Presentation on Software Testing: A research Travelogue( 2000 - 2014)

Presented by : Ji Gao

1Department of Computer Science, University of Virginiahttps://qdata.github.io/deep2Read/

August 26, 2018

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 1 / 26

Page 2: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Overview

1 Introduction

2 Research Topics1. Automated test input generation2. Testing strategies3. Regression Testing4. Emperical studies

3 Challenges and Opportunities

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 2 / 26

Page 3: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Outline

1 Introduction

2 Research Topics1. Automated test input generation2. Testing strategies3. Regression Testing4. Emperical studies

3 Challenges and Opportunities

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 3 / 26

Page 4: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Introduction

Testing: Most popular and practised way to assess software quality

Many research progress in past years

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 4 / 26

Page 5: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Outline

1 Introduction

2 Research Topics1. Automated test input generation2. Testing strategies3. Regression Testing4. Emperical studies

3 Challenges and Opportunities

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 5 / 26

Page 6: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Outline

1 Introduction

2 Research Topics1. Automated test input generation2. Testing strategies3. Regression Testing4. Emperical studies

3 Challenges and Opportunities

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 6 / 26

Page 7: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Automated test input generation

Formally, generating a set of input values for a program or programcomponent, typically with the aim of achieving some coverage goal orreaching a particular state.

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 7 / 26

Page 8: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Symbolic ExecutionAutomated test input generation

Use symbols to replace variable in the code.

Express the execution of the program as a bunch of paths.

Test the validity of paths, and its corresponding range of inputsymbols.

Symbolic state as a mapping S :M→ E , M is the set of memories,and E is the set of symbolic values.

Exectuion: S ′ = S ⊕ [m→ e ′]

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 8 / 26

Page 9: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

White box fuzzing

Concolic testing

In the execution of a certain path, try to cover other path, generatingnew test cases by flipping the original input.

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 9 / 26

Page 10: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Symbolic ExecutionAutomated test input generation

Machine learning models can be expressed as symbolic operation.

However, the optimization process gives a huge tree that can’t bechecked.

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 10 / 26

Page 11: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Search-Based TestingAutomated test input generation

Use heuristic search-based optimization techniques (for example, hillclimbing) to solve optimization problems.

Have a variety of forms and wide applications.

Challenge and opportunities:- Oracle problem- Combining SBST with symbolic testing- Co-evolutionary computation- Hyper-heuristic software engineering

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 11 / 26

Page 12: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Random testingAutomated test input generation

Randomly generate test inputs

Or not that randomly

Adaptive Random Testing: Generate input that is the most ’distant’from previous inputs

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 12 / 26

Page 13: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Combined techniquesAutomated test input generation

Combine testing with other verification skills: static verification,abstraction, ...

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 13 / 26

Page 14: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Outline

1 Introduction

2 Research Topics1. Automated test input generation2. Testing strategies3. Regression Testing4. Emperical studies

3 Challenges and Opportunities

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 14 / 26

Page 15: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Testing strategies

Strategies of testing that can lead to a better result

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 15 / 26

Page 16: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Combinatorial testingTesting strategies

Combinatorial testing: Model the problem as a finite set ofparameters. Find a combination of test inputs that covers all inputs.

Weighted, biased, guided way of CIT?

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 16 / 26

Page 17: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Model-based TestingTesting strategies

Based on the specialty of every model, develop testing suites.

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 17 / 26

Page 18: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Mining and Learning from Field DataTesting strategies

Use large data to help testing

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 18 / 26

Page 19: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Outline

1 Introduction

2 Research Topics1. Automated test input generation2. Testing strategies3. Regression Testing4. Emperical studies

3 Challenges and Opportunities

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 19 / 26

Page 20: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Regression Testing

Verify whether a software previously tested still performs correctlyafter changed

Attempt to select/modify a smaller test suite to complete the quest

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 20 / 26

Page 21: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Outline

1 Introduction

2 Research Topics1. Automated test input generation2. Testing strategies3. Regression Testing4. Emperical studies

3 Challenges and Opportunities

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 21 / 26

Page 22: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Emperical studies

Experiments

Frameworks

Continuous integration

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 22 / 26

Page 23: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Outline

1 Introduction

2 Research Topics1. Automated test input generation2. Testing strategies3. Regression Testing4. Emperical studies

3 Challenges and Opportunities

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 23 / 26

Page 24: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Testing modern systems

Heterogeneous software systems

Rich environments

High configuability

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 24 / 26

Page 25: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Oracle problem

Inferring invariants from programs

Rich environments

High configuability

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 25 / 26

Page 26: Presentation on Software Testing: A research Travelogue ... · Overview 1 Introduction 2 Research Topics 1. Automated test input generation 2. Testing strategies 3. Regression Testing

Other opportunities

Probabilistic program analysis

Testing non-functional properties

Domain-based testing

Cloud and crowd computation

Presented by : Ji Gao (University of Virginia)Presentation on Software Testing: A research Travelogue ( 2000 - 2014)August 26, 2018 26 / 26