zoukankan      html  css  js  c++  java
  • 测试理论基础

    一、软件开发流程的演变
     
    1、传统瀑布模型
    模型:需求分析-设计-编码-实现-软件测试-完成-维护
    特点:线性方式,以文档为核心驱动,适用稳定型产品
    优点:
    • 开发每个阶段清晰明了
    • 强调计划和需求分析
    缺点:
    • 前期问题到后期才能发现
    • 每个阶段依赖上一个阶段的输出,一旦出问题存在延期风险
    2.1、敏捷开发模型-XP
    模型:需求-简单设计-测试-编码-发布
    特点:测试驱动开发,适用规模小、进度紧、需求变化大、质量要求严的项目
    优点:
    • 简单设计
    • 全面测试
    • 高频重复设计和重构
    缺陷:
    • 忽略设计
    • 依赖测试
    2.2、敏捷开发模型-SCRUM
    模型:产品backlog-sprint计划会议-sprint backlog-每日站会-sprint 评审会议-sprint回顾会议
    特点:sprint(2周~4周),三大角色(Scrum Master、Product Owner、开发团队)
    优点:
    • 重视过程,快速响应变化
    • 实时跟进进展,风险可控
    • 整个团队参与会议
    • 降低变更对系统造成的风险
    • 提高ROI(投入产出比)
    • 持续快速的发布可用的软件产品
    • 目标明确
    缺点:
    • 前期每日站会时间成本大
    • 不适用目标不清晰的需求
    • 问题暴露过多,不安感
    • 对团队成员技术水平、协作水平要求较高
    3、DevOps开发模型
    模型:持续开发-持续测试-持续集成-持续部署-持续监控
    特点:增量迭代、小步快跑
    优点:
    • 高效交付,更快、更频繁、更可靠
    • 减少变更范围
    • 加强发布协调
    • 自动化
    • 工具链打通,开发、测试、运维高效协作
    缺点:
    • 对开发主动性要求较高
    • 对测试水平要求较高
    二、软件测试流程
    1、软件测试相关概念
    软件测试:手工或工具对“被测对象”进行测试,将实际结果和预期结果进行对比并记录输出文档的过程
    软件测试原则:缺陷集群性(2/8原则)、穷尽测试不可能、测试尽早介入、没有缺陷是不可能的
    软件测试对象:文档、源代码、软件程序(功能)
    测试用例:输入、执行步骤、预期结果
    软件缺陷:bug
    2、软件测试模型
    (1)V模型:需求分析-概要设计-详细设计-编码-单元测试-集成测试-系统测试-验收测试
    优点:开发阶段清晰,测试覆盖全面-底层、高层
    缺点:顺序性导致问题追溯根源困难,需求变更大时返工量大
    (2)W模型:测试与开发并行,测试对象包含需求、设计、程序
    优点:测试贯穿整个生命周期,更早的介入软件开发,测试开发独立且并行
    缺点:不支持迭代,不适用没有文档的项目,需求测试、设计测试对设计要求很高实践很困难
    (3)H模型:分阶段执行、交叉执行、迭代执行,测试准备活动和执行活动清晰明了
    优点:测试流程独立,测试活动可尽早准备
    缺点:测试就绪点分析困难,对项目成员要求非常高
    3、传统测试流程
    (1)传统测试流程:单元测试-集成测试-冒烟测试-系统测试-回归测试-验收测试
    (2)系统测试流程:需求分析-测试加护-测试设计-用例评审-测试执行-bug管理-发布维护
    (3)Bug管理流程:提交-指派-确认-(遗留)-处理-回归-关闭
    4、测试左移
    (1)描述
    软件开发早起介入、代码测试,发现bug->预防bug
    (2)质量保障手段
    代码评审、单元测试、自动化冒烟测试、研发自测
    5、测试右移
    (1)描述
    发布之后持续关注线上监控
    (2)线上监控
    闭环的线上问题反馈、丰富有效的log、业务异常监控、服务器关键指标监控
     
    三、软件测试分类
    1、开发阶段
    单元测试
    集成测试
    系统测试:功能测试、兼容性测试、性能测试、安全测试
    验收测试:α测试、β测试
    2、代码
    白盒测试、灰盒测试、黑盒测试
    3、测试执行方式
    静态测试:
    动态测试:
    4、手工与自动化:
    手工测试:
    自动化测试:依赖工具
    5、其他分类
    冒烟测试
    回归测试
    随机测试
    探索性测试
     
    四、黑盒测试方法
    1、等价类
    2、边界值
    3、因果图
    4、判定表
    5、决策树
    6、探索式测试
     
    五、白盒测试方法
    1、代码覆盖:emma、cobertura、jacoco
    2、流程覆盖
    3、精准化测试
     

  • 相关阅读:
    iOS上传AppStore被拒原因及处理方案
    记录一个打包upload时报错处理
    Git撤销merge
    设置UIButton上面是image,下面是title
    Sourcetree中切换到其他分支,临时分支的这次提交丢失
    修改字符串指定范围的颜色
    定时消失的Alert弹窗
    ALAsset 将资源转换为 NSData
    textField和textView的输入字数最大限制
    手机号码正则判断
  • 原文地址:https://www.cnblogs.com/guoccf/p/14309406.html
Copyright © 2011-2022 走看看