关注公众号【测试开发Guide】
回复「java」:即可获得java经典学习资料,带你轻松入门java编程。
回复「python」:免费获取「python入门」高分好书,业余时间偷偷变牛逼。
回复「面试」:24个常见的测试面试题,你一定不想错过。
回复「书单」:获取2020年软件测试工程师必看的书单
回复「测试用例」:获取本人常用的 Excel 和 Xmind 测试用例模版
回复「测试工具」:获取 mac 和 windows 常用的测试工具
工作4年,一点点感想,做一下记录。
先看目录:
一、测试思想
二、测试工具
三、通识技能
四、业务模型
五、工程能力
文章有点长,可以先收藏。看完之后,别忘了点赞,点赞不是为了我点赞,而是为了你自己点赞,我希望你也能在这个行业越走越好!
假如你是个大神,看到了我写的回答,认同与否,权当饭后谈资即可,我们都不崇尚网络暴力。
还有就是,书本上教的东西,我不会刻板的复制粘贴到这里,我只说从业之后,我自己的思考。
一、测试思想
测试思想,纷繁复杂,不同的书可能写的都不一样。
工作多年一直指导我的测试思想主要有以下两条:
1、整体大于细节!
世上没有绝对完美无缺的系统,只要是人写的代码,线上都不可能没有bug,我们测试工程师能做的只是把bug尽量减少,把风险尽可能降到最低。
1)测试要学会抓住重点,不要把宝贵的测试时间花费在纠结细枝末节上,有这功夫不如多回归几遍核心主流程。
2)要学会梳理系统框架和业务流程,Bug不单单存在于你所负责测试的模块,也有可能存在于依赖的模块上!
2、越早介入测试,越早发现问题,风险越小。
以上两条,我都是有过血泪教训的,为此不少挨过casestudy!
总之,不管测试什么样的系统,测试的时候,还应该多去思考:你所负责测试的这个功能、模块或系统,假如出现问题,那么最坏的情况是怎么样的,会对用户造成多大的影响。为了防止未来出现这种局面,当前有没有什么采取什么措施?
二、测试工具
这里我只列举我用得比较高频的,这里我不会试图去穷举全部的测试工具,我相信我用的这些工具,大部分测试工程师也都在用。
假如说我专门去搜集测试工具,占据很多篇幅,我觉得对于刚入门的新手测试工程师,同样也是不太友好的,毕竟有选择困难症的朋友,看到我的文章会困惑。
总之,假如你是个新手测试工程师,我觉得你能熟练掌握以下的测试工具,应付工作就绰绰有余了。
抓包工具:fiddler、charles、Stream(iOS)、mitmproxy、anyproxy
接口调试:jmeter、postman
终端工具:xshell、iterm2、SecureCRT
数据库:mysql、redis、mongo、hive
数据库连接工具:navicat
编程语言:Python、Java、JavaScript
IDE:PyCharm、Idea、VSCode、微信开发者工具
电脑操作系统:windows、linux、(macOS)
手机操作系统:iOS、Android
自动化:Appium、ATX、Selenium
效率工具:Excel、Alfred(mac)、Wox(windows)
“互联网办公软件”:wiki、jira或禅道、jenkins、gitlab
“升职加薪利器”:PPT
“装逼神器”:markdown
顺带提到一点:测试工具只是辅助测试的一个手段,目的是要提高工作效率,方便我们快速、持续交付。
测试工具最终一定是要落地到业务测试上去的,不要为了学测试工具而学测试工具,不要为了开发测试工具而开发测试工具,假如不能给业务带来价值,那做这么多的意义又在哪里呢?
另外,假如说团队里面真的必须让你负责开发某个测试工具,真的不要马上“下笔如有神”,写代码很容易,但是设计好的架构非常难的。正确的做法是,先调研大公司有没有相关的解决方案,并看有没有成熟的开源框架可以解决当前的问题。能开奔驰宝马,还要什么自行车。
学习优秀的测试工具,不仅要会用,还要懂得架构设计思路和框架底层的实现原理,经验都是这样慢慢积累的。
假如你做出来的测试工具,只有你自己一个人用,那么你想怎么设计都可以;
假如你做出来的测试工具想要服务于整个业务部门甚至整个公司,那你还得考虑你所设计的测试工具的易用性和容量。
测试工具还有一个重要的要素:测试标准化。
说通俗点,就是要有一些关键指标去评估你测试的系统的好坏。
如果没能输出一些有用的测试指标,又怎能证明你设计的测试工具是有用的呢?
测试进阶的道路上,总会有人不明白这些道理。知识学不完,反倒自己先自满了。
PS:我一般都是从testerHome和Github去挖掘好用的测试工具,并且尝试着在巨人的肩膀上二次开发
三、通识技能
很庆幸,我近两年去的每一家公司,都是有开发的代码权限的。这样,我能够学到不少开发的技术,能够从diff代码中,大致判断测试范围和回归范围。
作为一个测试工程师,不能只是处在黑盒的角度去思考问题,必要的时候,需要掌握一定的代码能力,站在白盒的角度去评判代码的质量。这样才能更有效的保证质量。
我把python作为了我的第一门编程语言,最开始是跟着廖雪峰官网上的教程去学习。当入门之后,又开始学习爬虫和web。
当你学会一门编程语言之后,再去学别的编程语言,会发现都是有共通的地方。
四、业务模型
测试只是一个岗位,你除了学习岗位相关技能之外,肯定还是得要特别熟悉公司业务的。
这个只能慢慢积累。
另外,尽量不要跳槽太频繁,试想一下,每年都跳槽的人,他们又怎么可能熟悉业务呢?
面试的时候,面试官很多时候都是从你的简历上,去问一些你的项目经历。试想一下,你不熟悉你测试的业务,你又怎么能答得好这类问题呢?
五、工程能力
测试工程师的工程能力也是很重要的,工程能力在我看来,就是解决问题的能力。
遇到问题,你能知道排查的步骤,能够自己定位到bug的位置,甚至知道怎么去改。久而久之,你在团队里面的影响力会越来越大。
▼▼▼
以上,是我几年测试职场的一些经验,如果有不对的地方,欢迎在下方留言。
希望能够对大家有所帮助。