【软件测试】软件测试的相关概念

  1. 什么是软件测试?
    验证软件的功能是否满足用户的需求

  2. 软件测试的目的和原则
    目的:验证软件有没有问题
    原则:以客户为中心,遵循软件测试的规范,流程,标准和要求

  3. 什么是需求
    满足用户的期望或者正式规定的文档(标准,规范,合同)所需要的条件或者权能。包含用户需求和软件需求

  4. 什么是bug
    ① 当且仅当**规格说明书(软件需求说明书)是存在的并且正确时:程序与规格说明之间不相符合是错误;
    ② 当没有需求规格说明书的时候:
    当用户的需求存在并且合理,程序没有满足用户需求,就是软件错误**

  5. 测试用例的概念
    测试用例是为了实施测试而向被测试系统发起的一组操作集合:包含测试环境,测试数据,操作步骤,预期结果等(一般从测试的标题,测试的功能模块,前提条件,重要性这几方面下手)

    比如说:网易邮箱的登录测试用例
    ① 标题:网易邮箱登录测试用例
    ② 功能模块:登录模块
    ③ 前提条件:已有注册账户
    ④ 重要性:重要
    ⑤ 测试环境:hp win10系统 Chrome浏览器
    ⑥ 测试数据:用户名,密码
    ⑦ 操作步骤及预期结果:

操作步骤 预期结果
打开网易登录页面 进入网易登录页面
输入正确的用户名和密码 ,点击登录按钮 登录成功
  1. 开发模型 和 测试模型
  • 软件的生命周期:需求分析,计划,设计,编码,测试,运行维护

  • 软件开发模型
    ① 瀑布模型(线性顺序进行的软件开发模式)【软件测试】软件测试的相关概念
    瀑布模型是所有其他模型的基础框架。他的每个阶段都只执行一次,因此是线性顺序进行的软件开发模式。
    优点:强调开发的阶段性;强调早期计划及需求调查;强调产品测试
    缺点:风险往往到后期的测试阶段才显露,因而失去及早纠正的机会

    ② 螺旋模型(渐进式开发模型的代表之一)
    【软件测试】软件测试的相关概念
    适合前期需求不是很明确,并且有一定风险的项目
    优点:强调风险把控
    缺点:对风险管理的技术水平要求很高,对人员,资金,时间的投入大

    ③ 增量模型,迭代模型
    增量和迭代的区别点
    比如说一个项目分为ABCD四个板块,要求两周完成:
    增量模型:第一周完成AB两个业务模块板块,第二周完成CD两个业务模块板块
    迭代模型:第一周完成ABCD的基础板块,第二周完成ABCD的复杂业务功能

    优点:抗风险能力强,迭代模型抗风险能力强于增量模型

    ④ 敏捷开发(常考)

    个体与交互重于过程和工具
    可用的软件重于完备的文档
    客户协作重于合同谈判
    响应变化重于遵循计划
    在每对比对中,后者并非全无价值,但我们更看重前者

    敏捷开发的一种 ----- scrum

    • 特点
      • 轻文档轻流程,重目标重产出
      • 轻量级的开发过程,迭代时间短,参与人数少
    • scrum的角色:
      PO (product owner):客户的代表,和客户沟通,把客户的需求转化为user story
      SM (scrum master):scrum流程的保障者,组织,主持各种会议
      ST (scrum Team):研发团队,各种技能的人员组成,完成迭代的目标
    • scrum的基本的工作流程
      1. 发布计划会议:由PO对用户需求整理成user story,然后对user story进行排版,确定出本期要进行完成的user story
      2. 迭代计划会议:SM召集ST细分任务,形成小的任务,确认具体开发人员和完成时间
      3. 每日站会:总结昨天的工作,碰到的问题,今天的计划
      4. 演示会议:向用户演示迭代的成果,客户提出问题,PO把用户的合理建议整理成user story放到下一次迭代中
      5. 回顾会议:复盘,回顾本次迭代,对不好的地方改进

    敏捷开发中的测试:
    特点:

    • 轻文档,轻流程,重目标,重产出 拥抱变化
    • 削弱了测试用例的作用,进行探索性测试(用思维导图的方法)
  • 软件测试模型:
    V模型(瀑布模型的变种)
    【软件测试】软件测试的相关概念
    java中的单元测试框架是junit,一般用白盒测试
    一般集成测试用的是黑盒测试
    局限性:只对程序进行测试,未对需求进行验证
    特点/优点: 后期测试的每一个阶段对应前期开发的阶段,有明确的测试依据
    缺点: 不利于项目前期风险的及时发现
    (由于是编码之后才进行测试,所以系统前期出现的风险/缺陷没能及时发现,导致后期才可能发现问题,此时如果需要修改就要重新返工)

    W模型(双V模型)
    【软件测试】软件测试的相关概念
    第一个V开发交付阶段
    第二个V测试时间在每个阶段要做的事
    特点:
    测试的对象不仅仅是程序,还有需求,设计等
    优点:
    有利于项目前期的问题及时发现,避免造成后期开发完成后才发现前期的问题
    缺点:
    阶段性比较强,不适用于敏捷开发(因为敏捷开发是拥抱变化的)