Sam Newman's site, a Consultant at ThoughtWorks




Regularly changing the focus


Reactive test suite




Source-Code Management




4 Responses to “Build Pattern: Fish-eye Test Suite”

  1. James Mead

    Interesting post, Sam. I’m not sure about the name “Fish-eye Test Suite”. Presumably this is drawn from the idea of a fish-eye lens which is an ultra wide-angle lens. Can you explain the metaphor?

  2. Dennis Byrne

    Hi Sam,

    There’s bunch of us working on this right now.

    I’ve recently implemented an algorithm that builds dynamic JUnit suites based on bytecode dependency graphs. This allows you to determine relevant tests at test time – no more manually maintaining test suites. Kent Spillner has implemented a Condorcet voting implementation in Java ( ) that will allow ProTest to combine the intelligence of multiple test suite algorithms to build suites that are designed to fail the fastest. By sorting tests, we want to give developers 90% of the feedback w/ 10% of the costs. Email me if you are interested. Naresh Jain is hacking ant right now so that we can run ProTest in our builds.

  3. sam

    You guys might have a naming clash – there is already a Python testing tool called protest 🙂 I’m not taht clear as to how your solution will be able to build in the intellegence of a development team knowing what they’ll be working on in the next iteration, but I can understand a system whereby you automatically flag slow tests with poor test coverage or something similar.

    Anyway, I’ll view your progress with interest!

  4. Tracy Ragan

    Speed is the issue. I beleive the biggest problem with speed is in the actual compile and link process. Instead of removing tests you should consider ways to improve the build itself. When I read blogs that refer to the “build”, I believe they are referring to everything that is occuring in the CI process, pre and post build steps. There are solid ways of improving build speeds and then distributing the workload of multiple test onto different machines to speed up the overall “build” process. Do this with both build automation and workload automation to maximize the speed of the compile and link process and then all downstream testing activities.


Leave a Reply


You are commenting using your account. Log Out /  Change )

Google photo


Twitter picture


Facebook photo


Connecting to %s


Subscribe to this comment feed via RSS

%d bloggers like this: