目录
1. 什么是测试
1.1 简单认识测试
1.2 为什么需要测试
1.3 软件测试的定义
2. 测试的岗位有哪些
2.1 面试题 [HR 面]: 测开和测试的区别是什么?
3. 软件测试 和 软件开发
3.1 测试和调试的区别
3.2 面试题: 走测试岗位为什么还要学开发知识?
4. 优秀软件测试人员具备的素质
4.1 综合能力
4.2 掌握自动化测试技术
4.3 测试用例的设计能力
4.4 探索性思维
4.5 兴趣
4.6 责任感和压力
4.7 面试题
4.8 面试题: 为什么走测试而不是开发?
简单来说, 测试就是给程序找 bug, 还要把程序中那些难以发现, 隐藏很深的 bug 找出来.
测试在我们生活中也是很常见的, 比如说我们去商场买衣服:
在程序中也是一样的, 我们来看以下实现除法功能的代码:
打眼一看, 没问题~ 第二眼, 好像有点问题... 第三眼, 怎么全是 bug!!
在这个方法中, 形参 x 和 y 是没有限制的, 这是一个非常大的问题.
用户可能给除数赋的值是 0, 也可能赋的值越界(超出 int 范围), 也可能赋的值是一个字符, 或者一个字符串.... 这都会导致程序崩溃. 也就是说, 这个代码全是 bug!!
而找出代码的 bug, 就是测试人员的任务.
一个互联网企业, 是通过 "软件产品" 来跟用户交互来直接/间接的拉动用户消费, 从而获得盈利的.
如果一个软件质量太差(例如出现闪退, 功能故障, 卡顿等 bug), 那么将流失大量用户, 企业也就无法获利.
而软件测试, 是为了找出代码的 bug, 提高软件质量. 这样以来, 就能够提高用户的满意度, 从而吸引更多的用户使用, 从而实现企业的盈利.
软件测试就是验证软件产品的特性是否满足用户的需求.
这里的 "特性" 包含以下方面:
测试的岗位主要分为以下两个方面:
测开 和 测试, 都统称为 测试. 并且这两者的工作重心都是做 业务测试.
注意: 纯测试的岗位只在一些小厂中存在, 重大厂基本都是测开.
两者相同点:
不同点:
测试人员的测试操作, 和开发人员的调试操作, 有什么区别?
调试 | 测试 | |
目的 | 发现并解决程序中的问题 | 发现程序中的问题 |
参与角色 | 开发人员 | 全体项目组成员. 但主要是测试人员. |
执行阶段 | 开发阶段 | 贯穿于软件开发的整个生命周期, 当软件需求提起的那一刻, 测试就已经开始了. |
自动化测试可以代替人力进行测试.
当一个产品进行版本更新后, 新版本肯定是需要支持旧版本的功能的.
所以需要对新版本中的旧版本功能也进行测试, 而每发行一个新版本就需要对旧版本的内容重新进行测试, 重新进行相同的测试操作. 如果每次都由测试人员手工完成, 就很浪费时间了.
而如果借助自动化, 让机器自动进行重复性的测试操作, 将极大的节省人力和时间的消耗. 让测试人员把更多的精力花在更多类型的测试上。
因此, 自动化技术, 是中大厂必不可少的技术事务.
测试用例设计能力是指, 无论对于什么类型的测试, 都能够设计出高效地发现缺陷, 保证产品质量的 优秀测试用例.
探索性思维的高低取决于测试人员的经验. 在测试过程中不断进行学习, 结合自己的经验, 直觉, 知识, 进行系统的错误猜测和逻辑推理.
兴趣是就业择岗的重要元素之一.
测试工程师是产品质量最后的把关者.
因此, 测试工程师必须对产品心怀极高的责任感.
此外, 测试工程师(包括互联网各行业)应具备良好的抗压能力.
以上内容(4.1 - 4.6)均是优秀测试人员应具备的素质.(面试解题模版)
以上问题均可以根据上述 "优秀测试人员应具备的素质" 来回答.
END