做了几年软件测试,技术支持之类的工作,有些想法总结一下。等几年之后回来看看。
1、国内软件测试重视程度非常之低,中小企业不要说了,基本上是developer写案例,自己测,或者交给售前/售后/技术支持测一下。
有些根本就不测,开始对此很不解,后来跟一小企业老总谈,觉得还是有一定道理,对于非专业软件,非IT专业的普通用户其实根本就没那么挑剔。
搞好易用性测试就足够了,偶尔崩溃一次,他也不知道是哪的问题。对于边界值之类的测试完全就没必要了。因为普通用户谁会用到那些值呢。
2、 一般认为tester没前途,没技术含量。个人认为刚毕业还是不要去做测试,可以先做做开发,有了开发经验再去测试,可以从开发者,设计者的角度去测试,能够更多的发现有效bug。做一个专业的tester还是需要具备很多知识的。至少到现在接触的很多tester,还没有发现特别优秀的。
3、一个优秀的tester应该具备什么条件呢?有两条:a、知识面广,触类旁通; b、动手能力强。
详细的说,我认为一个优秀的tester应该是:
有多年多种语言的开发经验,有架构设计经验更好;
有多年的各种操作系统管理经验;
有较高的APM值(手速,这一点看他的鼠标就可以了,我绝对不相信,一个用着破鼠标,甚至只用笔记本触摸板测试的人能有多高效率),当APM值不够高的时候会有些重复性手工测试使得tester疲劳而忽略某些步骤;
有IT技术支持的经验,主要针对于复杂的测试环境,很多情况并非被测对象本身的问题,而是各种系统环境,其它软件冲突导致的问题,要有truble-shooting的能力;
有项目管理经验,要知道软件测试也是软件项目,必须按照科学的项目管理流程来执行。
4、说到测试,不得不提到测试案例(test case, script),测试案例该怎么写,一个优秀的测试案例是什么样的?
首先我们要知道写测试案例的目的,就是要给tester一个测试范围,告诉他们测什么。就这么简单。
很多时候,test designer们都本末倒置了,为了写个看起来漂亮的测试案例,定死了很多书写规范。
那么一个优秀的测试案例是什么样的呢? 就是要:言简意赅,能够让tester们最短时间内,最高效的理解正确并执行测试。
以这个为要求去写案例才能够达到目的。简单的说我们写案例不就是为了给tester拿来去测试的吗?!
另外, 针对不同能力的tester,对于测试案例的繁简程度也有不同,对于技能比较低的tester,步骤就应该尽量详细,
这些初级的tester只会按照步骤,按部就班的进行测试。
但对于高级tester,如果还写这样的测试案例,则起了反作用,束缚住了tester的主观能动性。要知道一个优秀的tester是要充分发挥主观能动性的,
在理解被测系统的前提下,在限定的大的范围内充分的自主测试: 鼠标飞舞,BUG频出,这才是最高境界。高级tester不但能够测出问题,而且在developer不知道如何解决时,有时候能够提出有效的解决方向。
对于测试案例的编写,不得不多说两句,看到过很多自称专业的tester,把国外的测试案例当作例子拿出来。案例细到1,2个步骤就算一个。
先不说合不合理, 光写这些案例就要花费太多时间。难道忘了?我们需要更多的时间去执行测试,而不是设计测试案例,本末倒置了!!!
再说过细的测试案例步骤,预期结果,当别人傻瓜吗?最好的测试案例是不要写过多的预期结果,要充分发挥tester的能动性,
绝对不要限制在案例之中,要知道再好的案例,覆盖率也高不到80%!!!
5、不得不提到测试工具,测试工具分为缺陷管理工具(bug跟踪),测试执行工具(自动化测试),需求管理工具,案例(场景)管理工具。
这些模块是可以合并为一个工具的,比如MQC,CQTM。商业的测试工具一般比较贵,实际上,除非大型的多版本的软件,是没有必要使用商业测试工具的。
一个简单的bugzilla,jtrac等等开源工具足够了。要时刻记得使用测试工具的目的,而不要为了看起来专业才用工具。有了工具就要充分使用。
很多tester跟developer的交流通过缺陷管理工具会方便很多,一定不要动不动就跑到developer旁边去讨论交流,会打断/影响双方的工作效率。
要严格的执行测试状态的变更,缺陷的分配,有些时候,developer会考虑照顾tester,一些无效的缺陷,也会标记为fixed, 这样带来的问题就是回归测试的时候我们不得不重新测一遍这些本来无效的缺陷。
6、自动化测试,自动化测试要说的很多,简单的说不要期望过高,要合理的使用,要选择适合的项目进行自动化。
自动化也分为很多种,可以对于适合的项目使用完整的测试框架,对于不适合的项目,部分重复性劳动, 把自动化当作工具使用。
自动化并不限于专业的自动化工具, 一些自动化脚本工具也是非常有用的,比如autoit,ruby,expect等脚本语言也是一个tester需要学习的。
另外一个比较特别的就是性能测试,性能测试几乎无法手工完成,必须用到一些工具辅助。除了专业的自动化测试工具如,loadrunner, RPT, webstress等等,一些小的系统命令,命令行工具也是可以用来读取一些峰值等数据的。
文章来源于领测软件测试网 https://www.ltesting.net/