关于白盒测试的一些想法

 近一年多一直在从事服务端的测试工作,虽然之前也做过两年,但融合了自动化测试功能测试以及单元测试,所以精力有限,接触到的白盒测试比较碎也比较浅。近期项目进入了调整期,有时间整理下对于项目测试中的代码测试一些感触。 顺便对未来的工作方向和计划做好准备工作。

  2014年可能需要继续负责服务端项目测试工作,但到底白盒测试和功能测试以及模块测试,自动化测试之间应该如何进行抉择,如何进行搭配,相互补充,来达到项目高质,高效的目的呢? 站在整个项目的角度,从以下几个维度对白盒测试进行了一些思考:

  1.   什么样的项目可以考虑做白盒测试

  1.1.  大项目,周期比较长(因为需要前期介入review RD代码)

  1.2.  功能测试不放心的项目,接口比较明确,重要函数做的修改

  1.3.  对整个项目了解较清晰,时间要求较低

  1.4.  新项目

  1.5.  逻辑较复杂的模块

  1.6.  通用类的

  1.7.  异步的、多线程的程序

  1.8.  函数用到的外部数据较多的不适合做,构造起来非常复杂,如大量的信令、词典等

  2.  如何结合白盒测试和其它测试方法

  首先,需要根据项目特点,比如项目周期,项目难度等来确定测试方法。

  然后,如果满足做白盒测试的条件,则需要先确定白盒测试处于项目测试中的什么阶段,如果是迭代或优化类的项目,建议进行分层测试,重点对更新的代码进行白盒测试,其它的进行传统的自动化或手工回归测试。如果是周期比较长的全新项目,可以考虑在RD编码阶段介入,了解接口和底层内部函数构造,为白盒测试做准备。        为了避免白盒测试和功能测试的交叉工作量,可以底层库用白盒测试,上层功能测试用功能测试,在功能测试上就不再关注底层的测试,可借助分层测试思想。

  3.  如何降低白盒测试成本

  不管从技术还是从周期上,白盒测试成本比较大,所以站在高效和简易的基础上,尽量借助工具来尽量减少白盒测试范围,比如可以借助:

  3.1.   手工测试+代码覆盖率测试来覆盖一部分代码

  3.2.   C代码可以用gdb(其它语言也有)来构造一些比较难引入的上层变量,再结合代码覆盖率来做

  3.3.   单测工具,比如cppunit,gtest等来做接口测试

  3.4.   其它

  我们之前的做法是将模块测试做成自动化CASE,然后新版本来后,进行自动化测试回归,并结合代码覆盖率来出一份覆盖报告(从分支和代码行两个维度),然后再对新升级的代码进行review,并拓展用例来覆盖,如果功能测试实在无法模拟,会采取gtest,最后仍不好模拟会采用gdb挂载的方式

  4、 白盒测试收益和风险是什么

  4.1. 功能测试无法深入到底层的测试上,白盒测试可以

  4.2. 投入成本较大,收益较小

  4.3. 通过白盒测试只能发现函数级的错误,较难发现函数接口之间的错误

  4.4.  时间会增加,覆盖率会增加

  4.5.  可促进rd的单元测试做的更充分

  4.6.  短期收益不明显,长远会有收益

  5、白盒测试方法

  5.1. 最基层的函数做详细的测试(倾向于功能),策略较复杂的做详细测试(倾向于逻辑),通过自己写5.2. 程序去调用被测函数,外层的通过GDB的方式去测试

  5.3. 自己写驱动去调用被测程序或构造上下层来验证被测程序

  5.5. 通过程序包装被测程序,通过多线程的方式去实现多个动作之间的交互

  5.6. cppunit去做,但调用关系较复杂的测试很难去实现,支持case的管理、验证

  5.7. 可借助gtest去实现,扩展为和c++test类似的功能

版权声明:本文出自 800716 的51Testing软件测试博客:http://www.51testing.com/?359684

原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-11-10 00:34:46

关于白盒测试的一些想法的相关文章

怎么开展学习白盒测试

问题描述 怎么开展学习白盒测试 1C 本科毕业后一直在做黑盒测试,现在想学习一下白盒测试,不知从哪入手 ?最好能推荐一些书籍ps:了解过简单的白盒测试理论,比如路径覆盖这些 解决方案 在白盒测试中,可以使用各种测试方法进行测试.但是,测试时要考虑以下5个问题:??? 1)测试中尽量先用自动化工具来进行静态结构分析.???2)测试中建议先从静态测试开始,如:静态结构分析.代码走查和静态质量度量,然后进行动态测试,如:覆盖率测试.???3)将静态分析的结果作为依据,再使用代码检查和动态测试的方式对静

web标准,我们去向何方?一些想法...

web|web标准 原文作者:Veerle 原文出处:veerle.duoh.com 原文发表时间:2004年6月14日 译者注:本文是"你应该关注web标准的真正原因"一文发表后veerle写的一篇感想文章,作者提了2个想法,却引来各种意见和建议,我将部分评论附在文后.可以看到国外技术类blog讨论的气氛也是非常好的,至少参与的人很多.有兴趣的建议看看原文. 译文 关于web标准,我已经了解很多,并且正在使用.我也很清楚的认识到,使用web标准不是为了能够骄傲的说"嗨,你的

关于设计品质保证(DQA)的几点想法

出差到了中国雅虎,这里的风格和淘宝很不一样.和雅虎一比,淘宝的办公环境就是个菜市场,闹哄哄,到处是人,在走道里狂奔乱窜,在每个会议室争得面红耳赤-- 感觉确实不一样,这里很技术,很工程师风格.在这种安静的环境下,刚好给我一些时间记录下最近一直在思考的问题:DQA(Design Quality Assurance). 如果现在搜索DQA,是可以搜出不少的,但似乎只局限在传统制造行业.比如这家台湾的硬件制造公司介绍了他们的DQA: DQA - Design Quality Assurance sta

RSS应用现状以及我的一些想法

rss|rss RSS应用现状以及我的一些想法 在这封邮件中,我将涉及如下内容: •RSS实例列举 •RSS入门进阶 •我们可以做什么以及解决方案 [正文] 一.RSS实例列举 在介绍RSS概念之前我想先列举一些比较优秀的嵌入了RSS服务的站点: (每项第一个网址是该网站对RSS的理解,第二个是该网站的一个真实RSS Feed) 1.新华网RSS聚合新闻 http://www.xinhuanet.com/rss.htm http://rss.xinhuanet.com/rss/native.xm

struts设计上的一点想法

设计 一年多以前就开始学Struts了,但是一直没有机会使用它开发项目.在做了一些小的DEMO后感觉很好.但是最近的一个公司中使用了Hibernate+Struts的框架开发.我去的加入的时候,基本的框架已经建好了.我看后感觉开发框架很不规范,很多页面中都出现了脚本.在不少的地方都是利用HQL从查询数据库.他们为什么会这样做了呢?感觉很奇怪,后来经理告诉我由于项目比较小,所以有些地方比较灵活了一点. 由于我们是按照功能模块分工(我很不习惯这种方式).所以我可以按照自己的方式来开发,在开发中使用F

个人站长必须要养成的习惯和一些点滴想法

中国的个人站长时间太短,只是最近两年才逐渐走上媒体,小荷才露尖尖角.个人站长的路还很长,还需要面对的是更多的事情.个人站长并非弱势群体.只是散落千家万户,要不是最近2年的QQ群的兴起,要不是最近Admin5和Chinaz的草根资讯,中国站长估计连个发言的平台都没有. 个人站长还有太多需要面对的问题,幸好这批的个人站长都是在年龄方面最有资本.还能经得起无数的失败的站长.结合目前的站长现状,我谈一些我的想法.其实也是我做不到的地方,一起共勉. 1.个人站长还需要不停的学习,技术方面.不要以为懂了服务

优秀的产品经理:不要过于强调自己的想法

文章描述:做产品经理的一些总结和反省. 如果你是做过之前说的那几种职业,这不是一件坏事,相反,这是你的优势,只要适当在产品策划过程中发挥,也是不错的一件事情.就从以下几点来谈这个转变的过程吧! 如果你想成为一个优秀的产品经理,至少要有一个平和的心态,如果说做设计.做开发,是有一定的被动执行的因素在里面的话,那么产品经理是对整个产品的全局把握和进度推荐的主动性是需要很积极的态度,如果还是以之前职业做事的心态和专注点不改变的话,很难彻底适应这种变化.我特别赞同裴肖龙前辈的话,要有"大我"和

关于用户角色权限的一点想法(1)

标题    关于用户角色权限的一点想法(1)    biggie(原作) 关键字    关于用户角色权限的一点想法 前言: 权限往往是一个极其复杂的问题,但也可简单表述为这样的逻辑表达式:判断"Who对What(Which)进行How的操作"的逻辑表达式是否为真.针对不同的应用,需要根据项目的实际情况和具体架构,在维护性.灵活性.完整性等N多个方案之间比较权衡,选择符合的方案. 目标: 直观,因为系统最终会由最终用户来维护,权限分配的直观和容易理解,显得比较重要,系统不辞劳苦的实现了组

关于通过做站来创业的一点想法

第一个想法:互联网创业,流量依然非常重要,web2.0也是一样.目前的国内视频火热的很,各家公司无论是在技术上还是手段上都相差不大,那么就看如何在流量上下功夫了,这也是目前层出不穷的各种事件被无限放大的一个重要因素.流量将很大程度上决定一个web2.0公司的成败,认为web2.0不需要流量的看法我不赞同.  第二个想法:互联网创业,创新是关键.可以想象到的是未来将来会有更多的张钰.王钰.马钰出现,只要有这个流量需求,那么在娱乐化的互联网中将会层出不穷,但是可以想像得到的是对于娱乐题材和擦边球的无