Task: Implement Developer Tests | |
|
Implement one or more tests that enable the validation of the individual software components through execution. |
Disciplines: Implementation |
|
Purpose
Prepare to validate a software component (e.g. an operation, a class, a stored procedure) through unit testing. The
result is one or more new developer tests. |
Relationships
Roles | Primary Performer:
| Additional Performers:
|
Inputs | Mandatory:
| Optional:
|
Outputs |
|
Main Description
Developer testing is different from other forms of testing in that it is based on the expected behavior of code units
rather than being directly based on the system requirements.
|
Steps
Refine scope and identify the test(s)
Select the increment of work to be tested and identify developer test(s) to verify that the Implementation being developed behaves correctly. It is best to do this
at a small scale, much smaller than the complete code base to be authored by a developer over the course of an
iteration. This can be done for one operation, one field added to a user interface, one stored procedure, etc.
|
Write the test setup
Implement the setup logic that must be performed as part of the Developer Test. To successfully run a test the system must be in a known state
so that the correct behavior can be defined.
|
Write the test logic
Write the steps that performs the actual test(s). |
Define the expected results
Define the expected results of each test so that it can be verified.
After a test runs, you need to be able to compare the results of running the test against what was expected
to happen. The test is successful when the actual results match the expected results.
|
Define the test response
Define the information the test(s) must produce to successfully indicate success or failure. Consider if a response
of True or False is sufficient, or if a detailed message should be logged as well. |
Write clean-up code
Identify, and then implement, the steps to be followed in order to restore the environment to the original state for each
test. The goal is to ensure that there are no side effects from running the tests. |
Test the test
Verify that each developer test works correctly. To do this:
-
Run the test(s), observe their behavior, and fix any defects in the tests.
-
Ensure that the expected results are defined properly and that they're being checked correctly.
-
Check the clean-up logic for each test.
-
Ensure that each developer test works within your test suite framework.
|
|
Key Considerations
-
Automate tests via a unit regression testing tool (for example, xUnit) so that tests may be run by developers
whenever they make changes to the code.
-
Test to the risk of the component. For example, the more critical a component is, the more important it is to
test it thoroughly.
-
Pair with the Tester in all steps of this task to gain insight on testing and quality considerations.
|
Alternatives
Rely on acceptance tests to validate your software. This will likely be time consuming, late, and not as effective as
developer testing in identifying bugs and finding their location in the code. |
More Information
|