当前位置: 首页 > 编程日记 > 正文

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

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

0x01 前言

写在 Bugtags 上线 Crash 发生趋势之际,以及英语四级前夜。仅感触,无其他。

0x02 起缘

在 9 月份的时候,开学之际,随着 Codekk 微信号推送了一条名为 “移动应用Bug快速反馈利器” 的消息,工欲善其事,必先利其器。
看完介绍了以后,不禁感觉眼前一亮,和以前接触的 Crash 收集工具有点不一样,并且也听说过一些摇一摇进行反馈的功能。
这个主要是一个类似于外包的项目,应用内容是大学内 App 社交、社区等形式,其中整体 App 需要一个良好的架构,
以及完善的测试(然而并没有测试),只好在边开发边测试。
最初我们在应用开发上,采用的 git 版本控制,主要两个人进行开发,并没有测试妹纸。( 最初找了一个“设计师”同学 ),在经理提出项目需求和改进时,
往往通过经理去告诉给另外一个人,然后另一个人进行评估,直接在代码里进行修改,并且没有记录,整个过程并不透明。
后来经理会找张纸记录一些问题,解决了打个对勾,但是这还是不好管理,并且对于机型的不确定性,以及 Bug 的难复现,降低了一些效率。

此处应该有图片:

在公众号信息里,展示了提交 Bug 的流程,然后试着集成了一下 SDK,整体集成的过程并不麻烦,很快感受到了效果,并推荐给了另一位开发。

在接入以后,熟悉了提交 Bug 的方式,感觉相见恨晚,很适合经理在提哪有问题,哪需要改进。

0x03 成长

在接入应用以后,效率上感觉到了一些方便,但是就发现了一些问题,比如那会会一直邮件收到提醒,并提了工单,
在 QQ 群里也进行了咨询,并且收到了这个问题正在解决中,会在下周上线。
并且 Bugtags 提交 Bug 时,整体流程并不麻烦。

令人感到欣慰的是,Bugtags 团队的迭代,使得 Bugtags 不断的完善,随着使用中,逐渐上线了以下几个特性:

增加几种标签状态和类型。

区别了开发人员和提交 Bug 人员

可以批量修改状态和删除标签

Crash 可以抓到截图

支持了导出功能

增加匿名提交

添加了批量邀请成员等功能

……

在团队的不断迭代开发应用的过程中,收到了很多经理的提的标签,经常一天提十几条,如果按照往常的列出清单,然后一个一个去解决,会浪费很多时间和效率。
应用也在 fir.im 内测,不断的去完善,提高着自己的开发技能,奔溃影响机型数从最初的少量的几台手机在逐渐增加。

此处应该有图片:

0x04 伴随

在使用的过程中,提交的问题越来越多,收到的标签也越来越多,毕竟是一个 App 应用,从 0.1 到 0.9 的过程(0.1指接入时已经开发了一个简单原型)。
一张现在的统计,标签已经不少了,此处继续应该有图片:

问题界面:

随着不断的使用,发觉提高了不少效率,在这将近三个月的相处之中,感受到了 Bugtags 团队的不懈努力,感受到了对开发与测试的关注。
并且现在也提供了一些可视化的数据,来表达测试的效果,以及应用的完善程度。
在上线以后,我们也重点关注了一些 Crash,并且 Crash 相对于以前来说,更加好复现,并且对其进行了改进,优化应用的性能,提升了一些用户体验。
因为机型和系统不同,作为一个 Android 开发者,不可避免地会遇到很多 Crash,当用户遇到了以后,作为开发也很无奈,毕竟比较难复现,
有了 Bugtags 了以后,可以及时地统计机型,系统版本,以及用户所执行的步骤,
现在最近又上线了 Crash 的发生趋势,可以让开发专注于近期发生频率高的 Crash 进行改进。

此处应该有图片:

在今年的华北五省计算机应用大赛的答辩现场,也给评委们简单介绍了一下这个 Bug 管理平台,提高了一些开发效率。

0x05 后记

你们的测试妹子、霸道产品、老板肯定需要它很久了,爱他恨他就转给他。

在 Bugtags 之前,并不知道有相关的 Bug 管理平台,作为一名开发者,Bugtags 是值得推荐的。

最后提几点意见(其中有些不知道中肯与否):

开发 Android studio 插件,实现可以收到紧急标签会提醒。

开发 Android 客户端,实现可以移动管理标签状态。

开放一些 API,实现自定义配置

希望可以提供一些移动应用测试,例如 Monkey 之类的实践。

如果是非 Wi-Fi 环境下,提供一些流量方面的统计。

转载于:https://www.cnblogs.com/Bugtags2015/p/5065644.html

相关文章:

小程序打开文档标题乱码处理

先下载,自定义临时文件目录名称,然后再打开就可以了。 wx.downloadFile({url: https://xxx.cn/sfxy.docx, //仅为示例,并非真实的资源filePath: wx.env.USER_DATA_PATH /这是自定义标题.docx,success(res) {console.log(0, res)wx.openDocum…

我是“真正的”软件工程师吗?

by Sun-Li Beatteay通过孙丽贝蒂 我是“真正的”软件工程师吗? (Am I a “real” Software Engineer yet?) Am I a “real” Software Engineer yet?我是“真正的”软件工程师吗? This question has haunted me for years. And it seems I’m not al…

ntpdate[31915]: the NTP socket is in use, exiting

[rootmaster local]# ntpdate cn.pool.ntp.org 10 Oct 13:24:36 ntpdate[31915]: the NTP socket is in use, exitingcron 作业中运行 ntpdate,以便大约每隔一小时就设置一次本地时间。最近,我每次运行该命令时都会收到下列错误消息。 ntpdate[31915]: t…

小程序云开发更新数组的指定对象的值

云开发,在小程序实现 代码说明‘: 在这里,数据集合 groupList 中的 userList 是一个用户列表数组,我要更新数组中,openid 等于我的openid 的在线状态为 true。 先查询条件,集合里面的 _id 等于我传的id&a…

Unreal Engine 4 RenderTarget制作Live Camera效果

Unreal Engine 4 RenderTarget制作Live Camera效果 先上效果: Live Camera我不知道怎么翻译。反正意思就是将一个摄影机的Image渲染到一个2D平面上。 以下介绍下详细的实现方法: 1.创建一个Scene Capture 2D对象 将这个对象拖动到合适的地方。2.创建Re…

领导让我重构代码_领导不是由代码构成

领导让我重构代码The team leader is a key figure in a team of developers. It is a difficult role, involving both technical and social skills. This is the reason why not everyone is tailored for it.团队负责人是开发人员团队中的关键人物。 这是一项艰巨的任务&am…

Spring学习-理解IOC和依赖注入

最近刚买了一本介绍ssm框架的书,里面主要对Mybatis、spring、springmvc和redis做了很多的讲解,个人觉得虽然有的内容我看不懂,但是整体上还是不错的。最近正在学习中,一边学习一边做一些总结,现在我对这些思想技术还没…

windows server2012怎样关机怎样重启-详细教程

|浏览:1991|更新:2014-12-15 17:33123456分步阅读百度经验:jingyan.baidu.com windows server2012和以往有些不同,关机/重启按钮不是在左边,甚至左边的“开始”都不见了,那怎样关机/重启呢?这里开始演示&am…

封装 localStorage 缓存,兼容网页,微信小程序,uni-app

封装的缓存功能,兼容网页,微信小程序,uni-app 使用,支持设置缓存,获取缓存,移除缓存,清空缓存,设置缓存时间,分组缓存设置。 把最下面的 Str4.js 代码拷贝到项目内可以直…

考csp所需算法_CSP vs RxJS:您所不知道的。

考csp所需算法by Kevin Ghadyani通过凯文加迪亚尼(Kevin Ghadyani) CSP vs RxJS:您所不知道的。 (CSP vs RxJS: what you don’t know.) CSP发生了什么? (What happened to CSP?) You probably clicked this article thinking “what is CSP?” It’s…

iOS蓝牙4.0开发例子

1建立中心角色 123#import <CoreBluetooth/CoreBluetooth.h> CBCentralManager *manager; manager [[CBCentralManager alloc] initWithDelegate:self queue:nil]; 2扫描外设&#xff08;discover&#xff09; [manager scanForPeripheralsWithServices:nil options:…

Spark Shuffle原理解析

Spark Shuffle原理解析 一&#xff1a;到底什么是Shuffle&#xff1f; Shuffle中文翻译为“洗牌”&#xff0c;需要Shuffle的关键性原因是某种具有共同特征的数据需要最终汇聚到一个计算节点上进行计算。 二&#xff1a;Shuffle可能面临的问题&#xff1f;运行Task的时候才会产…

云开发使用 got 的 get/post 传参请求示例代码

使用 got 进行网络请求的步骤&#xff1a; 1.创建云函数&#xff0c;并在终端执行云函数 2.执行 npm 安装 got &#xff0c;命令&#xff1a;cnpm install --save got 3.在云函数中使用 示例代码&#xff1a; // 云函数入口文件 const cloud require(wx-server-sdk) cons…

JavaScript词法作用域的简单介绍

by Michael McMillan迈克尔麦克米兰(Michael McMillan) JavaScript词法作用域的简单介绍 (An easy intro to Lexical Scoping in JavaScript) Lexical scoping is a topic that frightens many programmers. One of the best explanations of lexical scoping can be found in…

Flex 布局详解 - 转自阮一峰老师

Flex 是 Flexible Box 的缩写&#xff0c;意为"弹性布局"&#xff0c;用来为盒状模型提供最大的灵活性。任何的盒子都可以使用它。 下面我们来看一下使用 Flex 布局的容器的属性 flex-direction flex-wrap flex-flow justify-content align-items align-content 1.…

bzoj 1086: [SCOI2005]王室联邦

Description “余”人国的国王想重新编制他的国家。他想把他的国家划分成若干个省&#xff0c;每个省都由他们王室联邦的一个成员来管理。他的国家有n个城市&#xff0c;编号为1..n。一些城市之间有道路相连&#xff0c;任意两个不同的城市之间有且仅有一条直接或间接的道路。为…

在7分钟内深刻理解咖喱

Eric Elliott’s exceptional Composing Software series is initially what got me excited about functional programming. Its a must-read. 埃里克埃利奥特(Eric Elliott)杰出的合成软件系列最初使我对函数式编程感到兴奋。 这是必读的。 At one point in the series, he …

github后端开发面试题大集合(一)

作者&#xff1a;小海胆链接&#xff1a;https://www.nowcoder.com/discuss/3614?type0&order0&pos5&page0?fromwb来源&#xff1a;牛客网 转载自github&#xff0c;中文--->链接在这&#xff0c;英文---->链接在这文章较长&#xff0c;我把它拆分了三个部…

微信小程序左滑删除效果的实现完整源码附效果图

效果图&#xff1a; 功能描述&#xff0c;小程序列表左滑删除功能的实现完整源代码实现&#xff1a; <view wx:for{{friends}} wx:key"" wx:if{{groupType4}} catchtap"nav_oneChat" id"{{item._id}}" class"item p_r" style"…

Eclipse下修改工程名

一。 右键工程&#xff1a;Refactor->Rename&#xff0c;或选中工程按F2&#xff0c;修改名称 二。右键工程&#xff1a;Properties->Web Project Settings,修改Context Root三。1.找到项目所在位置&#xff08;如图&#xff09;&#xff1a; 2.修改项目目录/.setting目录…

git操作手册_基本的Git手册

git操作手册介绍 (Introduction) Hi! I am Sanjula, and in this guide I hope to teach you a little bit about Git including:嗨&#xff01; 我是Sanjula &#xff0c;在本指南中&#xff0c;我希望教您一些有关Git的知识&#xff0c;包括&#xff1a; What Git is 什么是…

PHP 接入(第三方登录)QQ 登录 OAuth2.0 过程中遇到的坑

前言 绝大多数网站都集成了第三方登录&#xff0c;降低了注册门槛&#xff0c;增强了用户体验。最近看了看 QQ 互联上 QQ 登录的接口文档。接入 QQ 登录的一般流程是这样的&#xff1a;先申请开发者 -> 然后创建应用&#xff08;拿到一组 AppId 和 AppKey&#xff09;-> …

npm全局环境变量配置,全局配置cnpm

今天新电脑想安装node.js &#xff0c; 发现最新版本的node.js已经不支持win7了&#xff0c;但是又不想换系统&#xff0c;所以找了个旧版本&#xff0c;这里不多说了。如果找不到旧版本的node下载&#xff0c;可以去我的QQ交流群文件里面下载&#xff0c;QQ群号&#xff1a;17…

NTFS for Mac OS X:使用Brew安裝NTFS-3G

在最新的OSX系統中&#xff0c;其實已經完整兼容NTFS文件系統&#xff0c;只是出於安全考慮默認是以只讀模式掛載NTFS分區的&#xff0c;可以透過diskutil查詢硬碟UUID&#xff0c;重新以讀寫(rw)權限掛載&#xff0c;具體的可以參照這裡 當然&#xff0c;也有現成的軟體幫助你…

javascript开关_JavaScript开关案例简介

javascript开关In this short article, I will introduce you to JavaScript switch cases and how to use them with practical examples.在这篇简短的文章中&#xff0c;我将向您介绍JavaScript切换案例以及如何通过实际示例使用它们。 This article will explain better wi…

C++中一个class类对象占用多少内字节(7个例子,很清楚)

一个空的class在内存中多少字节&#xff1f;如果加入一个成员函数后是多大&#xff1f;这个成员函数存储在内存中什么部分&#xff1f; 一个Class对象需要占用多大的内存空间。最权威的结论是&#xff1a; *非静态成员变量总合。 *加上编译器为了CPU计算&#xff0c;作出的数据…

Java学习----到底调用哪一个方法(多态)

public class Father {public void print() {System.out.println("Father:print()");} } public class Son extends Father{// 方法的覆盖&#xff1a;子类重写父类的同名方法 Overridepublic void print() {System.out.println("Son:print()");}// Father…

mpvue 转uni-app 操作记录

1.创建一个uni-app 的项目&#xff0c;把原有的mpvue项目手动迁移过来 2.用到mpvue特性的代码&#xff0c;需要修改成uni-app 兼容的&#xff0c;例如 mpvue-wxparse 可以修改成 3.src/app.json 改成 pages.json ,路径格式需要改&#xff0c;如下格式 {"pages": [&…

桌面应用程序 azure_Azure Logic应用程序用例–黑色星期五

桌面应用程序 azureThis blog gives an overview of how Azure Serverless technologies came to rescue when the custom-built integration system went down. Also, it shows the high-level architecture solution built using Azure Serverless services like Logic Apps,…

PHP的静态变量介绍

静态变量只存在于函数作用域内&#xff0c;也就是说&#xff0c;静态变量只存活在栈中。一般的函数内变量在函数结束后会释放&#xff0c;比如局部变量&#xff0c;但是静态变量却不会。就是说&#xff0c;下次再调用这个函数的时候&#xff0c;该变量的值会保留下来。 只要在变…