一、什么是软件测试
- 软件测试就是测试人员用一系列手段来判断软件是否满足用户需求。
- 软件测试要验证软件功能的正确性
- 软件测试要验证软件测试功能是否满足对软件的“预期结果”
- 软件测试的特点:软件测试只是一个样本实验,具有不可穷尽性
二、软件测试跟软件开发的区别?
- 软件研发的流程
需求—计划—设计—开发/编码—测试—运行维护 - 软件测试跟软件开发中调试的区别
a.目的: 软件测试是测试人员根据需求看软件功能是否满足(实现)了用户的需求 软件调试是开发人员看软件功能是否实现了他(软件开发人员)想让软件实现的功能 b.角色 软件测试:开发人员和测试人员共同完成 白盒测试是由白盒测试工程师或软件开发人员来完成 软件调试:开发人员独立完成 c. 阶段 软件测试:贯穿到了整个软件开发流程 软件调试:开发阶段
三、什么是需求?
- 需求:满足规范、标准、合同等文档锁需要的条件和权限
- 用户需求:系统的使用者提出的需求,系统要满足用户的期望,所需要的条件或权限。
- 软件需求:用户需求经过验证和分析之后转化成的合理需求,一般以文档的形式进行展示。(软件需求是用户需求的细化,细节的进一步实现文档)
- 需求是软件测试人员的依据
- 测试人员如何才能深入了解需求:
把自己当成用户,多和需求的来源交流 把自己代入到用户体验,多积累,从需求的一开始就介入,不断与用户或者项目组的人员讨论
四、测试用例
- 概念:测试用例就是向被测试的系统的某一个功能点发起的一组集合,包括测试环境、测试数据、测试步骤、预期结果(标题、测试功能、方法、重要性、优先级、测试方式)
- 测试用例解决了测什么?怎么测?
五、什么是BUG
- 如果需求规格说明书(软件需求)存在且合理,不符合需求规格说明的就是软件错误(BUG)
- 如果需求规格说明书(软件需求)不存在,用户的需求存在且合理,不符合用户需求的就是软件错误(BUG)
六、软件开发的五个模型
6.1瀑布模型
- 优点:
1.强调开发的阶段性 2.强调早期计划及需求调查 3.强调产品测试 - 缺点:
1.串行,有去无回 2.测试介入晚,导致项目前期的问题到后面才发现,失去了错误及时修正的机会 3.不支持需求频繁变动的项目
6.2螺旋模型
- 缺点:
1.风险分析要求很高,需要投入专业的人员导致时间,项目支出费用会比较高 2.风险分析对测试人员和开发人员要求比较高
6.3增量模型
6.4迭代模型
6.5敏捷模型
-
特点: 1.重目标,重产出,轻文档,轻流程 2.注重和客户的沟通,整个研发团队有效沟通,注重产品质量,注重产品规格的交付日期。(拥抱变化,客户可以在项目开发过程中改变需求) 3.敏捷开发周期很短(1-4周),研发团队人员(5-9人) -
角色: 1.PO:产品经理 2.SM:项目经理 3.ST:研发团队 -
Scrum流程: 1.发布计划会 2.迭代计划会议 3.每日站会 4.产品演示会议 5.项目总结
七、软件测试模型
7.1软件测试V模型
- 特点:左边开发的每一个阶段和测试的每一个阶段对应起来,是测试每一个阶段的依据
- 缺点:串行的过程,测试是在编码后有的,测试介入比较晚,导致前期的错误后期发现,后续测试发现时,已经失去了错误及时纠正的最好时机
7.2软件测试W模型
- 特点:测试在需求分析时介入,双V模型,开发和测试是并行进行的
- 优点:测试介入比较早,项目前期的问题可以及时发现,在一定程度上可以保证产品的质量
- 缺点:串行过程,阶段性比较强,不能适应需求的频繁变更,不适用敏捷开发
|