For software interacting directly with real-world end-users, it is common practice to script scenario tests validating the system's compliance with a number of its features. However, these do not accommodate the replication of the type of end-user activity to which the system is required to respond in a live instance. It is especially true as compliance might also break in scenarios of interactions with external events or processes, such as other users. State-of-the-art approaches aim at inducing the software into runtime errors by generating tests that maximize some target metrics, such as code coverage. As a result, they suffer from targeting an infinitely large search space, are severely limited in recognizing error states that do not result in runtime errors, and the test cases they generate are often challenging to interpret. Other forms of testing, such as Record-Replay, instead fail to capture the end-users' decision-making process, hence producing largely scripted test scenarios. Therefore, it is impossible to test a software's compliance with unknown but otherwise plausible states. This paper introduces "Synthetic End-User Testing," a novel testing strategy for complex systems in which real-world users are synthesized into reusable agents and employed to test and validate the software in a simulation environment. Hence, it discusses how end-user behavioral examples can be obtained and used to create agents that operate the target software in a reduced search space of likely action sequences. The notion of action expectation, which allows agents to assert the learned compliance of the system, is also introduced. Finally, a prototype asserting the feasibility of such a strategy is presented.
翻译:对于直接与现实世界终端用户互动的软件而言,通常的做法是编造假想测试,以验证系统是否符合其若干特点,但并不适应系统需要现场应对的最终用户活动类型的复制。特别是,由于合规也可能在与外部事件或过程(如其他用户)互动的假想中破裂,因此,合规也可能与其他用户发生中断。最新做法的目的是通过生成测试,使软件进入运行时误差,从而最大限度地达到某些目标度量(如代码覆盖)。结果,它们由于选择一个无限大的搜索空间而受害,在识别错误状态不会导致运行时误差,而它们产生的测试案例往往难以解释。其他测试形式,如记录重播,也可能在与外部事件或过程(如其他用户)发生互动的假想中出现中断。因此,无法测试软件是否符合未知但可能更合理的状态。因此,本文介绍了“合成终端用户测试” 一种新设计的测试策略,在复杂的系统中,对运行不导致运行运行时错误错误的错误状态,它们产生的测试案例往往具有挑战性。 其它的测试形式,如记录-重现,因此,无法捕捉弄软件代理商的动作动作,可以模拟操作系统的动作, 模拟操作系统的动作,可以模拟操作, 模拟操作, 模拟操作的操作, 模拟操作, 模拟操作的动作的操作的操作的操作, 模拟操作的操作, 的动作, 的动作的动作,可以将操作, 的动作, 将操作的操作的动作, 的动作, 的动作, 的动作, 将操作, 的操作, 的操作,可以转换成的动作,可以转换成的动作,可以转换到操作的动作,,,, 的操作的操作的操作的动作, 的操作的操作的操作的操作的操作的操作, 的操作的操作的动作,,, 的操作的操作的操作, 的操作的操作的操作的操作的操作,, 的操作的操作的操作的操作的操作的操作的操作的操作的操作的操作, 的操作, 的操作, 的操作的操作, 的操作的操作的操作, 的操作的操作的操作的操作,可以转换的操作的操作,可以转换到操作, 的操作的操作,可以转换到操作的操作的操作的操作的