Runtime enforcers can be used to ensure that running applications satisfy desired correctness properties. Although runtime enforcers that are correct-by-construction with respect to abstract behavioral models are relatively easy to specify, the concrete software enforcers generated from these specifications may easily introduce issues in the target application. Indeed developers can generate test suites to verify the functional behavior of the enforcers, for instance exploiting the same models used to specify them. However, it remains challenging and tedious to verify the behavior of enforcers in terms of non-functional performance characteristics. This paper describes a practical approach to reveal runtime enforcers that may introduce inefficiencies in the target application. The approach relies on a combination of automatic test generation and runtime monitoring of multiple key performance indicators. We designed our approach to reveal issues in four indicators for mobile systems: responsiveness, launch time, memory, and energy consumption. Experimental results show that our approach can detect performance issues that might be introduced by automatically generated enforcers.
翻译:运行时间执行官可以用来确保运行应用程序符合预期的正确性能。虽然运行时间执行官相对容易地具体指定抽象行为模型,但这些规格产生的具体软件执行官可以很容易地在目标应用中引入问题。事实上,开发商可以生成测试套件,以核实执行官的功能性行为,例如利用用于指定他们的相同模型。然而,在非功能性性能特征方面,核实执行官的行为仍然具有挑战性和烦琐性。本文描述了一种实际的方法,以揭示运行时间执行官可能使目标应用效率低下的情况。该方法依赖于对多个关键业绩指标进行自动测试生成和运行时间监测的结合。我们设计了我们的方法,以在移动系统的四个指标中揭示问题:反应能力、发射时间、记忆和能源消耗。实验结果表明,我们的方法可以发现自动生成的强制执行官可能引入的性能问题。