Difference between revisions of "Making your builds and tests better and faster (+ demo of JTestMe)"
From CitconWiki
Jump to navigationJump to search (New page: Facilitated by Josh Graham == Why do we care that the are slow or bad? == * Very easy to calculate the cost of waiting for builds. Easily $100,000+ per annum * Boring, frustrating * Becau...) |
|||
Line 39: | Line 39: | ||
* Smoke tests | * Smoke tests | ||
+ | == Demo == | ||
Josh then showed a simple but effective little tool that's currently in alpha state he calls JTestMe. Jeff pointed out someone with a similar product name might object. Josh is happy to call it JediTest or just TestMe (wanted to call it TestThis!). ProTest merge is likely anyway. | Josh then showed a simple but effective little tool that's currently in alpha state he calls JTestMe. Jeff pointed out someone with a similar product name might object. Josh is happy to call it JediTest or just TestMe (wanted to call it TestThis!). ProTest merge is likely anyway. | ||
− | Soon to be on SourceForge but currently on http://twgeeknight.googlecode.com/svn/trunk/JTestMe/ | + | It's a few lines of AspectJ weaving and a few lines of object persistence. Blindingly fast and just what you need. |
+ | |||
+ | Soon to be on SourceForge but currently on [http://twgeeknight.googlecode.com/svn/trunk/JTestMe/] | ||
+ | |||
+ | Read the [http://twgeeknight.googlecode.com/svn/trunk/JTestMe/readme.txt readme] file for the background and to-do list. |
Revision as of 06:22, 28 July 2007
Facilitated by Josh Graham
Why do we care that the are slow or bad?
- Very easy to calculate the cost of waiting for builds. Easily $100,000+ per annum
- Boring, frustrating
- Because consultants like Josh will laugh at us
What makes builds slow?
- Infrastructure
- Compiler
- Build script
- TODO: elaborate
- Deployment
- TODO: elaborate
- Tests (see next section)
- Scary, hard-to-change (therefore you never do) build process
- Application architecture
- TODO: elaborate
What makes tests slow?
- Not-really-unit tests
- Are they crossing administrative boundaries?
- Are they crossing distribution boundaries?
- Do they open an O/S resource or a database connection?
- Look at Ashcroft (but maybe not use it...)
- Heavy integration participants
- Database
- Services
- Class design
- Application architecture
Test Less!
- This does not mean comment out tests because they break (lots of expletives removed)
- This does not mean deleting tests because you don't want to look after them anymore
- Remove overlapping tests (that aren’t there by design)
- Mock objects for specific interactions between collaborators
- Stubs for external integration
- Do I need to keep the test to detect regressions? Gardening of test suites to keep them optimal. Treat it as a 1st class piece of engineering.
- Smoke tests
Demo
Josh then showed a simple but effective little tool that's currently in alpha state he calls JTestMe. Jeff pointed out someone with a similar product name might object. Josh is happy to call it JediTest or just TestMe (wanted to call it TestThis!). ProTest merge is likely anyway.
It's a few lines of AspectJ weaving and a few lines of object persistence. Blindingly fast and just what you need.
Soon to be on SourceForge but currently on [1]
Read the readme file for the background and to-do list.