Test Development
For automated tests to be reusable, repeatable, and maintainable, test development standards need to be defined and followed.After performing test analysis and design, the test team is now ready to perform test development.Keep
in mind that the test design and development activities follow an
iterative and incremental approach, in order to address the highest
risk functionality up front. Table 2 correlates the development process
phases to the test process phases. The testing processes and steps
outlined in the table are strategically aligned with the development
process, and the execution of these steps results in the refinement of
test procedures at the same time as developers are creating the
software modules. Automated and/or manual test procedures are developed
during the integration test phase with the intention of reusing them
during the system test phase.
Table 2 Development/Test Relationship
Phase |
Development Process |
Test Process |
Module (Unit) Development |
Design module from requirements. |
Perform test planning and test environment setup. |
|
Code module. |
Create test design and develop test data. |
|
Debug module. |
Write test scripts or record test scenario using module. |
|
Unit test module. |
Debug automated test script by running against module. Use tools that support unit testing. |
|
Correct defects. |
Rerun automated test script to regression test as defects are corrected. |
|
Conduct performance testing. |
Verify that system is scalable and will meet performance requirements. |
Integration |
Build system by connecting modules.Integration-test connected modules.Review trouble reports. |
Combine
unit test scripts and add new scripts that demonstrate module
interconnectivity. Use test tool to support automated integration
testing. |
|
Correct defects and update defect status. |
Rerun automated test script as part of regression test, as defects are corrected. |
|
Continued performance testing activities. |
Verify that system is scalable and will meet performance requirements. |
System Test |
Review trouble reports. |
Integrate
automated test scripts into system-level test procedures where
possible, and develop additional system-level test procedures. Execute
system test and record test results. |
|
Correct defects and update defect status. |
Rerun automated test script as part of regression test as defects are corrected. |
Acceptance Test |
Review incident reports. |
Perform subset of system test as part of demonstration of user acceptance test. |
|
Correct defects. |
Rerun automated test script as part of regression test as defects are corrected. |
Many
preparation activities need to take place before test development can
begin. A test development architecture is developed (described in the
next section), which provides the test team with a clear picture of the
test development preparation activities or building blocks necessary
for the efficient creation of test procedures. The test team will need
to tailor the sample test development architecture to reflect the
priorities of their particular project. Part of these setup and
preparation activities involves the need to track and manage test
environment set up activities, where material procurements may have
long lead times. Prior to the commencement of test development, the
test team also needs to perform analysis to identify the potential for
reuse of existing test procedures and scripts within the automation
infrastructure (reuse library).The
test team needs to develop test procedures according to a test
procedure development/execution schedule. This schedule needs to
allocate personnel resources and reflect development due dates, among
other factors. The test team needs to monitor development progress and
produce progress status reports. Prior to the creation of a complete
suite of test procedures, the test team performs a modularity
relationship analysis. The results of this analysis help to incorporate
data dependencies, plan for workflow dependencies between tests, and
identify common scripts that can be applied repeatedly to the test
effort. As test procedures are being developed, the test team needs to
ensure that configuration control is performed for the entire test bed
to include test design, test scripts, and test data, as well as for
each individual test procedure. The test bed needs to be baselined
using a configuration management tool.Test
development involves the development of test procedures that are
maintainable, reusable, simple, and robust, which in itself can be as
challenging as the development of the application under test. Test
procedure development standards need to be in place supporting
structured and consistent development of automated tests. Test
development standards can be based on the scripting language standards
of a particular test tool. For example, Rational’s Robot uses SQABasic,
a Visual Basic–like scripting language, and therefore the script
development standards could be based on the Visual Basic development
standards, outlined in a number of books on the subject.Usually
internal development standards exist that can be followed if the
organization is developing in a language similar to the tool’s
scripting language. The adoption or slight modification of existing
development standards is generally a better approach than creating a
standard from scratch. If no development standards exist within the
organization for the particular tool scripting language, it’s important
for the test team to develop script development guidelines. Such
guidelines can include directions on context independence,
which addresses the particular place where a test procedure should
start and where it should end. Additionally, modularity and reusability
guidelines need to be addressed.By
developing test procedures based on development guidelines, the test
team creates the initial building blocks for an automation
infrastructure. The automation infrastructure will eventually contain a
library of common, reusable scripts. Throughout the test effort and in
future releases, the test engineer can make use of the automation
infrastructure to support reuse of archived test procedures, minimize
duplication, and thus enhance the entire automation effort.
|