1. A method comprising, by one or more computing devices: accessing a set of use cases of a software application, wherein: the software application comprises one or more user-interface components that enable a user of the software application to interact with the software application; each use case from the set of use cases comprises one or more user actions that act upon specific ones of the user-interface components; and each one of the user actions is associated with a first cost for performing the user action; and selecting, from the set of use cases, a subset of use cases that has a goodness-to-cost ratio that satisfies a predetermined requirement, wherein computing the goodness-to-cost ratio for the subset of use cases comprises: for each use case from the subset of use cases, computing a second cost as a sum of the first costs associated with the user actions of the use case; computing a third cost as a sum of the second costs; for each user-interface component that is acted upon by at least one of the user actions of at least one of the use cases from the subset of use cases, computing a first goodness measure that indicates a level of user-action coverage that the subset of use cases provides on the user-interface component; computing a second goodness measure as a sum of the first goodness measures; and computing the goodness-to-cost ratio as a ratio between the second goodness measure and the third cost.