软件测试基本概念-策略

2014-08-05 walter lee 更多博文 » 博客 » GitHub »

软件测试

原文链接 http://www.xiangguo.li/software_test/2014/08/05/software_test2
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


{% include JB/setup %}

软件测试基本概念-策略

1 静态测试与动态测试

1.1 静态测试

1.1.1 定义

  • 静态测试不实际运行软件,主要对软件的编程格式、结构等方面进行评估。
  • 可以有人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。

1.1.2 静态测试的方法

  • 代码检查:代码审查(fingbugs)、代码走查(模拟运行)、桌面检查(单人的代码走查)、同行评分(略)
  • 静态结构分析:静态结构分析主要是以图形的方式表现程序的内部结构:例如函数调用关系图、函数内部控制流图。
  • 代码质量度量:功能性(functionality)、可靠性(reliability)、可用性(usability)、有效性(efficiency)、可维护性(maintainability)、轻便性(portability)

1.2 动态测试

1.2.1 定义

计算机必须真正运行被测试的程序,通过输入测试用例,对其运行情况即输入与输出的对应关系进行分析,以达到检测的目的。

1.2.2 动态测试的方法

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

2 黑盒测试和白盒测试

2.1 黑盒测试(Black-box Testing)

2.1.1 定义

测试规划是基于产品的功能,目的是检查程序各个功能是否能够实现,并检查其中的功能错误。

2.1.2 黑盒测试的基本观点

任何程序都可以看作是从输入定义域映射到输出值域的函数过程,被测程序被认为是一个打不开的黑盒子,黑盒中的内容(实现过程)完全不知道,只明确要做到什么。

2.1.3 黑盒测试的特点

  • 黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可以使用。
  • 黑盒测试用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。

2.1.4 黑盒测试的具体技术方法

边界值分析法、等价类划分法、因果图法、决策表法

黑盒测试是在程序接口进行测试,它只是检查程序功能是否按照规格说明书的规定正常使用。也被称为用户测试。

2.2 白盒测试(White-box Testing )

2.2.1 定义

测试规划基于产品的内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用。

2.2.2 白盒测试的基本观点

将被测程序看作一个打开的盒子,测试者能够看到被测源程序,可以分析被测程序的内部结构,此时测试的焦点集中在根据其内部结构设计测试用例。

2.2.3 通常的程序结构覆盖

语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、路径覆盖

白盒测试需要完全了解程序结构和处理过程,它按照程序内部逻辑测试程序,检验程序中每条通路是否按预定要求正确工作。也被称为程序员测试。

2.3 对比

黑盒测试用来测功能,白盒测试用来测结构。两种测试方法从完全不同的角度出发,反映了测试思路的两方面情况,适用于不同的测试阶段。