目录
软件测试
a.定义:验证软件产品特性是否满足用户的需求。测试是一个过程,是相关人员去验证软件执行结果是否符合用户期望。
b.特点:软件测试是一个样本实验,具有不可穷尽性。
c.软件开发与测试的区别:(调试与测试的区别)
调试 | 测试 | |
1.阶段 | 代码开发完成后 或边开发边调试 | 在开发前介入,从软件需求阶段开始伴随软件的整个生命期,有软件的地方就一定有测试 |
2.目的 | 发现问题,解决问题 | 发现问题,提供解决方案 |
3.人员 | 由开发人员进行调试 | 开发人员和测试人员执行。黑盒测试由测试工程师完成,部分的白盒测试和系统测试由开发完成 |
4.手段 | 打断点调试,分析代码逻辑 | 等价类划分,边界值,判定表,语句覆盖,条件覆盖.... |
d.测试人员需要具备的素质:沟通能力,文字表达能力,责任担当,抗压力;设计全面的测试用例,编码基础,编写自动化测试用例,编写测试工具,快速学习能力,业务学习能力。
需求
a.定义:满足用户期望或正式规定文档所具有的条件和权限,包含用户需求和软件需求
(甲方提出、软件功能——>产品经理(PM)——>测试(QA)、开发(RD))
b.测试眼中的需求:(通过需求文档、需求评审会议、技术文档,与产品、开发沟通,测试需要分解需求点,深入理解需求。)
测试用例
a.定义: 为了实施测试向被测试系统提供的一组集合,
b.要素:测试环境、操作步骤、测试数据、预期结果
(注意:执行结果不等于预期结果)
例1:
c. 重要性:
BUG
a.定义:当需求文档正确时,不符合需求规格的以及不符合用户预期的。
b.重要性:
c. 如何描述一个bug:发现问题的版本,环境,错误重现的步骤,数据,错误行为的描述,预期行为的描述,优先级...
bug示例:
d. bug的优先级:崩溃(Blocker)、严重(Critical)、一般(Major)、次要(Minor)
e. bug的生命周期:
开发模型
瀑布模型
特点:每个阶段之间都是线性的
螺旋模型
适用:规模庞大、复杂度高、风险大的项目,以及在软件开发初期阶段需求不明确的情况下,适合采取这种渐进式开发模式。
增量开发、迭代开发
敏捷模型 scrum
敏捷宣言
b. scrum中的角色:
PO(产品经理):收集用户需求
SM(项目经理):协助整个项目顺利完成
Team(前端开发、后端开发、测试、设计)
c.流程:(迭代开发)
测试模型
V模型
特点:线性,左边开发,右边测试
优点:每个阶段做什么事情非常清晰,测试被划分成许多类型;并且清楚的描述了这些测试阶段和开发过程期间各阶段的对应关系
缺点:测试人员介入太晚,测试与开发是串行的;仅仅把测试作为在编码之后的一个阶段,未在需求阶段就进入测试
W模型
特点:开发一个V,测试一个V;测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步进行的
优点:测试人员尽早介入了需求,测试与开发并行;有利于尽早地全面的发现问题。
缺点:不能拥抱变化,也就是说不敏捷;测试与开发一定程度上还是串行的;需求、设计、编码等活动被视为串行的;测试和开发活动也保持着一种线性的前后关系, 上一阶段完全结束,才可正式开始下一个阶段工作。无法支持敏捷开发模式。对于当前软件开发复 杂多变的情况,W模型并不能解除测试管理面临着困惑。
软件测试的生命周期
a.软件的生命周期:
b.软件测试的生命周期(重点):
测试报告示例:(要会写测试报告)
c. 当测试工程师与开发产生争执怎么办(面试题)
1.检测自己的操作以及对于需求的理解
2.检测是否提交了详细的bug描述
3.给开发提供解决思路(需要良好的代码基础)
4.第三方会议得到结果