May 2011

Fixing my testing workflow

Okay I’m bored of this. I need to talk about it.

I love to use Ruby, RSpec, Cucumber and Rails to do test-driven development, but my tools for running tests are just infuriatingly dumb. Here’s what I want:

  • When a test fails, it should be kept on a list until it has been seen to pass
  • When more than one test fails:
    • Show me the list, let me choose one
    • Focus on that one until it passes, or I ask to go ‘back up’ to the list
    • When it passes, go back up to the list and let me choose again
    • When the list is empty, I get a free biscuit
  • When a test case is run, a mapping should be stored to the source files that were covered as it ran so that:
    • When a file changes, I can use that mapping to guess which test cases to run. Fuck all this naming convention stuff, it’s full of holes.
    • At any time, I can pipe the git diff though the tool to figure out which test cases to run to cover the entire commit I’m about to make.

When I say test case, I personally mean:

  • An RSpec example
  • A Cucumber scenario

…but it should work for any other testing framework too.

I feel like having a tool like this that I trusted would make a huge difference to me. There are all these various scrappy little pieces of the puzzle around: guard plugins, autotest, cucover, cucumber’s rerun formatter. None of them seem to quite do it, for me. Am I missing something?

Or shall we make one?

Agile / Lean Software Development
Ruby Programming

Comments (8)

Permalink

Plan on Friday, Reflect on Monday

If you work in a regular weekly iteration rhythm, it’s quite normal to think about starting the week with a planning session, and ending the week with a retrospective. I have a new idea for you, which my team have just happened upon, but which I rather like: Swap them around.

Instead of trying to reflect at the end of the week when you’re tired, leave it until Monday morning. You’ll be fresh, you’ll have had a chance to privately reflect on the last week over your weekend. Crucially, when you leave the meeting with new ideas about how to work, you’ll have a whole week ahead of you to try them out.

Instead of leaving work at the end of the week with no clear idea what you’ll be doing the next, get ahead of the game and make a plan before you leave on Friday. You’ll have prepared the ground for getting down to business almost straight away when you walk in on Monday morning, and I suspect this means you’ll enjoy a more relaxing weekend too.

I’ve never looked at things this way before, but now I do it makes perfect sense. Why not try it and let me know how it works for you?

Agile / Lean Software Development

Comments (1)

Permalink