Produkt prisen 2009
- Winner in the IT category

Why Automate? - the short story (beta!)

This page is only made to make a convenient short description of all the arguments why automating the system testing is such a good investment.
Many books has been written on this subject. Please tell us if you know a good one, addressing test of embedded systems; then we can recommend it here.

There are three main reasons for automating:

But there are also other good reasons.

Saving Time

Many projects are delivered late and the product does not include all the planned functionality. Because most project work is centered on development and testing, there is great value in saving development and test time. Typically half the development time is spent on testing. When implemented correctly, automated software testing can shorten the time-to-market.

To shorten the development time of a product, it is not enough to get better development tools. Improved test tools and practises are just as important. The time spent on ineffective and manual testing is often just accepted, ignoring the very great savings found in effective test automation.

A very significant amount of time can be saved by automating the smoke test and regression test. Many manual tests can be executed in just a fraction of the time when automated.
When a test is being automated the project will benefit from the reduced execution time for each rerun.

Lowering Costs

The project costs are lowering automatically when saving time just as the arguments above explain, simple because when fewer labour hours are spent.

But there is also many other places where money are spent because a product was not tested properly, just think of the costs associated with having to replace all the sold units because of a software malfunction, it does not matter which industry your are in, this is costly. There are also the cost of damage to your company brand, in a world where product reviews travel the world on a daily basis, a software problem which only manifests itself in one part of the world might influence a buyer on the other side of the world. An American potential customer might be put off because of reports of product crashes from France when using non-ASCII characters on the product, even-though the American is not likely to use non-ASCII characters.

And it does not just end with the product in question, years into the future your brand will still be scared because of the errors in revision 1.0 of that one product. Testing is the only way to protect your company from scenarios like that.

Raising Quality

The quality of the product

More testing can be completed before delivery. Because the test process (specification, implementation and execution) is improved, more tests can be created within the allotted project time.

The smoke test can be executed more often. An efficient and automated smoke test is maybe the most rewarding gain from automated software testing.
If the developers and testers can easily execute the smoke test by simply clicking a start button, it will take only a few seconds or minutes to see that all major functionality is working as expected. If the smoke test does not pass it's not necessary to start the more time and labour demanding tests.
A lot of development time and test time can be saved by running the smoke test often and before running the full (automated and manual) test.

The full test can be executed more often. Instead of only executing the full test once every major release, it could be possible to run it automatically and unattended every night. That would make a newly introduced error show much sooner.

The depth of the test can be increased. This means e.g. that tests can be executed with many, many more entries in the system database. Or that many more entries are created in the phone book.

The breadth of the test can be increased (increases test coverage). Many more different test scenarios and data sets can practically be implemented and executed when a good automation tool is used to handle all the test data.

The scope of the test can be widened. With richer test data, more functionality will be activated by each test.

The quality of the test

No errors when repeating the test again and again. The automated test system will execute all tests the same way every time.

Better data integrity. By using test automation it is easier to create a test setup where the test data is not changed during the test execution (thereby invalidating the test result).

The automation system does not get tired or inattentive.

Fewer labour hours
Reuse (ability to repeat a test)
Raise Quality
Deliver on time
Within budget
All planned functionality
Thoroughly tested
Automation is the answer when testing has become a bottleneck
The most used tests and those which are labour-intensive are obvious candidates to be automated.
Re-creating an error is much easier if a test procedure is created. The development team can just need the name of the test procedure in question.

Other good reasons to automate

The automation don't get tired or inattentive.

By shortening the time from the implementation of a functionality to the verification of it, the developer can finish his task sooner. Instead of manual repeated testing (or just activation) of the functionality being developed or changed, the developer can ascertain correct functionality by automatically executing a few existing tests and maybe also a few new specific tests.

It is very satisfying for a developer to be able to easily test the system functionality, making it easier to find any bugs before releasing software changes to the rest of the development team.
By running a test before starting on a new feature or bug fix, can also save a lot of time for the developer, because he then knows the list of errors (if any) before making his changes.