- 1、本文档共58页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章-软件测试用例的设计2——白盒测试
3.3白盒测试 什么是白盒测试呢? 白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。这一方法是把测试对象看作一个透明的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。 1: 路径测试 控制流图 控制流图主要由节点和边构成。 如何建立控制流图? 1)确定程序的程序流程图 2)程序流程图转化为控制流图 转换的原则如下: 控制流图中的每一个节点可以表示程序流程图中矩形框所表示的处理; 菱形表示的两个甚至多个出口判断; 多条流线相交的汇合点。 例: 1 if a or b 2 x 3 else 4 y 环形(圈)复杂度 定义:环形复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目,为确保所有语句至少执行一次的测试数量的上界。 独立路径:路径中包含一条在定义之前未曾用到的边。 环形复杂度的计算方法 方法一:流图中区域的数量对应于环形的复杂性; 方法二:给定流图G的圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量; 方法三:给定流图G的圈复杂度V(G),定义为V(G)=P+1,P是流图G中判定结点的数量。 路径测试方法应用举例 例: 第一步,画出程序的控制流图。 第二步,计算环形复杂度,并确定独立路径。 V(G)=E-N+2=11-9+2=4。 路径1: 4-14; 路径2:4-6-7-14; 路径3:4-6-8-10-13-4-14; 路径4:4-6-8-11-13-4-14。 第三步,导出测试用例 第四步,执行测试。 2:数据流测试 数据流测试的意义? 路径测试可以测试程序中所有的条件和语句块,但是,这也不能检测出程序中所有的错误。基于数据流的测试主要关注程序中数据的定义和使用,可以用于对基于控制流测试的补充。 1 定义/使用测试 首先要明确一个假设,数据流的假设还是和路径的假设一致,程序P的程序图(有向图)是一个单入口,单出口,并且不允许有从某个结点到其自身的边。 a、DEF(v,n),定义结点。 int x;x=y+z。 b、USE(v,n),使用结点 System.out.println(x)。 c、P-use,当一个变量被用在分支语句的条件表达式中(如if和while语句),则称为变量的P-use。 d、C-use,如果一个变量被用在赋值语句的表达式、输出语句中,被当作参数传递给调用函数,或被用在下标表达式中,则称为变量的C-use。其中,C表示“计算”。 y=x+1;function(x) e、定义使用路径(DU-path)开始节点是DEF(v,n),结束结点是USE(v,n)的路径。 f、定义清除路径(DC-path),当开始结点和结束结点中间没有其他的定义结点的时候为清除路径。 “程序片”测试 “程序片”测试 程序片也叫程序切片,是一种程序分析和理解技术。 程序片是确定或影响某个变量在程序某个点上的取值的一组程序语句。典型的程序分片算法有Weiser的基于数据流方程的算法,无定型分片算法,Bergeretti的基于信息流关系的算法,基于程序依赖图的图形可达性算法,基于波动图的算法,参数化程序分片算法,并行分片算法,面向对象的分层分片算法等。 定义1 给定一个程序P和P中的一个变量集合V,变量集合V在语句n上的一个片,记做S(V,n),是P中对V中的变量值做出贡献的所有语句集合。 定义2 给定一个程序P和一个给出语句及语句片段编号的程序图G(P),以及P 中的一个变量集合V,变量集合V在语句片段n上的一个片,记做S(V,n),是P中在n以前对V中的变量值作出贡献的所有语句片段编号的集合。 切片算法基本过程为: 1)寻找语句n的变量v所直接数据依赖或控制依赖的节点; 2)寻找这些新节点所直接数据依赖或控制依赖的节点; 3)一直重复下去,直到没有新节点加进来为止4)最后将这些节点按源程序的语句顺序排列,即为程序P的关于语句n的切片S。 程序分片的基本原则: 对所有的赋值定义节点建立片; 对谓词使用节点建立
您可能关注的文档
最近下载
- 广汽集团公司2010年度财报.pdf
- HEIDENHAIN海德汉TNC640 (34059x-10) Cycle Programming用户手册.pdf
- 2024年机电安装工程行业分析报告及未来五到十年行业发展趋势报告.docx
- 2022年长春市朝阳区工会系统招聘考试试题及答案解析.docx VIP
- 《大数据架构与设计》实践报告-网易云音乐大数据系统构建.docx VIP
- 仓储物流园及配套基础设施项目可行性研究报告-立项备案.doc VIP
- 城乡环卫保洁投标方案.doc
- 2022年1月吉林省长春市工会系统招聘考试《工会基础知识》试卷及答案.pdf VIP
- 2023年上海海洋大学计算机科学与技术专业《计算机网络》科目期末试卷A(有答案).docx VIP
- [高清书籍]威尼斯商人.PDF
文档评论(0)