![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
|
![]() |
Test planning is a process that allows all stakeholders to proactively decide what the important issues are in software testing and how to best deal with them in terms of strategy, resource utilization, responsibilities, risks, and priorities. Ideally test planning should start during the requirements analysis phase and then proceed concurrently with software development. This will help focus on the individual levels of testing required, and will support and enhance the actual development process. Planning for a specific level of testing requires a clear understanding of the unique considerations associated with that level, e.g. scope, constraints, test environment (hardware, software, interfaces), and test data. A strategic approach to testingA strategy for software testing integrates test design techniques into a planned series of steps and provides a roadmap that describes the steps to be conducted as part of testing, when these steps are executed, and how much effort, time, and resources will be required. Risk analysis should be applied during the testing process to determine the level of detail and the amount of time to be dedicated to testing. Software with a high-risk assessment should be tested more heavily. The estimation of the tasks comprising testing is critical because it is imperative that the schedule prioritizes the work according to the risk assessment, achieving the desired levels of testing, and still fits within the project timescale. The collection and interpretation of metrics provides a crucial feedback loop for the planning process, whereas test metrics include measures that supply information for evaluating the effectiveness of testing techniques and the testing process. It is important that a testing strategy be flexible enough to promote the creativity and customization that are necessary to adequately test software systems, without preventing reasonable planning and tracking as the project progresses. It must provide guidance and milestones, progress must be measurable and problems must be recognized as early as possible. A tiered strategy for testing softwareA strategy for testing should accommodate low-level tests to verify that software has been correctly implemented, and high-level tests that validate system functionality against requirements. Initially, tests focus on individual software components, ensuring they each function properly as a unit. Unit testing uses white-box techniques to exercise specific paths through the software. Automated unit test frameworks, e.g. NUnit and HTTPUnit can be extremely effective tools that help locate defects as software is developed. The software components are integrated to form a sub-system. Integration testing addresses the issues associated with verification and program construction. Black-box testing techniques are prevalent during integration, although white-box testing may be used to ensure coverage of major functionality. The validation criteria established during requirements analysis are used during validation testing to demonstrate traceability and conformance to all functional, behavioral, and performance requirements. Black-box testing techniques are used exclusively during validation. Validated sub-systems are combined to form a software system. System testing verifies that all sub-systems properly interact through their interfaces, and that overall function and performance is achieved. Finally, acceptance testing performed by the various customers and end-users, provides ultimate confirmation that the system satisfies the requirements and verifies that the system is ready for commercial release. Testing comes in many shapes and sizes
|
|
Copyright © 2008 AntonConsulting | info | webmaster | site map |
![]() |