(一)软件测试员的思考问题方式

发表于:2008-3-04 17:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

分享:

经验27,为了测试,必须探索

  为了很好地测试产品,测试员就必须研究它,必须深入它。这是一种探索过程,即使已经有了产品的完美描述。直到通过想像或接触产品本身而探索规格说明之前,所得到的测试都会是肤浅的。即使充分研究了产品,对产品有了很深的了解,仍然要探索问题。因为所有测试都是采样,而且样本永远也不可能完备,探索式思考要在整个测试项目过程中,在寻求最大化测试价值时起作用。

  这里所谓的探索,是指有目的的漫游:带着一般使命在某个空间中漫游,但没有预先确定的路线。探索包括不断学习和实践。常常需要返回、重复或在没有经过培训的人看来是浪费的其他过程。也许正因为如此,探索对于测试和对软件工程的重要性,常常没有得到重视,总至受到这个领域的文献作者和顾问的嘲笑。

  证明我们关于探索核心重要性的论断超出了本书的主题范围。生动地体验探索的一种方法,就是观察自己在不看印在盒子上的完成图的情况下,如何拼接拼图板,或玩“20点问题(Twenty Questions〕”或“策划(Mastermind)”游戏。请注意,通过预先严格确定的步骤进行,在这些活动中会怎样遇到更多的困难,得到更少的回报。


经验28,探索要求大量思索

  探索就是侦查,是没有边界的搜索。可把探索看作是在太空中遨游,需要前向,后向和侧向思索。

·前向思索。根据已知探索未知,从所看到的探索还没有看到的,注意支流和副作用。例如,看到一个打印菜单项,点击看看会发生什么。

·后向思索。从怀疑或想像的东西返回到已知,尝试证实或否定自己的推测。例如:怀疑是否有打印这个文档的方法,于是打开菜单并检查是否有打印菜单项[Solow 1990)。

·侧向思索。让自己的工作由于新冒出的想法而转移,然后再将探索主题返回到主线索上(de Bono 1970) 。例如:这个图很有意思。嘿!我想该打印一些更复杂的图,看看会怎么样。

  即使没有要测试的产品,也可以探索。可以使用同样的思索过程探索一组文档,或与程序员面谈。通过构建更丰富、更具想像力的产品模型,探索也会不

  断取得进展。这些模型以后会使测试员设计出有效的测试。
经验29, 使用诱导推断逻辑发现推测

  诱导推断(abductive inference)又叫做假设归纳(hypothetical induction),是一种测试员每天都要使用的关键推理形式的有些怪的术语:最佳解释的推理。

  其主要内容是:

    1.收集一些数据并要找出其中的意义。

    2.构造可能说明这些数据的各种解释。

    3.收集更多的数据,以确定或否定每种解释。

   4.从候选解释中,选择能够最一致地说明所有重要数据的解释,如果没有足够证据证实任何结论,则继续搜索。

  诱导推断是科学和测试的基本方法。医生在为病人诊断时就要使用这种方法,测试员在判断产品是什么和不是什么、产品应该怎样运行或不应该怎样运行时,也要使用这种方法。如果要更好地进行诱导推断,则:

·收集更多的数据。

·收集更重要的数据。

·收集更可靠的数据。

·理解应用于数据的原因和效果。

·找出可以说明数据的更多、更好的解释。

·收集更多否定每个解释的数据。

·收集更多区分解释的数据。

·除非某个解释能说明所有重要数据,并且明显得到比其他解释更好的解释,否则不要确定解释。

  诱导是寻找好的解释的一种系统化方法。尽管诱导推断过程并不提供绝对确定性,但是在很多情况下,这都是最佳手段。

经验30,使用猜想与反驳逻辑评估产品

  20世纪初,哲学家Karl Popper引入了猜想与反驳(conjecture and refutation)方法(Popper 1989),用于如何区分宗教和科学问题。这种方法基于科学家永远也不能绝对肯定任何具体事实,或关于自然的理论这个前提。任何东西都是猜想。有些猜想很强.例如重力的存在。它是猜想而不是绝对肯定的事实,是因为能够想像出新的信息,如果这种信息存在,就会使人们拒绝该猜想。Popper注意到,虽然我们不能证明猜想是真,但是却可以证明猜想是假的。因此,他提出给定猜想的置信度只能来自反驳它.但又反驳不了的努力。

  这种给出猜想并尝试反驳的方法,以三种重要方式应用于测试:

·测试的目的是显示产品失效,要比显示产品正常更有力。如果想知道产品是否能够正常运行,寻找方法反驳其正常运行,这样的测试可能更好。

·有关软件(软件有怎样的行为、如何好等)已经牢固形成的信念应该受到质疑。这意味着应该能够想像出新的与已有信念矛盾的信息。否则,我们的信念只不过就是信仰。信仰在私人生活中是有益的,但是对测试是有害的。

·警惕声称以超过测试员所运行的具体测试的方式,检验或确认了产品的测试。任何量的测试都不能提供产品质量的确认性。

32/3<123>
重磅发布,2022软件测试行业现状调查报告~

精彩评论

  • kilikulu
    2008-3-14 12:27:01

    将测试上升到心理学的高度,好文,收藏

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海漕溪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号