映射崩溃报告数据到功能? [大型项目的软件稳定性]

时间:2014-06-10 01:38:56

标签: android ios qa software-quality stability

最终目标是确定特定功能/任务的崩溃程度或稳定程度。

我一直在收集来自常用Android和iOS应用的崩溃报告工具的崩溃报告。幸运的是,崩溃报告包括发生崩溃的类名和方法名称。

但是,假设我现在想以某种方式将崩溃(基于类/方法)映射到特定任务或特征。即 - >对于类Analytics.java,方法onLog(),我可以安全地将其映射到"分析功能",因为如果我跟踪代码(并基于命名),我发现此崩溃与尝试记录anlytics事件的代码相关。

问题是:

  1. 我怎么能以编程方式为所有崩溃做这个?没有AI,这甚至可能吗?
  2. 当我执行特定任务/功能时,是否有某种工具可用于生成所触及的类? (即在Android应用程序中,当我点按一个按钮登录然后输入我的电子邮件时,此工具应显示我触摸的所有代码路径)
  3. 这是告诉软件稳定性的有效方法吗? (如果没有,有什么建议吗?)

1 个答案:

答案 0 :(得分:1)

1)取决于您想要的详细程度和您的架构。如果你过于详细,你需要强大的人工智能,而我们没有。当然,像你的代码越多的意大利面就越不可能工作。但是如果你让一个人将不同的类和功能分类为不同的功能,你可以只查找它崩溃的功能。然而,它会有一些假阴性和假阳性率,因为代码永远不会100%分解。

2)是的,有很多工具可以进行调用链分析并吐出漂亮的XML,任何分析器都必须这样做才能进行分析。当事情引发事件时,困难就来了。例如,按下按钮可能会导致启动线程以启动网络IO。除非你有一个真正了解Java和Android的非常好的工具

,否则不会记录该线程

3)定义稳定性。至少你需要为此添加频率分析 - 一个从未运行的功能可能每月崩溃一次,但这可能是50%的崩溃率。一直使用的功能可能每月崩溃10次,崩溃率为1%,实际上更稳定。但我并不是软件开发指标的忠实粉丝 - 他们过于容易游戏,而是专注于它将开发人员的工作从质量转变为使用指标玩游戏。该规则应该是所有崩溃都被跟踪为错误并修复,至少不会崩溃并向用户提供良好的错误反馈。