概念篇:软件测试
文章目录
- 定义
- 软件测试开发工程师和测试工程师的区别
- 其他不同
- 自动化测试技术
- 需求的概念
- 开发模型
- 瀑布模型
- 螺旋模型
- 增量模型和迭代模型

定义
1. 软件测试就是验证软件产品特性是否满足用户的需求
2. 产品特性:功能,性能,界面,易用性
软件测试开发工程师和测试工程师的区别
hr面面试题:
1. 相同点:
<> 都统称为测试人员
<> 对产品的质量负责,保证产品的质量
2. 不同点:
<> 测试开发比测试多"开发"二字,二这个开发不是指业务开发,因为业务开发是开发人员的主要职责,这里的开发主要指的是需要开发测试效率的工具,通过效率工具来提升测试效率和测试质量,比如我们的自动化、性能测试等就属于效率工具
其他不同
- 测试人员经常会进行测试动作,而开发人员进行调试动作,调试和测试是同一个含义吗?
调试的任务是定位并且解决程序中的问题,主要由开发人员完成,在开发阶段执行
测试的任务是发现程序中的缺陷,测试主要是由测试人员和开发人员来执行,黑盒测试主要由测试人员完成、单元/集成测试主要是由开发人员执行,测试贯穿整个软件开发生命周期
2. 高频面试题
- 走测试岗位为什么还要学习开发知识?
1)测试人员也需要编写代码,如自动化测试、性能测试、开发测试效率工具等。测试人员需要能够看懂代码、了解开发框架。
2)学好开发知识能够提高软件测试质量。通过查看代码中数据的走向能够更好的从代码层面去发现问题。
自动化测试技术
-
比如微信,qq新增功能和旧的的功能,新增的功能可能会影响旧的功能,所以旧的功能需要重新测试,但是旧的功能的测试基本上和之前的没有什么区别,所以可以用自动化测试处理这些重复的测试
-
涉及到下图中的事务就是测试开发工程师
-
设计测试用例是面试中必考的内容,掌握自动化测试也是非常重要的
需求的概念
- 用户需求:可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完
成的任务。该需求一般比较简略,通常是一句话。 - 该需求会详细描述开发人员必须实现的软件功能。软件需求是测试人员进行测试工作的基本依据。软件需求会有需求文档,可以按照需求文档进行实现
- 用户的需求和软件的需求
注意:用户的需求不能直接作为开发和测试的依据。针对用户的需求,产品经理需要进行需求分析(技术可行性、市场可行性、成本投入和收益占比等)后才可转变为软件需求。
开发模型
瀑布模型
- 特点:每个流程只执行一次,线性的开发流程
- 瀑布模型最大的缺点在于,可以运行的产品很迟才能被看到,没有收益,或者说是收益非常低
- 瀑布模型的适用场景:需求固定的小项目
螺旋模型
- 特点:螺旋模型中各个阶段都引入风险分析 + 原型
- 引入的目的是减少各阶段遗留的风险问题,避免把风险遗留到后面的阶段
- 使用场景:规模庞大,复杂度高,风险大的项目
- 缺点:项目中可能存在的风险性与风险管理人员的技能水平有直接关系
- 缺点:需求人员、资金、时间的增加和投入,可能会导致项目的成本太高
增量模型和迭代模型
- 增量模型:开始先一个模块的功能,之后再增加各个模块的功能,一个模块一个模块地加入
- 迭代模型:先有各个模块的功能,只是比较简陋,后面逐步完善
- 增量模型和迭代模型配合着去使用
- 使用场景:大型项目,需求不明确