charlie talk - clover

29
How to Test Smarter and Fail Faster An introduction to Clover Brendan Humphreys

Upload: atlassian

Post on 24-Jun-2015

406 views

Category:

Technology


0 download

DESCRIPTION

TED-like presentation on Atlassian's developer tool: Clover.

TRANSCRIPT

Page 1: Charlie Talk - Clover

How to Test Smarter and Fail Faster

An introduction to Clover

Brendan Humphreys

Page 2: Charlie Talk - Clover

Clover shows developers where their code isn’t

tested

Page 3: Charlie Talk - Clover

Code CoverageWhat parts of an application were executed during a test run, and which parts weren’t

Page 4: Charlie Talk - Clover

Clover empowers developers to write better test code,

faster

Page 5: Charlie Talk - Clover
Page 6: Charlie Talk - Clover
Page 7: Charlie Talk - Clover
Page 8: Charlie Talk - Clover
Page 9: Charlie Talk - Clover

Clover helps teams prioritize their testing effort

Page 10: Charlie Talk - Clover
Page 11: Charlie Talk - Clover
Page 12: Charlie Talk - Clover
Page 13: Charlie Talk - Clover

Clover helps teams selectively test

their code

Page 14: Charlie Talk - Clover

FAILING FASTER

Page 15: Charlie Talk - Clover

UNIT TESTING: GOOD

Page 16: Charlie Talk - Clover

LOTS OF TESTS: GOOD

Page 17: Charlie Talk - Clover

LONG RUNNING TIMES: BAD

Page 18: Charlie Talk - Clover

IDLE DEVELOPERS: BAD

Page 19: Charlie Talk - Clover

NO LOCAL TESTING: BAD

Page 20: Charlie Talk - Clover

OVERLOADED CI: BAD

Page 21: Charlie Talk - Clover

SMARTER TESTING

Page 22: Charlie Talk - Clover

SMART #1:ON RUN THE TESTS YOU

NEED

Page 23: Charlie Talk - Clover

SMART #2:ORDER TESTS TO FAIL

FAST

Page 24: Charlie Talk - Clover

<junit ...><batchtest fork="true" todir="${test.results.dir}/results"> <clover-optimized-testset snapshotfile="${clv.snapshot}"> <fileset dir="src/tests" includes="${test.includes}" excludes="${test.excludes}"/> </clover-optimized-testset></batchtest></junit>

Page 25: Charlie Talk - Clover

<profiles> ... <profile> <id>clover</id> <build> <plugins> <plugin> <groupId>com.atlassian.maven.plugins</groupId> <artifactId>maven-clover2-plugin</artifactId> <version>2.4.1</version> <executions> <execution> <goals> <goal>setup</goal> <goal>optimize</goal> <goal>snapshot</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile></profiles>

Page 26: Charlie Talk - Clover

Avg = 40 minutes Avg = 7 minutes

Normal Optimized

Confluence CI Build

Page 27: Charlie Talk - Clover

Faster FeedbackNormal Build

Clover Opt Build

Anatoli waits 38 minsfor build failure

Anatoli waits only7 mins

Page 28: Charlie Talk - Clover

Clearer FeedbackNormal

Clover Opt

Broken Build, three committers

Same broken Build, one committer

Page 29: Charlie Talk - Clover

Test Smarter, Fail Faster With Clover