The purpose of system test planning or simply test planning, is to get ready and organized for test execution. A test plan provides a framework, scope, details of resource needed, effort required, schedule of activities, and a budget. A framework is a set of ideas, facts, or circumstances within which the tests will be conducted.
The stated scope outlines the domain, or extent, of the test activities. The scope covers the managerial aspects of testing, rather than the detailed techniques and specific test cases.
Test design is a critical phase of software testing. During the test design phase, the system requirements are critically studied, system features to be tested are thoroughly identified, and the objectives of test cases and the detailed behavior of test cases are defined. Test objectives are identified from different sources, namely, the requirement specification and the functional specification, and one or more test cases are designed for each test objective. Each test case is designed as a combination of modular test components called test steps. These test steps can be combined together to create more complex, multi-step tests. A test case is clearly specified so that others can easily borrow, understand, and reuse it.
It is interesting to note that a new test-centric approach to system development is gradually emerging. This approach is called test-driven development (TDD) . In test-driven development, programmers design and implement test cases before the production code is written. This approach is a key practice in modern agile software development processes such as XP. The main characteristics of agile
software development processes are
(i) incremental development
(ii) coding of unit and acceptance tests conducted by the programmers along with customers
(iii) frequent regression testing, and
(iv) writing test code, one test case at a time, before the production code.