【测试开发/测试】初识测试:测试入门常见概念全知道
🔥个人主页:艾莉丝努力练剑
❄专栏传送门:《C语言》、《数据结构与算法》、C语言刷题12天IO强训、LeetCode代码强化刷题、洛谷刷题、C/C++基础知识知识强化补充、C/C++干货分享&学习过程记录、测试开发要点全知道、Linux操作系统编程详解、笔试/面试常见算法:从基础到进阶
🍉学习方向:C/C++方向学习者
⭐️人生格言:为天地立心,为生民立命,为往圣继绝学,为万世开太平
目录
前言
摘要
一、鄙视链并不存在
二、处处都有测试
2.1 生活处处有测试
三、为什么需要软件测试
3.1 原因
3.2 软件测试的定义
四、测试的岗位
4.1 测试的岗位
4.1.1 软件测试开发工程师
4.1.2 测试工程师
4.1.3 测试的概念以及两种岗位的区别
4.2 投递测试时的迷惑性
4.2.1 投递时各式各样的测试名称
4.2.2 投递时出现各式各样的测试名称的原因
4.2.3 怎么确定自己找的是测试开发还是纯测试
4.2.4 测试开发/测试岗位高频面试题
软件测试开发工程师和测试工程师的区别?
相同点:
不同点:
4.3 测试岗位的薪资待遇
4.4 软件测试和开发的区别
4.4.1 工作内容
4.4.2 面试要求的难易程度
4.4.3 工作环境
4.4.4 薪水
4.4.5 其他区别
4.4.7 高频面试题
4.5 开发人员和测试人员的冲突问题
4.6 导师问题
五、优秀的软件测试人员具备的素质
5.1 综合能力
5.1.1 沟通能力
5.1.2 快速学习能力
5.1.3 开发能力
5.1.4 文字能力
5.2 掌握自动化测试技术
5.3 测试用例的设计能力
5.4 探索性思维
5.5 兴趣很重要
5.6 责任感
5.7 高频面试题
六、本文涉及到的三个高频面试题
6.1 软件测试开发工程师和测试工程师的区别?
6.2 走测试岗位为什么还要学习开发知识?
6.3 为什么走测试岗位而不走开发岗位?
结尾
前言
测开与开发的学习内容和技能相似,但测开还需掌握测试相关技能。开发钻研深度,测开注重广度。测开负责开发效率工具提升测试质量,与测试工程师同属测试人员,共同保障产品质量。两者工作环境相同。不同测试岗位本质相同,测开与测试工程师的区别在于是否开发效率工具。软件开发生命周期包括需求分析、设计等阶段。
摘要
本文我们将会围绕以下这些来介绍测试开发/测试相关的内容——
1、开发岗位的开发,是指业务开发,测开的开发是指开发效率工具;
2、测开也要学语言基础、开发框架、数据结构、数据库、Linux,和开发学的一样,此外,还要学习并掌握测试概念、设计测试用例、执行测试等技能。
(1)基础部分和开发学习的内容是一样的;
(2)开发的学习是广度小、深度大,专业度高;测试的学习是广度大、深度小,专业度要求相对来说低(大型互联网公司测试和开发要求差不多,甚至测试要求比开发高);
(3)开发和测试工作环境是一样的,方便开发人员和测试人员沟通,设备也是一样的(显示屏+笔记本)。
3、招聘网站上面的各种测试的岗位(像游戏测试、性能测试、自动化测试、测试工程师等等)本质是一样的,都是测试岗位,只是投递
4、测试开发工程师和测试工程师的区别——
相同点:
(1)统称为测试人员;(2)对产品质量负责,保证产品的质量。
不同点:
测试开发比测试多了开发两个字,而不是业务开发,业务开发是开发人员的职责,这里的这个开发是指效率工具开发,通过效率工具来提升测试效率和测试质量,避免不必要的重复测试,解放测试人员,比如自动化、性能测试就属于效率工具。
5、软件开发的生命周期:
需求分析→计划→设计→编码→测试→运行维护
一、鄙视链并不存在
传说,互联网技术岗位流传着这样⼀个鄙视链:算法 > 后端开发 > 前端开发 > 测开 > 测试.....
是不是这样呢?当然不是,这只不过是互联网民工茶余饭后的无聊消遣,事实上,不同的岗位工作的重点不同,每个角色都不能被代替。
二、处处都有测试
2.1 生活处处有测试
测试在生活中处处可见!
我们可以举出很多生活中的测试的案例——
买衣服就有以下这些测试——
再比如某款知名的大型购物软件——
再比如,有如下这样一个Java程序——
由此可见,测试在日常生活中以及学习中都处处可见。
三、为什么需要软件测试
3.1 原因
企业为何需要招聘大量的测试人员呢?
3.2 软件测试的定义
定义:软件测试就是验证软件产品特性是否满足用户的需求。
四、测试的岗位
肯定会有uu好奇:测试的岗位有哪些?
4.1 测试的岗位
测试的岗位主要分为以下两个方面——
4.1.1 软件测试开发工程师
工作重心为可测试性以及通用测试基础框架。编写单元测试框架和自动化测试框架。软件测试开发工程师关注质量提升和测试覆盖率。
4.1.2 测试工程师
测试工程师与软件测试开发工程师关系密切,但把用户放在第一位来思考。测试工程师组织整体测试实践,并进行分析总结,驱动测试执行,构建端到端的自动化测试。
4.1.3 测试的概念以及两种岗位的区别
4.2 投递测试时的迷惑性
4.2.1 投递时各式各样的测试名称
我们在投递简历时,会看到各种各样的测试名称,形如以下这些:
前面不是说测试的岗位就分为测试开发工程师和测试工程师吗?
BOSS直聘网站提供的测试岗位名称:
4.2.2 投递时出现各式各样的测试名称的原因
不同的企业对于测试的命名不同,不管是测试工程师、功能测试、移动端测试、客户端测试等等都是测试岗位,性质要不就是测试工程师,要不就是测试开发工程师。
注意:uu们后续投递测试岗位时不用关注岗位名称和岗位要求,对于校招生来说是没有明确的语言或者技能要求的,面试主要从简历上写的内容进行考察。
4.2.3 怎么确定自己找的是测试开发还是纯测试
4.2.4 测试开发/测试岗位高频面试题
高频面试题
软件测试开发工程师和测试工程师的区别?
相同点:
1、都统称为测试人员;
2、对产品质量负责,保障产品的质量。
不同点:
测试开发比测试多“开发”二字,而这个开发并不是指业务开发,因为业务开发是开发人员的主要职责,这里的开发指的是需要开发测试效率工具,通过效率工具来提升测试效率和测试质量,比如我们说的自动化、性能测试等就属于效率工具。
4.3 测试岗位的薪资待遇
中小企业总体比研发低,自动化等专业测试和研发基本无差距。大厂研发测试薪资基本无差别。
下面我们以分别位于北京海淀区的融360和位于北京朝阳区的百度的测试岗位应届生薪资为例:
以下是从某网站根据提供的样本统计出来的软件测试和开发的平均校招薪资,但是这是3年多以前的数据了,而且平均数是最不可信的,我们这里只是为了参考一下:
4.4 软件测试和开发的区别
4.4.1 工作内容
4.4.2 面试要求的难易程度
4.4.3 工作环境
很多公司,测试人员和开发人员都是坐在一个办公楼层的不同区域,所以他们的工作环境、工作 设备基本都是一样的(基本上就是一台显示器+一个笔记本)。
这么安排也是为了方便测试人员和开发人员交流。
4.4.4 薪水
这个问题刚才在【4.3 测试岗位的薪资待遇】已经谈过了。
有些大的互联网公司,测试人员的薪资待遇是和面试的表现挂钩的,如果说面试的时候表现很强,那么虽然你面试的是测试岗位,薪资待遇也会高于开发岗位,比如百度公司。
4.4.5 其他区别
测试人员经常会进行测试动作,而开发人员进行调试动作,这里的调试和测试是同一个含义吗?
维度 | 调试 | 测试 |
目的 | 调试的任务是定位并且解决程序中的问题 | 测试的任务是发现程序中的缺陷 |
参与角色 | 主要由开发人员完成 | 测试主要是由测试人员和开发人员来执行,黑盒测试主要由测试人员完成、单元/集成测试主要是由开发人员执行 |
执行阶段 | 开发阶段 | 测试贯穿整个软件开发生命周期 |
4.4.7 高频面试题
问:走测试岗位为什么还要学习开发知识?
1)测试人员也需要编写代码,如自动化测试、性能测试、开发测试效率工具等。测试人员需要能够看懂代码、了解开发框架。
2)学好开发知识能够提高软件测试质量。通过查看代码中数据的走向能够更好的从代码层面去发现问题。
4.5 开发人员和测试人员的冲突问题
承接上一个话题(在【4.4.5 其他区别】提到的调试和测试问题),我们接着来谈谈开发人员和测试人员的冲突问题(也包含测试人员绩效考核指标相关的问题)——
4.6 导师问题
入职后,一般公司会安排导师有带着大家尽快融入到测试工作中,这个导师和大家理解的“导师”可能有偏差,大多数情况下,导师会让大家通过看公司的文档来尽快上手工作。
导师不仅要带新人,还要完成自己的工作,导师还会决定今后能不能转正!!!
在工作中,个人解决问题的能力非常重要!!!
五、优秀的软件测试人员具备的素质
5.1 综合能力
5.1.1 沟通能力
5.1.2 快速学习能力
5.1.3 开发能力
5.1.4 文字能力
5.2 掌握自动化测试技术
自动化测试技术在测试领域中占有举足轻重的地位,掌握自动化测试技术,可以将测试人员从⼤量重 复性的手工劳动中解放出来,这样可以把更多的精力花在更多类型的测试上。
5.3 测试用例的设计能力
测试用例设计能力是指,无论对于什么类型的测试,都能够设计出高效地发现缺陷,保证产品质量的优秀测试用例。
我们如何提高测试用例设计的能力?
5.4 探索性思维
测试工程师在执行测试的过程中不断学习被测系统,结合自己的经验、知识、直觉,进行系统的错误猜测和逻辑推理,整理和分析出更多有针对性的的测试关注点。
探索性思维的质量取决于测试人员的经验。
5.5 兴趣很重要
兴趣是就业择岗的重要因素之一,选择了但是仍然对个人的工作性质不感兴趣,可想而知,这样的选择也不会走的太远。
5.6 责任感
责任感是任何工作的都需要的,对于测试工作者而言:
测试往往是产品质量的最后的把关者——由于测试工作成效很难衡量,测试用例执行、bug数目的多少都无法说明产品的质量是否合格;虽然在敏捷模型中团队中每个人都需要对产品质量负责,但是产品的测试质量是跟测试人员那密切相关的。所以,责任感是最重要的测试必备素质之一。
压力——测试工作者,特别是属于互联网行业需要能够抗住各种压力。
5.7 高频面试题
问:为什么走测试岗位而不走开发岗位?
回答思路:从岗位工作性质分析 + 个人性格/爱好 + 个人职业规划三个方面阐述。
1)个人兴趣爱好:从性格和兴趣出发,测试工作需要测试⼈员具备良好的耐心、细心,接触了测试内容后,我对测试工作产生了浓厚兴趣;
2)岗位性质:不管是测试还是测试开发都统称为测试人员,测试人员主要以保障项目测试质量为主,通过开发一些测试效率工具(比如我们学的自动化就是效率工具,除此之外还有内存泄漏工具等等)来提高测试效率。而软件开发主要以业务编码为主;
3)个人职业规划:我在大学期间就树立了走测试开发/测试方向的目标,今后我也将继续提高测试和开发能力,争取在测试领域做出一番有影响力的事务!
六、本文涉及到的三个高频面试题
6.1 软件测试开发工程师和测试工程师的区别?
6.2 走测试岗位为什么还要学习开发知识?
6.3 为什么走测试岗位而不走开发岗位?
结尾
结语:希望这篇文章能够帮助大家重新认识【测试开发/测试】这个岗位。如果大家觉得有帮助的话,不要忘记给博主“一键四连”哦!