软件测试基础

  • 测试定义

    • 通过人工或自动化的手段,对被测对象进行检测的活动,目的在于发现被测对象是否实现用户的需求,或者弄清实际结果与预期结果之间的差异
    • 需要理解什么软件
      • 源代码
      • 用户手册
      • 配置数据
  • 测试目的

    • 发现被测对象与用户需求间的差异 --俗称找bug
    • 通过测试活动发现并解决缺陷,增加人们对被测对象的质量信心
    • 通过测试活动,获取被测对象的质量信息,为决策提供数据依据
    • 通过测试活动,预防缺陷,从而降低项目或产品的风险
  • 测试原则

    • 测试证明软件存在缺陷
    • 不可能执行穷尽测试
    • 测试应尽早启动,尽早介入
    • 缺陷存在群集现象
    • 杀虫剂悖论--以不同的方法去测试
    • 不同的测试活动依赖不同的测试背景
    • 不存在却显得谬论
  • 测试对象

    • 需求阶段
      • 测试需求文档是否正确实现了用户的需求
    • 系统设计阶段
      • 概要设计文档,详细设计文档是否有设计或逻辑上的错误
    • 编码阶段
      • 测试源代码,发现编程上的错误
    • 系统测试阶段
      • 被测对象是否满足用户需求
  • 测试级别

    • 单元测试
      • 针对被测系统最小的组成单元实施的测试活动,一般是类或函数,也可能最小的功能单元
    • 集成测试
      • 针对组件/单元与组件/单元之间的接口实施的测试活动,验证接口设计是否与设计相符
      • 分三种集成
        • 函数间测试
        • 模块间测试
        • 子系统间测试
    • 系统测试
      • 通过集成测试的软件,部署在真实的用户环境下执行测试
    • 验收测试
      • 以用户为主的测试,验收组应该由项目组成员,用户代表组成
      • α测试✍️
        • 由用户在开发环境下执行的测试活动,开发者在测试人员身边,发现问题激素沟通解决
        • 在受控环境下执行测试
      • β测试✍️
        • 开发者不在测试人员身边,发现问题由专人统一收集,再由研发人员进行修改
        • 在不受控环境下执行测试
      • UAT测试✍️
        • 用户接受度测试
        • 一般商业用户验证系统可用性进行的测试
  • 系统测试类型

    • 功能性测试
      • 在指定使用条件下,使用被测对象,验证其是否满足用户显性或隐性需求
      • 测试关注点
        • 是否有不正确或遗漏或多余的功能
        • 满足系统显性或隐性需求
        • 是否对输入输出做出了正确的响应,输出结果能否正确的显示
    • 性能测试
      • 通过模拟被测对象运行业务压力或使用场景,验证被测对象是否满足预先设定的性能指标
      • 验证系统是否具有宣称的能力
      • 了解测试系统典型场景,并具有确定的性能目标
      • 要求在真实环境下实施
    • 安全性测试
      • 测试被测对象的安全保护机制保护系统不受非法侵入,能够接受正确授权的操作
    • 兼容性测试
      • 验证被测对象在不同的操作系统、硬件信息等环境下的运行情况
  • 软件测试方法✍️

    • 黑盒测试
      • 不关注被测对象内部结构,仅从用户需求考虑,是否满足用户显性或隐性需求
    • 白盒测试
      • 结构测试,逻辑驱动测试
    • 灰盒测试
      • 既关注被测对象的外部特性,又关注其内部设计
    • 静态测试
      • 不执行被测对象程序,不运行被测对象的测试方法
    • 动态测试
      • 执行被测对象,进行的检测活动
    • 手工测试
      • 通过测试工程师试用,验证被测对象是否满足用户需求
    • 自动化测试
      • 通过自动化测试工具,或脚本语言自动化完成测试过程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值