BCS SPA2015

Software Practice Advancement Conference

SPA Conference session: Tests in the GPU

One-line description:Program your shaders in GLSL, driven by tests
 
Session format: Tutorial (75 minutes) [read about the different session types]
 
Abstract:Test-Driven Development is desperately simple. Simple, because it takes about five minutes to understand the principles. Desperately, because real-life contexts seem always harder than case studies used for training -- at least by forty-two orders of magnitude.

Just for laughs, we'll aim this time at doing the opposite (to practice TDD in a more difficult context than the typical workplace) and we'll show how we can use TDD to build a non-trivial shader in GLSL (OpenGL Shading Language). This tutorial is intended to push the limits of
what is considered doable with TDD. By doing so, we hope to make the audience realize that if it's possible to test-drive code in GLSL, it should be possible to do so in virtually any TDD-resistant environment.

This is a performative programming session: the audience will watch a performer programming for its (the audience's) benefit some non-trivial piece of code from A to Z. In the spirit of the Brechtian theatre, the audience is encouraged to laugh at the misery of the programmer on the stage, to be critical of their (the programmer's) successes, to cheer and to boo, to smoke and to eat, and to think about what they'd do (better) if they were in the same position.
 
Audience background:This session is intended for developers of all confessions, aspiring developers
of all ages and professionals of all trades who wish they were still
developers. The audience should have at least some theoretical understanding of
what TDD is, and a practical experience at programming software. Knowledge of
non-aristotelian drama theory isn't required.
 
Benefits of participating:This session is intended for developers of all confessions, aspiring developers
of all ages and professionals of all trades who wish they were still
developers. The audience should have at least some theoretical understanding of
what TDD is, and a practical experience at programming software. Knowledge of
non-aristotelian drama theory isn't required.
 
Materials provided:Pointers to GLSL guides
 
Process:This is a performative programming session: the audience will watch a performer
programming for its (the audience's) benefit some non-trivial piece of code
from A to Z - in this case, the programming of a shader in GLSL, driven by tests.
 
Detailed timetable:- 00:00 - 00:05 / presentation of problem context: what to do when needing to
program in a TDD-resistant environment?

- 00:05 - 00:25 / live-coding demonstration, part 1: writing a basic TDD
framework in GLSL

- 00:25 - 00:60 / live-coding demonstration, part 2: test-drive the programming of
a Conway's Game of Life shader

- 00:60 - 00:70 / audience shares what was their experience watching this

- 00:70 - 00:75 / wrap-up
 
Outputs:The produced code will be published on Github.
 
History:This session has no previous history.
 
Presenters
1. Emmanuel Gaillot
/ut7
2. 3.