regression testing michael mclennan hubzero® platform for scientific collaboration purdue...

Post on 16-Jan-2016

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Regression Testing

Michael McLennanHUBzero® Platform for Scientific Collaboration

Purdue University

This work licensed underCreative Commons

See license online:by-nc-sa/3.0

You’ve published it!Build the tool… Install, approve…

Published!

What’s next?Usually doesn’t end there…

New physics

Wishes

Bugs

You’ve published it again!

You can publishmultiple versionsand keep morethan one active

Cautionary Tale

Tetris for IBM PCTetris for IBM PC

Screen shot from Wikipedia.org

Copyright Universal Picturespicture from imdb.com

Remember that program from 1985?

A few months later,I went back and addeda sorting routine.

My temp variableaccidentally changedthe ambient temperature!

Guard against those errors!• Build up a suite of test cases

• Run them as you go along to make sure they still work

• Investigate failures and track down the problem

Create test cases

Runner

tool.xml

<XML>

~/data/results/$SESSION

Results are moved out ofthe current working directory

to the “results” directory

YourProgram

driver1827.xml<XML>

11 Run the desired test case…

22 Move run files out of the“results” directory intoa “tests” directory foryour tool

run12703129102.xml

<XML>

Label test cases

33 Add label/description to each test

<?xml version="1.0"?> <run> <test> <label>roomtemp|0eV</label> <description>Should work at room temperature and 0eV.</description> </test> <tool> <about>Press Simulate to view results.</about> <command>tclsh @tool/fermi.tcl @driver</command> </tool> <input> <number id="temperature"> <about> <label>Ambient temperature</label> <description>Temperature of the environment.</description> </about>

<?xml version="1.0"?> <run> <test> <label>roomtemp|0eV</label> <description>Should work at room temperature and 0eV.</description> </test> <tool> <about>Press Simulate to view results.</about> <command>tclsh @tool/fermi.tcl @driver</command> </tool> <input> <number id="temperature"> <about> <label>Ambient temperature</label> <description>Temperature of the environment.</description> </about>

separator for test folders

Demo: app-fermi tests

Types of errors

Output results: Output value has changed

Output value is missing

Output value is extra (not supposed to be there)

Input values: Input value has changed--label, units, etc.

Input value is missing from test case

Input value is extra (not supposed to be there)

Fix the tool Fix the test

top related