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

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

从物理实验来看软件测试

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

领测软件测试网 读理工科的人多多少少做过物理实验,从中学到大学有数不清的机会。对照书本的步骤一项一项做下来,看到预期的结果就收工走人,不然就找原因直到得到正确结果为止。

  这就是物理实验吗?

  从事科研工作的人对这种“实验”嗤之以鼻。这样做除了应付一下教育部一点价值都没有。

  科学研究是要探索未知的世界,并没有一个先知可以断言某件事情,而我们不经证实就奉为真理。出发点不同,行为的效果便大相径庭。要探索未知的世界,除了试验既定的路线外,还须广历不同的路线,获得大量的信息来了解世界的真相;反之仅仅是重复的话,只需要走固定的步骤,如果结果不同还要想方设法为预期结果辩护,实在是南辕北辙。

  有人会问,科学家重复同行的实验又作何论?那时实验结论尚未成为公论,需要重复已有实验,并辅以新的实验来证实怀疑;也有挑战现有理论,改变条件试图证明新的理论。这些都是为了探索证实未知的世界,出发点大不一样。

  那么,软件测试是为了探索世界还是重复检验呢?

  有人认为,程序员写的代码,设计目的是明确的,所用技术是清晰的。只要有领域内的专家,所有软件行为都是可预期的,软件测试就是例行公事再确认一下。

  早期的计算机工作者的确是这样的,他们都是领域内的专家,根据代码能够准确指出程序的行为。如果说他们是上帝,程序就是他们完美的伊甸园,什么都在计划之内。

  然而时过境迁,现在的软件团队里面不可能所有人都是专家,也不是所有领域都有专家。除了火箭控制之类要求高可靠性的系统,大多数的软件都是由非专家编写出来的。所以程序员不一定知道哪里有死锁和饿死,不一定知道哪里有资源泄漏,不一定知道哪里有兼容性问题。他们可能还是上帝,只是做出来的不再是伊甸园了。以今天软件系统的复杂度而言,每个团队都维护一大堆上帝成本太高。

  因此,程序员很多对他们作品的假设,未经证实之前不一定正确:

  “这个列表会列出所有结果” -- 没有或者很多结果的时候呢?

  “这个列表不会有重复的对象” -- 删除A之后添加A,且异步的删除失败的时候呢?

  “这个列表的输出不会错的“ -- 多个数据源同时对其输入大量的数据呢?

  这个结论会导致软件测试的一个可怕悖论:测试用例不少是来自程序员的假设,不正确的假设使得这些用例可能是不正确或无意义的。

  这正是很多测试书籍介绍的边界、性能、压力、可扩展和安全测试的由来:正是需要检验那些假设的真实性。

  但是事情还没完。

  测试员也不是上帝,他们做出来的也不是伊甸园。

  如果程序员的产出是代码和bug修复,测试员的产出就是测试用例和bug报告。

  我们刚才忽略了bug报告。

  bug报告有两个最重要的部分,重现步骤和错误细节。而其中出现的不正确的假设和推理主要有三种:

  

延伸阅读

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

TAG: 软件测试 物理 实验

31/3123>

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

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