思考--测试应该从代码中读懂什么

前言:
作为系统测试工程师,你不需要对代码了如指掌,不需要掌握每一个方法,每一个逻辑,但是适当的阅读代码是有必要的。可是到底阅读到什么深度,需要掌握多少,这也是每一个测试工程师要面对的问题。阅读得浅了,往往会遗漏;阅读得深了,浪费时间,我又不是开发,也没必要,是不 @.@

分级理论:

为了更好地区分对代码的理解程度,个人主观是把开发代码分级了,这个分级个人主观偏多,如有不当,欢迎指出。
分级一共分为三级(表胡思乱想),下面对这个级别的小技巧分享一下。
一级:对于java来说,万物皆对象;对于android来说,万物皆运行在组件之上,而组件的老大,就是activity。因此,我们首先的入口就是从activity入手,准确的说是activity的生命周期入手。生命周期的定义就不说了,那么结合我所在的项目来说,最重要的就是onCreate()和onDestory()这两个函数,前者负责资源分配以及初始化,后者负责资源回收或者状态保存。
比如说github上面某个简单的开源项目

mWorkHandler = new WorkHandler(mWorkerThread.getLooper());
mWorkHandler.sendEmptyMessage(MSG_READ_ONLINE_PARAM_URL);
mWorkHandler.sendEmptyMessage(MSG_CHECK_DISK_SPACE);

比如上面的onCreate()方法里面的部分截取,看一下就知道是每次打开这个模块就开启了一个HandlerThread线程去检查磁盘剩余空间,以及去读取一些参数,那么一级逻辑看到这里就差不多了。

二级
前面的一级是顾名思义,测试其实已经完成大部分的逻辑,已经是知道的范围了,比如MainActivity的检查更新,安全认证啊等等,在需求文档不会设计到的地方,测试已经关注到了,那么二级是什么呢?那么我认为是在onCreate()方法之下,在具体算法之上的逻辑,比如读取一个播放器列表,一级就是知道什么时机去读取去解析去存储,二级就是这个列表是什么时候去替换旧列表,本地存储什么时候会被换掉,有没有通知其他关联模块去同步…再比如,前面分析robotium的时候,一级就是知道通过viewFetcher去查找控件,二级就是知道它是通过windowManager去得到decoderView,三级就是要掌握这么个算法去筛选我们需要的view。嗯,可能第二个例子可能好懂一点。

三级
三级其实就是具体的算法了,具体的函数了,更多的是作为工具类的定义。作为灰盒测试,其实这部分内容是属于兴趣范围,在三级逻辑下,更多的接入是单元测试,属于白盒测试功能师的范围啦,笔者目前也只是完成一些简单的单元验证,没法深入讨论的,其实很多网络上分析的一些框架,也是到这里就止住了,没办法,算法这东西,博大精深,但偏偏对灰盒测试工程师的作用也不大(除非你是测试开发:<)

对实际测试的益处

在有了理论的分类后,我们扒一扒好处吧
好处一:加深对逻辑的理解提高测试覆盖率
其实对于功能测试来说,最头疼的就是覆盖率,以及出问题被领导质问,功能测试流程一般是这样的:根据需求文档写用例–测试前和过程和开发沟通疑问点–测试完成。这个流程也是大多数测试人员的流程,包括之前的我,这么做没什么问题,但是却不够全面,问题出在和开发沟通上面,谢过一些程序的都知道我们不可能把所有逻辑都记住,意味着测试和你沟通的时候你不可能把所有写的逻辑都很好地列出来,导致测试的盲点,所以代码的粗读(指的是一级二级阅读)也都会很好地发现隐藏的彩蛋,哦不,是代码逻辑,那么据跳槽到bat的某同事讲也确实如此。

好处二:为单元测试和自动化做铺垫
自动化可不止测试当前界面存在,点击跳转正常就完了,在弄清楚代码逻辑后,做自动化可以明白数据的走向,让你的自动化不局限于界面的点点滑滑,而是深入到数据库,二进制文件的验证,效果无疑会好得多。

好处三:提高测试效率
当你知道模块重要数据的调用的时候,构造复杂数据测试显得容易的多了,改改就行了,比如我测试一个列表,只需要在循环里面add多次就行了,这样就产生了多倍数据,多个方便啊。

好处四:对性能还是有些用处的
研究性能已经有段时间了,效果也还可以,所以现在习惯的看代码的时候,看到注册回调了,马上想到在模块退出有没有反注册;在消息中开启多线程处理任务的时候,马上去检查onDestory有没有remove所有消息;各种try…catch资源的时候,也会反射性去看看finally有没有关掉… …这些,都是在学习中不知觉养成的习惯,所以说还是有些用处的

好处N:
对自己未来有好处,加强语言阅读能力,简介提高编码能力,学习开发的思路,巴拉巴拉,差不多就这些了,今天就扯这么多吧,嘿嘿。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值