测试工程师的分类
1、功能测试工程师
2、性能测试工程师
3、安全测试工程师
4、自动化测试工程师
5、测试开发工程师
6、高级测试开发工程师
7、测试专家
页面功能测试技能
1、按照产品给的需求文档,原型图,UI图完成测试用例,完成测试用例你要用到:等价类划分、边界值分析法、错误推测法、因果图方法、判断表驱动法、正交试验法、功能图法;同时你要分析业务逻辑,用户操作场景,异常场景,关联业务等。
Q1:
等价类划分、边界值分析法、错误推测法、因果图方法、判断表驱动法、正交试验法、功能图法 分别是是什么意思
页面功能测试要点
WEB功能测试一般关注的点主要可以分UI及易用性测试、表单测试、cookies测试、链接测试、兼容性测试。
UI及易用性测试:
1)各个页面的样式风格是否美观统一,如图片大小、颜色是否统一,页面、文字、图片是否居中等。
2)各个页面的标题和描述是否正确,有无错别字,字体大小、颜色是否正确统一,文字描述准确,无歧义。
3)页面布局统一,美观,间距合理。
4)操作是否符合人们的常规习惯(有没有把相似的功能的控件放在一起,方便操作)。
5)提示信息是否正确,鼠标停留到上面是否正常显示提示。
6)调整分辨率验证页面格式是否错位现象。
7)窗口的最大化、最小化是否能正确切换。
8)执行风险操作时,有确认、删除等提示。
9)快捷键检查:是否支持常用快捷键,如Ctrl+C Ctrl+V Backspace等。
cookies测试:
• cookies是否正常工作。
• 刷新操作是否影响cookies。
• cookies是否按预定时间保存。
表单测试:
表单测试主要是验证对数据的增删改查修改是否正常实现,以及验证码功是否可用。
(1)、注册、登陆、输入信息提交等操作是否正常。
(2)、用户填写的信息是否合理,是否在需求规定的范围内,对于一起日期时间地点等选择是否合理;
(3)、检验默认值的正确性;
(4)、如表单只能接受指定的某些值,测试时跳过这些字符,看系统是否会报错。
(5)、短信验证码、邮箱验证码、字符验证码、图片验证码功能是否正常。
链接测试:
(1)、测试所有链接是否按指示的那样确实链接到了该链接的页面;
(2)、测试所链接的页面是否存在;
(3)、保证Web应用系统上没有孤立的页面(所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问)。
兼容性测试
1)平台兼容性:不同硬件平台(PC、手机、平板等),不同操作系统(linux、windows、macOS、android、ios等)。
2)浏览器兼容性(IE、360、搜狗、chrome、火狐等)
Q2:
1、cookie是什么 、sessionStorage是什么 、localStorage是什么
2、对于客户端(浏览器)他们分别存在什么位置;
二、接口功能测试技能(和功能部分重复部分就不提及了):
1、第一步就是网络协议,认识相关协议:soup,http,https,rpc,ftp,ssh,telnet等常用网络协议。
2、抓包工具:fiddler,Wireshark,burpsuite等工具。
3、接口工具,soupUI,postMan,java语言调用(httpclient jar 包,jmeter jar包),python语言调用(requests库)。
Q3:
1、网络协议是什么?重点了解http,https ,ssh
2、抓包工具fiddler的使用
3、接口工具postMan的使用 接口测试基础全知道
三、自动化测试:
1、分类:UI功能自动化,接口自动化,接口参数化。
2、语言:是的语言,语言,永远是编程语言,不会任何一门语言请不要说自己是测试。至少会一门主流语言:python,java,c++。
3、调试能力:其实还是语言,前端的断点,后端断点。断点调试真的很笨,很费时间,但真的是最有效的,最基础的。
4、分析设计:分析改动不频繁,后期维护成本不是特别高的相关业务做自动化;设计相关测试用例,注意要做到尽量还原用户操作。
5、部署能力:如果你已经会自动化,请尝试搭建部署测试环境。
四、性能测试,你不能仅仅会操作:
1、软件:loadrunner,jmeter等软件的熟练操作,及测试报告的解读,细节细节一定注意细节,了解细节的才能更好的发现报告中指示的问题,别非专业人士提问时,才不至于尴尬(之前我就尴尬过)。
2、编程语言:是的又是语言,脚本的编写是用语言完成的,因为软件总是有自身的局限性,而我们自己的系统总有自己的特殊性,比如jmeter调用dubbo接口,打印日志,特殊的断言方式,特殊的请求方式,这些是需要自己写代码完成的(抱歉我仅仅熟悉jmeter,所以就不介绍loadrunner了)。
3、更深入的了解linux:天哪测试要了解这个,是的,因为系统配置绝对会影响测试结果,你要监控系统的cpu,内存,磁盘读写,网络等诸多情况。
4、各种算法,数据结构:更加的深入,如果开发一时之间无法找出性能问题的所在,你要亲自动手,分析他的代码的算法,数据结构,甚至于修改程序。
5、各种辅助工具:辅助工具做什么,帮你了解程序内存暂用,判断内存溢出,cpu暂用过高,读写数据库,网络长短连接等情况。
6、中间件,数据库使用调优:包括但不限于:tomcat,nginx,node,apache,mysql,redis,oracle,memcached等等。
五、关于敏捷一点理解:
1、什么是敏捷开发:快速的开发,好像是句废话,好吧说说快速,快速体现在:团队成员互相间对彼此进度的了解,以便做出下一步判断,如何能配合着尽快完成任务。
2、持续集成与持续交付(CI 与 CD):CI,要在完成一定任务量后立即做集成,保证代码不报错,可测试;CD,完成CI后测试后的版本可发布,比如大的版本上线,由于当天的版本并不理想,但前一天的版本可能未完成某些小的功能,但是是可交付的,所以CI后进过测试的代码,即可CD。
3、在敏捷中测试重要的作用是保证CD,同时严格要求开发CI前做好自测,前后端不自测的代码,提交后很肯能就变成了联调测试,我们要的应该是继承测试,我们应该在保证质量的同时尽快进度。
4、所有的敏捷建立在了解之上,互相之间了解彼此的能力,才能更好的合作,知道把任务分配给谁,才能快速高质量完成,这是一种默契,需要时间磨合。
最后:
1、点赞。防止以后找不到,想看的时候,在自己主页就能找到了,很方便;
2、关注我。让我们成为长期关系,下一个视频会分享更多的硬核干货;
3、本文章学习资源,均可以免费分享。
微信公众号:程序员一凡。这样的好内容,里面还有近百篇。 谢谢你的支持!
目前测试平台项目研发已经完成并且在Github开源,有兴趣的朋友可以去Github下载
https://github.com/ooqitech/ATP
不要只做收藏从未停止,行动从未开始的人,很多事情,做着做着就无师自通了。如果在做的过程中还能稍微加点思考,稍微看一些别人的经验和做法,成长会更快,效果也会更好!加油吧,测试人!路就在脚下,成功就在明天!
一个用心码了这么多文字的人,往往渴望得到大家的认可。如果你觉得这篇文章对你有帮助,双击屏幕,给我点个赞呀!
更多软件测试资源分享微信公众号:【程序员一凡】
软件测试技术交流群:1079636098