Michael Bolton won an award for his talk on two futures of software testing. The message of it is in essence for testers to focus on the needs of the business instead of the plan. Even though it’s a presentation it has lots of notes and a lot of nice stuff there that turns testers to being more agile. Check it out.
It seems like Facebok is pretty agile in how it handles new features and roll outs. According to an article on the High Scalability site they actually do major releases every week. One of the things that struck me was this:
Be Innovative, Not Safe. Fear of failure often shuts down the organizational brain and makes it hide behind excessive rules and regulations. A technology company should have a bias towards action and innovation. Release software. Don’t stifle genius. Rely on your tools and processes to recover from problems.
This isn’t a solution to problems, but it is a pretty accurate description of what I want to achieve myself. Making a release shouldn’t be difficult or scary. This means that we need tools and methods that:
- Enables us to be relatively certain that we don’t introduce any errors
- Enables us to recover from a failure, because we will eventually fail
Tools like JUnit, Fitnesse, Selenium are all tools that allow us to verify the behaviour of our application. They help us verify that what we have done doesn’t introduce any errors. This should enable us to roll out quite easily, but I think in many projects one doesn’t trust the quality of the tests and you fear rolling out because you don’t have a good recovery plan.
I think we have a lot of tools available to us when it comes to writing tests, we just have to get better at using them, and eventually improving the tools. Where we seem to be missing is the part where we do good rollbacks. Maybe we don’t even need tools for that? I’d like to hear how you do it, and what tools you use or are missing.
Found some really interesting stuff about automated testing with a tool they’ve dubbed Swim. It basically uses the tests as online documentation. By abstracting actions to the correct level, and supplying generated screenshots every step of the way, tests can be verified and used as documentation. Through Ole Mortens blog. Check out Jon Udells entry for an explanation.