In general, it is easier to automate test cases for new functionality because the implementation has not yet been completed (or better yet, started). The test engineer can use his knowledge to explain to the developers and architects what exactly is needed in the new functionality so that it can be effectively and efficiently tested by the test automation solution.
When new functionality is introduced into a SUT, testers need to develop new tests for that new functionality and the corresponding requirements. The TAE must solicit feedback from test developers with expertise and determine whether the current TAS meets the requirements of the new features. This analysis includes, but is not limited to, the existing approach, third-party development tools, testing tools used, etc.
Changes to the TAS must be evaluated against the existing automated testware components so that changes or additions are fully documented and do not affect the behavior (or performance) of the existing TAS functions.
For example, if a new function is implemented with a different object class, it may be necessary to update or add to the testware components. In addition, compatibility with existing test tools must be evaluated, and alternative solutions may need to be found. For example, if a keyword-driven approach is used, it may be necessary to develop additional keywords or modify/expand existing keywords to accommodate the new functionality.
It may be necessary to evaluate additional test tools to support the new environment in which the new functionality exists. For example, a new test tool may be required if the existing test tool only supports HTML.
New test requirements may impact existing automated tests and testware components. Therefore, prior to implementing any changes, the existing automated tests should be run against the new/updated SUT to verify and record any changes to the correct operation of the existing automated tests. This should include mapping dependencies to other tests. Any new technology changes will require an evaluation of the current testware components (including test tools, function libraries, APIs, etc.) and compatibility with the existing TAS.
As existing requirements change, the effort to update the test cases that verify those requirements should be part of the project plan (work breakdown structure). Traceability from requirements to test cases shows which test cases need to be updated. These updates should be part of the overall plan.
Finally, it must be determined if the existing TAS still meets the current requirements of the SUT. Are the implementation techniques still valid, or is a new architecture required, and can this be accomplished by extending current capabilities?
When new functionality is introduced, this is an opportunity for test engineers to ensure that the newly defined functionality is testable. During the design phase, testing should be considered by providing test interfaces that can be used by scripting languages or the test automation tool to verify the new functionality. For more information, see the article Design for Testability and Automation.