沧海一声笑,移动应用的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界面后,点击左下角的红色羽毛按键,弹出一个弧形菜单,点击最上侧位置按钮,程序崩溃。然后停止TT示波器的搜集,回到TT的用例-代码快照视图。

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

分析:return语句通常不会导致程序崩溃,因为其本身并没有任何因此异常的计算(此语句其实也未实际运行,问了下星云1号技术支持,给出的解释是因为前面程序出了异常,TT目前的一些记录运行轨迹的信息和机制会认为return最后运行了,未来的版本会针对该问题进行修复)。而且显示点击倒数第二块为:

此为隐藏块,不会导致程序崩溃。点击倒数第三块:

此为隐藏块,不会导致程序错误。点击倒数第四块:

此时可能存在问题,因为正常情况块664必然会执行。点击倒数第五块:

所以出错可能这一句:

result= mKXApplication.mMyLocationResults.get(position);

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

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

result =mKXApplication.mMyLocationResults.get(position);

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

别的也不多说,反正经过我的实际使用,神器还有更多令人惊讶的表现,我还在慢慢学习,大家自己也可以用起来,咱们一起慢慢体会。那个星云测试网站上有很多使用指南,你们可以下载去看看。好东西,总是需要大家去顶,我们顶了,人多了,他们团队才更有信心和能力去做更多的事儿,咱狮子们可不希望这样优秀的团队因为没钱散了,工具也没办法升级和维护了,尽管神器已经很强大了。兄弟们,将心比心,可以想像这么复杂、强大的神器研发起来是多么的不容易!跟他们的“星云1号客服“聊,他们已经坚持三年了!真是让人肃然起敬!兄弟们,咱们一定要支持!!!因为,就连国外的一流软件测试工具在他们面前也弱爆了!!

我太激动了,我得平静一下我激动的小心脏。他们的网站:www.teststars.cc,根据我的经验,流量上去了,注册量上去了,使用量上去了,他们的机会就来了。咱们也就能一直享受这伟大的、免费的礼物了!再次向他们天才的研发团队致以最崇高的敬礼!

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

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

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

  1. 沧海一声笑的人生态度

    人生旅程里,看多了人世的险恶,几番风雨,浮沉起伏.尝遍了坎坷,独闯天涯,到得今日,沧海一声笑,笑尽平生事,笑傲江湖遥.看多少英雄豪杰只如涛涛潮水,在历史的长河里一去无踪了.大浪淘沙,淘到最后平凡的无影 ...

  2. 用编程语言C++弹奏武侠音乐:沧海一声笑

    前言:参照网路代码,用编程语言来弹奏一首音乐,搞点轻松的 完整代码:以下为Visual Stuido 2022测试可用,控制台程序.运行之后,会自动弹奏沧海一声笑,并且出现歌词.主要是好玩. #inc ...

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

    沧海一声笑,移动应用的CRASH原因我找到! --记最新款数字化測试"星云測试"的使用攻略 世界进步那么快,非常多新奇的点子层出不穷,于是我们创业.我们做最酷的手机应用,做最轰炸的 ...

  4. 《沧海一声笑》简谱图修正版

    学吹笛子,从简单的<沧海一声笑>开始,从网上搜到的简谱图,大都有错字,一襟晚照写成了一巾往照,哎,受不了错字. 我本来是个懒人,受不了比我还懒的人,那么多网站转这个简谱图,没一个纠正的. ...

  5. 沧海一声笑(最好版):也论智能的生成

    最好听的是黄沾.徐克.罗大佑三人合唱的,惊才绝艳的演唱,到最后三人都有点跑调,也有笑声,似乎都有些醉意,这正好是最符合作品的意境,那种豪气实在是,没话说,最好的版本就是这个...... 对人而言,也许 ...

  6. 沧海一声笑(最好版)

    最好听的是黄沾.徐克.罗大佑三人合唱的,惊才绝艳的演唱,到最后三人都有点跑调,也有笑声,似乎都有些醉意,这正好是最符合作品的意境,那种豪气实在是,没话说,最好的版本就是这个...... 沧海一声笑 词 ...

  7. 沧海一声笑 [怀念黄沾]

    [color=brown][align=center]沧海一声笑,江湖百年潮. 羽檄卷天下,剑客自逍遥. 青山秋满目,白马轻红袍. 萍踪久不识,何人尚横刀?[/align][/color]

  8. 神雕侠侣2笑泯恩仇java_《神雕侠侣2笑泯恩仇》全攻略

    <神雕侠侣2笑泯恩仇>全攻略 2007-10-29 11:40 作者:当乐 转载出处:当乐网 推荐人:手机游戏当乐网 这款游戏是<神雕侠侣>系列的第二部<>.讲的是 ...

  9. 攻略:三大秘籍让你笑傲IT职场!

    IT行业作为处于就业金字塔的顶端行业,一直是众多年轻人的职业梦想.那么,对于怀抱高薪理想的年轻人来说,如何实现他们的IT梦想呢? 秘诀一:认清IT的职业价值 通常人们一提到IT人才,马上就会联想到网络 ...

  10. C++ 利用 windbg + dump + map + cod 文件分析 crash 原因

    目录 如何生成 dump 文件 如何生成 map 文件 VS生成 cmake 命令 如何生成 cod 文件 VS 生成 cmake 命令 找 crash 地址 step 1 step2 step3 附 ...

最新文章

  1. 用命令行管理你的GitHub项目,不必再开网页,官方CLI工具1.0版今日上线
  2. mysql 知识整理(待续)
  3. latch.await java有什么作用_java相关:CountDownLatch源码解析之await()
  4. ftp主要完成与远程计算机的连接,2015计算机三级《网络技术》复习重点:远程登录服务和FTP服务...
  5. 二、织物具备超级防水效果的条件?
  6. Codeforces Round #324 (Div. 2) B. Kolya and Tanya
  7. oracle中出现会话被锁
  8. ST-Link驱动的下载、安装、配置,以及ST-Link固件的升级
  9. 学习笔记(2):程序员的数学:微积分-常用导数(二):最常用到的技巧
  10. notebook pip install 只有星号_什么人不能种生基?什么人适合于做?只有这篇文章最清楚了!...
  11. 淘宝店铺pc端代码详细解析
  12. 我在B站读大学,大数据专业
  13. UESTC-1059 秋实大哥与小朋友(离散化+线段树)
  14. 大学数据结构课程设计题目
  15. nginx安装配置记录
  16. 台塑集团获批收购奇梦达
  17. 百度谷歌关键词排名的小技巧,SEO小技巧
  18. mui is not defined的原因
  19. linux链接库查找的优先顺序
  20. 截取字符串指定字符前/后的内容

热门文章

  1. 运行xgboost 时出现的问题 from scipy.misc import comb ImportError: cannot import name 'comb'的
  2. Unable to set localhost. This prevents creation of a GUID. Cause was: cloud: cloud java.net.UnknownH
  3. 2021-03-15
  4. 普罗米修斯监控mysql与邮件告警
  5. sigmoid和softmax
  6. matlab概率论与数理统计分析,MATLAB在概率论与数理统计课程中的案例设计
  7. Ubuntu下可以使用的微信
  8. 英伟达RTX 2060发布:《战地5》光追超60帧,349美元(转载自IT之家)
  9. BUUCTF 每日打卡 2021-8-11
  10. Hexo主题next中添加天气插件(心知天气)