1. A computer-system-implemented method for dynamic testing of a software product, the method comprising: receiving a pre-defined set of tests associated with the software product; generating virtual environments corresponding to subsets of a group of individuals; using the computer system, executing the pre-defined set of tests in the virtual environments, wherein, during a given test in the pre-defined set of tests, individuals in a corresponding subset interact with the software product, wherein, prior to executing the pre-defined set of tests for a first time, selecting the subsets based on one or more attributes of individuals in the group of individuals; analyzing results of the executed pre-defined set of tests; updating the subsets based on the analysis; and repeating the executing, analyzing and updating operations until a termination criterion is reached.