拥抱高效、拥抱 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的简单状态信息. 但是现在,这里有更多的方式来获得关于你的应 ...
随机推荐
- lucene 专业名词作用整理
是否切词:对关键词是否切分,举例,姓名域的一个值:"张三" , 是否切分成"张"."三"等等多个term. 是否索引:建立索引的时候是否对该 ...
- expect安装去测试
1.下载expect和tcl 下载地址:http://download.csdn.net/download/tobyaries/5754943 2.安装expect tar -zxvf tcl8.4. ...
- Linux信号量详解
1.什么是信号量信号量是一种特殊的变量,访问具有原子性.只允许对它进行两个操作:1)等待信号量当信号量值为0时,程序等待:当信号量值大于0时,信号量减1,程序继续运行.2)发送信号量将信号量值加1. ...
- 怎么用EDIUS实现跟踪马赛克效果
我们经常会在一些新闻的视频中看到一些马赛克,这些马赛克一般都是保护人物的隐私权,肖像权什么的.我们时常也会看到即使人物位置发生了变化,被遮挡的地方依旧还是被遮挡住,一点也不用担心因为人物运动而使马赛克 ...
- php 生成短URL的算法
function code62($x){ $show=''; while($x>0){ $s=$x % 62; if ($s>35){ ...
- Linux复制指定目录及子目录下特定类型的文件
首先建立一个用于测试的目录,用'tree'命令查看其结构如下所示: 可见,目录中主要包含用于测试的*.txt文件和用于充当炮灰的*.tes文件 目标是保持当前的目录结构,只把txt文件复制出来 方法一 ...
- Bootstrap 3兼容IE8浏览器(转)
Bootstrap是一个响应式的布局,你可以在宽屏电脑.普通电脑,平板电脑,手机上都得到非常优秀的布局体验.这种响应式的布局正是通过CSS3的媒体查询(Media Query)功能实现的,根据不同的分 ...
- ubuntu- eclipse、CDT安装
eclipse的安装: 应用程序->附件->终端 然后输入(中间可能需要你输入密码): ...
- spring 中事务的PROPAGATION_REQUIRED,Readonly的解释
一.事务传播行为种类 Spring在TransactionDefinition接口中规定了7种类型的事务传播行为, 它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播 ...
- winserver 2008 r2 iis7.5 实现php wordpress url静态化操作步骤(UrlRewrite实现)
参考网址:http://jingyan.baidu.com/article/cbf0e500ebec582eaa2893d2.html 文中涉及到的程序源码以及配置 详见附件:http://files ...
