2016年上半年5月之前,准备中级软考,主考软件设计师,最后没有考过。考证的主要出发点是恶补下计算机基础,能过最好过不了也可以接受。
开始写技术日志是从2016年的7月,那段时间在学习java代码,曾尝试阅读公司商城的源代码,代码大而全,确实切入困难,尝试过了解spring的架构之类的,最后还是没有达到看源码的水平。用java写了个自动登录系统投票的小软件给未来丈母娘的一个活动定时自动投票,最后被人家发现了,加了IP限制,吼吼,最后排了个第二,排第一的那个增长其实我猜测也。
  期间,公司发生变化,技术研发独立出来成立新公司。由于个人的努力,慢慢掌管了公司的发版工作,无论是生产环境还是测试环境。于是做了些设计,比如自动发版、使用jenkins自动发版、提供出一个网页让任何一个人可以简单培训后执行发版工作。为此专门业余(只能晚上自己弄,上班正常的测试工作多,忙得很),大概如下:
  学习了shell基础,这个东东实践了,使公司日常测试代码和生产发版都可以自动脚本化。
  学习了python的djongo框架(选python是因为,脚本语言来得快,java看不到成果灰心了),基于这个架构整了个简单的,读取git日志到数据库的代码,用了pygit,这一套东西最初的目的是方便测试在网页上查看提交历史,甚至可以查询修改影响的文件有哪些,从而让测试从源头上遏制代码的影响。但设想归设想,我做的还是简单粗陋,仅达到了设想的第一步,第二步没有走,第三步就更不用说了,这个demo练了手,没有用起来,对djongo的三个层次(model\view\urls)有了个大概了解。
研究学习了jenkins的安装和使用,部署很简单,但是它插件太多,我竟不知所措,没有详细研究在项目中使用。另一个原因是测试服务器资源太紧,哎,私下研究,搞慢了怕被批。
  研究学习了一段时间Docker容器技术。可以自己写dockerfile生成,了解了docker的一些基本原理,image和容器的关系之类的。目的是想通过docker来改造下测试环境上多个webent部署到一个tomcat,修改一个要重启半天的问题。最后,无疾而终,现在想来,主要还是测试环境发版频率很高,生成docker镜像速度并不见得快,当然另一个原因还是我没有搞明白docker容器之间的通信,以及多个webent(支付、鉴权、api等)强依赖80端口,怎么解决80端口的问题。
  由于负责发版,所以很顺利的我必须了解git如何使用及管理。所以顺带了把git恶补了下。什么分支、本地代码库、远程代码库、版本号、commit、add、push、fetch巴拉的,可以说有的研发同学也没有我懂git,因为我操作代码是在服务器上,完全使用命令。如果出现问题,代码库里谁干了坏事一目了然,感觉飞起来了一样,质量把控精准到代码行。当然插一句,每次发版有很多hotfix要我手动往生产提,提之前自己要简单测试下,这些比较低端繁琐的工作,还是影响了我的生产效率。出现这种情况,主要还是我们测试这边并没有很好的模拟生产环境,当然我的搭档纯功能测试,leader给她定义的是管理,我则是偏技术的测试,人少活急,敏捷开发嘛,容错改错是常情。
  这期间,我还煞有介事的研究过facebook的一个开源工具infer,木有写日志。不过我是真真切切的感受到了大中华的围墙的威力,为了安装infer,我在家里的电脑上搞了差不多一周,每次装到一半就不动,哎TMD,我是爱普老用户。。。最终安装好了,run了代码库,记得最后的结果里20多处可能出现空指针的地方,我逐条给代码生产者提bug,当时心理那个高兴劲儿,现在都忘不了,新技术新工具,发现异常潜在风险,心里都了开花了,哎,可惜,仅一条被接受,其他的基本上是“代码确实会出空指针,但是业务逻辑走不到那去”。俺看不懂他们的代码,更谈不上在业务基础上去看java代码,所以我毫无辩解或者有起码的跟他们讨论代码的能力,这辛苦也就算东流了。但是,为了安装infer,我接触了dokcer,虽然最后木有用,但也木有坏处。倒是把我引到了新技术上。要在我的ubuntu上装infer,解决各种依赖,最后还是解决了。
  然后,随着系统主干功能趋于稳定,我认为合适引入UI自动测试了,主要是每次发版,2个手去回归,总是有遗漏,另一个人之常情的是老功能,回归的时候思想上难免懈怠(测试了无数回,以前是好的,现在也假设是它是好的,难免会疏漏)。然后我就着手用python的splinter来搞UI自动测试了。还真别说,顺带把python的基础教程,语法之类的全部看完。这里要换行,强调下我是多么的能学。
  splinter有github的源代码,api就那么多,用起来确实爽。python脚本语言出东西就是快,我很快就把公司发布商品的功能自动化了。还顺带写了写常用的工具和方法,什么特殊字符串、随机选图啊、随机数、随机字符串啊之类。写这个功能的时候没有使用脚本录制,完全纯手工,突破很多技术难题(主要是界面动态元素、元素不可见之类的),顺带看了点jquery的语法,又把html/css的基础看了一遍。
  在演习python过程中,内心一直按耐不住用程序去识别股票的想法。于是,很顺利的,借着一边学习python一边学习“宽客”技术的理念,开始研究股票的一些开源api,还把api读取到的数据写入到了本地数据库,本来打算自己从数据库里读数据,但果断放弃了,因为过程中发现摆在我面前的是无数个python库。了解了python中的dataFrame这个东西的一些使用方法,看完了聚宽网上面的api,然后自己在上面了几个策略,然后就是测试自己的策略,第一个策略是多头回调,买二股,最终复测10年的上证,年化收益18%,还不错。写第二次策略,希望结合多头选股和rsi来操作股票,最终测试不是很合理。然后,顺带看了些机器学习的东西,浅尝。还看了一本python和数学计算有关的书,大致了解并未深入,只需要知道有那么个东西,需要的是再查。
  最后,UI的测试case要管理起来,我发现python的unittest,不能在case和case之间传递公共变量,也就是我一个case要登陆一遍后台,要重新拉取一次页面,这效率我还是挺难接受的,在没有知道很好的解决办法之后,我相信肯定有,只不过我还没有发现。我在网上看有人自定义了firefox的webdriver,但是是java的,然后我就去看看……发现selenium对java支持的历史好早。。。然后我就转java去了,搞了一周,我设想的搞出来了。登陆-发布商品等操作不同case之间,一个driver搞定,目前感情出了点情况,没有推动下去,不过会推动的。
  我还学了基本的mysql语法,日常测试为了制作测试数据还会用到。增删改查,都很简单,这里还需要深化点。发版对数据库操作也是我负责,研发提交的脚本,我基本可以帮他们修改到可以run。但是呢,让我写估计速度会慢点。
  其他测试相关的,有很多小的技术累计。质量把关等,就不总结了,技术日志都记录有。
  反观这一年,基本大部分的时候都在晚上学,LOL基本放弃。坚持在ubuntu环境下学习,还是有点收获,好歹是一种奋进的姿态。不过自我感觉进步并不明显,我现在希望更多的工作是编码,因为潜意识里我认为功能测试,是拿不多高薪水的。我们来看看,牛逼测试的技术要求:

工作职责:

1.搭建、维护、改进测试系统环境;
2.使用类似Robot Framework工具搭建自动化测试系统环境;
3.编写系统集成系统测试计划、方案及执行;
4.编写、维护测试报告及评估测试工作进度和计划;
5.配合程序员对bug的复现和追踪,研究新的测试方法;
6.指导初级测试人员进行技术指导与培训;

任职资格:
7.本科及以上学历,计算机、软件、电子信息等相关专业;
8.具有5年以上软件测试工作经历,熟悉软件测试理论,测试流程,能够根据需求文档编写测试用例,形成测试报告;
9.具有运用编程语言(比如Python)进行自动化测试系统开发经验;
10.熟悉Windows/Linux系统 ,具有数据库脚本使用经验(MSSQL, MYSQL);
11.熟悉性能测试,能够使用loadrunner、Jmeter等性能工具;

  所以呢,这一年多的技术学习,真正那得到台面上的是我在Linux环境下搞的自动发版,因为它动了真格。其他相关的,都是散打。下一步重点培养:mysql方面、继续把UI自动化的设想变成现实,留意平台性能测试。我以前面过这个公司,那时候想找个研发测试类初级点的,跟人聊说起来我学过,但是一问呢都是学过,人家根本不care你学过,人家要听你真的做过,做的细节,咋解决的,你做过他们才觉得你配,学过算不上。哎,当然本身我能力还可以,不过呢,不太会口述,口述100分的出来可能人家就给你70了,当然我做过售前的,文字描述那还是很厉害的。。。

  最后作为一个测试,我并不认为应该局限于测试领域内,因为,人的价值并不是而且不应该被他职位所限定,自己可以发现自己对组织有价值的点,然后做出成绩,就像发版和代码库的管理在大多数组织里不一定是测试负责,但是在我们公司是测试在负责,因为开始是低端的手动发,研发不愿做,然后我想学东西,我愿意做,然后发现了可以提高效率的方法,然后就深入做,而且我也做得很好,毕竟只要是生产发版,我几乎可以掌控全局,吼吼,这个还有提升的空间,比如持续集成概念引入后又是一番景象了。
  总结到此,终。

我这一年的技术学习概况相关推荐

  1. Maya 2022中的硬表面建模技术学习视频教程

    Maya 2022中的硬表面建模 信息: 使用正确的拓扑和边流在Maya中建模硬曲面对象. 你会学到什么 硬质表面工具和技术 细分工作流程 边缘流动控制 正确拓扑 材料设置 Studio Lightn ...

  2. Maya阿诺德室外环境灯光照明和渲染技术学习视频教程

    Maya阿诺德室外环境灯光照明和渲染技术学习视频教程 Maya and Arnold_ Exterior Lighting and Rendering 教程时长 1小时47分 大小 1.1G 1280 ...

  3. 第三代DNA测序及其相关生物信息学技术发展概况

    第三代DNA测序及其相关生物信息学技术发展概况 杨悦  杜欣军  梁彬  郭季冬  程晓真  王硕 摘 要:本文介绍了第三代DNA测序的技术原理及应用现状,并对相关的生物信息学技术进行了综述.第三代测 ...

  4. java mvc框架代码_JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码)

    原标题:JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码) JavaEE体系结构包括四层,从上到下分别是应用层.Web层.业务层.持久层.Struts和SpringMVC是Web层的 ...

  5. 听听阿里老哥对算法工程师技术学习路线的建议

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 来源丨https://zhuanlan.zhihu.com/p/192633890 前言 知乎 ...

  6. 【技术学习】一次Node.js站点渗透

    前言 遇到一个站,后端是Node.js写的,对于这种类型的站点,一般比较难getshell,但也实现了最终的目标,拿到后台权限 信息搜集 先进行常规的信息搜集,子域名扫描.端口扫描.目录扫描等 这个站 ...

  7. 推荐一个很牛逼的 Github 项目:本人历时半年完成的【Java 面试 + Java 后端技术学习指南】,已拿大厂offer

    今天给大家分享一份[Java 面试 + Java 后端技术学习指南]:一份通向理想互联网公司的面试指南,包括 Java,技术面试必备基础知识.Leetcode.计算机操作系统.计算机网络.系统设计.分 ...

  8. 小五思科技术学习笔记之SSH

    下面介绍一下相关概念: SSH的概念: SSH的英文全称为Secure Shell,SSH使用TCP的22号端口,其目的是要在非安全的网络上提供安全的远程登陆和其他安全的网络服务, 为什么要使用SSH ...

  9. 亲爱的,我是一条Linux运维技术学习路径呀。

    根据我的经验,人在年轻时,最头疼的一件事就是决定自己这一生要做什么.在这方面,我倒没有什么具体的建议:干什么都可以,但最好不要写小说,这是和我抢饭碗.总而言之,干什么都是好的:但要干出个样子来,这才是 ...

最新文章

  1. java 邮件 内容_JAVA怎么获取邮件内容
  2. python中plot柱状图-python matplotlib模块: bar(柱状图)
  3. tabBar的图标不被系统渲染
  4. 【Q】之Linux中的防火墙netfilter iptables
  5. Java利用二维数组判断节假日_《剑指offer》面试题3 二维数组中的查找 Java版
  6. 飞秋2010下载在未来讲差异化
  7. 省选专练[NOI2008]志愿者招募
  8. 《深入浅出DPDK》读书笔记(四):并行计算-SIMD是Single-Instruction Multiple-Data(单指令多数据)
  9. mysql主流版本2020_mysql高级2020.7.12-2020.7.13
  10. 不×××,用google!!
  11. 常见Git分支使用方式
  12. Unity Editor编辑器实用扩展
  13. ie9 html5 web worker,HTML5之殇
  14. qcon2016_从QCon San Francisco 2016中学到的重点知识和教训
  15. spark 读取本地文件
  16. 43.属性名和属性值
  17. 美国计算机科学专业申请条件,美国CS计算机科学专业申请条件有哪些?
  18. sqlserver2008 服务 远程过程调用失败
  19. CSDN,我的良师益友
  20. “图发展”与“保安全”:大数据今后怎么玩?

热门文章

  1. 逗女友开心的笑话短信:我出生的概率是二千五百亿分之一...
  2. 拿什么兜底2亿灵活就业者的职业伤害?
  3. mysql保存word文档_mysql 保存word
  4. Android的viewHolder模式
  5. 计算机网络学习笔记——第四章 网络层(上)
  6. thinkphp5 邮箱发送验证码
  7. 郭建利计算机组装与维护,基于VB实现的学校机房U盘实时监控
  8. java求两点之间的斜率
  9. 干啥啥不行,摸鱼第一名
  10. TrendForce:2021年第三季全球前十大IC设计业者营收达337亿美元