I heard people say that a test suite isn't really useful unless you have 100's of tests. First off I don't agree with that, I believe that it is useful with the very first test, but that's getting off track.
Let's do some math. Let's take a low-ish number of tests that someone could make in a day, let's say 10. 5 days a week, 4 weeks a month, that's 200 tests / month per person! So if you are coding very slowly, by yourself you'll have a suite that is "worth it" just after 4 weeks. If you are in a team of 2, that you hit that point after 2 weeks. In a team of 4 people, if you go a week coding without writing tests, you have long passed that moment.
Why do people still not use test driven development? I honestly don't know. I guess they just are not test infected. *sigh*
I agree. One test is better than no tests.
ReplyDeleteTo add to that line of thought, I believe that on any project of more than one person a daily build should be the first priority. If the team can't even keep the thing building they aren't going to be able to test it with any sort of reliability.
I'm not so sure that I agree with daily building as being a first priority. Particularly on projects/teams where even basic automated unit-testing isn't an option (due to the technologies used etc).
ReplyDeleteFor me, I think weekly builds and follow-up integration testing by non-QC personelle (ie, developers) would be a first priority. (Again, only when automated unit-tests aren't an option, otherwise they'd be first).
I agree with Peter. If you are not running tests against a build all a daily build tells you is that the app compiles and (maybe) starts up. For me, I would say that automated and / or unit tests would come first.
ReplyDeleteThat's assuming that you can "easily" build, package the app, even if it's using the IDE.
Yes, it depends on the project and the technology being used and the priorities of the team.
ReplyDeleteDoing daily builds ensures that at the very least all of the code compiles together, which in itself is an initial integration test. If the thing cannot even compile, then it probably cannot be integration tested (either manually or automatically) or packaged.
You could easily unit test before you do daily builds and run the tests manually every day, but why bother? If you had a build machine you could just get a build status email sent to you.
There are other factors (like turf wars over the build machine) that get into this. I was assuming none of that was going on.