Patent attributes
A computer-implemented method, system and computer program product for testing a software application. User interactions with the functional and non-functional aspects of software applications are monitored. User experience profiles are then generated for the monitored users based on the monitored interactions. The best user experiences in connection with interacting with specific functional and non-functional aspects of the software applications are then identified based on the generated user experience profiles. Virtual users having different types of best user experiences in connection with interacting with different functional and non-functional aspects of the software applications are created. The software application is then tested using the virtual users to determine if the functional and non-functional aspects of the software application satisfy the best user experiences associated with the virtual users. A message may be generated indicating which functional and/or non-functional aspects of the software application did not satisfy a virtual user's best user experience.