Based on my experience,here is the life cycle of Functional Test Automation as per my understanding.
- Check if the automation tool to be used supports the application to be tested.
- Identify the scenarios to be tested.
- The test scenarios identified should be defined in the form of actions (QTP)/scripts (RFT).
- Any tool understands and identified objects on an application via a feature commonly called as object repository.
- For e.g., QTP has OR (object repository) which identifies objects by class name, text, parent name etc. properties.
- RFT has Object Map to identify the objects
- Decide which Object Map has to be used; public object map or private Object Map has to be used.
- In RFT perspective,
Public Object Map
Private Object Map
Its objects are accessible to all the scripts within a project.
Its objects are accessible only to a particular script.
- If Public map is to be used, a map file must be created.
- A script consists of Steps, Data and verification.
- Points to be taken care while recording a script
i. Do not open any other application while recording.
ii. Perform only relevant actions.
iii. When finished, come back to the initial step. For eg, if the script opens a browser, it must close it at the end of script.
- Play back
- Playback the recorded script to see if it works fine and only required actions are recorded.
- It refers to waiting till a defined condition is satisfied.
- In QTP -> waitforproperty().
- In RFT -> waitforesistance().
- Refers to mentioning the expected data or a property value.
- Continuation or failing of a script on a failed verification point depends upon the scenario.
- Normally, there are two types of function libraries
i. General – It includes the functions which may be used across projects – like Functions on excel files.
ii. Application Specific – It includes the functions which cannot be used across projects and are specific to the applications
- Create data – data driven
- If verifications points run successfully, a data pool must be created.
- It is necessary for reporting or scenarios where output of one step or script may be required as an input to other step/script.