- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2008软件测试技术–chap4
第4章 白盒测试方法 P63 把程序看成装在一个透明的白盒子里,程序的结构和处理呈现过程完全可见,按照程序的内部逻辑测试程序,以检查程序中的每条通路是否都能按照预先要求正确工作。 4.1 白盒测试的基本概念 什么是白盒测试 把程序看成装在一个透明的白盒子里,程序的结构和处理过程完全可见,按照程序的内部逻辑测试程序,以检查程序中的每条通路是否都能按照预先要求正确工作。 1 、流图 对程序流程图进行简化,简化后的图称为控制流图。 图形符号有两种:结点和控制流线。 判定结点:包含条件的结点。 区域:由边点和结点所限定的范围被称为区域。 P64图4.2 程序流程图转化为控制流程图 2、环形复杂度 又称为圈复杂度 若程序控制流程图是一个强连通图,则复杂度: V(G)=e-n+1 其中:e为边数,n为结点数 独立路径:从程序入口到出口的多次执行中,每次至少有一个语句是新的,未被重复的。 3 、图矩阵 流图的邻接矩阵表示形式。其阶数等于流图的结点数。 矩阵中的每列和每行都对应于标识的某一结点,矩阵元素对应于结点之间的边。 4.2 逻辑覆盖 逻辑覆盖是以程序的内部逻辑结构为基础的测试用例设计技术,属于白盒测试。它要求测试人员十分清楚程序的逻辑结构,考虑的是测试用例对程序内部逻辑覆盖的程度。 举例: 用逻辑覆盖法测试以下程序段: float A,B,X ; … if (A1) (B=0) THEN X=X/A ; if (A==2) || (X1) THEN X=X+1; … 1、语句覆盖 使得程序中每个语句至少都能被执行一次。 2、判定覆盖 使得程序中每个判定至少为TRUE 或FALSE各一次。 3、条件覆盖 4、判定/条件覆盖 5、条件组合覆盖 5、条件组合覆盖 6、点覆盖 7、边覆盖 8、路径覆盖 9、基本路径覆盖 4.2.2 最少测试用例数计算 P69 4.3 独立路径测试 P71 独立路径测试方法又称基本路径覆盖法,把覆盖的路径数压缩到一定限度内,程序中的循环体最多只执行一次。 基本路径测试是T.McCabe(音译:麦凯伯)首先提出的一种白盒测试技术。所谓基本路径是指程序中至少引进一条新的语句或一个新的条件的任一路径。 它是在程序控制流图的基础上,分析控制构造的环路复杂性,导出独立可执行路径集合,设计测试用例的方法。设计出的测试用例要保证在测试中,程序的每一个独立可执行路径至少要执行一次。 独立路径测试步骤: (1)导出程序流程图的拓扑结构-流图(控制流程图) (2)计算流图G的环路复杂性V(G) (3)确定只包含独立路径的基本路径集 (4)设计测试用例 例:对下图采用基本路径测试设计法设计测试用例。 (1)导出程序图 程序图中每个圆圈代表一个条件或语句;每条箭头线代表一个控制流。 (2)计算程序图的环形复杂度 计算环形复杂度可以直接计算程序流程图中判定数量(每个判定是单一条件的),然后加1即可得到。 或利用公式:V(G)=e-n+1计算,其中e为图G中的边数,n为图G中的结中数 。 也可采用图形矩阵方法来计算。 (3)确定基本路径集 由于环形数为5,故基本路径数有5条。 应该注意的是每条新的基本路径应包含至少一条新有向边(弧)。可以由判定点来识别,如本例中的节点2,3,5和6便是判定点。 5条基本路径如下: path1:1—2—4—5—6—7 path2:1—2—3—4—5—6—7 path3:1—2—3—8—4—5—6—7 path4:1—2—3—8—4—5—9—7 path5:1—2—3—8—4—5—6—9—7 (4)生成测试用例 4.4 循环测试 1、简单循环测试方案(假设n是允许通过循环的最大次数 ) 跳过循环 只通过循环一次 通过循环两次 通过循环m次,其中m n-1 通过循环n–1,n,n+1次 2、嵌套循环 对最内层循环做简单循环的全部测试。所有其它层的循环变量置为最小值; 逐步外推,对其外面一层循环进行测试。测试时保持所有外层循环的循环变量取最小值,所有其它嵌套内层循环的循环变量取“典型”值。 反复进行,直到所有各层循环测试完毕。 对全部各层循环同时取最小循环次数,或者同时取最大循环次数 3、串接循环 如果串接循环的各个循环都彼此独立,则可以使用简单循环的方法来测试串接循环。 当循环不独立时,使用测试嵌套循环的方法来测试串接循环。 4.5 面对对象的白盒测试 P73 类测试一般有两种主要的方式:功能性测试和结构性测试,即对应于传统结构化软件的黑盒测试和白盒测试。 功能测试以类的规格说明为基础,它主要检查类是否符合规格说明的要求。 结构性测试对类中的方法进行测试,它把类作为一个单元来
文档评论(0)