白盒测试之应用
  京东零售测试采购平台测试组开展白盒测试工作已将近一年,测试了多个销量预测项目,因销量预测系统主要是针对预测模型的测试,黑盒测试无法覆盖,引入白盒测试,语句覆盖率和分支覆盖率均达到90%以上,得到研发同事的认可及好评。下面如何开始白盒测试进行了总结,希望能够和大家共同探讨并学习。
  什么是白盒测试? 
  白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试,其测试对象是软件源代码。 
  白盒测试是一种测试设计方法,是相对“黑盒”而言,黑盒意思是将被测软件当做完全不知内部结构内容情况的整体对待,白盒指的是被测软件内部逻辑结构、数据结构完全可知,可将被测软件拆解为更细粒度的软件代码对象。"白盒"测试设计方法可全面了解程序内部逻辑结构、对所有逻辑路径进行测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。
  白盒测试原理? 
  检查软件代码的语句、分支、数据、接口、架构的各种实现细节,将软件代码具体实现对照所应完成的功能、性能等指标进行验证,查找软件代码实现的缺陷。
  白盒测试方法? 
  白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。
  设计测试用例的思路主要分为逻辑覆盖和数据域覆盖。其中逻辑覆盖包括语句覆盖、分支覆盖、条件覆盖、MC/DC 覆盖和路径覆盖。五种覆盖要求呈由弱到强的变化:
  1.语句覆盖每条语句至少执行一次。 
  2.分支覆盖每个分支至少执行一次。 
  3.条件覆盖每个判断条件应取到各种可能的值。 
  4.MCDC 覆盖每个判断条件需独立影响分支结果至少一次。 
  5.路径覆盖使程序中每一条可能的路径至少执行一次。
  如何开始白盒测试?
  1、了解需求——可以先把软件的用户需求说明书,概要设计说明书,详细设计说明书等相关的文档拿过来,先好好的看懂,明白系统要实现什么样的逻辑功能,了解掌握程序实现的组织结构及细节;
  2、测试用例设计——可以选择一种覆盖类型为线索来设计测试用例; 
  3、测试数据准备——了解测试用例要用到哪些输入数据,输出要求是什么; 
  4、编写测试代码——将测试用例转换成可执行的代码; 
  5、测试用例执行——针对java 语言的白盒测试,可以用白盒测试工具如junit执行测试;
  6、测试结果分析——如果执行测试用例的过程中遇到实际结果和预期结果不符合,则需要深入分析测试结果,找到并解决错误; 
  7、回归测试——针对已经修复bug 后的源码,进行整体的回归测试;
  8、发布测试报告。