There is no limit to the number of actions that can be performed in a single test, though only 255 actions can include data tables. Descriptive programming methods like using regular expressions instead of constants and repository parameters can be used to create a dynamic object repository in QTP. Global sheets are used for test data that should be shared across all actions in a test, while action sheets are used to parameterize individual actions with independent test data.