白盒测试-软件技术.pptVIP

  • 9
  • 0
  • 约2.09万字
  • 约 108页
  • 2018-01-04 发布于江西
  • 举报
白盒测试-软件技术

软件测试技术——白盒测试 白盒测试(White Box Testing) 软件测试人员可以访问 程序员的代码,并通过 检查代码来测试,可以 看到盒子里面以及里面 是如何运作的。 贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。 第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。 第二,穷举路径测试不可能查出程序中因遗漏路径而出错。 第三,穷举路径测试可能发现不了一些与数据相关的错误。 讨论 白盒测试也通常被认为是单元测试与集成测试的统称,但这个概念是相对的,与当前项目遵循的研发流程有关,某些流程把白盒测试划分为单元测试与集成测试,而另一些流程,把白盒测试划分为模块单元测试、模块系统测试、多模块集成测试,还有一些流程把单元测试与集成测试混为一体,统称为持续集成测试。 采用白盒测试方法必须遵循以下几条原则 保证一个模块中的所有独立路径至少被使用一次 对所有逻辑值均需测试true和false 在上下边界及可操作范围内运行所有循环 检查内部数据结构以确保其有效性 在上下边界及可操作范围内运行所有循环 白盒测试的其它称呼 玻璃盒测试(Glass Box Testing) 透明盒测试(Clear Box Testing) 开放盒测试(Open Box Testing) 结构化测试(Structured Testing) 基于代码的测试(Code-Based Testing) 逻辑驱动测试(Logic-Driven Testing) 本次课程的主要内容 为什么要进行白盒测试 静态白盒测试 动态白盒测试 从一个比喻开始 假设有一台的面包机,从上面倒入面粉与水,开动机器后从下面出来的就是烤好了的面包,这个机器的功能比较单一,接口很清晰,输入是面粉与水,输出是面包。现在假定这个面包机多年未用,内部都生锈了,现在要清洗它,类似于我们开发的软件,软件有Bug,那得通过测试来清理。 那如何更快速的清洗这台面包机呢?有两种洗法,一是拿水从上往下灌,这是系统测试的方法。另一种是拆开来洗,拆开机器后,拿抺布沾点清洁剂,把各零件的坑坑槽槽擦洗一遍,然后组装回来,再用水从上往下冲一遍,拆开来洗是白盒方法,组装回来用水冲是黑盒方式,相当于白盒测试之后再追加一次系统测试。 无疑,上面第二种方法是正确的,我们的前提是:清洗多年未用的面包机,铁锈够多,如果洗不干净,造出的面包都是致癌物质。当然,清洗面包机还只能算简单劳动,清理软件中的Bug要复杂得多,一个if语句有两条分支,一个while循环判断也是两条分支,还有break、continue、return等,想想看,一个1万行规模的软件能有多少个分支!一个分支就是一条坑坑槽槽,而且软件Bug还具备动态特性,不是静止的明摆在哪儿。 所以,软件的白盒测试不可或缺,因为遗留Bug的影响很大,就像面包机没洗净留铁锈会致癌,还因为软件系统远比面包机复杂,不拆开来怎么能洗干净! 白盒测试是高效测试 第一个误解:白盒测试太低效,不值得去做 白盒测试是高效测试 第二个误解:决策者并未认清一个bug若遗留到下一阶段须多付出多少代价 白盒测试能彻底解决编码阶段引入的问题 一个案例,在某交换机产品的系统测试中,发现ISDN话机拨打某新业务号码时,在特定线路上,若一位一位的拨至18位,不会有问题,但如果先拨完号码再成组发送,会导致系统死机。这是一个导致死机的致命问题,最后定位出问题所在:呼叫处理的某段代码判断有误,本应小于18的判断,错写成小于等于18。 不同阶段的测试发现问题的特点各不相同 单元测试阶段,容易发现逻辑问题、边界条件(如上例“小于18”的错误)、变量未初始化、内存越界等问题 集成测试容易发现接口错误、任务配合问题等 系统测试容易发现业务流程问题、界面操作问题等 V模型中软件开发过程与测试行为的对应关系 本次课程的主要内容 为什么要进行白盒测试 静态白盒测试 动态白盒测试 静态白盒测试 静态白盒测试是在不执行的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程。 好处: 尽早发现软件缺陷。 为黑盒测试员提供思路。 审查 要审查的代码模块的准则 为什么要坚持编码标准和规范 国家和国际标准获得途径 通用代码审查清单 数据引用错误; 数据声明错误; 计算错误; 比较错误; 控制流程错误; 子程序参数错误; 输入/输出错误; 其他检查。 静态白盒测试-审查 审查是正式、严格、具有深度的技术评审, 以便尽可能准确地确定问题之所在。 审查过程的目的: 在软件开发过程中尽可能早地发现问题。 确保对需要重做部分达成一致意见。 验证任何重做部分满足预先定义的准则。 静态白盒测试 一次审查一般需要5人至7人,这些角色是: 主审员:协调本次审查并主持讨论

文档评论(0)

1亿VIP精品文档

相关文档