我最近正在开展一个项目,旨在评估Android应用程序是否崩溃。评估过程是:
现在我可以生成公式,但为了方便用户,我想将公式转换为自然语言的形式,并告诉用户为什么会发生崩溃。(我认为它看起来像“逆自然语言处理”。)
为了更清楚地解释这个想法,假设你有一个这样的公式:
155 - count(onKeyDown) >= 148
很明显,如果count(onKeyDown)> 7,“155 - count(onKeyDown)> = 148”的结果为false,因此日志中包含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 ++实现这个功能,但这很难,here's the snippet of code我现在正在工作。
有谁知道如何快速实现这个功能?(可能通过一些工具或研究结果?)欢迎任何想法:)
提前致谢。