目录
前言
一什么是测试
1测试场景
2为什么需要测试
3测试定义
二测试的岗位
1测开与测试
2测试与开发的区别
a工作内容
b难易程度
c其它不同
三测试人员具备的素质
1综合能力
a沟通能力
b快速学习能力
c开发能力
d文字能力
2掌握自动化测试技术
前言
互联⽹技术岗位流传着这样⼀个鄙视链:
算法 > 后端开发 > 前端开发 > 测开 > 测试.....
这只是互联⽹⺠⼯茶余饭后的⽆聊消遣:不同的岗位⼯作的重点不同,每个⻆⾊都不能被代替!
一什么是测试
1测试场景
生活上:到商场买衣服
a)外观测试:挑选符合自己审美的衣服
b)材质测试:考虑衣服是否100%纯棉,是否含涤纶等材质
c)尺码测试:试衣间进行试穿
d)价格测试:开价格是否符合预期
手机上:打开某个购物软件
a)启动测试:点击软件图标,测试软件是否可以正常打开
b)搜索测试:点击输⼊框,输⼊关键词,点击搜索
c)商品测试:点击商品进⼊详情⻚
d)购物测试:点击购买下单成功
学习上:写了一段C++程序
测试代码是否符合预期:
a=1,b=2,返回的c是否等于3
a=1,b=-2,返回的c是否等于-1
...
由此可见,测试处处都有~
2为什么需要测试
而在工作岗位上,有着这样的一群人:软件测试工程师,软件测试开发工程师,游戏测试...
为什么企业要招聘大量的测试人员呢??
企业最终的⽬的是“盈利”:互联⽹企业借助软件/系统来跟用户交互(流量)从⽽获得盈利
用户的使用感受将直接影响企业的盈利情况;若“产品质量”太差将导致⼤量用户的流失,会导致企业的亏损!企业需要测试人员为产品质量做保障!
3测试定义
💡 测试就是验证产品特性是否满足用户的需求
用户的需求决定产品制作的方向;而产品特性只是一个笼统的概念,具体来说有:产品功能,产品性能,产品界面,产品易用性...
二测试的岗位
1测开与测试
测试的岗位主要分为以下两个方面:
软件测试开发⼯程师(测开)
⼯作重⼼为可测试性以及通⽤测试基础框架。编写单元测试框架和⾃动化测试框架。软件测试开发
⼯程师关注质量提升和测试覆盖率。(工作重点业务测试 + 开发自动化测试工具)
测试⼯程师
与软件测试开发⼯程师关系密切,但把用户放在第⼀位来思考。测试⼯程师组织整体测试实践,并
进⾏分析总结,驱动测试执⾏,构建端到端的⾃动化测试。(工作重点业务测试 [点点点的测试])
而在各地招聘软件中的测试有多种名称,但归根到底还是上面两种之一:
那找工作/实习时怎么判断自己找到的岗位是属于测开还是测试呢?
a中大厂基本上是测开
b拿到offer后,问hr/面试官组内有那些技术事务(回答的是基本上就是测开)
💡 ⾼频⾯试题
测试开发⼯程师和测试⼯程师的区别?相同点:
a.都统称为测试⼈员
b.对产品质量负责,保障产品的质量不同点:
测试开发工程师比测试工程师多‘开发’二字;这里的‘开发’不是指业务开发(这是开发人员的职责),而是指开发自动化测试工具,通过效率工具来提升测试效率和质量
2测试与开发的区别
a工作内容
开发⼈员: 测试⼈员:
1. 通过⼀些编程语⾔,如C,C++,C#,Java, 1. 编写测试⽤例,执⾏测试⽤例,发
Python,PHP实现软件的特性 现软件的缺陷,验收缺陷...
2. 修改BUG 2. 利⽤测试⼯具保障软件的质量
b难易程度
开发: 测试:
应届⽣要求掌握语⾔基础、开发框架、数据库、 应届⽣要求掌握语⾔基础、开发框架、数据库、
数据结构、Linux等课程 数据结构、Linux等课程
在职⼈员还需掌握更多中间件如:Redis、 在职⼈员还需掌握更多中间件如:Redis、
rabbitMQ、ES等 rabbitMQ、ES等
要求掌握以上技术并能运⽤在代码开发中 掌握测试技能,测试概念、设计并执行用例
总结:开发⼴度⼩,专业度⾼。测试⼴度⼤,专业度相对较低,⼤型互联⽹企业对测试⼈员的专业要求可能跟开发差不多。
c其它不同
💡 高频面试题
⾛测试岗位为什么还要学习开发知识?
1)测试⼈员也需要编写代码,如⾃动化测试、性能测试、开发测试效率⼯具等。测试⼈员
需要能够看懂代码、了解开发框架。
2)学好开发知识能够提⾼软件测试质量。通过查看代码中数据的⾛向能够更好的从代码层
⾯去发现问题(看懂开发人员的代码;自己要开发自动化测试工具)
三测试人员具备的素质
1综合能力
a沟通能力
测试⼯程师的沟通能⼒会直接影响⼯作开展的效率。良好的沟通能⼒是测试⼯程师获得更好发展
的“敲⻔砖”(⾯试、⼯作都需要沟通)
⾯试的时候,有些同学就存在明明知道是什么,却怎么都表达不出来或者表达不清楚,导致⾯试
结果⽐较差~
b快速学习能力
对不同的业务需求和功能的快速学习和理解能力
未来我们都会经历跳槽,不同的公司,业务不⼀样,所以测试⼈员需要具备快速学习业务的能⼒
对于测试新技术和新⽅法的学习能力
计算机⾏业发展迅速,每⼀个技术⼈员需要时刻保持⼀个学习新技术的能⼒,不断提升⾃⼰,从⽽适应业界的需求
对不同语言的快速学习能力
然后实际在⼯作中,除了在学校学的可能需要接触其他的语⾔,⽐如PHP、GO、Python等
c开发能力
测试⼈员除了保障项⽬质量之外,也需要针对当前业务开发效率⼯具,来提升测试效率和质量。
如⾃动化、性能测试等就是效率⼯具。
d文字能力
测试⼈员需要编写各项⽂档,如测试计划、测试⽤例、测试报告等等
2掌握自动化测试技术
⾃动化测试技术在测试领域中占有举⾜轻重的地位,掌握⾃动化测试技术,可以将测试⼈员从⼤量
重复性的⼿⼯劳动中解放出来,这样可以把更多的精⼒花在更多类型的测试上
如某个软件需要进行版本更新(新增或优化一些功能)时,这个时候为了历史功能不受影响的基础上增加新的功能就需要进行测试,但如果是人为进行测试的话可能需要很多天,而且历史功能测试内容基本上是一样的,如果借助自动化来测试历史功能的话就能极大减少时间与精力!!
💡 高频面试题
为什么⾛测试岗位而不走开发岗位?回答思路:从岗位工作性质分析+个人性格/爱好+个人职业规划三个⽅⾯阐述~
1)个⼈兴趣爱好:从性格和兴趣出发,测试⼯作需要测试⼈员具备良好的耐⼼、细⼼,接
触了测试内容后对测试⼯作产⽣浓厚兴趣2)岗位性质:不管是测试还是测试开发都统称为测试⼈员,测试⼈员主要以保障项⽬测试
质量为主,通过开发⼀些测试效率⼯具(⽐如我们学的⾃动化就是效能⼯具,除此之外还
有我们课件上写的内存泄漏⼯具等等)来提⾼测试效率。⽽软件开发主要以业务编码为主。
3)个⼈职业规划:⼤学期间就树⽴了⾛测试⽅向的⽬标,今后将继续提⾼测试和开发能
⼒,争取在测试领域做出⼀番有影响⼒的事务
不管你是要走测试还是开发岗位,只有努力学习好相关知识内容才有比别人更多机会去选择~