技术佳 310339694
  我是一个测试工程师,确切说是测试开发工程师,二者其实有区别,但是也是相辅相成。测试开发工程师每天的工作其实大体都应该差不多,就拿我来说,每天工作大约8个小时,大约每天只有一半的时间来写代码,其余时间还是要做手工测试。
  我刚开始参加工作的时候,是一个纯手工的测试师。每天无限的重复着差不多的工作。有时自己也在想,这样下去,我到底在锻炼什么?锻炼最基础的能力么? 可能有人会说了:如果想成为真正的技术大牛,基础是必不可少的。这句话我完全赞同,但是这句话却是有偷换概念之嫌,试想,假如你永远天天所有的时间都在无限重复着手工测试,一点都不去接触代码,每次想涉入自动化这块领域,就用上面的堂而皇之的大借口安慰自己说:我先把基础做好,没基础什么都不行!这样即使10年后,你就能走上技术的大道,可以写脚本了么?答案显然是否定的。而且,你能保证10年后,纯手工功能测试人员还能像现在这样悠哉悠哉的写用例执行用例么?我想说,我作为一个测试开发工程师,每天在为公司开发脚本,工具,研究新的测试技术的过程,就是在慢慢杀死纯手工测试师的过程。最直接的效果,是我目前跳槽的这家公司,来的时候,他们说准备一下除了招我做测试开发之外,还要招收2个手工测试师,这家公司以前没有测试开发的工程师,当我进来后。直接的效果就是,一周后,公司撤掉了俩个招聘手工测试师的信息。因为什么,因为他们发现,活不需要那么多人干。
  实际上,我每天也一样需要对需求对界面直接写测试点写用例。刚开始,我只是个普通的测试工程师,也感谢那段日子,让我的基础的确训练的很好,测试点,用例,各种基础技术已经熟练的很不错了。但是也有让我苦恼的事情,就是执行用例,大家会有一个感觉,写测试点写用例很轻松,虽然费脑,但是有趣。但是执行用例的时候,可着实无聊甚至疲惫,尤其是在测相近的功能,比如网页的,各个页面的用户名输入框,你不能漏测,但是的的确确各个页面都的用户名输入框需要测试的数据都差不多,无非就是过长过短,含各种字符,不符合规则,重复,大小写,各种HTML字符,全角半角和一些异常情况测试。写用例的时候都是直接复制加少许改动,但是执行的时候呢?你能复制么?显然不能。这个时候,你就要想,这么重复的劳动真的适合现在的IT么?人和动物最大的区别就是在于是否会使用工具。也许你会说:猴子和很多动物也会使用一些简单的,但是,我说,更大的区别是创造工具呢?人类从原始进化到现在,不就是一直创造工具,改进工具,使用工具,来节省时间,力气的过程么?测试行业如此,测试在国内是一个新兴的行业,正像是人类社会的原始时代一般,大家从纯手工,出体力来完成测试。但是,人类永远是进步的,纯手工测试注定是测试行业中的昙花一现,不久,必然被工具所替代,当然,开发这些工具,框架,脚本就是测试开发工程师们的工作。
  像前面说的测试各种输入框,作为测试的你,一定会想用什么工具来替代这种麻烦的千篇一律的工作,但是工具没有这么细致到为了你公司的网页,你的这个特定的功能而存在。你顶多是下载下来selenium,qtp之类的软件。那么接下来的工作,就是开发脚本了。脚本并不难写,但是你想过,当你完成上面的下载,学习,开发脚本,构造自动化数据,执行脚本一系列工作之后所花的精力时间,和你手工做完这些相比,所付出的反而会更多么?这时,大家就会想到,何不把脚本给规范化,参数化,,给做成一个可以反复使用的脚本么?以后还有类似的输入框出现,我只需要填写这个新页面的URL和这个新输入框的id就可以直接自动测试完毕,或者,当查出了BUG,回归测试的时候,也不用再一个一个参数的手动输入进去,直接点击一下脚本,短短几秒,就跑完这个测试呢?然后再扩大自定义范围,可以把测试数据放在EXCEL表或数据库中,方便修改测试数据,这样以后公司网页上的输入类功能,都可以用这个脚本去跑,只需输入URL和输入框的ID,或者说,这时这已经不是一个简单的脚本,而更像一个专门为你公司测试输入功能的一个自动化测试框架。
  而此时你算是刚刚踏入了测试开发的领域了。当然,测试开发还需要进行框架的改进,还有一些其他的最新技术的攻关,每天的时间中写代码比重也一点点在上升,当你不知不觉中,恭喜你,你已经是一个技术大牛了,已经成为了一名测试开发工程师了。写脚本,写框架成了你日常工作的一部分。而你一个人,也的的确确的可以相当于好多手工测试师了。你顶的上那么多人,拿俩三个人的工资绝对没问题。走上测试开发这条路,带来的更实际的好处就是,在未来高速发展的IT行业中,你不会被淘汰。决定一个人的价值,其实是看这个人的可替换性怎么样,越容易被替换,越危险。现在的测试开发工程师几乎是凤毛麟角,可替换性这个词,跟这个高度是不沾边的。那时的你,可以说,不会有被人竞争的感觉了,而时刻是都在突破自己而已。而平时你的工作,也不会像之前那么无聊的执行重复的用例了。开发框架真的是很有意思的事情。更主要的是,你不会再感受到测试地位低的感觉,那时的你的桌面也时常挂着各种黑底的代码。相反,你反而会觉得你的地位升高了。因为开发人员满大街都是,而测试开发人员,打着灯笼都难找啊。当然,做到这个行业后。你的公司的测试部门瞬间高大上了,你也就自然的成为了这个部门的技术核心或者是领头了。那时的你,反过来看看和你同一时期的手工测试同行们,他们可能依旧做着手工测试,依旧每天在抱怨累,无聊,学不到技术。其实以上这些都是我个人的实际经验和实际感觉。虽然我还没有成为真正意义上的技术大牛,但是现在有了这个目标,并且每天都在开发框架,真的让我看到了前途的光明和希望!
  说到学技术,我身边有很多童鞋整天抱怨要辞职,而原因大多是因为那里学不到技术。试想,为什么会觉得可以在公司学到技术呢?这本身就是很小概率的很难的事件。你想学到技术?OK,我们来分析。
  1.你每天要有时间学技术,而你做手工,面对的厚达几十页的需求,面对着频繁更换的需求,面对着无数的测试点,测试用例要写,更要命的是执行用例。你觉得你还会有时间去静下心来研究代码,研究自动化框架么? PS:很可能自学的同学,好不容易挤出的好几小时的时间来用于学习,可收获却几乎为0,因为没有人教,没有完整的资料和教材。而技术钻研本身就是 付出几个小时或者几天都可能没有回报 的事情。技术需要大量的时间去积累去突破。这时,一般的童鞋就灰心甚至放弃了。
  2.你去网上搜索相关资料,OK,国内资料,相信大家经常玩技术的人都懂的,除了复制的只言片语,就是翻译的乱七八糟,再就是各种虚假回答,而一般的问题都是不同的环境不同的实际情况需要不同的答案和解决办法的,一味的实验网络上的答案和资料,真心会抓狂。想当初我也是在这上面吃了不少亏。国外的论坛虽然好,但是你能×××么?即使×××了,你能看懂么?而测试这行业又是新起的,尤其是测试开发,不信大家去网上搜搜,测试开发是每天具体干什么的都没几条回答,更别提怎么做到测试开发级别了。这时你需要一个老师,一个你问什么都会给你解答的老师。
  3.你需要公司有人教你,有木有人教呢实际上?我这么说吧,测试开发工程师一般的公司都没有。教你?,公司其他测试师可能都等这着你教他们呢~ 即使有这样的高手在,人家为什么会教你?对人家有好处么?公司雇你来就是来做手工的。为的就是让你去做这种人家测试开发师没时间做的事,怎么可能教你去做测试开发?那手工的活谁干?这项技术这么吃香,教了你,不给你涨工资你肯定要跑路了吧?把公司当学校了?公司给你开工资,学校是收学费的。如果你特别聪明。天赋异禀。那么假如真有教你的人。他会不会怕你日后超过他?毕竟这条技术之路是没有尽头的,他肯定不敢拍着胸脯说,你无论怎么学,会的多么快都不会超过他,抢他的饭碗....毕竟同行是冤家这句话流传上千年了。虽然我说的难听,但是确实符合当今社会。
  4.如果你可以完全无视以上3个学习的难点。说:我可以每天利用下班时间,自学。那么首先感觉一下自己情况,自己对代码的接受能力,对新事物的掌握能力,对日后将要遇到的无数难点的主动解决能力,(忘了说了,测试开发工程师会不自觉的生成一个技能,就是可以预判到很快将要发生的BUG,然后可以很轻松的解决新出现的难点问题。这不用练,当你真正能做到测试开发这高度时,自然会掌握这种技能。)接着说,你有这样的决心和毅力,不畏无数次的失败。如此这样的人,那么我很荣幸的说,这样的人真心是这个时代难得的人才!
  当你真的凭借自己的努力达到这个高度的时候,回头望望自己走过的路,遇到的问题,吃过的亏,走过的弯路,如果你还有达则兼济天下的心胸,那么请你把你的经验分享给大家。让别人可以轻轻松松干起测试开发。但是你会这样做么?你可能为了今天耗费了十几年甚至更久的光阴,别人吃喝玩乐,你却埋头苦读,别人意气风发,你却头发掉光。别人悠哉悠哉的娶了老婆,其乐融融,你却只身寡人,仿佛刚刚出狱的一样,看见阳光都会觉得久违。你会怎么做? 也许这里并不需要你的回答,大家到网络上看看那些测试开发工程师们中有多少会在网上分享自己的经验,技术,脚本,框架和最重要的遇到问题解决问题的能力,就知道了。再看看那些大公司的高级测试开发工程师们,赚着高额的工资的又占多少就明白了。
  所以当有人开了培训班,要把这个领域的秘密技术传授给广大手工测试师时,我们测试开发工程师心里除了惊恐外就一句话:我们当年没有赶上好时候。
  以下附上一个我最开始自己开发的一个测试工具,上述的经历也都是我身上确实发生过的。(后来开发的测试工具已经很专业,除本人外很难看懂怎么操作 ps:偷偷说,做成自己才看懂的这样就更没人可以在我公司替换我了,这是测试开发们给自己的小福利....^_^ )大家没事多交流,群号:310339694
  我为什么走上测试开发这条路?_纯手工