软件测试基本概念

软件测试基本概念

  • 什么是软件测试
    • 什么是需求
    • 什么是BUG
      • BUG的状态转换
      • BUG的生命周期
  • 什么是测试用例
    • 测试用例的编写
  • 开发模型和测试模型
    • 软件开发的生命周期
    • 开发模型
      • 瀑布模型
      • 螺旋模型
      • 增量模型
      • 迭代模型
      • 敏捷模型
        • scrum里面的角色
        • scrum的基本流程
        • 特点
    • 软件测试的生命周期
    • 测试模型
      • V模型
      • W模型

什么是软件测试

软件测试就是验证软件的功能是否满足用户的需求

一场考试,做完所有题目之后,进行一遍检查,就是“测试”;
买来一台电视,安装好之后打开试试能不能正常使用,这也是“测试”。

什么是需求

需求就是满足用户的期望或规定的文档(合同、规范、标准)所需要的条件或权限,通常包括用户需求和软件需求。软件需求从用户需求转化而来,用户需求转化为软件需求的核心是沟通。

用户需求:可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务。该需求一般比较简略。
软件需求:或者叫功能需求,该需求会详细描述开发人员必须实现的软件功能。软件需求是测试人员进行测试工作的基本依据

什么是BUG

当且仅当规格说明书(软件需求说明书)存在并且正确,程序和规格说明之间不相符合,称之为软件错误(BUG)。简单来说,就是当用户的需求存在并且合理,程序没有满足用户的需求,称之为BUG。

BUG的状态转换

软件测试基本概念_第1张图片

BUG的生命周期

● New:新发现的Bug,未经评审决定是否指派给开发人员进行修改。
● Open:确认是Bug,并且认为需要进行修改,指派给相应的开发人员。
● Fixed:开发人员进行修改后标识成修改状态,有待测试人员的回归测试验证。
● Rejected:如果认为不是Bug,则拒绝修改。
● Delay:如果认为暂时不需要修改或暂时不能修改,则延后修改。
● Closed:修改状态的Bug经测试人员的回归测斌验证通过,则关闭Bug。
● Reopen:如果经验证Bug仍然存在,则需要重新打开Bug,开发人员重新修改。
无效的bug:open->closed open-rejected-closed

什么是测试用例

测试用例就是向被测试系统发起的一组操作集合,包含测试环境、测试数据、操作步骤、预期结果等。

测试用例的编写

软件测试基本概念_第2张图片

开发模型和测试模型

软件开发的生命周期

需求分析 -> 计划 -> 设计 -> 编码 -> 测试 -> 运行维护

开发模型

瀑布模型


优点:

  • 强调开发的阶段性;
  • 强调早期计划及需求调查;
  • 强调产品测试。

缺点:

  • 依赖于早期进行的唯一一次
  • 需求调查,不能适应需求的变化;
  • 由于是单一流程,开发中的经验教训不能反馈应用于本产品的过程;
  • 风险往往迟至后期的测试阶段才显露,因而失去及早纠正的机会

螺旋模型

适用于前期需求不明确,风险比较大,需求庞大的项目
软件测试基本概念_第3张图片
优点:

  • 强调严格的全过程风险管理。
  • 强调各开发阶段的质量。
  • 提供机会检讨项目是否有价值继续下去。

缺点:

  • 引入非常严格的风险识别、风险分析和风险控制,这对风险管理的技能水平提出了很高的要求。这需要人员、资金和时间的投入。

增量模型

软件测试基本概念_第4张图片
一个系统开发A,B,C,D四个业务模块,两周时间,第一周完成A,B两个模块,第二周完成C,D两个模块。

迭代模型

软件测试基本概念_第5张图片
一个系统开发A,B,C,D四个业务模块,两周时间,第一周完成A,B,C,D四个模块,第二周补充完成复杂的业务功能。

敏捷模型

scrum里面的角色

scrum由product owner(产品经理)、scrum master(项目经理)和team(研发团队)组成。

product owner负责整理user story(用户故事),定义其商业价值,对其进行排序,制定发布计划,对产品负责。
scrum master 负责召开各种会议,协调项目,为研发团队服务。
研发团队则由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品。

scrum的基本流程

软件测试基本概念_第6张图片
scrum的基本流程如上图所示:

  • 产品负责人负责整理user story,形成左侧的product backlog。
  • 发布计划会议:product owner负责讲解user story,对其进行估算和排序
  • 发布计划会议的产出就是制定出这一期迭代要完成的story列表,sprint backlog。
  • 迭代计划会议:项目团队对每一个story进行任务分解,分解的标准是完成该story的所有任务,每个任务都有明确的负责人,并完成工时的初估计。
  • 每日例会:每天scrum master召集站立会议,团队成员回答昨天做了什么今天计划做什么,有什么问题。
  • 演示会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取得的成果。期间大家的反馈记录下来,由po整理,形成新的story。
  • 回顾会议:项目团队对本期迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,已达到持续改进的效果。

特点

  • 轻文档
  • 轻流程
  • 重目标
  • 重产出
  • 拥抱变化

软件测试的生命周期

需求分析 -> 测试计划 -> 测试设计(测试开发) -> 测试执行 -> 测试评估

测试模型

V模型

软件测试基本概念_第7张图片
优点:
后期测试的每一个阶段对应前期开发的阶段,有明确的测试依据
缺点:
不利于项目前期风险的及时发现

W模型

软件测试基本概念_第8张图片
特点:
测试的对象不仅仅是程序,还有需求、设计等
优点:
有利于项目前期的问题及时发现,避免造成后期开发完成之后才发现前期的问题
缺点:
阶段性比较强,不适用于敏捷开发

你可能感兴趣的:(测试)