I was watching a programme about Crash Test Dummies yesterday. I’m on Holiday this week so I’ve been watching a lot of rubbish TV for the past week, so I thought that this was just another random programme that would keep me occupied for half an hour or so.
It didn’t click with me that this was a form of “Testing” until right at the very end of the programme until I the narrator said the following:
A dummy is just a dummy unless it provides information
What a great quote. This is also true of Software Testers. In my opinion, a Tester is just someone clicking buttons unless they provide information.
What fascinated me more about this programme was the history behind Crash Test Dummies. Before they were invented, they used to use Human volunteers, dead bodies and even dead animals! As morbid as this sounds, imagine that you have been assigned to this project and that this is your test data.
I feel quite sorry for those Human volunteers. I’ve been in a few car crashes and, trust me, I wouldn’t like to do this over and over again throughout the day! The trouble with using a Human is that I don’t think they could have possibly tested this to its limits as this would have surely meant killing the volunteer! So all that using a Human Volunteer proves is that, yes, it works between these set of variables, which we knew before hand as we didn’t want to kill him, but we have absolutely no idea what happens after that. When I test, and try and test the worst case scenario and use some extreme data just to see what happens. What would happen if you crashed the car at 100mph into a wall, for example.
Using a dead body would allow you to carry out those tests without fear of killing the driver, but I also don’t think that this would be an accurate test. Crash test dummies check for things like brain damage and head trauma by measuring the force of the impact, but this wouldn’t necessarily show using a cadaver. To me this is like using a good set of test data which lacks certain realistic elements. I suppose this would be like testing the system using valid, but inaccurate data. For example, using “abcdefghi” in an address field.
I find the idea of using a dead animal quite laughable. Surely all this proves is that crashing a car at a certain speed is fatal if it’s being driven by a Sheep? I couldn’t think of a suitable, real life testing example of this. What do you think? Leave a comment below.
Linking this to Software Testing, the more accurate and realistic you can make your test data, you’re more likely to find defects that occur out there in the real world once it’s gone live. An example of this is during the last big project I worked on. As this was a new system and their was no existing test data available, we had to make it up. We tried to make it as realistic as possible and had regular meetings to discuss the product and the requirements, so we had a fairly good idea of what the data should look like. After the first build, I would compare the data to like using a dead animal. We weren’t really sure that it was correct as we were still learning the software ourselves. After a month or so, our test data resembled something like the dead body. The data was fairly accurate and like how it would be used, but we knew it lacked certain realistic elements. It’s only now that we are in a position to get realistic test data, and I would compare our data now to using a human volunteer. In a another month or so, we will have a fully functional, super-duper crash test dummy of our own to play with!