BCS SPA2017

Performance Test Driven Development in Virtual Time

Tutorial on TDD'ing performance characteristics of code using new unit testing techniques.

Tutorial (75 or 150mins)

Abstract

TDD can give us a lot of information about functional correctness of a software system, but the way it is generally used currently cannot give much information on the performance characteristics of the implemented system. We typically do not find out about performance problems until the whole system is tested together, or worse, when it fails in production.

In this session we introduce new techniques for constructing unit tests that allow us to explore performance characteristics and detect problems before deploying the software. We can use virtual time to run performance experiments without waiting for real time to elapse, so we can get the fast feedback we are used to from the TDD cycle.

We will explain the techniques and provide some exercises for participants to try them out using our new tools.

The tools and techniques present are based on adapting academic performance modelling and measurement work to a more practical context, allowing developers to harness it in their day to day development process.

(we have put 3 leaders on this proposal who have had input to the work, but likely at most 2 would attend the conference to present the session if accepted).

Audience background

Developers and Testers

Benefits of participating

Learn about TDD for performance.
Learn about virtual time.
Learn about performance models.
Try out some practical tools and techniques.

Materials provided

An interactive talk, plus code examples and tools for people to try.

Process

Pair-programmed work on exercises, interspersed with short presentation segments for introduction and explanation.

Detailed timetable

Tutorial, alternating presentation with paired exercises.

Could be either 75 or 150 mins, depending on what fits best. Suggested timelines would be:

For 75 mins:

- 15 mins introduction presentation
- 15 mins demo of simple TDD performance-mock test
- 30 mins attendees try out the tools in pairs - 2 different short exercises
- 15 mins discussion wrap-up


For 150 mins:

- 15 mins introduction presentation
- 15 mins demo of simple TDD performance-mock test
- 30 mins attendees try out the tools in pairs - 2 different short exercises
- 15 mins discussion of solutions
== break ==
- 20 mins presentation of more sophisticated performance models - dealing with contention - more details about virtual time etc.
- 40 mins attendees work on a more complex exercise dealing with concurrency, contention etc.
- 15 mins discussion and wrap-up

Outputs

Code on GitHub.

History

New session.

Presenters

  1. Robert Chatley
    Develogical Ltd
  2. David Wei
  3. Tony Field