A software system can and has to be tested on different levels of abstraction. Typical such levels are (see [ISTQB Foundation Level Syllabus, 2011, Chapter 2.2]): Component Testing, Integration Testing and System Testing. These levels of abstraction exist for every product/system, regardless whether the system was or is build following a traditional development model or an agile development approach. As a result a project team creates and maintains test cases on each of these levels. The interfaces to be called or stimulated by a specific test case can look quite different depending on the test level of the specific test case. So if a test case is automated the test tool in use must be appropriate for the level specific test interface. Usually component and integration level tests are automated using so called 'Unit Testing Frameworks' (see [Meszaros 07]). On system level functional tests are often automated using so called 'GUI-Testing Tools' to simulate interactions of a system end user with the system via the systems Graphical User Interface (GUI). But depending on the systems technical architecture and the test type (e.g. performance test) it could be necessary or possible to execute a system level test case via the systems API (e.g. a service API) rather than via its GUI and thus to automate such test cases using a specialized testing tool (e.g. for performance testing) or even to use a Unit Testing Framework (interfacing the system level API).
The text above is a sample from the upcoming Agile Tester Extension that will be released in early 2014. Please note that Agile Tester Extension is in its alpha phase, which means that its content may change. Visit www.istqb.org to get latest information.