文档章节

移动应用开发测试工具Bugtags集成和使用教程

Bugtags为测试而生
 Bugtags为测试而生
发布于 2015/12/08 09:56
字数 1630
阅读 108
收藏 0
 

前段时间,有很多APP突然走红,最终却都是樱花一现。作为一个创业团队,突然爆红是非常难得的机会。然并卵,由于没有经过充分的测试,再加上用户的激增,APP闪退、服务器数据异常等问题就被暴露出来,用户的流失是必然的。

一款成功的APP,测试是必不可少的环节。如果没有充足的测试就贸然上线,必然会损失一部分本来可以成为铁杆粉丝的用户,而且,非常不利于APP的推广。

测试上遇到的问题
测试是干嘛的呢?简单来说,就是找茬的!测试发现的bug会提交到一个任务管理系统中,我们解决完bug之后,会在任务管理系统中关闭这个bug(总是有关不完的bug)。有的公司可能不用任务管理系统,直接用Excel表格。

在这种工作模式下,总是碰到一些问题:

  • Excel不利于bug管理(有任务管理系统就会方便很多)

  • 测试发现bug之后,需要截图,然后发到电脑上,再上传到任务管理系统中,这个过程比较麻烦

  • 设备信息、app状态、问题本身很难描述

  • 有些bug难以重现

  • 崩溃日志难以收集

这些问题我想很多童鞋都有碰到。测试提交一个bug,我们总是重现不了,无法重现就无法定位问题在哪(只能继续跟测试掐架:你要重现bug啊!)。为了解决这些问题,今天我给大家推荐一个测试的SDK - Bugtags。

Bugtags支持iOS和Android平台,我这里只是对iOS平台进行介绍。

为了方便大家测试,我已经在iOSStrongDemo集成了Bugtags。Bugtags确实非常方便测试,接下来给大家简单介绍一下Bugtags以及Bugtags使用教程。

Bugtags简介
根据官网介绍:Bugtags是新一代的、专为移动测试而生的缺陷发现及管理工具。致力于改善移动App的测试流程,连接发现缺陷与提交缺陷之间的用户体验, 提高测试及解决缺陷的效率。Improve your app anytime, anywhere。

Bugtags采用独创的应用内所见即所得的问题上报方式,有效提高了问题上报的效率和问题描述的准确度;同时平台提供了自动收集分析崩溃信息与问题生命周期管理功能。

Bugtags官网:https://bugtags.com/
通过简单的了解,我感觉Bugtags应该是一个非常不错的测试工具。如果真的像官网介绍的那么好用,那真的是开发者的又一大福利。出于对新事物、新技术的好奇,我决定试用一下Bugtags。

Bugtags集成和使用教程
Bugtags集成教程
我是通过CocoaPods集成Bugtags的SDK,集成方法比较简单。具体步骤如下:

1、在你项目的 Podfile 中添加以下代码

1
pod 'Bugtags'

2、执行 pod 安装命令

1
pod install

3、在 AppDelegate.m 中导入头文件
001.png
4、然后在 application:didFinishLaunchingWithOptions: 方法中加入一行

1
[Bugtags startWithAppKey:@"App Key" invocationEvent:BTGInvocationEventBubble];

这里的APP KEY就是登陆bugtags.com之后,创建app时所获得的app key。

关于CocoaPods的详细用法,请访问:https://cocoapods.org/

Bugtags还可以手动集成(建议大家用CocoaPods来管理第三方库),关于手动集成的教程可以点击:http://help.bugtags.com/hc/

接入成功之后,APP上会悬浮一个小球。(还可以通过摇一摇呼出小球)

Bugtags使用教程
接下来,我通过提交一个bug和一个闪退日志来演示Bugtags使用方法。首先,我们看一下Bugtags的控制台。

QQ截图20150914102840.png

bug提交假设我们测试APP的时候,发现有一个title写错了。那么,通过Bugtags来提交这个bug。提交方法请看Gif图:

0 (1).gif

提交之后,刷新Bugtags控制台。这个时候,我们的控制台就多出了一个新建的bug:

400.png

点击可以查看bug详情,一起来看看是不是刚刚提交的bug:

401.png

果然是我们刚刚提交的bug。截图上有我们之前做的标记“Title error”,而且这里很清晰的记录了我们的设备信息。是不是感觉非常方便!

还可以查看用户操作的步骤。前面我们提到测试报上来的bug,很难复现。现在我们可以结合Bugtags的用户操作步骤快速复现Bug:

403.png

不止这些功能,还有用户数据、控制台日志以及Bugtags日志。更多功能大家自己接入SDK详细了解吧。

app闪退
我在导航栏的左侧按钮上绑定一个方法:

1
2
3
4
5
6
- (void)actionClick:(UIButton *)button
{
    NSArray *array = [NSArray arrayWithObjects:@"1", nil];
    NSString *string = [array objectAtIndex:2];
    NSLog(@"%@",string);
}

这是一个数组越界的问题,数组越界可以导致APP直接闪退。下面我们看看Bugtags会不会记录这个闪退Bug。

0 (2).gif

提交之后,再次刷新Bugtags控制台,果然多了一个新建Bug:

404.png

为了测试Bugtags数据准确性,我分别用模拟器和真机来进行测试,一共点了五次。我们来看一下Bugtags记录的信息:

405.png

突然,觉得Bugtags确实很强大。有童鞋可能会担心,如果这个时候我没有联网怎么办呢。闪退信息还会被提交吗?这个不用担心,我已经测试过了,在你下次联网的时候Bugtags会提交之前的闪退信息的。

总结
下面是我对Bugtags试用过程,进行以下几点的总结:

  • 我接入的是Bugtags最新IOS版本库为IOS SDK1.0.4 集成过程简单方便。

  • Bugtags方便测试截图上传,还可以对截图进行标注。

  • Bugtags会记录设备信息、用户数据、用户步骤、控制台日志以及Bugtags日志。

  • Bugtags会自动提交闪退信息。

  • Bugtags可以设置Bug的优先级和Bug管理。

鸣谢
这篇教程诞生的不容易,在使用Bugtags的过程中,难免遇到一些问题。我都是直接跟Bugtags的技术人员何童鞋沟通的,非常感谢!希望这篇教程能够帮助大家快速的接入Bugtags测试工具,提供APP测试的效率。

本文转载自:http://www.cocoachina.com/programmer/20150914/13431.html

Bugtags为测试而生
粉丝 0
博文 66
码字总数 28168
作品 0
朝阳
私信 提问
Bugtags,最适合移动应用的智能 Bug 管理系统

Bug 管理系统,技术同学都见过很多,和、 几乎扯不上半毛钱关系,就是一个登记 Bug 的工具而已。 那么 Bugtags 的特别之处是什么呢?为什么说它是 的 Bug 管理系统呢? 最适合移动应用 大家在...

张磊
2016/05/09
134
0
测试人必备:国内外最好用的6款Bug跟踪管理系统

在移动互联网产品中,Bug会导致软件产品在某种程度上不能满足用户的需要。确保一个项目进展顺利,关键在于妥善处理软件中的BUG,那么,如何高效的管理BUG,解决BUG?在这里,我为大家搜集了几...

牵着蜗牛去西藏
2016/03/21
2.3K
4
拥抱高效、拥抱 Bugtags 之来自用户的声音 2

遇见 bugtags 之前那点事 那些年,我们单车娱乐 App,自研发到上线,苦逼的在友盟,bugly,bughd 等各种 bug 反馈的工具来来回回踩坑,然而让 QA 和 PM 以及最身同感受的我们这些一线开发工程...

张磊
2015/12/04
63
0
iOS开发 常用插件、工具

一、xcode插件 Alcatraz Alcatraz里面或有好多的插件,常用的: CocoPods 管理第三方类库 XVim 集成vim的功能 KSImageNamed 图片名字补齐 预览 OMColorSense 颜色预览 VVDocumenter-Xcode 注...

云上飞飞
2016/07/08
15
0
拥抱 Android Studio 之一:从 ADT 到 Android Studio

拥抱变化,拥抱新事物 多年前央视有一套电视系列片:大国崛起,主要讲述那些曾经在站在世界舞台中央的国家的兴衰历程。纵观历史,正是创新使得一个国家得以崛起。 Android 开发因为涉及到代码...

张磊
2015/12/01
1K
4

没有更多内容

加载失败,请刷新页面

加载更多

DRF 获取DefaultRouter 对应的url

命令 python manage.py show_urls urls.py from user.router import core_routerurlpatterns = [ path('user/login/', views.LoginView.as_view(), name='login'), path('user/log......

hyhlinux
43分钟前
4
0
uniapp登录流程详解uni.login

uni.login(OBJECT) 登录 H5平台登陆注意事项: 微信内嵌浏览器运行H5版时,可通过js sdk实现微信登陆,需要引入一个单独的js,详见 普通浏览器上实现微信登陆,并非开放API,需要向微信申请,...

达达前端小酒馆
43分钟前
5
0
目标检测中 yolo 的mAP是什么含义?

mAP定义及相关概念 P => precision,即 准确率 R => recall,即 召回率 PR曲线 = >即 以 precision 和 recall 作为 纵、横轴坐标 的二维曲线。一般来说,precision 和 recall 是 鱼与熊掌 的...

小松1
47分钟前
4
0
用jdk1.8的断言来做非空判断

Assert.notNull(user, "没有获得登录用户信息"); 看源码如下: public static void notNull(Object object, String message) { if (object == null) { throw new IllegalArgum......

architect刘源源
51分钟前
6
0
2018NOIP各省一等奖分数线

提高组 普及组

SamXIAO
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部