2009年4月18日星期六

Speed the development process instead of trying to save a few dollars on testing

Test automation efforts aimed at reducing testing costs rarely get attention and cooperation they need ensure success.

If you want support, focus your efforts on reducing the risk of development failure.
Test cases are powerful to the extent that they help you and your team gain useful by information about the system being tested. Automated testing adds power by helping you gather and disseminate information quickly, to give programmers fast feedback. The most successful companies automate testing to enhance their development flexibility. Some of the goals of their efforts are to:
  • Quickly detect destabilizing changes in new builds.
  • Expose regression bugs as quickly as possible.
  • Report problems quickly, bucause this makes fixing easier.
Quick fixes keep code stable. Keeping code stable saves time(multiple people don't waste time on the same bug) and facilitates refactoring and other efforts to improve code structure and straighten out spaghetti code. If the code base is largely stable, and a strong suite of automated tests is in place, the programmers can attempt bigger changes at lower risk. The project team can also adjust the product's scope and release dates on short notice to respond to market opportunities.

Here are two examples of techniques for supporting the pace of development.
  • Automated smoke tests. The phrase "smoke test" comes from hardware testing. You plug in a new board and turn on the power. If you see smoke coming from the board, turn off the power. You don't have to do any more testing. Smoke tests broadly cover product features in a limited time - typically over lunch or overnight. If key features don't work or if key bugs haven't yet been fixed, your team won't waste further time installing or testing the build. Getting it fixed becomes the programmers' top priority.
  • Automated unit tests. These tests also streamline a development process, prevent backtracking, and maintain development momentum. These are larger sets of tests that focus on testing the low-level functions and classes of your product.
The greatest value of automated smoke and unit tests is that they can be run at any time and by any one. Run them automatically as part of the build process. Their availability helps individual programmers create minibuilds that incorporate just one or a few of their changes. If one of those builds is broken, the programmer knows what to investigate. If the minibuilds are OK, the broader build that comes to you, which collects everyone's changes, is more likely to work. This is an invaluable benefit that your project manager is sure to appreicate.

These kinds of automated tests take time, effort, skill, and money to create. The unit tests will probably be created by the programmers, although you might encourage and speed that effort by writing the code with them as half of a programming pair. With these kinds of benefits, you'll have a far easier time securing the copperation you'll need than if you were to simply focus on saving manual testing time.

没有评论:

发表评论