测试概述
1.1 测试目标
本次单元测试的目标为通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。
1.2 测试方法
本次单元测试采用白盒测试的测试用例设计方法,采用白盒测试方法中的基本路经测试法,此方法是是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。其设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。其步骤主要分三步:
(1)画出控制流图
(2)计算圈复杂度
(3)导出测试用例
1.2.1 画出控制流图
流程图用来描述程序控制结构。可将流程图映射到一个相应的流图(假设流程图的菱形决定框中不包含复合条件)。在流图中,每一个圆,称为流图的结点,代表一个或多个语句。一个处理方框序列和一个菱形决测框可被映射为一个结点,流图中的箭头,称为边或连接,代表控制流,类似于流程图中的箭头。一条边必须终止于一个结点,即使该结点并不代表任何语句(例如:if-else-then结构)。由边和结点限定的范围称为区域。计算区域时应包括图外部的范围。
1.2.2 计算圈复杂度
圈复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目,为确保所有语句至少执行一次的测试数量的上界。独立路径必须包含一条在定义之前不曾用到的边。
有以下三种方法计算圈复杂度:
流图中区域的数量对应于环型的复杂性;
给定流图G的圈复杂度V(G),定义V(G)=E-N+2,E是流图中边的数量,N是图中结点的数量;
给定流图G的圈复杂度V(G),定义为V(G)=P+1,P是流图G中判定结点的数量。
1.2.3 导出测试用例
根据上面的计算方法,可得出四个独立的路径。一条独立路径是指,和其他的独立路径相比,至少引入一个新处理语句或一个新判断的程序通路。V(G)值正好等于该程序的独立路径的条数。
1.3 进入准则
(1) 编码阶段已经审核完成;
(2) 项目经理已经批准了单元测试计划;
(3) 测试组已经设计好测试案例,经过测试组组长的检查,并通过项目经理批准,本项目的单元测试人员为开发人员;
(4) 测试数据已经准备好并经过检查
(5) 测试资源已经到位(软件、硬件、人力)
1.4 结束准则
(1)测试遇到的所有问题已经记录下来
(2)所有测试用例都已运行
(3)95%的测试用例已经成功通过
(4)所有测试用例至少运行了三次,所有错误已经修改
(5)测试结果已经记录,测试分析报告已经提交项目经理检查
1.5 考虑事项
(1)按类进行划分,每个类的每个重要函数作为一个单元,每个单元采用基本路径覆盖法来设计测试用例。
(2)测试错误处理是否正确。