【软件测试】入门基础
入门基础
- 一. 什么是测试
- 1. 生活中的测试场景
- 2. 为什么需要软件测试
- 3. 软件测试的定义
- 二. 测试的岗位
- 三. 软件测试和开发的区别
- 1. 工作内容
- 2. 难易程度上
- 3. 工作环境
- 4. 薪水
- 5. 其它
- 四. 优秀的软件测试人员具备的素质
- 1. 综合能力
- 2. 掌握自动化测试技术
- 3. 测试用例的设计能力
- 4. 探索性思维
- 5. 兴趣
- 6. 责任感和压力
一. 什么是测试
测试在生活中处处可见。
1. 生活中的测试场景
商场买衣服:
- 外观测试:挑选符合个人审美的衣服。
- 试穿测试:选择尺码,去试衣间试穿。
- 材质测试:考虑衣服是否是透气的材质。
- 价格测试:询问价格是否符合预期。
购物软件:
- 启动测试:点击软件图标,测试软件是否可以正常打开。
- 搜索测试:点击输入框,输入关键词,点击搜索。
- 商品测试:点击商品进入详情页。
- 购物测试:点击购买下单成功。
2. 为什么需要软件测试
企业最终的目的是“盈利”,互联网企业借助软件/系统来跟用户交互从而获得盈利,也就是说企业的受众群体主要是广大的使用用户,而用户的使用感受将直接影响企业的盈利,若产品质量太差 (软件频繁闪退、功能故障、页面经常卡顿) 将导致大量用户的流失,所以企业非常重视测试。
3. 软件测试的定义
软件测试:验证软件产品特性是否满足用户的需求。
- 其中的产品特性包括:功能、性能、界面、易用性等等。
二. 测试的岗位
测试的岗位主要分为以下两个方面:
- 软件测试开发工程师:
- 工作重心为可测试性以及通用测试基础框架。编写单元测试框架和自动化测试框架。软件测试开发工程师关注质量提升和测试覆盖率。
- 工作重点就是业务的测试,开发测试效率工具 (自动化、性能测试、覆盖率等等),对于测试开发人员来说,是没有权限开发业务代码的,这是后端开发工程师的职责。
- 效率工具:可以提高测试效率和质量。
高频面试题
:效率工具是测试人员开发出来的,测试人员也需要进行后期的工具管理,因此效率工具不能替代测试人员。
- 测试工程师:
- 与软件测试开发工程师关系密切,但把用户放在第一位来思考。测试工程师组织整体测试实践,并进行分析总结,驱动测试执行,构建端到端的自动化测试。
- 工作重点就是业务测试,对于纯测试工程师,更多的测试操作是点点点的测试。
在 BOSS 上投递简历时,会看到各种各样的测试名称,形如:
不同的企业对于测试的命名不同,不管是测试工程师、功能测试、移动端测试、客户端测试等等都是测试岗位,性质要么是测试工程师,要么是测试开发工程师。
- 注意:在投递测试岗位时不用关注岗位名称和岗位要求,对于校招生来说是没有明确的语言或者技能要求的,面试主要从简历上写的内容进行考察。
三. 软件测试和开发的区别
测试:
- 熟悉工作和测试流程。
- 通过业务测试熟练个人的测试能力。
- 掌握各种各样的工具,提高测试质量和效率。
- 开始逐步开发各种效率工具。
找工作/实习的时候,怎么确认自己找的是测试开发还是测试?
- 中大厂基本都是测试开发。
- 先拿 offer,询问 hr/面试官,组内有哪些技术事务 (测试开发)
1. 工作内容
- 绝大部分走开发的人员,都是做业务开发。
- 走测试岗位的人员,都是做业务测试。
2. 难易程度上
- 开发:应届生要求掌握语言基础、开发框架、数据库、数据结构、Linux 等课程,在职人员还需掌握更多中间件如:Redis、rabbitMQ、ES 等等。
- 测试:除了掌握开发的技能,还需要掌握测试技能:测试概念、设计测试用例、执行测试等。
总结:开发广度小,专业度高。测试广度大,专业度相对较低,大型互联网企业对测试人员的专业要求可能跟开发差不多。
3. 工作环境
- 很多公司,测试人员和开发人员都是坐在一个办公楼层的不同区域,所以他们的工作环境,工作设备基本都是一样的。
- 同一个业务线的测试人员和开发人员,通常都是坐在一起的,因为测试人员和开发人员的沟通会比较频繁。
4. 薪水
中小企业总体测试比研发低,自动化等专业测试和研发基本无差距,大厂研发测试薪资基本无差别。以下是从某网站根据提供的样本统计出来的软件测试和开发的平均校招薪资。
开发和测试的薪资并无明显区别,最终都要以个人能力来评估。
5. 其它
测试人员经常会进行测试动作,而开发人员进行调试动作,调试和测试不是同一个含义。
维度 | 调试 | 测试 |
---|---|---|
目的 | 调试的任务是定位并且解决程序中的问题 | 测试的任务是发现程序中的缺陷 |
参与角色 | 主要由开发人员完成 | 测试主要是由测试人员和开发人员来执行,黑盒测试主要由测试人员完成、单元/集成测试主要是由开发人员执行 |
执行阶段 | 开发阶段 | 测试贯穿整个软件开发生命周期 |
四. 优秀的软件测试人员具备的素质
1. 综合能力
- 沟通能力:测试工程师的沟通能力会直接影响工作开展的效率,良好的沟通能力是测试工程师获得更好发展的“敲门砖”。
- 快速学习能力:对不同的业务需求和功能的快速学习和理解能力。
- 开发能力:测试人员除了保障项目质量之外,也需要针对当前业务开发效率工具,来提升测试效率和质量。如自动化、性能测试等就是效率工具。
- 文字能力:测试人员需要编写各项文档,如测试计划、测试用例、测试报告等等。
2. 掌握自动化测试技术
- 自动化测试时中大厂必不可少的技术事务,比如:每隔一段时间软件就需要更新,为了新增或优化一些功能,而在历史功能不受影响的情况下增加新的功能,都需要进行测试。
- 每次更新迭代历史功能都需要手动测试一遍,非常耗时耗力,而历史功能测试的内容基本都是一样的,如果借助自动化测试历史功能将极大的节省人力和时间。
自动化测试技术在测试领域中占有举足轻重的地位,掌握自动化测试技术,可以将测试人员从大量重复性的手工劳动中解放出来,这样可以把更多的精力花在更多类型的测试上。
3. 测试用例的设计能力
- 测试用例设计能力是指,无论对于什么类型的测试,都能够设计出高效地发现缺陷,保证产品质量的优秀测试用例。
- 设计此时用例是测试岗位笔试/面试的必考题,如何提高测试用例设计的能力?
- 掌握设计测试用例的方法。
- 阅读好的测试用例设计案例。
- 多写多练,积累,总结。
4. 探索性思维
- 测试工程师在执行测试的过程中不断学习被测系统,结合自己的经验,知识,直觉,进行系统的错误猜测和逻辑推理,整理和分析出更多有针对性的的测试关注点。
- 探索性思维的质量取决于测试人员的经验。
5. 兴趣
- 兴趣是就业择岗的重要因素之一,选择了但是仍然对个人的工作性质不感兴趣,可想而知,这样的选择也不会走的太远。
6. 责任感和压力
责任感是任何工作的都需要的,对于测试工作者而言:
- 测试往往是产品质量的最后的把关者,由于测试工作成效很难衡量,测试用例执行、bug 数目的多少都无法说明产品的质量是否合格,虽然在敏捷模型中团队中每个人都需要对产品质量负责,但是产品的测试质量是跟测试人员那密切相关的。所以,责任感是最重要的测试必备素质之一。
- 压力,测试工作者,特别是属于互联网行业需要能够抗住各种压力。