软件测试知识点梳理

101 阅读5分钟

软件测试环境备份

测试工作的过程中,可能随时会出现意料之外的情况

备份位置

  • 低重要度的备份文件可以放置在本地系统盘或其他分区。
  • 中等重要度的备份文件应当放置在外部存储介质,并且将多份备份文件存放至不同的位置。
  • 高重要度的备份文件必须多份、异地存放,避免因火灾、地震等不可抗力造成备份数据丢失。

软件测试的策略

在软件测试计划的指导下,根据被测项目的特定环境约束而制定的软件测试的原则、方式、思路等方法的集合。

  • 如果未能做到测试软件所有可能的情况,则软件就是有风险的。
  • 如果软件在交付后由用户发现了错误或缺陷的话,此时的负面代价是最大的。
  • 将发生各种意外的可能性尽可能的降低至可控范围。
  • 提前进行风险评估,针对风险的不同选择恰当的测试方法。
  • 找到最佳测试量,选择资金花费与剩余错误缺陷数量相平衡的位置终止测试。

软件测试的方法

静态测试

不实际运行被测试的软件,仅静态检查程序代码、软件界面等

主要检查程序代码、软件界面是否与需求文档中符合、测试用户手册与需求说明文档是否完全符合实际需求

程序代码主要考察以下三点

  • 代码风格
  • 静态结构分析,检查算法是否有优化空间,程序逻辑是否错误
  • 代码质量,使用人工或软件工具检查代码质量是否符合设计标准

静态结构分析,是将程序内部函数调用关系和控制流图进行抽象

静态测试阶段的主要活动

  • 检查算法逻辑是否正确。
  • 检查模块接口是否正确。
  • 检查函数是否对输入参数进行了合法性检查。
  • 检查程序能否对异常或错误进行适当的处理。
  • 检查代码表达式与语句是否准确并且不存在二义性。
  • 检查常量与全局变量的使用是否符合规范。
  • 检查标识符的使用是否符合规范。
  • 检查程序代码风格的一致性、规范性。
  • 检查代码是否仍然可以继续优化 (算法效率是否足够高)。
  • 检查代码注释是否完整且规范,是否可以准确的反映代码功能。

动态测试

实际运行被测试的软件,向其中输入测试数据,检查实际输出结果与预期结果是否相符

动态测试主要包括:

  • 功能确认、接口测试
  • 覆盖率分析
  • 性能分析
  • 内存分析

白盒测试

白盒测试 (亦称程序员测试、结构测试、逻辑驱动测试):指的是需要完全了解软件的结构与处理过程,按照软件的内部逻辑来测试软件

着重于检查软件的内部结构、逻辑、循环与路径中存在的错误与缺陷

黑盒测试

黑盒测试 (亦称用户测试、功能测试、数据驱动测试)

只检查软件功能是否满足规格说明文档

自动化测试

功能性自动化测试工具

  • QuickTest Professional
  • Rational Robot
  • Compuware QARun

性能自动化测试工具

  • LoadRunner
  • MS WAS
  • Rational Robot

软件测试用例

向被测试软件提供的有关测试目标、输入数据、操作方式、测试环境、预期结果以及测试脚本等必要信息的特定集合。

可以参照已有的软件测试用例模板来编写新的待测软件的测试用例。根据待测软件的不同对最终的测试用例进行相应的调整。

测试用例需要保证简洁性、正确性

软件测试用例的基本格式

  • 软件名称
  • 软件版本
  • 功能模块名称
  • 测试标题
  • 测试目的
  • 测试数据
  • 测试输入
  • 操作步骤
  • 预期结果

黑盒测试常用方法

  • 等价类划分法,每个细分区域中选取一个有代表性的测试数据
  • 边界值分析法
  • 因果图法
  • 决策表法
  • 错误推测法
  • 正交试验法
  • 场景法

白盒测试常用方法

白盒测试技术中的边界值测试一般用于检查程序代码中的数组是否越界、变量是否溢出等错误。

逻辑驱动覆盖主要分为以下几种(按强弱顺序排行):

  • 条件组合覆盖(最强)
  • 判定-条件覆盖
  • 条件覆盖
  • 判定覆盖
  • 语句覆盖(最弱)

语句覆盖

制定足够多的软件测试用例,使得软件中的每一个代码语句至少都能被执行一次的软件测试方法。这是一种效果较差的逻辑驱动覆盖测试方法。

判定覆盖

制定足够多的软件测试用例,使得软件中的每一个分支至少都能被执行一次

条件覆盖

使得软件中的每一个判定条件都获得各种可能的取值

判定-条件覆盖

判定中的每一个条件都获得各种可能的取值,同时使得软件中的每一个分支至少都能被执行一次的软件测试方法。

条件组合覆盖

使得软件中的所有条件的各种组合都能被至少执行一次

软件缺陷

一般情况下,满足以下情况之一,即可称为软件缺陷:

  • 软件未实现产品说明文档中要求的功能。
  • 软件出现了产品说明文档中明确指出了的 “不应当出现” 的错误。
  • 软件实现了产品说明文档中未要求实现的功能。
  • 软件未实现产品说明文档中未要求实现、但是实际上应当实现的功能。
  • 软件难以使用、不易使用、运行缓慢或最终用户不满意。