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

沧海一声笑,移动应用的CRASH缘由我找到!java

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

 

世界进步那么快,不少新鲜的点子层出不穷,因而咱们创业,咱们作最酷的手机应用,作最轰炸的应用推广。不加国际友人,仅咱泱泱大中华14亿人口,智能手机用户目前就已经超过5亿人,并还在继续疯长中!听说到2015年1月,仅咱们中国的主要应用商店APP应用累计超过400万个。感受像咱们同样优秀的IT天才们的春天已经到来!就凭咱的脑子和实力,从各类大众脸的App应用中脱颖而出那是必然的!咱们确定是笑到最后的那个团队!网络

 

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

 

尽管咱们有思想准备: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调试链的完整展现!网站

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

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

 

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

修改内容:

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

修改前:

wKiom1V6jgzQ8homAAL8TC7U-3g788.jpg

修改后:

wKioL1V6j8yi4bvNAANgn12r-ak299.jpg

 

你们都知道,对源码的修改至关于引入了一个越界访问的缺陷,下面咱们看看这个神同样的数字化测试工具,是如何在假设不知道这个缺陷的位置和缘由的状况下,直接捕获和分析BUG的。

 

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

第二步:进入Home界面后,点击左下角的红色羽毛按键,弹出一个弧形菜单,点击最上侧位置按钮,程序崩溃。而后中止TT示波器的搜集,回到TT的用例-代码快照视图。

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

wKioL1V6j9iCXVkVAAKDYsofD68886.jpg

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

wKioL1V6j-jDjZp-AAKa0-jgNyw350.jpg

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

wKiom1V6jlDCJJZCAAKisW_8U5M353.jpg

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

wKiom1V6jnGjYS5ZAALqnHRpPCk020.jpg

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

wKioL1V6kCWiKKWgAALd3g8aET8002.jpg

因此出错可能这一句:

result= mKXApplication.mMyLocationResults.get(position);

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

wKiom1V6jo_joyCcAAdEyNZbw8Q685.jpg

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

result =mKXApplication.mMyLocationResults.get(position);

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

 

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

 

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

 

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

 

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

相关文章
相关标签/搜索