1.软件测试的目的和原则:
- 目的:验证软件是否满足用户需求,验证预期结果与实际结果之间的差异
- 原则:以客户为中心,遵循软件测试的规范、流程、标准和要求
2.需求一般指用户需求和软件需求: - 用户需求:用户解决问题或达到目标所需要的条件或权能
- 软件需求:也可以叫功能性需求,描述必须实现的软件功能
3.什么是bug? - 当且仅当规格说明是存在的并且正确,程序与规格说明之间的不匹配才是错误。(需求不一致)
- 简单来说,就是当程序没有实现其最终用户合理预期的功能要求时,就是软件错误。
4.什么是测试用例?
测试用例是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。
5.软件的生命周期:需求分析、计划、设计、编码、测试、运行维护
6.开发模式: - 瀑布模型:
a. 每个阶段只执行一次,线性顺序
b. 串行,适合需求稳定的项目
c. 风险往往迟至后期的测试阶段才显露,失去及早纠正的机会 - 螺旋模型:
a. 渐进式的开发模式
b. 适合规模庞大、复杂度高、风险大的项目
c. 强调风险分析
7.增量是逐块建造的概念,迭代是反复求精的概念
8.敏捷开发模式:
(1)敏捷宣言: - 个体与交互 重于 过程和工具【沟通】
- 可用的软件 重于 完备的文档【轻文档】
- 客户协作 重于 合同谈判【用户参与】
- 响应变化 重于 遵循计划【变更,拥抱变化】
(2) scrum开发: - 角色:
a. PO -> 产品经理(项目负责人):主要负责产品的规划
b. scrum master -> 项目经理(敏捷教练):确保scrum的运作
c. 研发团队:由不同技能的成员组成 - 迭代开发:scrum将产品的开发分解为若干个小迭代,周期短(1-4周),成员少(5~9人),每次迭代要完成的user story是固定的,每次迭代产生一定的交付
- scrum基本流程:
- 整理user story,形成product backlog
- 发布计划会议:生成sprint backlog,即本次迭代要完成的story列表
- 迭代计划会议:对任务进行分解
- 每日立会:15分钟,项目的信息交流(问题,每天的计划以及完成的程度)
- 演示会议:展示本次迭代取得的成果
- 回顾会议:对本期迭代进行总结,制定改进计划
- 敏捷中的测试:灵活运用工具,重点沟通
9.软件测试V模型:
- 特点:测试与开发是串行的
- 优点:清楚描述了开发和测试各阶段的对应关系
- 缺点:不在需求阶段就进入测试,发现问题晚,修改成本大
10.软件测试W模型:
- 特点:测试与开发是并行的,同步进行
- 优点:有利于尽早的全面的发现问题
- 缺点:不能适应需求变更频繁的项目