《系统架构设计师教程(第2版)》第5章-软件工程基础知识-04-软件测试

1.测试方法

  • 以测试过程中程序执行状态为依据
    • 静态测试 (StaticTesting,ST)
    • 动态测试 (Dynamic Testing,DT)
  • 以具体实现算法细节和系统内部结构的相关情况为根据
    • 黑盒测试
    • 白盒测试
    • 灰盒测试
  • 从程序执行的方式来分类
    • 为人工测试 (Manual Testing,MT)
    • 自动化测试 (Automatic Testing,AT)。

1.1 静态测试

  • 概述:
    • 被测程序不运行
    • 只依靠分析或检查源程序的语句、结构、过程等来检查程序是否有错误

    通过对软件的需求规格说明书、设计说明书以及源程序做结构分析和流程图分析,从而来找出错误

  • 如:不匹配的参数,未定义的变量等。

1.2 动态测试

  • 概述:
    • 通过运行被测试程序,对得到的运行结果与预期的结果进行比较分析
    • 同时分析运行效率和健壮性能等
  • 分为3个步骤:
    • 构造测试实例
    • 执行程序
    • 分析结果

1.3 黑盒测试

  • 概述:
    • 将被测程序看成是一个黑盒(不考虑任何程序内部结构和特性)
    • 根据需求规格说明书设计测试实例,检查程序的功能是否能够按照规范说明准确无误的运行
  • 测试范围:对软件界面、软件功能

对于黑盒测试行为必须加以量化才能够有效的保证软件的质量。

1.4 白盒测试

  • 概述:
    • 借助程序内部的逻辑和相关信息
    • 通过检测内部动作是否按照设计规格说明书的设定进行
    • 来检查每一条通路能否正常工作
  • 从程序结构方面出发对测试用例进行设计
  • 测试范围
    • 检查各个逻辑结构是否合理
    • 对应的模块独立路径是否正常
    • 内部结构是否有效
  • 常用的白盒测试法:控制流分析、数据流分析、路径分析、程序变异等
  • 覆盖标准分为
    • 语句覆盖:确保每个语句至少被执行一次。(最基本的覆盖标准,但可能无法检测到所有的错误)
    • 判定覆盖:确保每个判定的每个分支都被执行至少一次。(可以检测到更多的错误,但仍然可能遗漏一些情况)
    • 分支覆盖:确保每个分支都被执行至少一次。(比判定覆盖更严格,但仍然可能遗漏一些情况)
    • 路径覆盖:确保程序中的每条可能路径都被执行至少一次。(最严格的覆盖标准,但通常也是最难达到)

1.5 灰盒测试

  • 介于黑盒与白盒测试之间
    • (同黑盒):重视输出相对于输入的正确性
    • (同白盒):看重其内部的程序逻辑
    • (弱白盒): 不像白盒测试那样详细和完整

它只是简单地靠一些象征性的现象或标志来判断其内部的运行情况,因此在内部结果出现错误,但输出结
果正确的情况下可以采取灰盒测试方法。

  • 优点
    • 比白盒高效
    • 比黑盒适用性广

1.6 自动化测试

  • 软件测试的自动化:在预先设定的条件下自动运行被测程序,并分析运行结果

2. 测试阶段

  • 从阶段上划分
    • 单元测试
    • 集成测试
    • 系统测试,系统测试中又包含了
      多种不同的测试种类,例如功能测试、性能测试、验收测试、压力测试等。

2.1 单元测试

  • 测试对象:软件的模块
  • 目的:发现该模块的功能不符合、不满足期望的情况和编码错误
  • 采用方法
    • 方法一:
      • 静态测试方法对模块源程序分析
      • 按模块程序设计的控制流程图,以满足软件覆盖率要求的逻辑测试要求
    • 方法二:
      • 黑盒测试方法提出一组基本的测试用例
      • 再用白盒测试方法进行验证

2.2 集成测试

  • 采用方法:白盒测试和黑盒测试结合
  • 目的:明确该程序结构组装的正确性,发现和接口有关的问题
  • 测试内容:对已经严格按照程序设计要求和标准组装起来的模块同时进行测试

2.3 系统测试

  • 采用方法:黑盒测试
  • 目的:检查系统是否符合软件需求
  • 测试内容包:能测试、性能测试、健壮性测试、安装或反安装测试、用户界面测试、压力测试、可靠性及安全性测试等。
  • 其他:
    • 由独立的测试小组
    • 多轮回归测试
  • 结束标志:
    • 满足测试目标所规定的需求覆盖率
    • 发现的缺陷全部归零

2.4 性能测试

  • 概述:通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
  • 负载测试:确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况
  • 压力测试:通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试

2.5 验收测试

  • 概述
    • 最后一个阶段的测试(是软件产品投入正式交付前的测试工作)
    • 为用户展示软件符合预定的要求和有关标准
    • 验证软件实际工作的有效性和可靠性
    • 确保用户能用该软件顺利完成既定的任务和功能
  • 目的:检查是否满足用户需求及合同的各项要求
  • 和系统测试的区别
    • 系统测试是软件开发过程中一项工作
    • 验收测试是由用户对要交付软件开展的一种测试工作

2.6 Alpha 测试

  • 环境:软件开发环境或模拟实际操作环境
  • 测试人员:用户
  • 目的:主要是对软件产品的功能、局域化、界面、可使用性以及性能等等方面进行评价

2.7 Beta测试

  • 环境:实际环境
  • 测试人员:多个用户
  • 目的:将在测试过程中发现的错误有效反馈给软件开发者

2.8 其他测试

1)AB测试

概述:制作l两个或多个版本,在同一时间维度收集用户体验数据,分析、评估,以决定采用哪个版本

是为Web或 App界面或流程制作两个 (A/B) 或多个 (A/B/n) 版本,在同一时间维度,分别让组成成分相同(相似)的访客群组(目标人群)随机的访问这些版本,收集各群组的用户体验数据和业务数据,最后分析、评估出最好版本,正式采用。

2)Web测试

  • 概述:是针对Web 应用的一类测试
  • 目的:尽可能地多发现浏览器端和服务器端程序中的错误并及时加以修正

3)链接测试

  • 概述:验证应用程序中的链接是否有效和正确
  • 3个方面:
    • 测试所有链接指向是否正确
    • 测试所链接的页面是否存在
    • 保证 Web应用系统上没有孤立的页面

4)表单测试

  • 概述:验证表单的正确性
  • 如:
    • 提交操作的完整性
    • 服务器是否能正确保存提交的数据
    • 默认值的正确性
    • 指定值类型的正确性
  • 15
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玄德公笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值