Bulk Testing and Visualisation

You'll need a laptop with JavaScript and Flash.

Exploring data with pictures

Exercise 1: Visualise This part 1 – data

Exercise 2: Visualise This part 2 – data

Graphing tools

DataGraph – Mac only, my preference. Paid, currently £63

raw web tool by densitydesign (backup server).

Google sheets – and how to integrate Sheets with Google Charts

plot.ly

Mike Bostock illustrates bias with this visualisation of a shuffle algorithm. I'm using a slight mod to smooth the noise and reduce the size: Will it Shuffle – a 30-item list shuffled 100,000 times.

My check – and my deeper probe – of a colour-checking algorithm

Bret Victor illustrates a steering algorithm in Ladder of Abstraction – explore the depth of information represented.

Designing large numbers of dull experiments

Exercise 3: Copy / Paste – use Excel | Google Sheets. Here's the first 50,000 via javascript.

Exercise 4.1: Test Frequency

Exercise 4.2: Refine tests of Frequency

Data Generation tools

Web-based Generate Data by Ben Keen. Here's an unrestricted version on my server.

FINRA Open Source DataGenerator

Databene Benerator

Radamsa fuzzing tool

Triggering a system, taking measurements

Exercise 5: CSV to cURL – log in to this instance of GetOnTracks with ATD2015 / ATD2015 and set up your own userID. Here is the API documentation. Examples use cURL – but you might try other appraoches.

Here are four implementations of an algorithm. What seems wrong – and why? Machine Q.

Getting bulk data into an API

Command-line cURL is pretty universal, but hard to use well.

Command-line HTTPie is more forgiving

Postman runs as a chrome app - you'll need JetPacks ($10) to get bulk data moving.

Paw is only on OS X – it's prettier but pricier.

Data manipulation tools

Web-based DataWrangler – open source, restricted, no longer maintained, but great.

Web-based Excel to JSON / XML tool Mr Data Converter

OpenRefine, used to be Google Refine, needs to be downloaded to run as a local web app.

Command-line CSV tools

Try terminal access on your laptop to see if you have curl, awk and (unlikely) csvkit.

Command-line python tool to manipulate CSV csvkit (install, read hints) includes csvstat, csvcut, csvlook, csvgrep, csvsort.

awk is available on most X-nix systems. hints on dealling with CSV files, and here's a general tute.

Putting it all together to find interesting behaviour (and bugs)

Exercise 6.1: Test Responder

Exercise 6.2: Refine tests of Responder

Optional: Date calculation in Sheets

Iteractive visualisation as a testing tool

You're still trudging between tools. New IDEs (LightTable, Xcode's playgrounds for Swift) give coders a degree of interaction with their code using bulk input and visual outputs. Does your organisation build complex, proprietary algorithms into its code? How do you test them?

Bret Victor's Explorable Explanations essay contains this simulation. Explore the points where it become unstable.Explorable Explanations – circuit example.

Here's a "predator-prey" simulation, with problems. How do you recognise a problem? How many measurements are being made?

PDF of Test oracles associated with dynamical systems models

PDF of Harry Robinson's High Volume Automated Testing for Software Components






Fun things

A collection of exploratble explanations: explorableexplanations.com

I'll add to this...


Contact

James Lyndsay, Workroom Productions

@workroomprds, +447904158752

I'm a test strategist with years of broad experience and an interest in adaptive approaches. If you want advice, or if you want me to work with you, I'd be delighted to have a chat. Get in touch.