一个软件测试员的工作与学习(三)

续上一篇

http://www.cnblogs.com/fnng/archive/2013/04/13/3017598.html

在开始讲述这一年多的经历的过程之间,我又回顾了之前的经历,以便把比较好的把故事的衔接,需要说明的是,我并没什么高大上的经历来吹牛皮,只是做为一个普普通通的软件测试员,来记录自己的经历而已。

关于学历                                     

应该是在入职新公司前报考的自考,学历一直是我的硬伤,所以,就想通过自考的方式来弥补,对于搞技术的来说,尤其已经在这个行业混了几年的人来说,学历真有还很重要么?这得看公司。有些公司不在意学历,有些公司没有就是不行。至少在我面试的不少公司来看,有时候确实挺重要的,有些给钱多的,比如金融证券类的公司,学历必须的;有些人才济济,做技术的都想削尖脑袋往里进的,比如,华为、腾讯。

因为自考是个挺花时间的事情,几乎每个星期天都要上课,所以,几乎是没有休息时间的,要么上班要么上课。当然也有空闲,自考完了会有两周不用上课,有了一份稳定的工作之后,渐渐我的就开始怀疑,自考就真有用么,占具了我大量的时间,就为了一张纸,也许把这些时间用来学技术更有用。

直到我再次找工作的时候,我不再怀疑了,没这张纸,到嘴肉又飞了。证还没下来,为啥又急着跳,这次不是我主动的,情非得已,最后再说。

关于学历就说这么多,这只是我的个人经历的感受。

学习python                                  

回顾了上一篇的经历,说要认真的学一门语言,我基本做到了。在这一年多的时间里,我没再关心眼花缭乱的各种测试技术。把除了大多时间与精力花在了学习python 上。说有多精通谈不上,但写写自动化脚本,实现个小功能问题不大。

从2013年4月份入职新公司说起,入职什么的一两个月里没有特别紧迫的事情,处于半打酱油状态,后来调到web社区组后,了解项目是基于python实现的,于是,开始学python,简单易学,相关资料文档也丰富,所以学起来并不困难,但坚持很重要。

其实,我已经不止一次的传达我的看法,以及我验证的结果:测试人员面对的技术太多,我们真正用到的技术又很少,所以,我们就很容易三心二意,今天听别人讨论这个技术流B ,就学这个;明天又听说那个技术流B又去学那个。混了几年发现仍然缺乏核心竞争力。会写文档不是核心竞争力,会写用例不是核心竞争力,会用某种测试工具也不是核心竞争力。

听我的,抛开那些所谓高大上的测试技术吧。专心学一门语言,一年后,你一定会来感谢我的。测试人员如何学语言?

关于自动化                                  

你一定在抱怨,买了本编程书,上面的代码也都看明白了,也都敲了几遍。但还是不能像开发一样写程序,而且更重要的是学了又不上,过段时间又忘记。

好,我告诉我是怎么做的。

我大概花了一个月找来python 的一本基础教程。学完大概就是上面所说的状态。然后,我发现我们web项目挺适合做自动化的,selenium webdriver 本身是支持python来做自动化的,但关于webdriver + python 来做自动化的中文资料并不多,学习起来颇为痛苦,webdriver API上的方法,没有python写法的实例了。所以,花了不少时间来学习API 。

熟悉页面上各种元素的操作,问题又回到python上,以至于当初的去纠结如何用python来循环读取一个文件里的数据,还好这样例子很容易找到。突然有一天在一次挣扎过后,我醍醐灌顶的明白了用程序来解决问题。

我在学习的过程中更多的是以需求为驱动去解决实际问题。过程很痛苦,结果很爽快,在反复的痛苦-爽快的过程中,你就具备了编程能力。

因为坚持专一,这也就是为什么我可以在半年后开始向别人讲 selenium+python如何实现自动化的课程。

仍然不断的有人问,为啥不学QTP ,简单易学,功能强大。因为我不仅仅是为了做自动化而在学自动化。

编程如写文章,识字的人都能看懂文章,我们在不断写作的过程中,模仿的过程中学会了写出优秀的作品;懂编程语法的人都能把程序看个大概,只有在不断的练习、不断的模仿中才能写出了健壮高效的软件。

关于文档                                      

《selenium 2 python 自动化测试实战》应该可以体现我这一年多来的技术积累。因为最初博客写了十几篇 selenium webdriver  python版的webdriver 如何操作页面各种元素。为了方便别人阅读,所以,整理了。

selenium webdriver (python) 第一版PDF

后面,又学到了一些东西,加到了里面,于是又有了:

selenium webdriver (python) 第二版

再后面,又了加一些技术,于是又有了:

selenium webdriver (python) 第三版

在这个学习的过程中,兔子给我不少帮助,并且向我介绍了他们的测试框架之后,我非常激动,觉得这技术非常有用。前三版的文档也得到了他的鼓励。这次我准备玩个大的(原本是想投稿出版社的),并没有急于第四版、第五版这样更新下去。花了相当的时间和精力攻破一个个技术点。不单单是webdriver ,添加selenium IDE 和selenium grid 的使用。形成了一套比较完整的知识结构,于是,有了:

《selenium2 python 自动化测试实战》 --new

名字发生的变化,好多人认为他们不是一个文档。好吧!他们是继承关系,“实战”继承了前面几个文档的所有东西。最新版已经扩充到360页。

关于分享                                

Selenium + Python 的自动化测试分享也是2013年底开始搞的,2013年年初的时候,我想总结自己的测试经验录制一套《web测试指南》的视频,很紧张,效果就非常差,录制了5节后就停掉了;讲课能力一直是我的一个短板,写文章的能力相比要好很多,这也主要是这几年不间断写的积累。所以,视频别人听了之后,惊呼文不对声。

后来,乙醇要做Selenium + Python 自动化测试的分享,因为之前我向他请教过这方面的问题。所以,他希望我来讲,我很高兴的接受了这个任务。第一期的效果每是很差的,到目前的第三期已经有了很多的进步。可以讲的内容也在不断扩展。

关于离开                                

我没用“离职”而是“离开”,这个原因比较纠结。这个公司是我目前为止待着最舒服的一个公司。公司福利,公司文化,工作强度,同事关系都很好。所以,我才有精力做这么多事儿,向团队分享自动化,对项目进行自动化。

年初的时候有过跳槽的躁动,调薪之后,新项目规划出来之后,就决心继续干下去。可惜意外的情况打破了这些。项目没了,新的项目胎死腹中。在压抑的环境待一个月多,无所事事。然后,我就离开了。

生活继续,工作继续,学习继续。我的经历继续。

==============================================

想看我从毕业到现在完整经历的点这里:

虫师『软件测试』基础 与 个人经历感悟杂谈汇总

一个软件测试员的工作与学习(三)

时间: 2024-10-12 19:46:38

一个软件测试员的工作与学习(三)的相关文章

程序员的工作、学习与绩效

工作中,碰到一些这样的例子,总有人提出疑问,为什么一个同事工作勤勉,完成了很多事情,季度绩效评定很高,但晋升却碰壁了.之前已经写过一篇<技术晋升的评定与博弈>,基本就能解答这个问题.但隐藏在背后的更深层次的本质却是:工作.学习与绩效的关系. 工作 程序员的主要工作是:编程,产出代码,完成需求,交付软件系统. 程序员按其工作技能和经验,大体又分为三个阶段:初.中.高级.三个级别的程序员的主要工作都是编程与产出代码,产出代码的数量也许相差不大,但产出代码的属性可能有明显差别. 在曾经的文章中提出过

书摘-优秀的软件测试员应具备的素质

摘自<软件测试> 在电影<星际迷航2-可汗的愤怒>中,Spock说过:“在宇宙的历史中,毁灭总是比创建容易.”从表面看起来,软件测试员的工作似乎比程序员要容易一些,分析代码并寻找软件缺陷显然比从头编写代码容易.令人惊奇的是,事实并非如此.要从本书中学到井井有条的软件测试所付出的努力和投入不亚于编写程序,两者所需的技术极为相似.尽管软件测试员不必成为一个经验丰富的程序员,但是拥有编程知识会很有好处. 现在,大多数成熟的公司都把软件测试员视为高级技术工程职位.他们意识到在项目组中配备经

程序员面试笔试宝典学习记录(三)(数据库相关知识)

关系数据库系统与文件数据库系统的区别如下: (a)关系数据库系统的主要特征是数据的结构化,而文件数据库系统是数据的非结构化. (b)关系数据库系统中,用户看到的逻辑结构是二维表,而文件数据库系统中,基本元素是文件. (c)文件数据库系统可以实现多媒体文件管理,支持C/S工作模式. acid,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(atomicity),一致性(consistency),隔离性(isolation),持久性(durability). 数据查询:select sele

CSDN日报20170318——《一个程序员的五年工作总结》

[程序人生]一个程序员的五年工作总结 作者:Programmer_Zhou 三月的重庆到处弥漫着浓浓的春味,在这个春暖花开的季节里,人们在闲暇的时间都忙着踏青和春游."一年之计在于春",春天是赏花旅游的季节,春天更是为未来作打算.定计划的时候.在2017年的春天,我做出了人生中的一个重要决定:离开工作近五年的ZTE(中兴通讯),去开启新的人生征程.最近我在罗辑思维的得到APP上订阅了薛兆丰老师的"北大经济学课"专栏,我认为他说的一句话特别有道理,这句话的大意是:&q

一个独立程序员对自己近九个月工作生活的回顾

http://www.aqee.net/looking-back-my-recent-nine-months-as-an-indie-developer/引言 有些人可能还记得,去年年初时,我写过一篇文章介绍我是如何开始成为一个独立程序员的文章. 随着新的一年的到来,我想是该做一些反省/总结的时候了.在这篇文章的结尾,我会告诉大家目前为止我挣了多少钱.我计划把这种收入公布做成一种每月一次的例行公布,就像 KreCi 在他的网站上的做法一样. 但首先,我觉得需要用稍微多一点的篇幅先介绍一下我是如何

连载《一个程序员的成长历程》-20.7年工作感悟

工作7年,就其工作中学习到的技术和业务是很有限的,业余的大部分时间还是以自己看书为主,学习到的技术不一定能用的上,但是可以作为知识的储备.除了专业书籍外,也尽量多的看一些其他的书籍,例如:历史.经济.管理等方面的,为了将来有全面的发展储备知识,也是为了激发自己的思考,解构现实世界. 我是比较善于观察和思考的人,人与人之间思考结果的偏差是很大的,造成这样的情况是信息不对称造成的,所以我们要观察.看书.实践.思考......再观察.看书.实践.思考,最终要完善自己的价值体系.理论体系或是方法体系,这

【工作中学习2】Map的使用及排序(第三个参数)

项目进行中,使用到Map(std::map),Map要点整理如下: 1. Map,也叫关联数组,提供key/value(键/值对),key用来索引,value是被存储和检索的数据. 2. key值唯一(Multimap除外). 3. Map的内部数据结构是红黑树. 3. 可以用下标操作符,添加Map中的数据,例如map[1] = 2;,用下标操作符查找数据时,如果数据不存在,会被自动插入到Map中. 4. Map中的数据默认按照由key从小到大排序(less),可以修改第三个参数(可选)来修改排

黑马程序员 【】java学习之路——TCP(三)客户端上传文件到服务器

------- <a href="http://www.itheima.com" target="blank">android培训</a>.<a href="http://www.itheima.com" target="blank">java培训</a>.期待与您交流! ---------- import java.io.*; import java.net.*; class

一个软件测试工程师的前景展望

咋回事儿呐?8月14号就上个星期日的早上醒来,被王宝强刷屏啦,主题是 “王宝强离婚:妻子出轨经纪人”啥地,原来啊是宝宝在新浪微博的一份离婚声明而起,然后是各种网友,各路写手的各种起底,连续两天,各种新闻报道,事情持续发酵,什么奥运会啊.房产啊.汽车啊.经济啥地,都跟宝宝扯上关系啦,其实人家跟你都有毛关系啊?这些人都是来自刨根问底儿拦不住(栏目组)不?就不能跟人家留点空间么?吧啦吧啦说个没完啦!看啥,就说你地!你问为啥?不愿意听啦咋地.你们老发“宝宝”,我发的“宝宝”谁看?今天我也聊聊宝宝——测试