一、软件测试工程师到底做什么
最简单的例子,买了房,装修完,我们会看看装修样式,打开水龙头检查是否有水,检查厨房卫生间是否做了防水,检查电源开关。这就是简单的测试的例子。借用百度百科的定义:软件测试(英语:SoftwareTesting),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。翻译一下,测试的工作就是验证需求,把不合格的东西反馈出去,要求开发修改。二、软件测试需要学习什么
软件测试要学习的内容会随着IT的发展而发生变化,但是万变不离其宗,根据我的经验无非分为以下几个方面:
功能测试:功能测试又分页面功能和接口功能测试。页面功能测试注重的就是业务流程,充分的的熟悉业务能够决定测试用例的充分性,也就决定了页面功能测试的结果。接口功能测试注重的就是对内和对外的一致性,保证系统内部接口间的调用,系统外部与系统内部间的调用的正常调用,参数一致,存储数据的一致。功能测试的中用到的主要工具,有抓包工具,日志查看工具(大部分是ssh连接工具),接口请求工具,App测试用到的adb工具。自动化测试:目的是提高交付速度和质量。自动化测试是需要技术手段实现的,可以用工具,可用代买实现,例如:代码实现,常见的有Selenium,Appium,Calabash,Cafe等等,多种多样,现在比较流行的就是Selenium,Appium。工具实现,robotframework和ride,soupUI,postman,jmeter。更推荐代码实现,毕竟程序能力才是王道,会写代码的是程序员,不会的你只是个IT人。性能测试:各种概念很多,负载测试,压力测试,基准测试,容量测试等等好多,其实最终目的就是在保证一定量的请求某一段时间内系统能正常运行,或者测试当前系统在一定时间内能承受最大请求数是多少,前提都是响应时间在要求范围内,返回结果正确。测试工具同样很多,包括,loadrunner,Apachejmeter,WebLoad,ApacheBenchmark等等,也有很多云工具平台,大同小异,推荐jmeter。但性能测试工具学习仅仅是个基础,还要学习操作系统,中间件,网络等各种工具的分析,分析出系统的瓶颈,最终优化,使系统达到业务需求标准。+安全测试:面对网络世界,别有用心的人不择手段对网络服务发起攻击,达到不可告人的目的,所以安全测试就是为了防范这些攻击,达到保护程序的作用。安全扫描工具有:appcan,OWASPZAP,burpsuite,Wappalyzer,HackBar。选择一款到两款,学习就可以。但工具之后是必要学习的安全理论知识。
三、软件测试的未来
看见网上说测试可以转向开发方向或者产品方向,依个人观点看,转向开发是完全没必要的,测试做的好不比开发薪资待遇差多少,而且能更深入的了解业务知识,所以在对产品有深入了解后,转向一个高级产品经理的方向还是可以的。测试技术的深入钻研,可以向上测试架构师的方向也是很好的,但是前提是你有一颗年轻的心,对新技术有不断的学习。这个方向需要有扎实的基础,技术这东西都是万变不离其中,就是一种逻辑思维的体现,和规则的适应,不同的编程语言就是不同的规则,而核心算法是不可能改变的。培训方向也是一个好的选择,现在培训机构林立,把自己多年的经验梳理成体系机构传递给新人,继续发光发热。顺便的谈一下35岁现象,一方面是国内IT企业都是上层应用,这些应用不需要丰富的经验积累,而是需要快速的开发,快速的上线,以达到快速占领市场的商业目的,这样的应用技术含量并不是很高,就算有些难度,企业也会招聘一些高智商的人解决,另一部分更需要的是大多数年轻的人充沛的精力加班码砖;另一方面,毕业生近几年不断增加,培训机构也不断增加,导致的了低级人才并不缺乏;最后一方面,好多人上班划水,下班刷视频,导致了虽然有足够的工作年限,但是工作年限和工作能力并不匹配,甚至不如培训出来的新人,性价比特别低,这样老板自然会追求新人,所以你想成为常青树,就要努力学习,任何时间都不晚,与年龄无关,与环境无关,与内心有关。最后想说,安排好学习,工作,生活的关系,从现在做起,机遇等待的是一个勤奋的,自律的,有追求的人。预览时标签不可点收录于话题#个上一篇下一篇