从我个人观点看,21世纪的测试可以简单地概括为3句话(三段论):

    全程软件测试,测试是重中之重。
    全程自动化测试,测试原来可以是这样的。
    全程缺陷预防,测试工作已经不是那么重要。

  由于当前商业和IT环境的驱动,软件测试的理念、实践和工具正在发生一些革命性的变化。这种变化将给专业测试人员及其测试工作带来什么样的影响?

  这些驱动正在改变专业测试人员的生活

  IT操作的商业环境正在发生变化,这直接影响着商业和IT如何看待专业的测试人员。测试已经不仅仅充当门卫(Gatekeeper),而且是一个变革的倡导者,一些测试人员在足够早的时候发现风险,从而为如何开发和部署软件带来更高的效率。这种变化的驱动因素来自于:

    越来越多的普通人正在广泛使用IT, 或IT系统
    在激烈的市场竞争中的产品上市时间(Time-to-market)的压力
    商业环境的快速变化
    软件应用方面的规则的影响
    长期投资回报(ROI)周期意愿的降低
    在IT方面聪明地花钱-大型项目的失败率仍然很高
    IT系统、平台和用来构建它们的语言等类型或形式越来越多

  软件测试和SDLC(软件开发生命周期)软件测试不再是一个事后的想法

  测试计划是项目计划中不可缺少的部分

  测试正在变得比以往复杂得多。一个典型的企业应用系统总是要与其它内部和外部应用系统进行关键性的集成。大多数的应用都 有各种功能和非功能测试(从可用性、性能、可扩展性到部署、安装)任务,这些任务需要事先为环境、测试数据收集和专业技能等进行计划。其中一些需要花费较 长的准备时间。如果缺乏前期规划,测试会成为项目的瓶颈,这越来越成为大家的共识。所以,测试计划变得越来越积极,项目一开始策划。

  一个渐进的规划正变得越来越必要。做什么和什么时候做的问题越来越多地被事先回答,而且在接近测试执行的时候,怎么做的问题也已计划好。

  测试团队的早期参与是强制性的

  从早期发现和修订问题到提供可预测性、大量成本节省和高效的变化过程,IT组织正在意识到极大的好处。

  对一个专业的测试人员而言,机遇与挑战并存。这是协作的必然要求,有多种技能的测试人员可以消除商业和技术之间的隔阂,并理解使前期测试可行的实践方法和工具。

  有些技能是共同的:

    良好的分析能力,以获得客户和业务分析专家的认可
    能够快速创建适应代码多次变化的自动测试框架
    不仅仅是一个自动化测试工具的专家,而且是测试自动化的专家,能够在必要时开发合适的工具
    基于商业价值及其相关的技术风险的测试设计技能

  可测性是一个设计标准

  早期的测试参与是一个不可替代的要求。例如,可测性已经越来越多地成为一个设计标准,以便允许早期的、有效的、快速的和可维护的测试创建。测试人员与开发人员的协作是极为重要的。

  在如何或何处将可测试性作为设计标准方面的一些例子,有助于测试和自动化测试,例如:

  确保用户界面和商业逻辑的分离,使得我们可以在适当的层次进行测试(用户界面或业务层)。这允许测试工具(如FIT/ FITNESSE)可以在UI设计没有终确定或没有UI的情况下通过API进行测试。

  可以更有效地使用UI对象的ID来完成UI的自动化测试

  当外部系统不可用或仍处于开发阶段的时候,构建可配置的模拟系统来测试应用程序