不知不觉已经从事软件测试六年了,2006毕业到进入外包公司外包给微软做软件测试, 到现在加入著名的外企。六年的时间过得真快。 长期的测试工作也让我对软件测试有了比较深入的认识。如有错误还请批评改正。
阅读目录:
- 软件测试人员应该居安思危
- 测试人员应该比开发人员更熟悉业务需求
- 学会如何和开发人员相处
- 测试人员应该懂一些基本的编程
- 测试人员搭建开发环境
- 写文档是测试人员的核心能力
- 测试后期应该做两天交叉测试
- 测试人员的瓶颈
- 尽量实现自动化
- 自动化测试VS手动测试
- 自动化测试的技术和开发用到的技术相差太远
- 最郁闷的是无法听懂开发人员讨论技术
- 优秀的测试人员非常稀少
- 大部分的测试经理都是有开发背景的
- 软件测试的确非常枯燥,需要花费大量精力
- 英语是测试人员的救命稻草
- 尽量少用UI自动化测试,多使用单元测试,接口测试
软件测试人员应该居安思危
身为测试人员,虽然我们平常的工作大部分都比较安逸。 但是千万不能温水煮青蛙。 应该自强不息, 要像开发人员一样, 不断学习,提高自己的编程水平。
当经济不好,公司业绩不好的时候,公司可能进行裁掉测试人员。 但如果做到熟悉业务,做到核心的自动化测试,性能测试就不用担心。
测试人员应该比开发人员更熟悉业务需求
测试人员的水平主要体现在测试用例的设计上。 要设计出全面,覆盖广的测试用例,需要测试人员对自己所测试的项目的业务需求非常熟悉,甚至要比开发人员还要熟悉。
如果是测试银行系统,通信行业,或者ERP软件。 这些业务知识非常有用的,学习起来比较有激情。
要做到精通业务需求谈何容易。
-
要熟读功能需求文档, 任何有疑问的地方都要去和PM确认。
-
把自己当成最终用户, 经常使用自己所测试的软件。模拟用户的行为。
-
熟记软件的每个功能。
假如倒霉碰到一些又没用,又繁琐的软件, 真的是不想去学习它的业务(出了这个公司就再也用不到的业务)
学会如何跟开发人员相处
测试人员必须跟开发人员密切合作, 所以跟开发人员搞好关系是相当重要的。
-
和开发人员成为朋友。
熟悉了干啥都方便 -
不要打扰开发人员
看到开发在聚精会神写代码的时候,千万不要去打扰人家。 写代码需要集中精力,如果被打扰,就会中断思考。 -
集中问问题。
把需要问的问题都总结起来, 集中起来问开发,这样能节省大量的时间。 -
写好Bug,不被开发人员烦。
如果开发人员看到一个Bug 描述不清楚,还无法重现,他肯定会骂测试人员。 所以测试人员一定要写好Bug,描述精确,简洁,没有歧义,详细简洁的重现步骤,加截图。
测试人员应该懂一些基本的编程
你的产品是用C# 开发的,那测试人员应该有C#的入门知识。 你测试web程序,你起码要了解HTML,CSS, Javascript, Jquery吧,否则你测了一两年web程序,都不知道这东西是怎么做的,悲剧了吧。
只有懂代码你才能和开发人员交流,不被开发鄙视。
测试人员搭建开发环境
产品的代码是最好的学习资料了,我们不能总跟在开发屁股后面做测试,不能老是等开发build一个版本后,我们就测试这个版本,开发check in了什么代码,测试人员一点都不知道。偶尔我们应该了解下产品代码是怎么设计的,了解下开发人员是如何修复bug的。说不定编程水平高了,还能帮开发做code review.
使用源代码工具把产品代码check out到本机。 经常看看代码,经常看看开发修复bug时候提交的代码.
写文档是测试人员的核心能力
我记得我以前的test lead说,之所以她能当lead, 是因为她很会写文档发邮件。 写文档需要总结归纳的能力,还要逻辑清晰。 她非常擅长分析几十页的Spec,写出几十页的测试计划。 她还非常擅长汇总测试报告。 每天将完整,清晰,漂亮的测试报告发给各个组, 让公司所有的人都能清晰的看到测试组的工作。
在她的带领下,我们总结出很多文档,比如,”New hire checklist”, “on boarding traning”, 测试工具使用的文档,等等。
写多了博客后我发现我写文档能力提高了很多。
测试后期应该做两天交叉测试
交叉测试,就是指两个测试工程师,互相交换下测试的项目。 这样做有很多好处。
-
有利于找出bug, 测试工程师测久了自己的项目,容易形成眼盲。会对一些Bug熟视无睹。
-
有利于知识和业务共享,避免人员离职,请假,造成无人测试的情况。
-
测试思想不一样,可以互相找出很多问题
测试人员的瓶颈
手动测试工作做个两三年,基本上就能掌握测试需要的大部分知识,如果没有爬到test lead的位置, 很多人就感觉到发展瓶颈了,每天重复测试,学不到东西,很快就会对测试工作失去激情。
如何突破自身的瓶颈,就是不断学习。
尽量实现自动化
一点要抽时间尽量把自己的测试工作实现自动化,可以节省测试的时间,提高自己的技术水平,也可以避免老是重复测试。
自动化测试VS手动测试
现在很多公司招测试的要求越来越高,很多好公司招senior QA,都要求5年工作经验以上,掌握一门编程语言,有丰富的自动化测试经验。当然自动化测试的待遇也会比手动测试好很多。
自动化是趋势, 只会做手动测试的人,以后肯定会失去竞争力。
测试转开发? 难
不要单纯去转开发的岗位。
努力学习编码,然后用于测试,才是正道。用测试的代码去跑代码,才牛逼。
优秀的测试人员非常稀少
想把测试做好非常不容易, 优秀的测试人员需要很广的知识面,良好的沟通能力(不但要和开发人员和项目经理打交道,还要跟其他组的人交流)。 丰富的测试经验,对测试工作有极大的热情, 耐心。还需要测试人员有丰富的业务知识,还要会写代码。
大部分的测试经理都是有开发背景的
我发现我的几任上司都是由开发转来做测试的。 他们都是有几年的开发经验,然后不知道什么原因转行做测试经理了。他们既能开发又能测试,啥都会,能给手下的测试人员提供技术支持。
假如一个测试经理啥技术都不懂,对内hold不住手下的人,对外其他组的人不鸟你。
软件测试的确非常枯燥,需要花费大量精力
不可否认测试工作需要耗费大量的精力,所以欧美才会把大量的测试职位外包给中国, 一遍又一遍的重复测试,不停地执行测试用例, 测得天昏地暗, 头发晕。
我还记得我以前测试过一个程序的各个版本在Windows update中的升级, 先安装老版本的程序,然后Windows update 重启后看看有没有升级,最后卸载。 然后又安装,又卸载。最后测的差点吐血。
英语是测试人员的救命稻草
技术上已经不如开发了。 在英语上一定占有一些优势。
同等的技术水平下,英语好的测试人员可以进外企,比一个英语不好的测试人员的待遇要高不少。
尽量少用UI自动化测试,多使用单元测试,接口测试
能找到bug的自动化测试,才是有用的,否则就是个噱头
UI自动化测试比较不稳定,对于测试结果的分析也困难。 而且UI改动也大。 所以应该尽量多做一些底层的的自动化测试,比如ASP.NET MVC 中UI和逻辑分开了,针对逻辑的自动化测试就比较好做了。
网友评论