Thoughts on software testing
Software testing is an amazing topic.
There are several different testing approaches that can be helpul in a software lifecycle.
Acceptance tests are great for ensure you are building the right thing
They can levarage to specifications maturity, providing great aid on development guidance.
The software behavior must be specified, so why not execute theses specifications, ensuring things work well during the entire lifecycle.
Unit and integration tests are great for ensure you are building software in the right way
With great unit tests coverage, developers will enhance their engineering practices, improving code quality and providing an agile development process.
This is because you can not unit test a poorly structured software. And this is very handful.
Tests will be your best friend when changes start to appear, and we know changes happen.
There is some new requirement?
Great, all you need is some specification, so developers can implement and test it.
By the way, changes or new requirements will never break existing code, because the test base is not going to left this happen.
Testing is also a great way to improve coding skills, so if you are a software developer and you don’t know how to test your software,
this is something you should be learning right now.
So please tell me you are doing tests, or at least you intend to.







I started writing unit tests a couple of years ago, but only in the last 3-4 months I adopted full TDD. Now I can’t live without it, and I agree with you, it does improve the programming skills, because when you write code that has to be tested (or, actually, is already being tested), you end up thinking harder on good patterns and architecture. Bad code yields bad or impossible tests
Another great thing about testing is how easier it becomes to refactor the code, which also means better programming.
Rodrigo Vieira
21 May 09 at 4:08
Rodrigo,
Certainly code refactoring is a great point.
rafanoronha
13 Jun 09 at 15:16