测试还是开发? 
粗略算来,从事测试工作也有3年了,其实自己对测试确实没一点兴趣,最开始也只是因为白盒测试部能够熟悉服务器代码才决定进入测试部的,这三年来也看着公司的白盒测试部从最初创建到后来一步步的成长,包括公司的测试部门从开始的凌乱到逐步规范到现在完全的过程管理,整个测试部都是朝着一个比较好的方向发展的。《软件测试的艺术》自己都不知道读过多少遍了,测试的理论、流程已经烂熟于心了,但是理论和实践之间差距确实很遥远。
    初期白盒刚成立,花了半年的时间熟悉代码写注释,真是把那些代码当书看,从一开始的毫无头绪到逐渐学习到如何阅读代码,发现能够看懂代码也是一种能力啊,后面看MySQL代码也不是很费劲了,这期间只是分析了一些存在比较大的性能问题的功能如何改进之类的问题,另外就是熟悉工具,老大从网上不断的搜集着资料,什么样的工具可能有用,然后就研究,看看是否适用与我们的产品,Devepartner、Thread Profile、Performance Analyzer、Insure C++……一大堆的工具,一大堆的英文文档,熟悉一个写个文档做个报告,那时候就感觉这个很强大,那个不错,这个蛮合适,那个也可以用,后面真正用起来才发现各有个的优点,功能强大的不一定是适合你这个产品的。最终适用Devepartner来做覆盖率测试,当把所有测试用例跑了一遍之后,惊讶的发现,覆盖率居然50%都不到,也就是说50%的代码测试部门都是没有测试过的,就拿去给用户使用了,这也反应出了黑盒测试用例的不充分,之后固定有一名同事专门用来提升覆盖率,根据没覆盖到的代码编写测试用例,花了差不多一年多时间,最终才把覆盖率提升到80%多点,期间确实发现了很多的bug,但是毕竟目前只能做到语句覆盖而已,这样来提升覆盖率,即使达到95%,难道就能说明测试用例很充分了么?从而开始思索怎样写测试用例才能尽可能的保证其充分性?后面公司推行CMMI,开始对测试有了过程控制,需求完成后就开始编写测试方案,测试方案尽可能的挖掘出需求中的需求项,子需求项,给后面测试用例的编写提供大方向上的指导,并通过多人评审来保证方案的完备性,这样的措施确实对后面测试用例的完备性有很大的帮助,单个模块的覆盖率也有了很大程度的提升,不需要特别的针对没覆盖到的代码来大规模的编写测试用例,覆盖率也只是一个指导而已,但是现在就开始发现Devepartner只能测所有的覆盖率,没办法统计某几个文件的某些函数所组成的模块的覆盖率,于是提取需求,编写工具……
    系统中有时候还会出现线程之间的死锁问题,这时候想到Intel的线程检测工具,这个工具确实很强大,能够给出每个线程执行的函数调用图,每个函数消耗的时间,也能够检测线程之间资源竞争和死锁,但是前提是你的用例要能够跑出死锁情况来,死锁发生经常是偶然性的,并不是每次都那么容易重现出来,试验了很多次都无功而返,最终采用最笨的手段,人工检测,找出所有的竞争资源,分析使用情况,但是代码确实太庞大了,这样的工作人工进行不仅耗时,而且经常分析几天没个结果,怎么才能静态的自动化检测死锁?操作系统课上说,如果资源的分配都按照优先级顺序来分配释放的话,则可以避免死锁,那么写个工具把程序里面的所有竞争资源列出来,按照目前调用方式分配一个优先级,然后把所有使用到这些资源的函数子函数调用流程记录下来,分析申请资源优先级是否一致应该就可以把潜在的死锁问题的地方都找出来吧?于是提取需求,编写工具……
    当程序变得越来越庞大,内存泄漏总是躲在某个角落里面偷着笑,有很多的工具都可以检测系统的内存泄漏,Devepartner的Error Detection组件就可以,开源的vld也可以,但是我们的内存管理都是自己的,一次申请的一大块内存堆来自己调度,而那些工具都只能检测操作系统的内存分配函数,没办法,又是提取需求,看了vld的源代码,自己动手写工具……
    仔细回忆起来,这三年其实还是做了不少的测试工作哦,还有很多的东西没有写进来,如果有兴趣还是可以和同行交流一下:)但是内心却有个想法却一直在骚扰我:要是这些都做完了怎么办?如果这些都形成了流程,随便找个人培训一下都可以做了,那我接下来再做什么呢?做模块测试,根据接口写测试用例?除了对外提供的接口,对内的模块之间一般都很难实施。做代码走查?代码逻辑总是没开发人员熟悉,每次也只能发现一些编码问题而已。自己都不知道做什么了,经验太少了,国外的跨国公司到底怎么测试的呢?不知道,相信就是了解一点也只是皮毛。
    测试确实很有技术含量,要把测试做好真的很难,但自己见识少,不知道好的测试到底是什么样的,做开发的欲望还是把测试的欲望打压了下去,找家适合自己的公司做开发吧:)也许那会是测试的一个全新开始呢!

转载于:https://blog.51cto.com/huawen/95151

zz:测试还是开发?相关推荐

  1. 在敏捷中应用测试驱动开发

    在敏捷和DevOps领域,企业越来越关注持续集成和持续部署问题.他们更频繁地更新软件,给软件测试造成额外的时间压力.而测试驱动开发可以成为解决这个问题的一剂良方. \\ 什么是测试驱动开发? \\ 测 ...

  2. jest java_✅使用jest进行测试驱动开发

    前言 本文将使用jest进行测试驱动开发的示例,源码在github.重点说明在开发中引入单元测试后开发过程,以及测试先行的开发思路. 本文的重点是过程以及思维方法,框架以及用法不是重点. 本文使用的编 ...

  3. zz测试接口_使用FizzBu​​zz和JUnitParams进行单元测试

    zz测试接口 我有时使用FizzBu​​zz向新手演示单元测试的基础. 尽管FizzBu​​zz确实是一个简单的问题,但它也可以用于演示更高级的单元测试技术,例如实现参数化测试. FizzBu​​zz ...

  4. 测试驱动开发 测试前移_测试驱动开发:它是什么,什么不是。

    测试驱动开发 测试前移 by Andrea Koutifaris 由Andrea Koutifaris Test driven development has become popular over ...

  5. 【软件测试】测试驱动开发

    TDD,测试驱动开发,从敏捷软件开发方法开始流行,是一种非常实用的质量保证执行方式.敏捷软件开发方法使得TDD流行起来. TDD的思想就是要在开发(设计和编码)应用程序代码(要测试的单元)之前,必须先 ...

  6. 测试驱动开发_DevOps之浅谈测试驱动开发

    "测试驱动开发(Test-Driven Development, TDD),以测试作为开发过程的中心,它要求在编写任何产品代码之前,先编写用于定义产品代码行为的测试,而编写的产品代码又要以使 ...

  7. 测试学开发——第一课:java学习路程

    测试学开发--第一课:java学习路程

  8. 简单的11步在Laravel中实现测试驱动开发

    测试驱动开发(英语:Test-driven development,缩写为TDD)是一种软件开发过程中的应用方法,由极限编程中倡导,以其倡导先写测试程序,然后编码实现其功能得名. 下文是我在Mediu ...

  9. 测试驱动开发_?使用jest进行测试驱动开发

    前言 本文将使用jest进行测试驱动开发的示例,源码在github.重点说明在开发中引入单元测试后开发过程,以及测试先行的开发思路. 本文的重点是过程以及思维方法,框架以及用法不是重点. 本文使用的编 ...

  10. 测试转开发,一个女孩子短短的工作心得

    出自:http://blog.csdn.net/panfang/article/details/7539414 在讲述我的经历之前,我先分享下工作不到2年时间得到的几个重要的结论: 一.坚持梦想没有理 ...

最新文章

  1. Poj 2186 Popular Cows(Tarjan 强连通缩点)
  2. 神话人物的现代版简历
  3. ZooKeeper3.4.5-最基本API开发
  4. android网页省略分页器,Android轻量级网页风格分页器
  5. Java核心类库篇6——IO
  6. 分布式事物框架--EasyTransaction的入门介绍
  7. springboot整合canal
  8. mybatis 多表关联查询_Java修行第041天--MyBatis框架(下)--多表查询
  9. LeetCode(893)——特殊等价字符串组(JavaScript)
  10. ML面试1000题系列(91-100)
  11. 拓端tecdat|如何从xml文件创建R语言数据框dataframe
  12. paip. uapi 过滤器的java php python 实现aop filter
  13. qt视频教程qt入门教程嵌入式linux应用开发qt编程开发,QT项目实战教程-Qt应用项目实例开发视频教程...
  14. mysql错误:Table XXX is marked as crashed and should be repaire
  15. Atmel和SIGFOX在远程物联网连接领域开展合作
  16. 渗透测试常用在线工具汇总
  17. DRF框架APIView
  18. Mac下安装多个版本的JDK并随意切换
  19. 【爱情】小事件の车祸
  20. STATA画图命令(三)

热门文章

  1. bzoj2705 [SDOI2012]Longge的问题
  2. 有关css3的一些问题
  3. 第3章 神经网络的最优化
  4. 19_04_02校内训练[deadline]
  5. review一下上一年的积累
  6. 封装特效记录--持续更新
  7. 在有网络还是比较好解决软件上的问题
  8. 常用工具下载及在线地址
  9. 学习C++: VSCode配置C++开发环境
  10. Xcode8 NSLog打印json不全解决办法