测试的目的就是希望以最少的人力和时间发现潜在的各种错误和缺陷。

测试策略

软件测试策略将软件测试用例的设计方法集成到一系列经过周密计划的步骤,从而使软件构造成功地完成。

软件测试策略分为 4 步进行:单元测试、集成测试、确认测试和系统测试。

单元测试

单元测试也称为模块测试,在模块编写完成且无编译错误后就可以进行。单元测试侧重于模块中的内部处理逻辑和数据结构。如果选用机器测试,一般用白盒测试。

主要的测试内容:

  1. 模块接口。模块的接口保证了测试模块的数据流可以正确地流入、流出。
  2. 局部数据结构。主要是变量的使用、赋值、命名等是否有错。
  3. 重要的执行路径。需要设计测试例子来发现是否计算、比较和控制流等方面的错误。
  4. 出错处理。好的设计应该能预测到出错的条件并且有对出错处理的路径。
  5. 边界条件。

集成测试

集成测试就是把模块按系统设计说明书的要求组合起来进行测试。

通常,集成测试有两种方法:一种是非增量集成,分别测试各个模块,再把这些模块组合进行起来整体测试。另一种是增量集成,即以小增量的方式逐步进行构造和测试。

增量集成策略

  1. 自顶向下集成测试。 模块的集成顺序为从主控模块开始,沿着控制层次逐步向下,以深度优先或广度优先的方式将从属于主控模块的模块集成到结构中。
  2. 自底向上集成测试。 从底层构件开始构造和测试。
  3. 回归测试 回归测试就是重新执行已测试过的某些子集,以确保变更没有传播不期望的副作用。

系统测试

系统测试是将已经确认的软件、计算机硬件、外设和网络等其他因素结合在一起,进行信息系统的各种集成测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户不符或矛盾的地方。

  1. 恢复测试
  2. 安全性测试
  3. 压力测试
  4. 性能测试
  5. 部署测试

测试方法

软件测试方法分为静态测试和动态测试。动态测试主要有黑盒测试和白盒测试。

黑盒测试

黑盒测试被称为功能测试,在完全不考虑软件的内部结构和特性的情况下,测试软件的外部特性。

常用的黑盒测试技术有等价划分、边值界分析、错误推测和因果图等。

白盒测试

白盒测试也称为结构测试,根据程序的内部结构和逻辑来设计测试用例,对程序的路径和过程进行测试,检查是否满足设计的需求。

白盒测试常用的技术是逻辑覆盖、循环覆盖和基本路径测试。

McCabe 复杂度

计算有向图 G 的环路复杂度公式为:V(G)=m-n+2

说明:其中 V(G)是有向图 G 中的环路个数,m 是 G 中的有向弧数,n 是 G 中的节点数。

项目管理

进度安排

进度安排的常用图形描述方法有 Gantt 图(甘特图)和项目计划评审技术(Program Evaluation & Review Technique, PERT)图。

  1. Gantt 图

    Gantt 图是一种简单的水平条形图,它以日历为基准描述项目任务.

    Gantt 图能清晰描述每个任务的开始结束时间,任务的进展情况以及各个任务之间的并行性.但是不能反映各任务之间的依赖关系,难以确定整个项目的关键所在。

  2. PERT 图

    PERT 图是一个有向图,途中的箭头表示任务,它可以标上该任务所需的时间。一个事件有一个事件号,最早时间和最迟时间。

    每个任务有一个松弛时间(slack time),表示在不影响整个工期的前提下完成该任务有多少时间余地。图中松弛时间为 0 的这些任务是完成整个工程的关键路径,关键路径可以多条。

参考链接

  • 《软件设计师教程》