• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

从物理实验来看软件测试

发布: 2009-5-31 10:44 | 作者: 不详 | 来源: 测试时代采编 | 查看: 19次 | 进入软件测试论坛讨论

领测软件测试网

  4、7、10都是有可能停止实验的地方,那样13就永远不会启动,离真正原因更是遥不可及。错误假设1和2都是危险的诱惑。

  程序员不一定能做到3,那么在13之前得到的重现步骤都是在把程序员引入歧途。即使修复了,由于不了解真正原因,13所发现的特殊设置可能使这个bug沉渣泛起。

  可见,反映真相的全部是重现步骤的灵魂,因为程序员构建出来的世界是未知的,我们需要知道哪些假设还是正确的,哪些已经不正确了。

  那么反映全部真相就是测试员要做的全部吗?

  请注意还有错误细节。这通常是帮助程序员定位错误的数据,一般是反映出错时系统各方面的状态。

  很多软件系统在开发阶段都会输出log,测试员也被要求在bug报告里面提供log。

  只是我见过的一个bug报告,把几乎所有东西,包括几百MB的log和crash dump都放进去。程序员看了半天愣是找不着北。后来的事实证明,只要再多做一个改变了条件的实验,问题根源就马上出现在一行log里面了(也就是说,程序员也知道这里要检验一些假设,关键是测试员要接触到)。未经筛选的大量信息等于没有信息。运用逻辑推理定位根本原因是探索未知世界的重要工作。测试员的懒惰浪费了程序员的大量时间。这如同罗列大量的数据,却不告诉读者要反映的意思蕴含在哪里一样。所以,你会发现,软件测试其实和科研实验,不仅仅是物理,甚至与化学、生物、医学实验,有着高度的相似性。

  有人会问,如果每个假设都要验证,测试工作量岂不是很大?

  其实,这正是计算机工业发展的标志,从汇编语言、操作系统、高级程序语言到各种框架、架构,都是在使软件开发更专注于有价值的部分,而不用关注早已验证的部分。你不用关心内核/用户态转换的假设,因为有system API的承诺;你不用关心其他模块的实现假设,因为有对接口协议的承诺。但是很多来源于这个软件本身的假设,并没有经过验证,这些才是我们需要关注的假设。

  而正是这些假设来源于软件本身,测试员需要从外到内全面了解整个软件,才能找到全部假设并一一加以验证。这同时也是白箱测试和黑箱测试并存的原因:只观察软件外部,不能检验内部实现的假设;只观察软件实现,不能检验用户交互的假设。

  最后,有一个相通的问题,如果现有高考制度的弊端看成是一个bug,你又可以改变不同条件检验你的设想,你将通过哪些实验找出根源所在?

  我在《读者》2007年第12期看到一篇文章,它所列出来的高考制度相关因素之多,会令你觉得需要做的实验实在是一个天文数字。这会令你觉得,从事计算机行业比起从事行政管理,实在是要简单不少。

文章来源于领测软件测试网 https://www.ltesting.net/

33/3<123

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网