软件测试之白盒测试

白盒测试又称结构测试、逻辑驱动测试或基于程序的测试。它一般用力啊分析程序的内部结构。它依赖于对程序细节的严密验证,针对特定条件和循环设计测试用例,对程序的逻辑路径进行测试。通过在程序的不同点检验程序状态,来判定其实际情况是否和预期的状态相一致。

控制流测试

  在软件的发展历史中,人们发现非结构化的程序会给测试,排错及维护带来极大的不便,因此人们开始要求写出的程序是结构良好的,符合结构化的。而控制流图在用来刻画程序结构已经非常成熟。此后人们按照覆盖准则在控制流中提出了几个著名的覆盖准则。

  语句覆盖准则:语句覆盖准则是最简单的测试方法之一,当然也是比较暴力的一种测试方法、其要求被测程序的每条语句都被运行,而在控制流图中则表现在每条语句对应的节点都被覆盖。

  分支覆盖准则:语句覆盖测试时最基本的测试手段,因此其对很多软件错误而言还是无能为力,所以在这个时候更强的覆盖准则就被提出来了。分支测试是要求在软件测试中每一分支至少要获得一个“真”和一次“假”;即为每一个分支都必须进行一次正确和一次错误的测试。因此也称分支覆盖测试包含语句覆盖测试。

  路径覆盖准则:路径覆盖准则是要求在观察到的程序的整个路径中,要求程序的运行能够覆盖所有的完整路径。

数据流测试

  数据流覆盖准则:在数据流测试中最简单的测试方式是测试每一个数据定义的正确性。其定义为: 如果对具有数据流信息的控制流图GP中的每一个变量x的定义性出现,若该定义性出现能够可行的传递到该变量的某一个引用性出现,那么LT重存在一条路径A,它包含一条子路径A`,使得A`将该定义出现传递到某一个引用性出现。则称测试数据集T对测试程序P满足定义覆盖准则。

  在实验中,我们对我们在windows商店上上传的一款名为“精灵球之海马”的APP进行了白盒测试,以此为例展示一下数据流图和测试用例的使用。

游戏操作介绍:

  游戏开始时精灵球会从屏幕上方开始下落,初始速度为零,加速度为10。

  游戏角色海马在屏幕下方,点击屏幕,海马将会向上顶起下落的精灵球,每次精灵球下落时,只可以点击屏幕一次。

  屏幕中有一条警戒线,当精灵球掉落至警戒线下方时海马才可以将精灵球顶起。

  海马与精灵球碰撞时,发生非弹性碰撞,距离警戒线越近,碰撞系数越大。

  精灵球被顶起后,以向下的加速度10向上减速运动。

原文地址:https://www.cnblogs.com/cocomue/p/4439762.html