软件测试
测试的原则
软件测试分为静态测试和动态测试
- 动态测试:需要将被测试的系统在计算机上跑起来
- 静态测试:不需要测试系统跑起来
具体如下
黑盒测试
黑盒测试法就是将一个软件模块看做一个黑盒子,我们看不到黑盒子里面有什么东西,我们只知道输入输出,和它的功能
等价类划分
看看程序模块的功能是什么,程序的那种数据是可以划分为一类的
比如一个程序模块是要将90分以上的划分为优,80-90化为良好,70-80化为及格。所以我们测85 95 75
这个三个值就是等价类划分法
边界值分析
顾名思义,将某些数据类型之间的边界值测试一下。上面的举例的边界值是90,80,70
白盒测试
能够看到程序的内部结构,相对黑盒测试往往更加全面的测试
- 1.语句覆盖每条语句至少执行一次。
- 2.判定覆盖每个判定的每个分支至少执行一次。
- 3.条件覆盖每个判定的每个条件应取到各种可能的值。
- 4.判定/条件覆盖同时满足判定覆盖条件覆盖。
- 5.条件组合覆盖每个判定中各条件的每一种组合至少出现一次。
- 6.路径覆盖使程序中每一条可能的路径至少执行一次。
软件测试的阶段
单元测试
主要测试局部的数据结构,模块接口,边界条件,独立的路径和错误处理
集成测试
集成测试是在单元测试的基础上讲各个模块之间组装(一次性组装和增量性组装(工作量大但好些))起来,测试他们之间的衔接和通信是否有问题
确认测试
确认的是需求,实验环境是Alpha测试,beta是用户在自己本地的测试
系统测试
主要了解性格测试时的负载,强度和容量测试
McCabe复杂度(环路复杂度)
计算有向图F的环路复杂度公式为:V(G) = m - n + 2
m是边数,n是节点数
求下图的环路复杂度:
V(G) = 15 - 12 + 2 = 5
告诉我们至少需要5个测试用例才能到达路径覆盖
环路复杂度还有一种计算方式
封闭区间数 + 1
试用上图是能行的