【刷题】面筋-测开-软件测试概述/对测试的理解

目录

=======================================================

概述

  • 简单认识软件测试,可以从四个方面理解

    • 软件测试概述
    • 测试用例概述
    • 测试分类概述
    • 软件质量评估

=======================================================

1-软件测试概述

对软件测试的理解

  • 软件测试是软件工程中的一个重要组成部分,基本与开发并行,开发写代码,测试测代码。
  • 软件测试工程师通过多种测试方法,和代码管理工具、自动化工具等,对软件产品的多个模块,如功能和性能等进行测试,以检查软件产品是否有bug,来保证产品的质量。

软件测试的作用

  • 确保软件产品质量:软件测试是软件产品质量保证的重要措施之一
  • 术业有专攻:软件测试人员比其他人做软件测试测试工作,效率更高,效果更好;

软件测试的关键点

  • 尽早发现缺陷:伴随软件开发的各个环节,及时发现问题解决问题,避免最后问题堆积导致无法解决或解决工程量巨大。
  • 用尽量少的测试用例发现尽可能多的缺陷
  • 提升发现缺陷的效率

软件测试的定义

  • 测试定义

    • 通过设计和运行测试用例,来校验被测系统的实际输出与预期输出是否一致,最终目标是保证系统应符合需求。
      • 根本目的:确保被测系统符合用户需求
      • 基本手段:设计测试用例
      • 执行方式:手工/自动化
      • 测试策略:动态运行/静态审阅
      • 通用流程:计划、设计、实施、评估
    • 软件测试以需求为中心。
    • 需求:定义需求(委托方)--分析需求(双方)--实现需求(研发)--校验需求(测试)。
  • 测试分类:

    • 软件测试包括动态测试和静态检查两类方法;
    • 测试的执行包括人工和自动化两类策略。

=======================================================

2-测试用例概述

定义

  • 基于风险最低、效率最高、分而治之的测试设计原则;
  • 能代表需求的小的测试单元,描述用户预期输出,反映系统实际执行结果。

测试用例组成

  • 输入+输出+测试环境

    • 输入:测试数据和操作步骤
    • 输出:系统预期执行结果
    • 测试环境:是系统环境设置,即进行软件测试所必需的工作平台和前提条件
  • 具体:

    • 分为9个方面:用例编号/测试项/测试标题/用例属性/重要级别/预置条件/测试输入/操作步骤/预期结果/实际输出
       - 一般情况下分为以上几项可根据公司要求进行增删

测试用例的基本属性

  • 典型性:

    • 能揭示最有可能存在缺陷的地方,能代表和覆盖合理与不合理、合法或不合法的情况。
  • 可测试性:

    • 一个测试用例的预期输出必须是可以检验的,可以根据相关开发文档得到明确的、可判定的结论。
  • 可重现性:

    • 对于相同的测试用例,系统的预期执行结果应该完全相同;
    • 否则,如果系统预期输出存在不确定性,一旦实际运行该测试用例,也无法进行校验。
  • 独立性:

    • 测试用例应尽量独立

=======================================================

3-测试分类概述

不同角度的测试分类

  • 从测试阶段或对象的角度:

    • 单元测试、集成测试、系统测试和验收测试;
  • 从测试技术的角度:

    • 黑盒测试、白盒测试和灰盒测试;
  • 从测试目标的角度:

    • 回归测试、功能测试、性能测试、 Alpha测试、Beta测试、压力测试、负载测试、安全性测试、配置测试、安装测试、可用性测试、可恢复性测试等。
  • 从测试执行方式的角度:

    • 手动测试、自动化测试和半自动化测试。

从测试阶段或对象的角度

  • V模型:与软件开发阶段呼应

    • 软件开发:需求分析-->概要设计-->详细设计-->编码阶段
    • 软件测试:单元测试-->集成测试-->系统测试-->验收测试
  • 单元测试

    • 是针对每个单元的测试。
    • 用于验证一个单元模块的功能是否正常。
    • 一个单元模块可以包括几行或上百行代码。
    • 单元测试与编码过程是紧密联系的,单元测试有时也认为是编码阶段的一个活动。
  • 集成测试:

    • 是将不同单元模块组合在一起,形成更大组件的过程。
    • 用于查找单元或组件间的接口错误,其关注的重点是那些在单元测试中不能被发现的缺陷。
  • 系统测试:

    • 检验软件产品能否与系统的其他部分(比如,硬件、数据库及操作人员)协调工作。
    • 用于评估整个系统的行为并确保系统行为符合用户需求,并评估系统与硬件设备、运行环境和应用程序等之间的接口。
  • 验收测试:

    • 部署软件之前的最后一个测试操作。
    • 测试范围类似系统测试,通常由系统提供者和客户共同完成的。
    • 验收测试使客户确信应用程序具有所需的特性并且能够正确的运行。
  • 需求文档测试

    • 主要测试需求 中是否存在 逻辑矛盾 以及需求在 技术上 是否可以实现;
  • 设计文档测试

    • 测试设计是否符合全部需求以及设计是否合理。

从测试技术的角度

  • 黑盒测试:

    • 关注的是与产品的外部行为相关的缺陷,此时并不考虑产品的内部结构或运行逻辑。
  • 白盒测试:

    • 关注的是与代码内部结构相关的缺陷,因此,需要测试人员掌握一定的编程技术。
  • 灰盒测试:

    • 是综合运用黑盒测试和白盒测试技术的一种混合测试方法。

从测试目标的角度

  • 功能测试:

    • 针对软件功能需求进行测试,目的是检查应用程序的行为是否符合预期。
  • 性能测试:

    • 用于验证系统是否满足规格说明的性能需求,例如容量和响应时间等。
  • Alpha测试(α测试):

    • 在软件发布前,有时会让小规模、有代表性的潜在用户试用软件; 也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,
    • Alpha测试不能由程序员或测试员完成。
    • 目的是评价软件产品的功能、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色
  • Beta测试(β测试):

    • 软件的早期版本被发布给具有代表性用户群来测试,称为β测试。
    • β测试常被用于面向大众市场的系统、计算机游戏和类似的应用程序。
  • 回归测试:

    • 是软件版本修改后的重新测试,可应用于所有测试级别;
    • 目的是确保被修改组件的行为没有改变,不会造成意外结果.
  • 压力测试:

    • 以设计的最大负载或超过最大负载来运行软件,用于确定系统运行的负载界限。
  • 负载测试:

    • 通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。
  • 安全性测试:

    • 是对产品进行检验,以验证产品符合安全需求定义和产品质量标准的过程。
    • 用于测试系统在遭遇未授权访问、计算机犯罪和破坏时是否能保护自己
  • 配置测试:

    • 当开发的系统需要应用于多种环境配置时,需要对每种配置进行测试,以检测系统行为是否符合规格要求。
    • 包含硬件配置和软件配置。
  • 安装测试:

    • 在目标环境中通过安装来验证软件及其安装过程。
    • 目的是确保该软件在正常或异常情况的不同条件下都能进行安装,且安装后可立即正常运行。
  • 可用性测试:

    • 用于评估系统使用的简易程度,交互是否具有人机工程学设计以及用户文档使用的有效性。
  • 可恢复性测试:

    • 用于检验系统在灾难或意外宕机后的重启能力。

从测试执行方式的角度

  • 手动测试:

    • 人工执行测试。
    • 即根据测试用例中描述的规程,不借助特殊的软件工具,人工来运行被测系统,观察系统实际输出是否符合测试用例的预期输出。
  • 自动化测试:

    • 软件测试的自动化,是一个将以人为驱动的测试行为转化为机器执行的过程。
    • 目的是节省人力、时间或硬件资源,并提高测试效率。

=======================================================

4-软件质量评估

狭义和广义的软件质量

  • 狭义的软件质量:软件的内部质量,即软件无“故障”;
  • 广义的软件质量:产品质量、过程质量和客户满意度

软件测试和软件质量

  • 软件测试是软件质量保证的关键步骤。
  • 但提高软件质量的途径是改进软件开发过程的质量,而不是提高软件测试。

END

posted @ 2020-04-18 18:18  anliux  阅读(4541)  评论(0编辑  收藏  举报