第七章
7.1静态测试概念
静态测试:静态测试是指不运行被测程序本身,通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。其被测对象是各种与软件相关的有必要进行测试的产物,是对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。静态测试可以手工进行,充分发挥人的思维的优势,并且不需要特别的条件,容易展开,但是静态测试对测试人员的要求较高,至少测试人员需要具有编程经验。
▲静态测试包含的内容:静态测试主要包括各阶段的评审、代码检查、程序分析、软件质量度量等,用于对被测程序进行特性分析。其中评审通常有人来执行;代码检查程序分析、软件质量度量等即可人工完成,也可用工具来完成,但工具的作用和效果相对更大更好一些。
▲静态测试对象:各种与软件相关的有必要进行测试的产物,比如各类文档、源代码等。
7.2各阶段的评审
7.3软件复杂性度量元
McCabe圈复杂度
把程序结构的控制流程图转化为有向图(即程序图),然后计算强连通有向图的环数来衡量软件的质量,用此方法得到的复杂度称为圈复杂度。(为了使之强连通,我们可以从出口点到入口点画一条虚弧。)
计算公式为:V(G)=m-n+p;
注:闭环时:V(G)=m-n+1;
开环时:V(G)=m-n+2;
•G是强连通有向图
•V(G)是强连通有向图G中的环数
•m是G中的弧数
•n是G中的节点数
•p是G中分离部分的数目
•.对于一个正常的程序来说,程序图总是连通的,即p=1;
第八章
八、软件动态测试
动态测试:通过运行被测程序来检查运行结果与预期结果的差异,并分析运行效率和健壮性等指标;这种方法包括三部分:构造测试用例、执行程序、分析程序的输出结果。
动态测试分类:可从不同角度进行分类。
(1)从是否关心软件内部结构和具体实现的角度划分,可分为“白盒”测
试、“黑盒”测试、“灰盒”测试。
(2)从软件开发过程的角度划分,可分为:单元测试、集成测试、确认测
试、系统测试、验收测试、回归测试。
(3)从测试执行是否需要人工干预的角度划分,可分为:人工测试、自动
化测试。
(4)从测试实施组织的角度划分,可分为开发方测试、用户测试(β测试)、
第三方测试。
8.1黑盒测试
黑盒测试又称功能测试或数据驱动测试
◆把测试对象当作看不见内部的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性.
◆站在使用软件或程序的角度,从输入数据与输出数据的对应关系进行的测试
◆在软件的接口处进行测试
◆通过导出执行程序所有功能需求的输入条件集,实现功能覆盖,需求覆盖
8.1.1黑盒测试方法
(1)等价类划分法
◎等价类,把所有可能的输入数据,即程序的输入域划分成若干部分。
◎划分,从每一部分中选取少数有代表性的数据做为测试用例,代表性数据等同于该类中的其他值。
☆划分等价类的考虑因素:输入数据、输出数据
①有效等价类:对于程序规格说明来说,是合理的,有意义的输入数据构成的集合
②无效等价类:对于程序规格说明来说,是不合理的,无意义的输入数据构成的集合
③设计测试用例时,要同时考虑有效等价类和无效等价类设计
☆确立测试用例
在确立了等价类之后,建立等价类表,列出所有划分出的等价类
☆从已列出的等价类表中按以下原则选择测试用例
•为每个等价类规定一个惟一的编号
•设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,最后使