欢迎来到未来世界

现代软件测试得到了前所未有的长足发展。

今天的软件确实需要专业的测试工程师。

但是自从计算机出现伊始,到写这本书为止,软件测试发生过一次根本性的变革。这里使用的方法就是让软件测试成为一种正式职业,由于测试人员不需要编写程序,他们不需要像开发人员那样技术性很强,这就减轻了开发人员的测试负担。

应用程序变得愈发复杂,软件平台的功能变得更强大,它的复杂程度如雨后春笋般地快速增长。作为测试群体,我们将如何面对未来崛起的挑战,找到合适的位置,来测试这些应用程序,并帮助这些程序达到所要求的稳定性和可靠性?

事实上,很多情况下,以现有的工具和知识水平,是无法测试未来的应用程序的。要相对未来软件质量继续保持乐观的态度,我们需要一些新的工具和技术。

本章所要讨论的课题是:描述软件测试的未来蓝图,依靠这种方法可以创建出高可靠性的未来程序。这里讨论的是如何测试软件的一些列想法和意愿。

测试人员的专有提示显示

这个愿景里,来自应用程序、文档和文件的信息将被有序地显示在可配置的透明区域内。这些透明显示区域叠在被测试的应用程序之上。我们把这种实现叫做“测试人员的提示显示”或简称THUD。

测试将类似于游戏世界的视觉体验一样,从这一体验,我们可以得出比现在更好的指导提示。当我们像玩电子游戏一样地测试软件时,我们就会知道什么时候缺陷会修复,哪些组件、控件和APIS等会受到影响。提示显示将提供这些信息。在测试中,我们会被提示以前的出入和过去的测试结果。我们将会被提示哪些输入有可能发现问题,哪些输入已经是自动化测试套装的一部分甚至是先前单元测试的一部分。THUD将是手工测试人员的永恒伙伴,也是被测应用程序的知识库,它包含有被测程序的结构、所作的假设、体系架构、缺陷以及过去的完整测试过程。

在未来,软件测试人员的体验同目前相比,将完全不同,手工测试将变得更接近于今天的电子视频游戏。

测试百科

测试的技术会增强测试的再现性、重用性和通用性。测试人员可以记录下手工测试用例,将它们自动转换为自动化测试用例。这会增强测试人员跨越不同的团队,不同的组织、甚至不同的公司分享测试经验和测试资产的能力。为了以便访问和共享这些资产,测试人员顺理成章地要做的下一步就是创建一种资源。我把这些资源称之为测试百科。

你所需要的就是测试百科,它总结了所有测试知识,并且以一种可被任何软件测试人员重用的形式描述了测试用例。

将测试百科变为现实需要两个条件。第一,测试用例必须可以重复使用,在测试人员机器上运行的测试用例可以被封装到另一个测试人员的机器上,不用做任何改变就可以运行。第二,测试用例必须更具有通用性,这样他们才可以被应用于多个应用程序。让我们按顺序讨论这两个条件以及满足这些条件必须做哪些事情。

测试用例的重用:未来解决这个重用问题的方法就是所说的携带环境的测试。未来的测试用例将以虚拟化的方式,将用例所需要的环境同它本身一块儿封装起来。重用测试用例有一个致命弱点,不是技术方面而是经济方面。重新使用软件产品所要做的真正工作取决于使用重用部件的消费者,而不在于它的制作者。

测试原子和测试分子:我们写的测试用例是专门为某个程序而设计的,我们从来没有指望测试用例会在我们团队之外具有任何价值。我描绘的未来要求正好与之相反,即测试用例在我们的项目之外也具有相应的价值。与其为应用程序设计功能,不如进一步考虑为功能设计测试用例。如果我们写测试用例时所覆盖的区域越小,所产生的测试用例就会越通用。当我们精细到一定程度,我们便拥有了被称之为“原子”的测试用例。一个测试原子就是一个测试用例,它存在于可被细分的最底层。测试原子也可以组合成测试分子,各个测试人员会独自构建这样的测试分子。以一种新的方式编写测试原子和分子,使用这种方式后,那些原子和分子会自己知道是否可应用于某个应用程序,这种展开很有价值。

虚拟化的测试资产

测试人员所面临的主要困难之一就是能否在真实用户环境下运行测试用例。在未来,虚拟技术可以改进这个过程,它会把顾客环境数据送到测试百科里以供重用。想像一下,不仅缺陷报告会被寄往微软公司或其他的软件供应商,而且整个机器都会被虚拟化,并通过互联网发送到软件供应商。

可视化

可视化工具通过展示软件的重要属性,提供软件在停止和运行有效图像的方式,可以帮助未来的测试人员弥补测试能力方面的不足。

软件的可视性可以基于实际的软件资源和这些资源的属性。良好的可视化需要获得运行目标软件环境的支持。测试中的系统和外部资源之间的互动不可能蕴藏、无形地发生,只有使用高级的工具才能揭示他们之间的秘密。正是这种高层次上的透明度、审议、监控、分析,使我们能够在软件上取得类似于目前医学界所能达到的复杂程度。软件既复杂又重要,值得进行这样规模的投资。随着我们对可视化使用经验的增长,我们会摸索出使用可视化的最佳方案。

未来的测试

在任何情况下,测试设计者都会分析应用程序的测试要求和所有的接口,并记录下测试需求。为了满足这些测试要求,他将确定需要哪些测试资产。他可能从供应商那里有偿租借或购买这些资产,或者从免费公开课得到他想要的东西。

将会出现各种各样的虚拟化操作环境,我能想象出成千上万个测试环境和上百个可利用的测试用例和他们的变种。只有经过几年或者几十年开发和收集可重用的测试资产,以上的愿望才会变为可能。

所有的这些都是在应用程序发布之前做的。发布之后,测试仍将继续。

发布之后的测试

虽然表面上我们能够完成几百人年的测试量,但是测试实际上并没有结束的时候。我们我们在产品出厂时不能完成测试,为什么要停止测试呢?测试代码应该和产品一起推出,测试还应该能在测试人员不在场的情况下,继续进行测试,以提供即时测试和诊断。应该程序必须记住先前的测试结果,并把它作为程序的一部分,无论面对什么情况,都会一直将它们保存起来。这就意味着,自我测试能力将是未来软件的一项基本功能。我们的工作就是想方法把测试魔力嵌入到应用程序中。这个未来最酷的功能将由软件测试人员很好地实现。

小结

软件测试人员的世界里充满了信息,信息来自于我们测试的应用程序和运行这些应用程序的平台和环境,信息来自于应用程序本身的开发历史。测试人员对这些信息的理解和利用,将最终决定应用程序被测试的程度,决定今后组成软件生态系统的应用程序的质量水平。未来软件测试人员的成功将唯一取决于他们能否按照我们前面所阐述的方式掌握和使用这些信息,如果他们不能这样做,就意味着历史上软件行业曾经有过的软件产品质量低下会卷土重来。

我认为一个能够代表软件测试最佳模式的行业就是电子游戏业。既然在游戏上可以成功利用这些指导信息,我们软件测试人员也同样能够做到。

对于软件测试人员来说,游戏人员的过程、技术和指导原理是一个非常值得效仿的模式。在将来,从被测试的应用程序、它的环境、它过去的使用方式等处获得的信息,将以一种最简单易行的方式,直接传递给测试人员,从而为测试人员提供提供指示信息。测试人员会像玩家一样,全副武装地驾驭一个充满了输入、输出、数据和计算的复杂世界。

软件测试将致力于在生产力、精确度和完整性方面获得巨大的效益。谁也想不到,软件测试就像玩电子游戏一样,它会变得更加充满乐趣。

探索式测试--第八章(软件测试的未来)--读书笔记相关推荐

  1. 探索式测试解密——无探索,不测试!

    提示:关注新浪微博:http://weibo.com/beyound507 精彩内容不错过. 摘要:软件测试就像是一场旅行,目的地往往不由我们来定.准备得再充分,也要一试方知好坏.通过圈地盘.找变量. ...

  2. 探索式测试--第一章(软件质量)第二章(手工测试)--读书笔记

    本书为James Whittaker编写.本书写的是一种比其他任何缺陷都重要的特殊缺陷:即逃过所有各种检测手段而最终存在于发布产品中的缺陷.本书是作者设计"漫游"这个隐喻来指导软件 ...

  3. 聊聊什么是探索式测试

    这是鼎叔的第三十篇原创文章. 行业大牛和刚毕业的小白,都可以进来聊聊. 欢迎关注本人专栏和微信公众号<敏捷测试转型>,大量原创思考文章陆续推出. 本篇开始分享第三个主题系列文章-探索式测试 ...

  4. 聊聊角色扮演探索式测试与肥皂剧模型

    这是鼎叔的第十一篇原创文章. 行业大牛和刚毕业的小白,都可以进来聊聊. 欢迎关注本人专栏和微信公众号<敏捷测试转型>,大量原创思考文章陆续推出. 鼎叔在MTSC-中国移动互联网测试开发大会 ...

  5. 探索式测试:通宵测试法

    前言 选择那些使软件满负荷运行的场景(或衍生场景),使用内存和网络,或者在其他方面消耗资源,时间一长,问题就会出现. 方法简介 在<<探索式测试>>一书中,对于通宵测试法的描述 ...

  6. 探索式测试--第四章(全局探索式测试法)--读书笔记

    本章的内容则是关于测试人员在全局方面所必须做出的各种决定,比如在考虑特性交互.数据流以及在应用程序的用户界面上如何选择不同路径来完成某个实际功能时.探索式测试人员在实际开始测试前,需要建立起这样一个全 ...

  7. 测试需要具备的能力以及探索式测试

    测试需要具备的素质: 1.专业技能. 扎实的专业知识就像灯塔一样,时刻为你指明方向. 2.业务分析能力. 业务一定要分析透彻,我们才能写出好的方案和测试用例等,才能更好更快的发现问题,分析问题以及解决 ...

  8. 探索式测试--第六章(实践中的探索式测试)--读书笔记

    本书为James Whittaker编写.本书写的是一种比其他任何缺陷都重要的特殊缺陷:即逃过所有各种检测手段而最终存在于发布产品中的缺陷.本书是作者设计"漫游"这个隐喻来指导软件 ...

  9. 【转载】探索式测试基础系列—生活进阶曲

    在探索式测试落地实践中奏出了协奏曲后进入到高级阶段,如何在问题定位和经验积累中发挥作用,也可以理解为在生活达到非常和谐后,如何孕育一个后代并为其提供良好的环境,因此本章的名字叫做生活进阶曲,表明在本章 ...

最新文章

  1. UI5 metadata usage in the runtime
  2. redux中间件的用法
  3. append生成新变量的时候,没有如预期(It's a feature,not a bug?)
  4. 挤拥城市游戏android,拥挤城市crowdcity
  5. anki卡片重复_如何在Anki中使用间隔重复来学习更快的编码
  6. 如何教女朋友学 Python?
  7. AttributeError: 'NoneType' object has no attribute 'split' 报错处理
  8. 数据库实验2:数据库的建立与维护
  9. 第三单元JML地铁系统博客 By Wazaki
  10. 世界三大顶级音响_世界十大顶级音响排行榜前十名
  11. Xcode No certificate for team ‘xxx‘ matching ‘iPhone Developer: xxx (xxx)‘
  12. 共享充电宝之争:胜于专利,败于骂街 | 一点财经
  13. flutter入门之实现展示机构树的功能
  14. 如何取消EXCEL文件的“受保护的视图“
  15. QTableView基本用法讲解,Qt表格控件的使用方法
  16. CreateEvent
  17. 【C语言】分支语句和循环语句还能这么用?一篇带你重新认识它(两万字超细详解)
  18. kotlin “${ }”是什么意思?
  19. pagehelper浅见
  20. 金龙鱼半年报:增收不增利,控本依旧是头等大事

热门文章

  1. Java基础学习——操作系统批处理(操作系统命令)
  2. 入侵和攻击模拟(BAS)实践
  3. 使用vue-i18n实现中英文切换
  4. 微信公众号的用户运营?
  5. 6. 【containerd】containerd已经停止,containerd-shim还存在?
  6. 过孔----通孔,盲孔,埋孔
  7. IJCAI2021会议论文列表(可下载)
  8. 5G NR PDCP协议(二)
  9. 计算机课学生段密码,启课程学生端电脑版
  10. 注册石墨文档无法连接服务器,石墨文档没有访问权限怎么办