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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zimingzim/article/details/82261434

欢迎来到未来世界

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

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

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

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

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

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

测试人员的专有提示显示

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

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

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

测试百科

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

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

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

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

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

虚拟化的测试资产

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

可视化

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

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

未来的测试

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

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

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

发布之后的测试

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

小结

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

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

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

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

猜你喜欢

转载自blog.csdn.net/zimingzim/article/details/82261434