沧海一声笑,移动应用的CRASH原因我找到!

--记最新款数字化測试“星云測试“的使用攻略

世界进步那么快,非常多新奇的点子层出不穷,于是我们创业。我们做最酷的手机应用,做最轰炸的应用推广。不加国际友人,仅咱泱泱大中华14亿人口,智能手机用户眼下就已经超过5亿人。并还在继续疯长中!据说到2015年1月,仅我们中国的主要应用商店APP应用累计超过400万个。

感觉像我们一样优秀的IT天才们的春天已经到来!就凭咱的脑子和实力。从各种大众脸的App应用中脱颖而出那是必定的!我们肯定是笑到最后的那个团队!

可是。近期我们澎湃的理想几乎就被现实击碎:我们耗尽心血开发的应用、精妙的设计思路。竟然被闪退、崩溃等看似低级的错误卡住了喉咙。看着银行卡中越耗越少的资金,我们心如刀割。

虽然我们有思想准备:Crash非常正常,62%的应用都有这种毛病,Bala。Bala……但我们也知道,假设Crash发生在首次启动,21%的用户会马上卸载;Crash在使用过程中发生。70%的用户会给应用差评。然后卸载。难道我们伟大的理想和情怀就真的要止步于残忍的现实了吗?我们就活该举手投降了吗?No,No。No,超级无敌研发攻城狮NEO的光荣称号不同意我这么做!我要做的是:彻查BUG到底藏身何处,然后拉出来千刀万剐,然后把它枪毙,然后和团队一起昂首进入APP热门下载排行榜!但是,世界有没有一款称心如意的软件測试工具。能快点帮助我们直接复现崩溃时刻的运行逻辑路径的具体信息?我们没日没夜的在国内外的測试工具库中找寻。跟同行打听。

在前天风大雨大极其神奇的夜晚,我假装镇静却又心急如焚的和伙伴们讨论业务方案的时候,有如神助般的点到了一个站点:星云測试。那个站点貌似刚上线不久,好几个模块都在敬请期待。网址也有点怪:www.teststars.cc,Slogan巨大而醒目:“星云測试 开创数字化測试新旅程”。啥米?什么是“数字化測试”?!“实现代码和測试用例的双向追溯“。“数字化、可视化測试过程”。看起来非常牛叉的样子!我。做为一位更牛叉的、超级的、无所不能的IT高手,须要了解和批准一下。IT界的最新信息。我不先知道。太反常了!

只是,还好他们好像还不算最正式的上线,平复了我傲娇的小火苗。

眼光一瞥。看到免费下载个人高级版,哈哈,甚合朕意。能够免费下载!

它边上有几行呆萌的小字说明(劝君拿放大镜来看):“实现软件測试过程与结果的全数字记录与分析,高速的崩溃捕捉和代码运行路径分析“。朕心头万马奔腾!

马上点开,下载页面资料还挺全:使用说明、部署说明、视频啥的,还挺全的。

火速注冊,立刻开用!急我所急,天助我也!

感谢我的上帝之手!真的是不用则已,一用惊破天!这个免费的东东功能实在太强大了。它不仅在系统层面进行一些缺陷现场数据的搜集,还竟然能深入到代码内部,非常直接的直接定位问题!。一下子就把我们的致命伤-Crash点的最后50个逻辑块,条件、分支等就给我找出来了。太让我震惊了!令人叹为观止的是:它竟然还真的支持測试用例到代码执行逻辑的追溯,就是说。它把一个測试用例的整个执行期间的相应的代码逻辑情况都回放出来了。简直是一个超能全景Debug神器!另外。兄弟们,重点是:它比Debug更强大:Debug须要单步执行,通常只显示当前状态而不能非常好地记录历史执行数据。星測上的这个神器是完整的Debug调试链的完整展示!

神啊!太强了。!朕有天助啊,吉人自有天象啊!!我们的项目可算找着慈悲的上帝打开的还有一扇窗了!为了表达我的激动之情,也为了由衷的感谢这个神器。我。一个超级的、绝顶聪明的研发攻城狮必须做一个攻略。给大家分享一下,以示感谢与敬意!好贴不沉底啊!

(TIPS:因为俺们伟大的应用临时不便公开,我索性就用一个开源程序来给大家做一个简要的举栗子,它来自于网络上开心网移动端的一个版本号的代码)

我在其代码内部人为植入了一个缺陷。例如以下:

改动内容:

src/com/kaixin/android/activity/CheckInActivity.java

改动前:

改动后:

大家都知道,对源代码的改动相当于引入了一个越界訪问的缺陷。以下我们看看这个神一样的数字化測试工具,是怎样在如果不知道这个缺陷的位置和原因的情况下,直接捕获和分析BUG的。

第一步:通过工具编译植入缺陷的程序,安装进入手机。打开示波器。监控执行。

第二步:进入Home界面后。点击左下角的红色羽毛按键,弹出一个弧形菜单,点击最上側位置button,程序崩溃。

然后停止TT示波器的搜集,回到TT的用例-代码快照视图。

第三步:查看最后错误的50块,点击最后一块运行:

分析:return语句通常不会导致程序崩溃,由于其本身并没有不论什么因此异常的计算(此语句事实上也未实际执行,问了下星云1号技术支持,给出的解释是由于前面程序出了异常,TT眼下的一些记录执行轨迹的信息和机制会觉得return最后执行了。未来的版本号会针对该问题进行修复)。

并且显示点击倒数第二块为:

此为隐藏块,不会导致程序崩溃。

点击倒数第三块:

此为隐藏块。不会导致程序错误。

点击倒数第四块:

此时可能存在问题,由于正常情况块664必定会运行。点击倒数第五块:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGhyZWFkaW5ndGVzdDIwMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

所以出错可能这一句:

result= mKXApplication.mMyLocationResults.get(position);

分析:大家细致观察这句代码。我们能够发现。在这个页面position相应的mKXApplication.mMyLocationResults界面的position-1位置,找到错误。

然后我们在看下最后50个条件信息,最后一个条件能够清晰的看到,出错位置的推断语句执行的结果为true,说明在缺陷发生的最后一刻进入了这个条件,而条件里面的代码正是我们在崩溃块分析结果里面的:

result =mKXApplication.mMyLocationResults.get(position);

结论:说明星測上的神器给我们的整个分析是准确无误的。

别的也不多说,反正经过我的实际使用。神器还有很多其它令人吃惊的表现。我还在慢慢学习,大家自己也能够用起来,咱们一起慢慢体会。

那个星云測试站点上有非常多使用指南。你们能够下载去看看。好东西。总是须要大家去顶,我们顶了,人多了。他们团队才更有信心和能力去做很多其它的事儿。咱狮子们可不希望这样优秀的团队由于没钱散了,工具也没办法升级和维护了,虽然神器已经非常强大了。

兄弟们。将心比心。能够想像这么复杂、强大的神器研发起来是多么的不easy!

跟他们的“星云1号客服“聊,他们已经坚持三年了。真是让人肃然起敬!兄弟们。咱们一定要支持!!。由于,就连国外的一流软件測试工具在他们面前也弱爆了!

我太激动了,我得平静一下我激动的小心脏。

他们的站点:www.teststars.cc。依据我的经验,流量上去了,注冊量上去了。使用量上去了,他们的机会就来了。咱们也就能一直享受这伟大的、免费的礼物了。再次向他们天才的研发团队致以最崇高的敬礼!

PS:等咱有了钱,得用他们的企业版试试。看起来,那更令人心驰神往啊。

攻略撰写人:一位天才的、壁咚的超级研发攻城狮:NEO

沧海一声笑,移动应用的CRASH原因我找到! --记最新款数字化測试“星云測试“的使用攻略的更多相关文章

  1. Android常见Crash原因总结(二)

    Android平台程序崩溃大家都应该遇到过,force close和ANR应该是大家遇到较多的. 这里把Android平台程序崩溃的各种类型做一个简述和原因列举. 1.ANR(可见ANR): 发生场景 ...

  2. 如何使用GOOGLE高级搜索技巧

    如何使用GOOGLE高级搜索技巧 一,GOOGLE简介 Google(www.google.com)是一个搜索引擎,由两个斯坦福大学博士生Larry Page与Sergey Brin于1998年9月发 ...

  3. Google搜索技巧-从入门到精通(从此学习进步、工作顺心)

    转载:http://www.blogbus.com/koudaizhi-logs/55687286.html 一  GOOGLE简介 Google (www.google.com)是一个搜寻引擎,由某 ...

  4. GOOGLE搜索秘籍完全公开

    一,GOOGLE简介 Google(www.google.com)是一个搜索引擎,由两个斯坦福大学博士生Larry Page与Sergey Brin于1998年9月发明,Google Inc. 于19 ...

  5. Google高级技巧—google Hack★★★★

    google hacking事实上并算不上什么新东西,当时并没有重视这样的技术,觉得webshell什么的,并无太大实际用途.google hacking事实上并非如此简单... 经常使用的googl ...

  6. 高效率使用google

    Google良好的搜索和易用性已经得到了广大网友的欢迎,但是除了我们经常使用的Google网站.图像和新闻搜索之外,它还有很多其他搜索功能和搜索技巧.如果我们也能充分利用,必将带来更大的便利.这里我介 ...

  7. 【转载】google搜索从入门到精通

    原文地址:http://www.cnblogs.com/helloIT/articles/5095668.html /***************************************** ...

  8. python爬虫从入门到放弃(五)之 正则的基本使用

    什么是正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是 事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符",这个"规则字符" 来表达对 ...

  9. 路径字符串数据转化为树型层级对象,path to json tree

    由于项目中使用了react 及 ant-design ,在使用tree树型控件时,需要 类似下面的数据, const treeData = [{ title: '0-0', key: '0-0', c ...

随机推荐

  1. 操作iis

    以后研究 try { string method = "Recycle"; string AppPoolName = "z.chinabett.com"; Di ...

  2. c# 学习笔记(二)

    c#3.0 新特性  扩展方法 扩展方法允许编写和声明它的类之外的关联类的方法 用于没有源代码或者类是密封的,需要给类扩展新方法时 1.扩展方法必须被声明为static2.扩展方法声明所在的类必须被声 ...

  3. 01-android快速入门

    adb Android debug bridge 安卓调试桥 创建模拟器,屏幕尽量小些,启动速度运行速度快 Android项目的目录结构 Activity:应用被打开时显示的界面 src:项目代码 R ...

  4. web开发 关于src跳转

    src跳转看传递的参数值,如果参数值一样就不会再次跳转,也不会向后台的服务器提供request. 想要随时都能跳转可以传递不同的参数,如 onClick="this.src='http:// ...

  5. 保垒机SSH登录脚本

    线上服务器一般都会有一个保垒机,我们登录线上服务器的时候都要通过这个堡垒机来实现登录,这样我们就要维护很多线上服务器的ip,很麻烦. 所以写了一个脚本用来便捷的登录各个服务器,可以把这个脚本放到跳板机 ...

  6. Oracle的卸载与安装

    今天在做一个CURD的web小应用,为后面使用ExtJS搭建一个后台.因为还没有使用过Oracle数据库,因此今天也特的地的使用oracle数据库作为后台的数据库,也当练习使用oracle. 但是今天 ...

  7. 按钮制作技巧(css精灵效果)-高级版

    [转自己以前的文章] 无论用什么语言,大家敲程序的时候多多少少都会遇到做按钮的时候.今天分享一个之前学做按钮的技巧,有人叫做css精灵效果. 通常做按钮的思路都用附图中的第一种:两张图片交互的形式,让 ...

  8. extjs之TypeError: d.read is not a function解决方案

    在创建如下代码时报出此错:TypeError: d.read is not a function Ext.define('shebyxgl_sheb_model', { extend: 'Ext.da ...

  9. centos git 升级应用

    在阿里云服务器上部署Git 升级centos 自带的Git yum库自带版本为git1.7.1-3.el6_4.1. -------------------升级-------------------- ...

  10. 实验六:分析Linux内核创建一个新进程的过程

    原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 题目自拟,内容围绕对Linu ...