Test Implementation
Is the process of developing and prioritizing test
procedures, creating test data and, optionally, preparing
test harnesses and writing automated test scripts.
This is when tests are organized and prioritized and
when test designs are implemented as test cases, test
procedures and test data.
It is of great importance to pick the right tests and run
them in the right order. The importance of this even grows
exponentially in risk-based strategies when we prioritize
based on the likelihood of risk and problems.
At this stage, the Test Manager should ensure:
delivery of test environment
delivery of test data
constraints, risks and priorities are checked
test team is ready for execution
entry criteria is checked (explicit/implicit)
Some organizations may follow the IEEE829 standard to
define inputs and their associated expected results during
testing. Other only have rigorous rules when they need to
provide evidence of compliance for regulatory projects or
for adherence to standards.
In the most common cases, the test inputs are usually
documented together with expected results, test steps and
stored test data.
Just like test conditions and test cases, even during test
implementation we will face the decision to go into an
extensive (detailed) stage or to have a light (generic)
approach. This decision should be taken by your
understanding of the development lifecycle and by the
predictability of software features under test.
For example, in agile or iterative
lifecycles where code changes
dramatically from iteration to iteration,
the implementation work changes
significantly between each stage.
Please do not count off the extensive implementation
preparation due to the above:
Concrete test cases provide working examples of how
the software behaves
When tests are archived for long term and re-use in
regression these details may become valuable
Domain experts are likely to verify versus a concrete
test rather than an abstract business rule
Further weakness in software specification is identified
Some defects can be found only in production-like test
environments. These are often expensive to procure and
difficult to configure and manage. Similar challenges are
also faced for the use of production data or production like
data which can even lead to data privacy or other
headaches.
Test implementation is not all about
manual testing, this is the stage where
automation scripting takes place, the
stage where automation versus manual
prioritization and execution order is
established.
And I am not talking only about automation, even tool
acquisition is done here, especially for test data
generation required to prepare for load, volume or
performance testing.
Quick reminder before moving forward
Test Case
A set of preconditions, inputs, actions (where applicable),
expected results and post conditions, developed based on
test conditions.
Test Script
A sequence of instructions for
the execution of a test.
Test Suite
groups of test scripts, as well as a test
execution schedule.
Test Charter
An instruction of test goals and possible test ideas on how
to test. Documentation of test activities in session-based
exploratory testing.
Test Execution
Is the process of running a test on the component or
system under test, producing actual result.
Should finish before execution starts
Tests are designed or at least defined
Tools are in place for test management and defect
management and test automation (if applicable)
Standards for test logging and defect reporting are
published
Execution begins once
The test object is delivered
The Entry criteria for test execution is met
During execution, a Test Managers role is to:
Monitor progress according to the plan
Initiate and carry out control actions to guide
testing
Ensure that test logs provide an adequate
record of relevant details for tests and events
During execution it is important to keep a traceability
between test conditions, the test basis and the test
objective and to have the appropriate level of test logging.
Time should be reserved for experienced-based and
defect-based test sessions driven by testers findings.