| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE html PUBLIC "-//W3C/DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> |
| <!-- VERSION rmc:7.1.0 --> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> |
| <!-- START NON-TRANSLATABLE --> |
| <title>\openup_basic\tasks\impl_developer_tests.xmi</title> |
| </head> |
| <!-- WARNING: do not modify the generated comments in this file below this line. They are used as markers for the import process. --> |
| <body> |
| Element Name: impl_developer_tests.xmi<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <br/><br/><br/> |
| <!-- START NON-TRANSLATABLE --> |
| Attribute: presentationName<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <!-- START:presentationName,_0iL1EMlgEdmt3adZL5Dmdw CRC: 3713996132 -->Implement Developer Tests<!-- END:presentationName,_0iL1EMlgEdmt3adZL5Dmdw --> |
| <br/><br/><br/> |
| <!-- START NON-TRANSLATABLE --> |
| Attribute: briefDescription<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <!-- START:briefDescription,_0iL1EMlgEdmt3adZL5Dmdw CRC: 2809950841 -->Implement one or more tests that enable the validation of the individual software components through execution.<!-- END:briefDescription,_0iL1EMlgEdmt3adZL5Dmdw --> |
| <br/><br/><br/> |
| <!-- START NON-TRANSLATABLE --> |
| Attribute: mainDescription<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <!-- START:mainDescription,_dWPe8KrMEdmqUqi7YGiSxw CRC: 120746317 --><p> |
| 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. |
| </p> |
| <p> |
| 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. As the code base is incrementally built, new tests will be authored and existing tests might be revisited to test |
| additional behavior. |
| </p><!-- END:mainDescription,_dWPe8KrMEdmqUqi7YGiSxw --> |
| <br/><br/><br/> |
| <!-- START NON-TRANSLATABLE --> |
| Attribute: keyConsiderations<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <!-- START:keyConsiderations,_dWPe8KrMEdmqUqi7YGiSxw CRC: 2953983583 --><ol> |
| <li> |
| 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. |
| </li> |
| <li> |
| Test to the risk of the component. For example, the more critical a component is, the more important it is to test |
| it thoroughly. |
| </li> |
| <li> |
| Pair with the <a class="elementLink" href="./../../openup_basic/roles/tester,_0ZM4MclgEdmt3adZL5Dmdw.html" |
| guid="_0ZM4MclgEdmt3adZL5Dmdw">Tester</a> in all steps of this task to gain insight on testing and quality |
| considerations. |
| </li> |
| </ol><!-- END:keyConsiderations,_dWPe8KrMEdmqUqi7YGiSxw --> |
| <br/><br/><br/> |
| <!-- START NON-TRANSLATABLE --> |
| Attribute: purpose<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <!-- START:purpose,_dWPe8KrMEdmqUqi7YGiSxw CRC: 2691434226 -->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.<!-- END:purpose,_dWPe8KrMEdmqUqi7YGiSxw --> |
| <br/><br/><br/> |
| <!-- START NON-TRANSLATABLE --> |
| Attribute: alternatives<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <!-- START:alternatives,_dWPe8KrMEdmqUqi7YGiSxw CRC: 7092648 -->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.<!-- END:alternatives,_dWPe8KrMEdmqUqi7YGiSxw --> |
| <br/><br/><br/> |
| <!-- START NON-TRANSLATABLE --> |
| Attribute: name<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <!-- START:name,_2LYo8KuPEdmhFZtkg1nakg CRC: 2273716744 -->Refine scope and identify the test(s)<!-- END:name,_2LYo8KuPEdmhFZtkg1nakg --> |
| <br/><br/><br/> |
| <!-- START NON-TRANSLATABLE --> |
| Attribute: sectionDescription<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <!-- START:sectionDescription,_2LYo8KuPEdmhFZtkg1nakg CRC: 2741027733 --><p> |
| Select the increment of work to be tested and identify developer test(s) to verify that the <a class="elementLink" |
| href="./../../openup_basic/workproducts/implementation,_0YoQcMlgEdmt3adZL5Dmdw.html" |
| guid="_0YoQcMlgEdmt3adZL5Dmdw">Implementation</a> being developed behaves correctly. One source for the expected |
| behavior for a software component is the <a class="elementLink" |
| href="./../../openup_basic/workproducts/design,_0WuL8slgEdmt3adZL5Dmdw.html" |
| guid="_0WuL8slgEdmt3adZL5Dmdw">Design</a>. |
| </p> |
| <p> |
| In identifying the tests or in any other part of this task, consider collaborating with a <a class="elementLink" |
| href="./../../openup_basic/roles/tester,_0ZM4MclgEdmt3adZL5Dmdw.html" guid="_0ZM4MclgEdmt3adZL5Dmdw">Tester</a> who |
| should be well-versed in the issues of testing. |
| </p><!-- END:sectionDescription,_2LYo8KuPEdmhFZtkg1nakg --> |
| <br/><br/><br/> |
| <!-- START NON-TRANSLATABLE --> |
| Attribute: name<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <!-- START:name,_g8npoC5UEduVhuZHT5jKZQ CRC: 1377779743 -->Write the test setup<!-- END:name,_g8npoC5UEduVhuZHT5jKZQ --> |
| <br/><br/><br/> |
| <!-- START NON-TRANSLATABLE --> |
| Attribute: sectionDescription<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <!-- START:sectionDescription,_g8npoC5UEduVhuZHT5jKZQ CRC: 774218038 -->To successfully run a test the system must be in a known state so that the correct behavior can be defined. Implement the |
| setup logic that must be performed as part of the <a class="elementLink" |
| href="./../../openup_basic/workproducts/developer_test,_0YuXEclgEdmt3adZL5Dmdw.html" |
| guid="_0YuXEclgEdmt3adZL5Dmdw">Developer Test</a>.<!-- END:sectionDescription,_g8npoC5UEduVhuZHT5jKZQ --> |
| <br/><br/><br/> |
| <!-- START NON-TRANSLATABLE --> |
| Attribute: name<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <!-- START:name,_g1eDUC5VEduVhuZHT5jKZQ CRC: 2701737739 -->Define the expected results<!-- END:name,_g1eDUC5VEduVhuZHT5jKZQ --> |
| <br/><br/><br/> |
| <!-- START NON-TRANSLATABLE --> |
| Attribute: sectionDescription<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <!-- START:sectionDescription,_g1eDUC5VEduVhuZHT5jKZQ CRC: 1052907200 --><p> |
| Define the expected results of each test so that it can be verified. |
| </p> |
| <p> |
| 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. |
| </p><!-- END:sectionDescription,_g1eDUC5VEduVhuZHT5jKZQ --> |
| <br/><br/><br/> |
| <!-- START NON-TRANSLATABLE --> |
| Attribute: name<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <!-- START:name,_5WtVcKuPEdmhFZtkg1nakg CRC: 2746982786 -->Write the test logic<!-- END:name,_5WtVcKuPEdmhFZtkg1nakg --> |
| <br/><br/><br/> |
| <!-- START NON-TRANSLATABLE --> |
| Attribute: sectionDescription<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <!-- START:sectionDescription,_5WtVcKuPEdmhFZtkg1nakg CRC: 617361698 -->Write the steps that perform the actual test(s).<!-- END:sectionDescription,_5WtVcKuPEdmhFZtkg1nakg --> |
| <br/><br/><br/> |
| <!-- START NON-TRANSLATABLE --> |
| Attribute: name<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <!-- START:name,_j30aAC5VEduVhuZHT5jKZQ CRC: 3452165955 -->Define the test response<!-- END:name,_j30aAC5VEduVhuZHT5jKZQ --> |
| <br/><br/><br/> |
| <!-- START NON-TRANSLATABLE --> |
| Attribute: sectionDescription<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <!-- START:sectionDescription,_j30aAC5VEduVhuZHT5jKZQ CRC: 1078148829 -->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.<!-- END:sectionDescription,_j30aAC5VEduVhuZHT5jKZQ --> |
| <br/><br/><br/> |
| <!-- START NON-TRANSLATABLE --> |
| Attribute: name<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <!-- START:name,_ku06gC5VEduVhuZHT5jKZQ CRC: 4075690081 -->Write clean-up code<!-- END:name,_ku06gC5VEduVhuZHT5jKZQ --> |
| <br/><br/><br/> |
| <!-- START NON-TRANSLATABLE --> |
| Attribute: sectionDescription<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <!-- START:sectionDescription,_ku06gC5VEduVhuZHT5jKZQ CRC: 4275660162 -->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.<!-- END:sectionDescription,_ku06gC5VEduVhuZHT5jKZQ --> |
| <br/><br/><br/> |
| <!-- START NON-TRANSLATABLE --> |
| Attribute: name<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <!-- START:name,_6wZFMKuPEdmhFZtkg1nakg CRC: 2628067035 -->Test the test<!-- END:name,_6wZFMKuPEdmhFZtkg1nakg --> |
| <br/><br/><br/> |
| <!-- START NON-TRANSLATABLE --> |
| Attribute: sectionDescription<br/><br/> |
| <!-- END NON-TRANSLATABLE --> |
| <!-- START:sectionDescription,_6wZFMKuPEdmhFZtkg1nakg CRC: 3768184763 --><p> |
| Verify that each developer test works correctly. To do this: |
| </p> |
| <ul> |
| <li> |
| Run the test(s), observe their behavior, and fix any defects in the tests. |
| </li> |
| <li> |
| Ensure that the expected results are defined properly and that they're being checked correctly. |
| </li> |
| <li> |
| Check the clean-up logic for each test. |
| </li> |
| <li> |
| Ensure that each developer test works within your test suite framework. |
| </li> |
| </ul><!-- END:sectionDescription,_6wZFMKuPEdmhFZtkg1nakg --> |
| </body> |
| </html> |