测试(1)认识测试 & 测试的岗位
文章目录
- 测试(1)认识测试 & 测试的岗位
- 注意:
- 1. 什么是测试?
- 1.1 生活中的测试场景
- 商场买衣服:
- Java程序测试:
- 可能的面试题:
- 1.2 为什么需要软件测试?
- 1.3 软件测试定义(需要背下来)
- 2. 测试的岗位有哪些?
- :star:高频面试题:软件测试开发工程师和测试工程师的区别
- 挖坑:
- 正确回答:
- 3.总结:
注意:
这篇博客所介绍的知识,全是常见的面试题,一定要注意看这篇博客的内容。
这些东西,都是概念性的东西,但是,不要背下来,而是去理解这些知识。
这篇笔记下来的东西,是将理解的过程记录了下来,当然,也有概念性的东西。
首先要根据概念,认识知识,才能够理解这个知识。
1. 什么是测试?
测试这个概念,很广泛,可以说,在生活中,处处存在测试的行为。
1.1 生活中的测试场景
商场买衣服:
例如:去商场买衣服。
- 你走进商场,看哪个店铺的衣服好看,符合你的审美
- 挑选合适尺寸的衣服,试穿
- 看衣服的材质,是否自己穿起来舒服,衣服的材质是否透气,环保且安全
- 询问衣服的价格,是否符合自己的预期,决定是否购买
上述买衣服的过程,其实,我们可以看作是一个测试的过程:
- 外观测试:你走进商场,看哪个店铺的衣服好看,符合你的审美
- 试穿测试:挑选合适尺寸的衣服,试穿
- 衣服材质测试:看衣服的材质,是否自己穿起来舒服,衣服的材质是否透气,安全
- 价格测试:询问衣服的价格,是否符合自己的预期,决定是否购买
Java程序测试:
例如这样一段代码:
publicstaticintmyDiv(inta,intb){returna/b;}开发人员,可能只是测试了一组数据,没有问题了,就觉得这个方法没有问题。
但是,测试人员就不是了。
测试人员,会对这个程序,不断的进行 “挑刺”。说明白点,就是 找茬。
上面那个代码,假如我们的 b 传的是一个数字 0 呢?
就会引发数字异常。
假如我们分别传输的是一个 字符呢?
例如:‘a’,‘b’
Java是一种强数据类型的语言,对于数据类型,有严格的限制,但是,如果这段代码是使用 Python写的呢?
Python是一种弱数据类型的语言,对于数据的类型,比较宽松,所以,分别传输的是一个 字符,语法上没有任何问题,但是,结果是正确的吗?
如果我分别传输的是一个 字符串呢?
传输的是一个 特殊字符呢?
传输的是一个 int越界(超过 int 所表示的最大数字) 的数字呢?
那么上述的测试,就是测试人员在做的事情。
把一个程序,首先就要认为,它是错的,不断的去发现这个程序错误的地方。
可能的面试题:
可以有这么几种问法:
- 能简单介绍一下,什么叫做测试吗?
- 说说你对测试的理解
- 你觉得什么是测试?
- 能简单说说测试的概念吗?
- ………………
面对这一类问题,你都可以用上面介绍的内容,进行回答。
注意:上述问的是测试,而不是软件测试,软件测试的定义,下面介绍。
1.2 为什么需要软件测试?
一款软件,能不能开发好了之后,直接上线,给用户进行使用?
答:是绝对不允许的。
一款软件开发完,一定是存在bug的。
先不论bug的数量问题,一旦存在严重bug(功能缺失,支付失败等),会对这款软件所在的公司,造成巨大的损失。
一款软件的上线前,一定是要给测试人员进行大量的测试的。
那么,测试人员需要招聘,需要工资,测试需要时间,为什么企业还需要这么做?
企业最终的目的是“盈利”。互联网企业通过软件或系统与用户交互,从而实现盈利。
因此,企业的核心受众是广大用户,而用户的使用体验将直接影响企业的盈利能力。
如果产品质量不佳,将导致大量用户流失,直接影响了这款软件的的盈利效益。正因如此,企业高度重视测试工作。
用一张图来表示这种关系:
这里要说一句绝对的话:一款软件,经过开发完成后,一定是有 bug 的。
没经过测试的软件,也会存在明显的质量问题:闪退,功能故障,卡顿明显…………
如果用户使用软件的时候,存在上述明显问题,那么用户还会用你这个软件吗?
答案是肯定不会的。
用户肯定会心里骂一顿开发这个软件的人,然后直接卸载,给了用户一个很糟糕的坏印象,后续,无论程序怎么改善,这个用户都不会再下载回来了。
那么,这样的情况,就会造成:用户大量流失。
那么,如果一款软件要盈利,推出某项收费功能,用户都不满意这款软件,还会消费吗?
答案肯定也是不会的。
1.3 软件测试定义(需要背下来)
💡软件测试就是验证软件产品特性是否满足用户的需求。(这句话需要背下来,应付面试。)
这句话中,产品特性中的 “特性” 两个字,是一个统称,它可能包括:
功能,界面,性能,易用性…………
2. 测试的岗位有哪些?
投递简历时,会看到各种各样的测试名称,形如:
不同企业对测试岗位的命名方式各异,无论是测试工程师、功能测试、移动端测试、客户端测试等,本质上都属于测试类岗位,核心性质可归为两类:测试工程师 或 测试开发工程师。
测试岗位主要分为以下两个方向:
软件测试开发工程师
工作重心在于提升系统的可测试性,以及构建通用的测试基础框架。主要职责包括编写单元测试框架和自动化测试框架,关注软件质量的持续提升与测试覆盖率的保障。这个岗位,同时会开发测试效率工具(针对 自动化测试,性能测试,覆盖率…………)。
以时间作为 100% 来说:90% 在测试,10% 在开发测试效率工具
测试工程师
与软件测试开发工程师紧密协作,但更侧重从用户角度出发思考问题。测试工程师负责统筹整体测试实践,开展测试分析与总结,驱动测试执行,并参与构建端到端的自动化测试体系。这个岗位,更多的是手动进行测试,也就是 点点点操作。
软件开发测试工程师
这个岗位,很少,它的本质是:开发人员。但是,他们开发的软件,不是给用户使用的。
它的工作是:开发测试的工具,给测试人员进行使用。服务于 测试人员那么,他们开发的测试工具,一般都是公司内部进行使用,不会上线给用户进行使用。
对于中大厂来说,哪怕招聘写都是测试工程师,进去之后,干的是 测试开发工程师的工作。
⭐️高频面试题:软件测试开发工程师和测试工程师的区别
通常一个企业,都是 笔试+面试 的流程,招聘员工。
其中,面试又分为:技术面试 + hr面试
那么,招聘测试岗位的时候,轮到 hr面试的时候, hr 就会问出这一道高频面试题:软件测试开发工程师 和 测试工程师 的区别
挖坑:
他有可能会给你两个答案让你选:
- 软件测试开发人员需要写代码,做一些开发工作
- 软件测试开发人员 开发 效率工具
问你:哪个答案是正确的?
你可以先想想,哪个是正确的。
这里,我给出的答案是:两个答案都是错误的!!!
你一个都不要选!!!
原因:他问的两个选项,是一个坑,因为他故意在强调 “开发” 两个字,但是你要清楚,你面试的岗位是:测试工程师(测试岗位)
所以,你应该明白:测试岗位重心在测试,不在 “开发”
正确回答:
那么,无论面试官有没有这样问你,你都应该这么回答:
软件测试开发工程师和测试工程师的区别
相同点:
- 均属于测试人员。
- 共同对产品质量负责,保障产品质量稳定与可靠。
不同点:
测试开发工程师比测试工程师多了 “开发” 属性,但这里的开发并非业务功能开发(业务开发是研发人员的核心职责),而是指开发各类测试效率工具,通过工具化、平台化方式提升整体测试效率与质量,例如自动化测试、性能测试相关平台与脚本开发等,都属于这类工作。
hr最想听到的一句话是:无论是测试人员还是测试开发人员,本质上都是测试人员,工作重心是对产品质量负责,保障产品质量稳定与可靠。
因为 hr 希望的是:你对你面试的岗位,要有一定的了解。
3.总结:
什么是测试?其实,测试在生活中随处可见
什么是软件测试?
答:💡软件测试就是验证软件产品特性是否满足用户的需求。(这句话需要背下来,应付面试。)
这句话中,产品特性中的 “特性” 两个字,是一个统称,它可能包括:
功能,界面,性能,易用性…………
常见的面试题:
- 能简单介绍一下,什么叫做测试吗?
- 说说你对测试的理解
- 你觉得什么是测试?
- 能简单说说测试的概念吗?
- 软件测试开发工程师和测试工程师的区别(注意是否有坑)
- …………
最后,如果这篇博客能帮到你的,请你点点赞,有写错了,写的不好的,欢迎评论指出,谢谢!
下一篇博客:认识测试(2):测试和开发的区别 & 测试具备的素质