(1)认识测试
学习路线
- 认识测试
- 概念篇
- bug篇
- 用例篇
- 测试分类
- 自动化测试概念篇
- 自动化测试常用函数
- 自动化测试实战篇
- 性能测试概念篇
- 性能测试工具篇
1~ 5为概念篇,6 ~ 8为自动化测试工具selenium,9 ~ 10为性能测试jmeter
- 概念篇:除了专业的术语和常见的概念解释外,还有很多软件测试的方法。除此之外,更重要的是转变大家的思想,要让大家具备测试的思想(理解即可)
本节目标
- 什么是测试
- 测试的岗位有哪些
- 软件测试和开发的区别
- 优秀的测试⼈员需要具备的素质
一、什么是测试
测试在⽣活中处处可⻅
1. 生活中的测试场景
案例一:商场买衣服,买⾐服的整个过程中都伴随着测试⾏为
- 外观测试:挑选符合个人审美的衣服
- 试穿测试:选择尺码,试穿之后⾐服对个⼈的外观是否有提升
- 面料测试:纯棉、涤纶、布料…(即衣服是否透气)
- 价格测试:询问价格是否符合预期
案例二:使用某购物软件,购买商品的整个过程也都伴随着测试⾏为
- 启动测试:点击软件图标,测试软件是否可以正常打开
- 搜索测试:点击输⼊框,输⼊关键词,点击搜索
- 商品测试:点击商品进⼊详情⻚
- 购物测试:点击购买下单成功
案例三:对算法做测试
- 常规测试:输入常见值,看输出是否符合预期
- 边界测试:输入临界值,看输出是否符合预期
由此可⻅,测试不仅在⽇常⽣活中以及学习中都处处可⻅!
2. 为什么需要软件测试
企业为何需要招聘⼤量的测试⼈员呢?
- 企业最终的⽬的是“盈利”,互联⽹企业借助软件/系统来跟用户交互从⽽获得盈利,也就是说企业的受众群体主要是⼴⼤的使⽤用户,⽽用户的使⽤感受将直接影响企业的盈利,若产品质量太差将导致⼤量用户的流失,所以企业⾮常重视测试。
3. 软件测试定义
软件测试就是验证软件产品特性是否满足用户的需求(提升用户使用的满意度)
- 产品特性:功能、性能、界面、易用性……
二、测试的岗位有哪些
测试的岗位主要分为以下两个⽅⾯:
1、软件测试开发⼯程师(简称测开)
- ⼯作重⼼为可测试性以及通⽤测试基础框架。编写单元测试框架和⾃动化测试框架。软件测试开发⼯程师关注质量提升和测试覆盖率。
- 工作重点就是业务测试,开发测试效率工具(自动化、性能测试、覆盖率……等)
- 效率工具一方面可以提高测试效率,另一方面可以提高测试质量
- 效率工具是测试人员开发出来的,测试人员也需要进行后期的工具管理,因此效率工具不能替代测试人员!
- 注:对于测试人员来说,是没有权限开发业务代码的
2、测试工程师
- 与软件测试开发⼯程师关系密切,但把⽤⼾放在第⼀位来思考。测试⼯程师组织整体测试实践,并进⾏分析总结,驱动测试执⾏,构建端到端的⾃动化测试。
- 工作重点就是业务测试
- 对于纯测试工程师,更多测试操作是点点点的测试
BOSS直聘⽹站提供的测试岗位名称,我们会看到各种各样的测试名称。这只是不同的企业对于测试的命名不同,不管是测试⼯程师、功能测试、移动端测试、客⼾端测试等等都是测试岗位,性质要么是测试⼯程师,要么是测试开发⼯程师。
tip:软件测试开发⼯程师和测试⼯程师的区别
- 相同点:
- 都统称为测试人员
- 对产品质量负责,保障产品的质量
- 不同点:
- 测试开发比测试多“开发”二字,而这个开发并不是指业务开发,因为业务开发是开发人员的主要职责,这里的开发值的是需要开发测试效率工具,通过效率工具来提升测试效率和测试质量,比如我们的自动化、性能测试等就属于效率工具。
测试小白进入公司的工作流程:
- 熟悉工作和测试流程
- 通过业务测试熟练个人的测试能力
- 掌握各种各样的工具提高测试质量和效率
- 开始逐步学习开发各种效率工具
找工作/找实习的时候怎么确定自己找的是测开还是测试呢?
- 中大厂基本都是测开
- 先拿offer,询问hr/面试官组内有哪些技术业务
三、软件测试和开发的区别
1. 工作内容
- 绝大多数走开发岗位的同学进入企业后做的都是业务开发
- 走测试岗位的同学进入企业后做的就是业务测试
开发人员 —— 编写代码、进行软件设计、调试、代码审查、单元测试、集成、部署和运维
测试人员 —— 测试过程中发现bug、测试用例、测试计划、测试报告……
产品经理 —— 写需求文档的人(发布任务的人)
抖音 —— 测试
- 先了解抖音是做什么的(业务是什么)
- 了解组内做测试的具体形式和步骤是什么
- 做业务测试的步骤
……
2. 难易程度上
开发广度小,专业度⾼。测试广度⼤,专业度相对较低,⼤型互联⽹企业对测试⼈员的专业要求可能跟开发差不多。
现在的大厂对于测试人员的技术能力要求甚至比开发还要高。因为大厂更希望产品的质量更高。(注:并不是所有大厂)
3. 工作环境
很多公司,测试⼈员和开发⼈员都是坐在⼀个办公楼层的不同区域,所以他们的⼯作环境,⼯作设备基本都是⼀样的
- 同一业务线的测试人员和开发人员,通常都是坐在一起的,因为测试人员和开发人员的沟通会比较频繁
4. 薪水
中⼩企业总体⽐研发低,⾃动化等专业测试和研发基本⽆差距。⼤⼚研发测试薪资基本⽆差别
5. 其他不同
测试⼈员经常会进⾏测试动作,⽽开发⼈员进⾏进⾏调试动作,调试和测试是同⼀个含义吗?
高频面试题:走测试岗位为什么还要学习开发知识?
- 测试⼈员也需要编写代码,如⾃动化测试、性能测试、开发测试效率⼯具等。测试⼈员需要能够看懂代码、了解开发框架
- 学好开发知识能够提⾼软件测试质量。通过查看代码中数据的⾛向能够更好的从代码层⾯去发现问题。
四、优秀的软件测试人员具备的素质
面试题:
- 为什么想走测试而不是开发?
- 你觉得自己做测试有什么优势?
- 你具备什么样的特点?
……
1. 综合能力
1、沟通能力
- 测试⼯程师的沟通能⼒会直接影响⼯作开展的效率。良好的沟通能⼒是测试⼯程师获得更好发展的“敲⻔砖”(⾯试、⼯作都需要沟通)
2、快速学习的能力
- 对不同的业务需求和功能的快速学习和理解能⼒。
3、开发能力
- 测试⼈员除了保障项⽬质量之外,也需要针对当前业务开发效率⼯具,来提升测试效率和质量。如⾃动化、性能测试等就是效率⼯具。
4、文字能力
- 测试⼈员需要编写各项⽂档,如测试计划、测试⽤例、测试报告等等
2. 掌握自动化测试技术
自动化测试是中大厂必不可少的技术事务
自动化测试只是一个统称,它包括接口自动化、UI自动化(web自动化、移动端自动化)……等
- 接口自动化能够自动的去请求接口并校验接口返回属性是否符合预期结果
- UI自动化能够自动在界面或者移动端上模拟人的行为进行操作,并检查元素和操作等是否符合预期结果
3. 测试用例的设计能力
测试用例设计能力是指,无论对于什么类型的测试,都能够设计出高效地发现缺陷,保证产品质量的优秀测试用例。
如何提⾼测试⽤例设计的能⼒?
- 掌握设计测试⽤例的⽅法
- 阅读好的测试⽤例设计案例
- .多写多练,积累,总结
4. 探索性思维
测试⼯程师在执⾏测试的过程中不断学习被测系统,结合自己的经验,知识,直觉, 进⾏系统的错误猜测和逻辑推理,整理和分析出更多有针对性的的测试关注点。 探索性思维的质量取决于测试⼈员的经验。
tip:软件测试人员只能极大程度上保证产品不会出现问题,但是并不能保证产品一定就没有问题了!
5. 兴趣
兴趣是就业择岗的重要因素之⼀,选择了但是仍然对个⼈的⼯作性质不感兴趣,可想⽽知,这样的选择也不会⾛的太远
6. 责任感和压力
责任感是任何⼯作的都需要的,对于测试⼯作者⽽⾔:
测试往往是产品质量的最后的把关者;由于测试⼯作成效很难衡量,测试⽤例执⾏、bug数⽬的多少都 ⽆法说明产品的质量是否合格;虽然在敏捷模型中团队中每个⼈都需要对产品质量负责,但是产品的测试质量是跟测试⼈员那密切相关的。所以,责任感是最重要的测试必备素质之⼀。
压⼒,测试⼯作者,特别是属于互联⽹⾏业需要能够抗住各种压⼒
高频面试题:为什么走测试不走开发?
回答思路:从岗位⼯作性质分析+个⼈性格/爱好+个⼈职业规划三个⽅⾯阐述
- 个⼈兴趣爱好:从性格和兴趣出发,测试⼯作需要测试⼈员具备良好的耐⼼、细⼼,接触了测试内容后对测试⼯作产⽣浓厚兴趣
- 岗位性质:不管是测试还是测试开发都统称为测试⼈员,测试⼈员主要以保障项⽬测试质量为主,通过开发⼀些测试效率⼯具(⽐如我们学的⾃动化就是效能⼯具,除此之外还有我们课件上写的内存泄漏⼯具等等)来提⾼测试效率。⽽软件开发主要以业务编码为主。
- 个⼈职业规划:⼤学期间就树⽴了⾛测试⽅向的⽬标,今后将继续提⾼测试和开发能⼒,争取在测试领域做出⼀番有影响⼒的事务