When to write System Tests?


As soon as requirements are written.  Why?


1.  Spreads out testing resources. 

Testers can begin work before coding.
Tests are ready when developers are ready ... no waiting.

2. Verify requirements- are they testable?

The process of creating tests will make sure the requirements are well written,
clear, concrete, measurable, and testable.

3. Focus developers (no feature creep)

Concrete system tests give developers a clear target to shoot for and helps limit
addition of extraneous features.

Note: Don't forget non-functional system tests

They are run less frequently so it's easy to forget about them ... be sure they
don't get overlooked.


Any disadvantages?

May need to rewrite some tests if requirements change.