- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《软件测试》第4章
第4章 白盒测试方法 本章要点 白盒测试的含义 白盒测试无法实现穷举测试的原因 白盒测试的优点和局限性 白盒测试中的静态测试和动态测试 逻辑覆盖法、基本路径测试及控制结构测试 白盒测试方法的综合使用策略 4.1 白盒测试方法概述 4.1.1 白盒测试的概念 白盒测试(White-box Testing)也称结构测试。“白盒”将程序形象地比喻为放在一个透明的盒子里,故测试人员了解被测程序的内部结构。 测试人员利用程序的内部逻辑结构和相关信息,对程序的内部结构和路径进行测试,检验其是否达到了预期的设计要求。 白盒方法和黑盒方法一样,也不能做到穷举测试。 故测试人员必须在仔细研究程序的内部结构的基础上,从数量极大的可用测试用例中精心挑选尽可能少的测试用例,来覆盖程序的内部结构。 4.1.2 白盒测试的优点和局限性 1.白盒测试的优点 与黑盒测试相比,白盒测试深入到程序的内部进行测试,更易于定位错误的原因和具体位置,弥补了黑盒测试只能从程序外部进行测试的不足。 2.白盒测试的局限性 但白盒测试也有其局限性,即使白盒测试覆盖了程序中的所有路径,仍不一定能发现程序中的全部错误。这是因为: 白盒测试不能查出程序中的设计缺陷。 白盒测试不能查出程序是否遗漏了功能或路径。 白盒测试可能发现不了一些与数据相关的错误。 4.1.3 白盒测试方法的分类 白盒测试分为静态测试(Static Testing)和动态测试(Dynamic Testing)两大类。 静态测试不实际执行程序,静态测试的主要目的是检查软件的表示和描述是否一致,没有冲突和歧义。静态测试可以由人工执行,也可以借助一些自动化工具完成。 动态测试需要实际运行测试用例,以发现软件中的错误。白盒测试中的动态测试主要包括功能确认与接口测试、覆盖率测试、性能分析、内存分析等。 4.2 典型的白盒测试方法 白盒测试方法中的代码检查法、静态结构分析法、代码质量度量法属于静态测试方法,而逻辑覆盖法、基本路径测试法、控制结构测试、程序插桩则属于动态测试方法。 4.2.1 代码检查法 代码检查包括桌面检查、代码审查和走查等。 代码检查主要检查代码和设计的一致性,代码是否遵循标准,代码的可读性,代码的逻辑正确性,代码结构的合理性等。 代码检查应在编译和动态测试之前进行,并且应尽早进行。 4.2.2 静态结构分析法 静态结构分析主要是以图形的方式表现程序的内部结构,供测试人员对程序结构进行分析。 在静态结构分析中,测试人员通过使用测试工具分析程序源代码的系统结构、数据结构、数据接口、内部控制逻辑等内部结构,生成函数调用关系图、模块控制流图、内部文件调用关系图、子程序表、宏和函数参数表等各类图形图表,以清晰地表示程序的内部结构,供测试人员对其进行分析,进而查找程序中的错误。 4.2.3 代码质量度量法 根据ISO/IEC 9126国际标准的定义,软件质量包括以下 六个方面: 功能性(Functionality) 可靠性(Reliability) 可用性 (Usability) 效率 (Efficiency) 可维护性(Maintainability) 可移植性(Portability) 可根据ISO 9126质量模型构造软件的静态质量度量模 型,通过量化的数据评估被测程序的质量。 4.2.4 逻辑覆盖法 逻辑覆盖法(Logic-coverage Testing)是以程序内部的逻辑结构为基础设计测试用例的方法。根据对程序内部的逻辑结构的覆盖程度,逻辑覆盖法具有不同的覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定—条件覆盖、条件组合覆盖、修正条件判定覆盖。 1.语句覆盖 语句覆盖(Statement Coverage)的含义是:设计足够多的测试用例,使被测程序中的每条可执行语句至少执行一次。语句覆盖也称为点覆盖。 语句覆盖是一种很弱的逻辑覆盖标准,其对程序的逻辑覆盖很少。 图4-1是一个被测程序的流程图。 对图4-1表示的程序,若要做到语句覆盖,程序的执行路径应是sacbed,为此可设计如下的测试用例(注意:A、B、X的值这里为输入值,严格说来,测试用例还应包括预期输出,在此省略,下同): A=2,B=0,X=4 2.判定覆盖 判定覆盖(Decision Coverage)的含义是,设计足够多的测试用例,使被测程序中的每个判定取到每种可能的结果,即覆盖每个判定的所有分支。 判定覆盖也称为分支覆盖。显然,若实现了判定覆盖,则必然实现了语句覆盖。 对图4-1表示的源程序,若要实现判定覆盖,则需覆盖sacbed和sabd两条路径,或覆盖sacbd和sabed两条路径,可设计如下两组测试用例: A=3,B=0,X=3(覆盖路径sacbd) A=2,B=1,X=1(覆盖路径sabe
您可能关注的文档
- 《老人与海鸥》苏玉萍.ppt
- 《能量流动和物质循环》课件 济南版.ppt
- 《能量量子化:物理学的新纪元》教学课件.ppt
- 《编织乐园》.ppt
- 《自上而下的改革》课件.ppt
- 《编纸条》课件.ppt
- 《苏幕遮_碧云天》(范仲淹).ppt
- 《苏州园林》(审定稿).ppt
- 《荷塘月色》 朱自清.ppt
- 《落日》课堂定稿.ppt
- 2025届衡阳市第八中学高三一诊考试物理试卷含解析.doc
- 2025届湖南省娄底市双峰一中等五校重点中学高三第二次诊断性检测物理试卷含解析.doc
- 天水市第一中学2025届高三第二次联考物理试卷含解析.doc
- 2025届金华市重点中学高三考前热身物理试卷含解析.doc
- 2025届北京市石景山区第九中学高三第四次模拟考试物理试卷含解析.doc
- 江苏扬州市2025届高三第一次模拟考试物理试卷含解析.doc
- 2025届江苏省南通市高级中学高考物理五模试卷含解析.doc
- 广东省清远市华侨中学2025届高三第一次调研测试物理试卷含解析.doc
- 辽宁省凤城市2025届高三第五次模拟考试物理试卷含解析.doc
- 内蒙古巴彦淖尔市重点中学2025届高考仿真卷物理试卷含解析.doc
文档评论(0)