小编按:这是一篇 Bugtags 用户来稿,经过一段时间的密集使用,他已然觉得 Bugtags 是 App 开发者的好帮手,感谢解铃 App - 楚琪同学对 Bugtags 的信赖和支持。小编在这里诚邀各位热心用户向我们投稿,说出你使用 Bugtags 的故事。
无论开发 Web 网站还是开发 App,如果用户在使用程序或网站的过程中程序出现了错误,我们都希望第一时间知道,并且希望错误信息越详细越好,这样方便我们技术人员定位问题以尽快解决。针对 Web 网站,我们会在服务端集成日志系统,服务端监控系统等来达到目的。那么针对 App,用户在使用 App 的过程中闪退了,我们如何能知道并尽可能详细的收集错误信息呢?
最初我们的解决方案是这样的,无论是 iOS 还是 Android,都提供了类似 Exception Handler 的回调,所以我们自己实现这个回调,当有 Exception 发生时,我们自己收集设备信息,堆栈信息等然后发送到我们自己服务器上,服务器收集到错误信息以发邮件等方式通知相关技术人员。这种方式有很多不足:

  • 针对 iOS 和 Android 都要实现一套
  • 要可视化错误信息还需要自己实现
  • 不方便统计、跟踪错误
    后来看到业内知名开发者唐巧写的文章里提到了 Bugtags ,写微信公众号 MacTalk 的池建强老师也推荐过。于是准备集成到 App 中。5 分钟左右,集成完毕。手动抛出一个异常测试了下,(@ο@) 哇~,原来世界还是很美好的,这特么就是技术人员心心念念想要的 Bug 收集管理工具啊。
    都说给技术人员做服务是很不容易的,因为技术人员是在(非)乎(常)体(挑)验(剔)的一群人,但 Bugtags 用下来体验很不错。
  • 集成简单
  • 自动收集错误信息,而且错误信息非常详细
  • 可以统计、跟踪、团队协作
    这里面错误信息的详细程度是非常重要的,Bugtags 这方面做的很好。一般排查 App 问题,我们经常会问测试人员,是用什么机型测试的,什么系统版本,怎么操作的,能否重现等问题,通过这些问题我们一般再对照自己的程序逻辑基本上能定位到问题。Bugtags 的错误信息类似这个分类,但分的更细更清晰,而且是自动的。然后在 Web 网站上就可以看到错误信息,网站是那种简洁清晰的风格,有点像 Google 的 Material Design,个人非常喜欢。
    通过收集到的设备信息和截屏,一目了然的就可以看到出问题的是什么设备,用户是在哪个界面操作发生错误的。

    接下来我们一定想知道用户的操作步骤是怎样的,因为我们技术人员常说的一句话就是『我这里没问题啊』,但常常忽略了用户可能不是我们这样操作的。Bugtags 监测了 UI 交互事件流,类似这样。

    在这里可以看到 View 的生命周期,还包括用户点击的按钮事件等一应俱全。那么基本上我们可以重现用户的操作步骤了。
    接下来还有一点技术人员非常关心的,就是堆栈信息。同样 Bugtags 完整的收集了异常堆栈信息。

    相当亲(讨)切(厌)的异常堆栈信息!
    其他还有一些程序输出到控制台的 Log 信息,可以辅助定位问题。

    有了这些,老板再也不用担心我们找不到问题原因了。
    最后关于团队协作这一块,个人用的不是很多,主要就是把对应的问题指派给对应的技术人员,然后跟踪看有没有解决。写了这么些,其实就是一句话:『太特么好用了,谁用谁知道』。
    PS:
  1. 唐巧对 Bugtags 的评测
  2. 池建强老师对 Bugtags 的评测

拥抱高效、拥抱 Bugtags 之来自用户的声音(四)的更多相关文章

  1. 拥抱高效、拥抱 Bugtags 之来自用户的声音(三)

    小编按:这是一篇 Bugtags 用户来稿,主要是介绍了使用 Bugtags 前后对测试及解决 Bug 所带来的变化,感谢山西农业大学 - 高正炎同学对 Bugtags 的信赖和支持.小编在这里诚邀各 ...

  2. 拥抱高效、拥抱 Bugtags 之来自用户的声音 2

    小编按:这是一篇 Bugtags 用户来稿,主要是介绍了使用 Bugtags 前后对测试及解决 Bug 所带来的变化,感谢单车娱乐 App 工程师 - 李斌同学对 Bugtags 的信赖和支持.小编在 ...

  3. 拥抱高效、拥抱 Bugtags 之来自用户的声音(五)

    Bugtags使用心得(创业公司场景篇) ——成都嘿嘿科技有限公司 作者:小花 一.产品定义 关于手机客户端产品(APP)的 bug 提交.监测及管理且具有团队协作性质的系统. 二.使用环境 公司:初 ...

  4. 拥抱高效、拥抱 Bugtags 之来自用户的声音

    小编按:这是一篇 Bugtags 用户来稿,主要是介绍了 Bugtags 使用的方法及其带来的效率的提升,谢谢介博同学对 Bugtags 的信赖和支持.小编在这里诚邀各位热心用户向我们投稿,说出你使用 ...

  5. 微信--高效解决token及授权用户openid的持久化处理办法

     摘要 关于微信开发的话题,例子确实已经有不少,但大部分都是人云亦云,很多小细节或者需要注意的地方却大多没有讲清楚,这令很多刚开始开发的人感觉大很迷茫.而我今天要说的话题,主要着眼于两个方面. 一:如 ...

  6. MKMapView:确定区域更改是否来自用户交互

    参见: http://www.b2cloud.com.au/tutorial/mkmapview-determining-whether-region-change-is-from-user-inte ...

  7. F2工作流引擎之组织用户模型(四)

    1 概述 工作流组织模型是工作流引擎中核心重要的一部份,是实现人机交互中不可或缺的组成部分,而由于工作流引擎需要适应不同的系统之间存在组织用户结构的不同, 如组织表中字段名不同,所以需要实现适应不同系 ...

  8. OpenStack 认证服务 KeyStone连接和用户管理(四)

    连接keystone两种方式: 一种使用命令 一种使用环境变量 1.通过环境变量方式连接keystone(适合在初始化场景使用) 配置认证令牌环境变量 export OS_TOKEN=07081849 ...

  9. Kubernetes用户指南(四)--应用检查和调试

    一.调试 当你的应用开始运行,那么DEBUG是不可避免的问题. 早些时候,我们在描述的是如何通过kubectl get pods来获得Pod的简单状态信息. 但是现在,这里有更多的方式来获得关于你的应 ...

随机推荐

  1. xunsearch增量索引改进版

    最近测试了xunserach全文索引程序.xunsearch只有LINUX版,所以想用windows服务器请使用其它全文索引程序.xunsearch本身不像coreseek那样自带增量索引的功能,所以 ...

  2. 转--基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用

    原文  http://www.cnblogs.com/wuhuacong/p/3317223.html 基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用 在前面介绍了两篇关于我的基 ...

  3. JSP 相关试题(五)

    Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 /* Style Definiti ...

  4. 网络工程实训_2路由器基本配置及IOS介绍

    实验2:路由器基本配置及IOS介绍.包括:CLI的使用与IOS基本命令:配置文件的备份和IOS的备份:CDP协议. 一.实验目的 1.熟悉路由器CLI的各种模式: 2.熟悉路由器CLI的各种编辑命令: ...

  5. Q7: Unique Binary Search Trees

    问题描述: Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For ...

  6. win7 关于远程桌面登陆的方法,相应服务的启动

    转自:http://blog.csdn.net/ningfuxuan/article/details/7519476 远程登陆电脑,对远程电脑的设置 (1)首先要启动远程电脑中的Remote Desk ...

  7. SVN-钩子祥解

    钩子脚本的具体写法就是操作系统中shell脚本程序的写法,请根据自己SVN所在的操作系统和shell程序进行相应的写作 所谓钩子就是与一些版本库事件触发的程序,例如新修订版本的创建,或是未版本化属性的 ...

  8. Phonegap通过JS访问本地接口的两种方法

    Phonegap为跨设备的应用开发提供了一个解决方案.如果某个应用只有js和html,则可以通过Phonegap的在线build工具,编译出多个平台的app安装包.当然通过Phonegap提供的js可 ...

  9. Bouncycastle中的RSA技术以及解决之道

    一个使用bouncycastle进行安全操作的实用类 2007-04-13 12:54 import java.io.*;import java.security.*;import java.secu ...

  10. js键盘事件全面控制详解【转】

    js键盘事件全面控制 主要分四个部分第一部分:浏览器的按键事件第二部分:兼容浏览器第三部分:代码实现和优化第四部分:总结 第一部分:浏览器的按键事件 用js实现键盘记录,要关注浏览器的三种按键事件类型 ...