热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

白盒测试不是测试,更不高级

测试不仅仅是软件概念,但白盒测试仅仅是软件概念。上面这句话足以说明白盒测试不是测试,至少不等同于测试。认为白盒测试更牛逼的一个常用论据是白盒测试需要对代码本身更高的熟悉程度,但说这样的话的

测试不仅仅是软件概念,但白盒测试仅仅是软件概念。

  上面这句话足以说明白盒测试不是测试,至少不等同于测试。

  认为白盒测试更牛逼的一个常用论据是白盒测试需要对代码本身更高的熟悉程度,但说这样的话的人往往没有搞清楚测试究竟需要什么样的技能。测试首先需要的是良好的测试逻辑,其次才是对产品本身的了解。

  给定现象,给定需求,能够准确判断现象是否符合需求,这就叫做测试逻辑,好的测试人员能够体察模拟客户的真实体验,无比贴近地模拟出客户的判断。对产品的深入了解能够帮助测试人员更准确地设计测试用例,更高效地执行测试用例,好的测试人员对于产品的功能、性能有着不下于产品经理的了解。此二者是测试人员所需的两个重要的技能。

  当局者迷旁观者清,好的评论家往往不会出自一件产品的作者。畅销小说改编的电影往往收获差评如潮就是这个道理,因为我们有太多对细节过于了解的先入为主的影评家。他们对电影背后的脚本、细节有着非常接近真相的了解,但却不是站在观众的角度而是对立面。测试工作也是这样,客观的态度保证测试逻辑的不偏不倚,而产品的细节并不是产品本身——一件产品做什么才重要,怎么做的根本就不重要。

  回过头来说白盒测试,白盒测试所测试的并不是产品,而是实现软件产品的代码本身——注意这是两个层次上面的概念——这也是为什么白盒测试的概念仅见于软件产品。不客气地说,黑盒测试,也就是一般意义上的测试,比白盒测试有更普世的技能需求和适用范围以及更高的产品视角。白盒测试,充其量是单元测试,优秀的白盒测试者,除了证明他是个比较好的代码reviewer以外,实在不能说明任何其他的价值。放到IT之外的行业里,对一件产品的白盒测试就意味着,对这件产品的实现方式进行测试,也就是更底层的测试。如果说白盒测试和黑盒测试都是测试,那么测试就变成了这样一个概念:

  测试=黑盒测试+白盒测试=黑盒测试+更低一级的测试。这是一个可以无穷无尽扩展的等式,也就意味着无穷无尽的工作量。也就只有软件行业,对代码一级的测试代价小,且再低一级的测试无意义(操作系统、软件框架等成熟第三方解决方案),才会出现这么一个奇葩。

  IT行业真的是个奇怪的行业,你再也找不到这样一个行业,他们以可替换性强的技能工种为荣,以此作为其他同事工种的批判标准。你能想象一个建筑工人以“你连用什么顺序砌砖墙才会最结实都不知道,凭什么来监督我们?”为由嘲笑质量监督?

  这里可以。

  P.S 什么?觉得我说程序设计是“可替换性强的技能工种”有失偏颇?请不要自视过高。大规模产品上,良好的管理和合作比任何天才都来得有效,在任何行业都是如此。一个天才,一辈子都无法独立写出Office这样的软件,你同意么?但一个天才项目经理加上足够的资金和劳动力供应,就可以办到。

  注:本文只代表作者个人观点。 


推荐阅读
  • 协程作为一种并发设计模式,能有效简化Android平台上的异步代码处理。自Kotlin 1.3版本引入协程以来,这一特性基于其他语言的成熟理念,为开发者提供了新的工具,以增强应用的响应性和效率。 ... [详细]
  • 本文探讨了一种统一的语义数据模型,旨在支持物联网、建筑及企业环境下的数据转换。该模型强调简洁性和可扩展性,以促进不同行业间的插件化和互操作性。对于智能硬件开发者而言,这一模型提供了重要的参考价值。 ... [详细]
  • 深入探讨:Actor模型如何解决并发与分布式计算难题
    在现代软件开发中,高并发和分布式系统的设计面临着诸多挑战。本文基于Akka最新文档,详细探讨了Actor模型如何有效地解决这些挑战,并提供了对并发和分布式计算的新视角。 ... [详细]
  • 云盒子更新:支持WPS、Visio和Project文档在线预览与图片导出
    企业云盘中的在线预览功能是提高工作效率的关键特性之一。借助云盒子提供的文件转换技术,用户可以无需安装额外软件,直接在线查看多种类型的文档,包括最新的WPS、Visio和Project文件。 ... [详细]
  • JavaScript 实现图片文件转Base64编码的方法
    本文详细介绍了如何使用JavaScript将用户通过文件输入控件选择的图片文件转换为Base64编码字符串,适用于Web前端开发中图片上传前的预处理。 ... [详细]
  • 深入解析:存储技术的演变与发展
    本文探讨了从单机文件系统到分布式文件系统的存储技术发展过程,详细解释了各种存储模型及其特点。 ... [详细]
  • 如题:2017年10月分析:还记得在没有智能手机的年代大概就是12年前吧,手机上都会有WAP浏览器。当时没接触网络原理,也不 ... [详细]
  • 在现代Web开发中,HTML5 Canvas常用于图像处理和绘图任务。本文将详细介绍如何将Canvas中的图像导出并上传至服务器,适用于拼图、图片编辑等场景。 ... [详细]
  • 电商高并发解决方案详解
    本文以京东为例,详细探讨了电商中常见的高并发解决方案,包括多级缓存和Nginx限流技术,旨在帮助读者更好地理解和应用这些技术。 ... [详细]
  • RTThread线程间通信
    线程中通信在裸机编程中,经常会使用全局变量进行功能间的通信,如某些功能可能由于一些操作而改变全局变量的值,另一个功能对此全局变量进行读取& ... [详细]
  • 本文介绍了GitHub上的一些Python开源项目,特别是IM(即时通讯)技术的应用。通过Sealtalk项目,探讨了如何利用开源SDK提升开发效率。 ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • 本文详细介绍了如何使用Heartbeat构建一个高可用性的Apache集群,包括安装、配置和测试步骤。 ... [详细]
  • 北京拓客系统:高效仓储管理解决方案
    本文介绍了北京拓客系统在仓储管理中的应用,包括货架的结构与功能、货物存取的便捷性以及系统管理员的重要性等方面。 ... [详细]
  • 本文介绍了使用PHP Imagick扩展进行图片合成的两种方法,包括`compositeimages`和`combineimages`函数的详细用法及其参数说明。 ... [详细]
author-avatar
饥饿的饮水机
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有