软件工程-软件测试(动态静态黑盒白盒MaCabe环路复杂度)

软件工程-软件测试

目录

  • 软件工程-软件测试
    • 动态测试
      • 黑盒测试
          • 例题
          • 思路
      • 白盒测试(结构测试)
    • 静态测试
    • 与瀑布V字测试模型相关的测试
      • 回归测试
      • 负载测试
      • 压力测试
      • McCabe复杂度(环路复杂度)

动态测试

黑盒测试

黑盒测试也称功能测试,不考虑软件的内部结构和特性,测试软件的外部特性

  • 等价类(集合A中的元素a测试结果等同于集合A中的所有元素进行测试)划分:用等价类划分法将程序输入域划分为若干等价类,用少量具有代表性的测试用例去测试等价类,注意一个测试用例只能覆盖一个无效类

  • 边界值分析:处理边界情况时最容易出错,选取数据应该恰好等于、稍小于或稍大于边界值

  • 错误检测:基于经验,穷举可能出现的错误,一一排查

  • 因果图 :if…else条件检验

例题

小张帮朋友开发一个成绩分级程序,90-100优秀,80-89良,70-79中,60-69及格,0-59不及格;对此我们若采用等价类划分以及边界值分析,如何设计测试用例

思路
  1. 我们画出一条轴,标明边界(0 59 69 79 89 )—>(59~69)()…是一个等价类
  2. ,选取比0的边界稍大或稍小或等于的数据(-1 0 1) …等等稍大或稍小的元素进行测试

白盒测试(结构测试)

白盒测试要根据程序的内部结构和逻辑来设计测试用例

  • 语句覆盖

  • 判定覆盖

  • 条件覆盖

  • 条件判定覆盖

  • 路径覆盖

静态测试

  • 桌前检查: 对源程序代码进行分析、检验,根据相关的文档,检验程序中是否有错误的过程
  • 代码审查:形成小组,需程序员配合参与
  • 代码走查:形成小组,检查人员检查

与瀑布V字测试模型相关的测试

软件工程-软件测试(动态静态黑盒白盒MaCabe环路复杂度)_第1张图片

  • 单元测试:针对局部数据结构(模块内),针对编码,以详细设计为依据
  • 集成测试:针对模块间的接口和通信,针对详细设计,以概要设计为依据
  • 系统测试:模拟真实环境进行测试,针对概要设计,以需求建模为依据
  • 验收测试:以用户为主导,针对需求设计
  • 注重测试,开发与测试同时进行

回归测试

经测试返工后再进行的测试

负载测试

性能测试,测试并发量

压力测试

计算机数量较少或系统资源匮乏的条件下运行测试

McCabe复杂度(环路复杂度)

McCabe方法是一种软件质量度量方法,它是基于对拓扑结构 程序复杂度的分析

  • 计算有向图G的环路复杂度公式为V(G)=边数-节点数+2
  • 计算有向图G的环路复杂度公式为V(G)=闭环(不考虑重叠)+1

V(G) = 最少测试用例

软考同学请注意,如果给出程序段问McCabe复杂度,我们需要还原成图的形式,再进行计算

int find_max(int i ,int j,int k){
int max ;             // 1
if(i>j)then			//2
	if(i>k)			//3
	then max = i ;	//5
	else max = k    //6
	else if (j>k) 		//4
	then max = j;		//7
	 else max = k ; 	//8
	 return max ; 		//9
}

还原成如下图

软件工程-软件测试(动态静态黑盒白盒MaCabe环路复杂度)_第2张图片

根据环路复杂度计算公式计算即可

你可能感兴趣的:(软考,软件工程,软件测试,黑盒测试,白盒测试)