拥抱高效、拥抱 Bugtags 之来自用户的声音(四)
小编按:这是一篇 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:
拥抱高效、拥抱 Bugtags 之来自用户的声音(四)的更多相关文章
- 拥抱高效、拥抱 Bugtags 之来自用户的声音(三)
小编按:这是一篇 Bugtags 用户来稿,主要是介绍了使用 Bugtags 前后对测试及解决 Bug 所带来的变化,感谢山西农业大学 - 高正炎同学对 Bugtags 的信赖和支持.小编在这里诚邀各 ...
- 拥抱高效、拥抱 Bugtags 之来自用户的声音 2
小编按:这是一篇 Bugtags 用户来稿,主要是介绍了使用 Bugtags 前后对测试及解决 Bug 所带来的变化,感谢单车娱乐 App 工程师 - 李斌同学对 Bugtags 的信赖和支持.小编在 ...
- 拥抱高效、拥抱 Bugtags 之来自用户的声音(五)
Bugtags使用心得(创业公司场景篇) ——成都嘿嘿科技有限公司 作者:小花 一.产品定义 关于手机客户端产品(APP)的 bug 提交.监测及管理且具有团队协作性质的系统. 二.使用环境 公司:初 ...
- 拥抱高效、拥抱 Bugtags 之来自用户的声音
小编按:这是一篇 Bugtags 用户来稿,主要是介绍了 Bugtags 使用的方法及其带来的效率的提升,谢谢介博同学对 Bugtags 的信赖和支持.小编在这里诚邀各位热心用户向我们投稿,说出你使用 ...
- 微信--高效解决token及授权用户openid的持久化处理办法
摘要 关于微信开发的话题,例子确实已经有不少,但大部分都是人云亦云,很多小细节或者需要注意的地方却大多没有讲清楚,这令很多刚开始开发的人感觉大很迷茫.而我今天要说的话题,主要着眼于两个方面. 一:如 ...
- MKMapView:确定区域更改是否来自用户交互
参见: http://www.b2cloud.com.au/tutorial/mkmapview-determining-whether-region-change-is-from-user-inte ...
- F2工作流引擎之组织用户模型(四)
1 概述 工作流组织模型是工作流引擎中核心重要的一部份,是实现人机交互中不可或缺的组成部分,而由于工作流引擎需要适应不同的系统之间存在组织用户结构的不同, 如组织表中字段名不同,所以需要实现适应不同系 ...
- OpenStack 认证服务 KeyStone连接和用户管理(四)
连接keystone两种方式: 一种使用命令 一种使用环境变量 1.通过环境变量方式连接keystone(适合在初始化场景使用) 配置认证令牌环境变量 export OS_TOKEN=07081849 ...
- Kubernetes用户指南(四)--应用检查和调试
一.调试 当你的应用开始运行,那么DEBUG是不可避免的问题. 早些时候,我们在描述的是如何通过kubectl get pods来获得Pod的简单状态信息. 但是现在,这里有更多的方式来获得关于你的应 ...
随机推荐
- Linux-Memcache分布式部署方案(magent代理解决单点故障)
Memcached的特点 Memcached作为高速运行的分布式缓存服务器具有以下特点. 1. 协议简单:memcached的服务器客户端通信并不使用复杂的MXL等格式, 而是使用简单的基于文本的协议 ...
- C#代码:用事件模式实现通知
事件提供了一种标准的机制来通知监听者..NET的事件模式使用了事件语法来实现观察者模式.任意数量的客户对象都可以将自己的处理函数注册到事件上,然后处理这些事件.这些客户对象不需要再编译期就给出.时间也 ...
- 不要告诉我你懂margin
分类: Html/CSS | 转载请注明: 出自 海玉的博客 本文地址: http://www.hicss.net/do-not-tell-me-you-understand-margin/ 你真的了 ...
- Vs 2015 中一些新的语法支持
又是语法糖. 1, if (tdata != null && tdata.Data != null) 等价于 if (tdata?.Data != null) 2, int a ...
- shell之任务控制
http://linux.cn/article-2680-1.html 你的 shell 会留有一张当前作业的表单,称为作业表.当你键入命令时,shell 会给它分配一个 jobID(也称作 JOBS ...
- Asp.net中从后台中如何获取html控件
比如定义html的文本框如下: <input type="text" onclick="fun()" id="htmlTxtDate" ...
- JQuery Pagenation 知识点整理——phototype 应用(20150517)(转)
JS中的phototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个 ...
- js和css内联外联注意事项
简单说:这两个问题其实是同一个问题,但是网上找了好久也找不到方法,外联的js和css文件里不能有任何HTML的标记注释,一旦有,浏览器就疯了!一去掉就好了!!! 问题:起因是网上看到一个css的表格样 ...
- 如何利用gatling创建一个性能测试例
[原创博文,转载请声明出处] 基于上一篇博文介绍如何源码编译创建自己的gatling可执行工具,今天介绍一下如何基于gatling做性能测试! 由于gatling的测试例脚本是基于scala写的,所以 ...
- Tomcat连接池
步骤1: 找到Tomcat安装目录下的context.xml文件,在config目录下.在<Context/>节点下加入: <Resource name="jdbc/myt ...