1

我最近正在开展一个旨在评估 android 应用程序是否崩溃的项目。评估过程是:

  1. 收集日志(记录应用程序的执行过程)。
  2. 生成公式预测结果(公式由GP生成)
  3. 通过公式评估日志

现在我可以生成公式,但是为了方便用户,我想把公式翻译成自然语言的形式,告诉用户为什么会发生崩溃。(我认为它看起来像“逆自然语言处理”。)

为了更清楚地解释这个想法,假设你有一个这样的公式:

  155 - count(onKeyDown) >= 148

很明显,如果count(onKeyDown) > 7,“155 - count(onKeyDown) >= 148”的结果是假的,所以日志包含超过7个onKeyDown事件将被预测为“失败”。

我想告诉用户,如果 onKeyDown 事件出现超过 7 次(155-148=7),这个应用程序就会崩溃。

但是,真正的公式要复杂得多,例如:

(< !( ( SUM( {Att[17]}, Event[5]) <= MAX( {Att[7]}, Att[0] >= Att[11]) OR SUM( {Att[17]}, Event[5]) > MIN( {Att[12]}, 734 > Att[19]) ) OR count(Event[5]) != 1 ) > (< count(Att[4] = Att[3]) >= count(702 != Att[8]) + 348 / SUM( {Att[13]}, 641 < Att[12]) mod 587 - SUM( {Att[13]}, Att[10] < Att[15]) mod MAX( {Att[13]}, Event[2]) + 384 > count(Event[10]) != 1))

我试图用 C++ 来实现这个功能,但这很困难,这是我现在正在工作的代码片段。

有谁知道如何快速实现这个功能?(也许通过一些工具或研究结果?)欢迎任何想法:)

提前致谢。

4

0 回答 0