7.软件测试笔记

测试原则

  1. 追溯到需求
  2. 测试计划早
  3. 帕累托原理(Pareto)八二原则
  4. 小规模->大规模
  5. 穷举测试是不可能的,因此测试只能证明软件中有错误,而不能证明软件中没有错误。
  6. 第三方测试

步骤

  1. 模块测试
  2. 子系统测试
  3. 系统测试-和子系统测试一起成为集成测试或者组装测试。
  4. 验收测试
  5. 平行运行

软件测试v模型

软件分析阶段自顶向下逐步求精的设计过程,和测试阶段由小到大逐步测试的过程一一对应。包括:

  1. 软件分析–确认测试
  2. 概要设计–系统测试
  3. 详细设计–集成测试
  4. 编码–单元测试

以上A–B的一一对应关系,具体表现为B测试主要发现A阶段引入的错误,A阶段成果是B测试进行的基础,因此B测试计划和用例要在A阶段完成。例如:软件分析阶段要产出确认测试计划,需求规格说明书是确认测试的基础,确认测试主要发现软件需求分析阶段引入的、需求规格说明书中的错误。

单元测试

针对模块接口、局部数据结构、重要执行通路、出错处理通路、边界条件等进行测试。
方法包括代码审查和计算机测试两种。主要为了发现模块内部代码中的错误。

子系统测试&系统测试

子系统测试:主要为了发现和接口有关的问题。
系统测试:发现代码&需求中的问题。
基本测试方法:渐增式测试。(为了保证加入模块没有产生新的错误,可能需要引入回归测试)
两种测试策略:自顶向下、自底向上。自顶向下需要存根,自底向上需要驱动。
自顶向下优点:不需要测试驱动程序,能够在早期验证主要功能、发现上层模块接口错误。
自顶向下缺点:需要存根程序,底层关键模块错误发现较晚,早期不能充分展开人力。
自底向上测试方法的优缺点与之是对应的。
混合改进策略:

  1. 改进的自顶向下测试方法:基本上使用自顶向下,少数关键底层模块使用自底向上。
  2. 混合法:中上层使用自顶向下,中下层使用自底向上,二者相结合。

白盒测试

逻辑覆盖

  1. 语句覆盖–每个语句至少执行一次

  2. 判定覆盖–每个判定的每种可能的结果至少执行一次。

  3. 条件覆盖–判定表达式中的每个条件都取到各种可能的结果。判定覆盖不一定覆盖条件覆盖,条件覆盖也不一定包含判定覆盖,但是条件覆盖通常比判定覆盖更强。

  4. 判定/条件覆盖–同时满足2和3。

  5. 条件组合覆盖–更强的逻辑覆盖标准,每个判定表达式中的每个条件组合至少执行一次。

  6. 点覆盖–和语句覆盖标准相同。

  7. 边覆盖–通常和判定覆盖是一致的。

  8. 路径覆盖–程序的每条可能路径都执行一次。

控制结构测试

有基本路径测试、条件测试、循环测试等。
基本路径测试:画McCabe方法流图-计算环复杂度-定义基本路径的集合-执行基本路径。该基本路径可以保证程序中每条语句至少执行一次,而且每个条件都取到真假两种值。
环形复杂度算法:边数- 节点数 + 2判定节点数 + 1

条件测试:BRO测试
循环测试:分三种处理,简单循环、嵌套循环、串接循环。大概不考吧。

黑盒测试

等价划分、边界值分析、错误推测。

调试

测试找出错误后改正错误的过程。调试途径:回溯法、原因排除法。

软件可靠性

可靠性:给定时间间隔内,按照规格说明书的规定(一直)成功运行的概率。可靠性随着时间间隔的加大而减少。
可用性:程序在给定的时间点,按照规格说明书的规定(正在)成功运行的概率。
平均无故障时间:MTTF
平均维修时间:MTTR
A(稳态可用性) = MTTF/(MTTF + MTTR)
估算平均无故障时间:略。 见学习辅导 p95

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值