文章目录
- 软件测试是干什么的?
- 软件测试开发工程师是干什么的?
- 测试工程师是干什么的?
- 软件测试开发工程师和测试工程师的区别
- 效率工具能不能替代测试人员?
- 测开人员的上手路线
- 找工作/实习的时候怎么确定自己找的是测开还是测试呢?
- 软件开发与软件测试
- 开发和测试出现冲突怎么办?
- 测试与调试的区别
- 软件测试的简单流程
- 走测试岗位为什么还要学习开发知识?
- 优秀的软件测试人员需要具备的素质
- 非技术方面的基本能力
- 自动化测试技术
- 测试用例的设计能力
- 几个比较玄乎的能力
- 探索性思维
- 兴趣
- 责任感和压力
- 面试题:为什么走测试不走开发
软件测试是干什么的?
软件测试主要用来验证软件产品特性是否满足用户的需求
软件测试开发工程师是干什么的?
软件测试开发工程师简称测开。软件测试开发工程师是搞开发的!具体开发啥呢?开发一些测试效率工具,比如自动化测试工具、性能测试工具等
测试工程师是干什么的?
主要是在app中点点点,以一个用户的视角,去看这个软件有啥问题
软件测试开发工程师和测试工程师的区别
相同点:
- 都统称为测试人员
- 对产品质量负责,保障产品的质量
不同点:
- 测试开发比测试多“开发”二字,而这个开发并不是指业务开发,因为业务开发是开发人员的主要职责,这里的开发指的是需要开发测试效率工具,通过效率工具来提升测试效率和测试质量,比如我们的自动化、性能测试等就属于效率工具。
效率工具能不能替代测试人员?
效率工具是测试人员开发出来的,测试人员不仅负责开发测试工具,也需要负责后期的工具管理,因此效率工具不能替代测试人员!!!
测开人员的上手路线
- 熟悉工作和测试流程
- 通过业务测试熟练个人的测试能力
- 掌握各种各样的工具提高测试质量和效率
- 开始逐步学习开发各种效率工具
找工作/实习的时候怎么确定自己找的是测开还是测试呢?
- 中大厂基本都是测开
- 先拿offer,询问hr/面试官组内有哪些技术事务,如果他给你说了不少技术,那这就是测开
软件开发与软件测试
分类 | 开发 | 测试 |
---|---|---|
工作内容 | 1. 通过如C、C++、C#、Java、Python、PHP等编程语言实现软件特性 2. 修改BUG | 1. 编写、执行测试用例,发现并验收软件缺陷等 2. 利用测试工具保障软件质量 |
应届生要求 | 掌握语言基础、开发框架、数据库、数据结构、Linux等课程 | 掌握语言基础、开发框架、数据库、数据结构、Linux等课程 |
在职人员要求 | 掌握更多中间件如Redis、rabbitMQ、ES等,且能运用技术进行代码开发 | 掌握测试技能(测试概念、设计测试用例、执行测试等);掌握更多中间件如Redis、rabbitMQ、ES等 |
工作环境 | 与测试人员同办公楼层不同区域,工作设备基本一样 | 与开发人员同办公楼层不同区域,工作设备基本一样 |
薪水 | 中小企业总体比测试高,大厂与测试基本无差别 | 中小企业总体比研发低,自动化等专业测试和研发基本无差距,大厂与研发薪资基本无差别 |
总结 | 开发广度小,专业度高 | 测试广度大,专业度相对较低,大型互联网企业对测试人员的专业要求可能跟开发差不多 |
开发和测试出现冲突怎么办?
测试与调试的区别
维度 | 调试 | 测试 |
---|---|---|
目的 | 调试的任务是定位并且解决程序中的问题 | 测试的任务是发现程序中的缺陷 |
参与角色 | 主要由开发人员完成 | 测试主要是由测试人员和开发人员来执行,黑盒测试主要由测试人员完成、单元/集成测试主要是由开发人员执行 |
执行阶段 | 开发阶段 | 测试贯穿整个软件开发生命周期 |
软件测试的简单流程
- 了解测试需求
- 编辑测试用例
- 指定测试计划(要测哪些功能点、要测多长时间)
- 具体执行测试(线下测试——还没发布时进行测试)
- 上线之后再测试
走测试岗位为什么还要学习开发知识?
1)测试人员也需要编写代码,如自动化测试、性能测试、开发测试效率工具等。测试人员需要能够看懂代码、了解开发框架。
2)学好开发知识能够提高软件测试质量。通过查看代码中数据的走向能够更好的从代码层面去发现问题。
举个粒子:在双11期间的09:00~10:00期间可以抢到一个红包
相关业务代码如下
if(dateTime > 09:00 && dateTime < 10:00)
{//发放红包
}
测试人员执行测试:
1)手动构造一个合理的时间,查看是否可以抢红包。比如09:30
2)手动构造一个不合理的时间,查看是否可以抢红包。比如10:30
09:00 10:00这两个时刻,还能抢到红包吗?抢不到,因为代码中没带等号
优秀的软件测试人员需要具备的素质
非技术方面的基本能力
-
沟通能力
- 测试工程师的沟通能力会直接影响工作开展的效率。良好的沟通能力是测试工程师获得更好发展的“敲门砖”(面试、工作都需要沟通)
- 面试的时候,有些同学就存在明明知道是什么,却怎么都表达不出来或者表达不清楚,导致面试评价比较差。
-
快速学习能力
- 对不同的业务需求和功能的快速学习和理解能力。
- 未来我们同学都会经历跳槽,不同的公司,业务不一样,所以测试人员需要具备快速学习业务的能力
- 对于测试新技术和新方法的学习能力
- 计算机行业发展迅速,每一个技术人员需要时刻保持一个学习新技术的能力,不断提升自己,从而适应业界的需求
- 对不同语言的快速学习能力
- 大多同学在工作之前基本掌握一到两门语言,比特的同学基本都掌握C、C++或者C、JAVA。然后实际在工作中,可能需要接触其他的语言,比如PHP、GO、Python等。
- 对不同的业务需求和功能的快速学习和理解能力。
-
开发能力
- 测试人员除了保障项目质量之外,也需要针对当前业务开发效率工具,来提升测试效率和质量。如自动化、性能测试等就是效率工具。
-
文字能力
- 测试人员需要编写各项文档,如测试计划、测试用例、测试报告等等。
自动化测试技术
自动化测试又可以具体细分为:接口自动化、UI自动化(web自动化、移动端自动化),其中
- 接口自动化能够自动的去请求接口并校验接口返回属性是否符合预期结果;
- UI自动化能够自动在界面或者移动端上模拟人的行为进行操作,并检查元素和操作等是否符合预期结果。
测试用例的设计能力
设计测试用例是测试岗位面试/笔试必考题!!!!
举个例子:要判断一个年轻人好不好,我们可以给他下面几个测试
1)请吃饭,看他会不会主动买单
2)请他爬山,看他会不会半途而废
3)请他玩密室,看他会不会吓哭
4)老奶奶过马路,看他扶不扶
(以上4点为测试用例)
测试用例设计能力是指,无论对于什么类型的测试,都能够设计出高效地发现缺陷,保证产品质量的优秀测试用例。
如何提高测试用例设计的能力呢?
- 掌握设计测试用例的方法
- 阅读好的测试用例设计案例
- 多写多练,积累,总结
几个比较玄乎的能力
探索性思维
测试工程师在执行测试的过程中需要不断学习被测系统,结合自己的经验,知识,直觉,进行系统的错误猜测和逻辑推理,整理和分析出更多有针对性的的测试关注点。探索性思维的质量取决于测试人员的经验。
生活中有很多要做的事情都需要人们具备探索性思维。
比如炒菜,油温的大小控制,火候大小的控制,调味品量的控制都非常考验厨师的探索性思维。炒的好那叫菜,炒的不好那就是放毒了……
软件测试人员只能极大程度上保证产品不会出现明显问题,但是!并不能保证产品一定就没有问题了!!
兴趣
兴趣是就业择岗的重要因素之一,选择了但是仍然对个人的工作性质不感兴趣,可想而知,这样的选择也不会走的太远。
责任感和压力
责任感是任何工作的都需要的,对于测试工作者而言:
测试往往是产品质量的最后的把关者;由于测试工作成效很难衡量,测试用例执行、bug数目的多少都无法说明产品的质量是否合格;虽然在敏捷模型中团队中每个人都需要对产品质量负责,但是产品的测试质量是跟测试人员那密切相关的。所以,责任感是最重要的测试必备素质之一。
压力,测试工作者,特别是属于互联网行业需要能够抗住各种压力。
面试题:为什么走测试不走开发
列举前面我们刚刚讲过的,一个优秀的软件测试工程师所需要具备的素质,说自己具备不少这样的素质,所以我觉得自己更适合走测试,比如
- 我比较细心、有耐心
- 我沟通表达能力比较强
- 我比较有责任感
- 我也学习过后端相关技术栈,对接起来会更加方便