您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件测试技术 > 其他相关 > 正文

软件测试进入了一个新时代

发表于:2018-06-07 作者:朱 少民 来源:质量屋 点击数:

企业IT软件非常复杂,通过协作由全球高技能人员快速开发,必须在许多生态系统和许多设备上不间断地运行。在过去,软件每年一般只发布几次;但是今天,新的版本可能会每分钟出去一次, 持续不断的。在许多情况下,软件开发过程以瀑布方法开始,现在已经转向敏捷、精益和持续集成(CI)。在这个新时代,云服务消费者(软件用户)生活在一个多租户世界中,他们不再能够控制软件版本更新的时间。客户分散在许多时区,每个客户都必须访问该软件,所以永远不会给维护、超时或宕机等机会。持续操作——以软件用户无中断的方式管理软件和硬件的更新。即使软件和服务器在计划的维护或更新过程中可能会离线,这也需要对其进行管理,从而在维护时用户依旧可以继续使用现有版本的应用程序。一旦部署成功并经过冒烟测试后,就会自动切换到新的版本。

当软件测试进入了一个新时代,在开发、交付、部署和运营的高速运行的同时,要确保这些高度复杂和动态的软件产品的质量,就变得非常困难。在新时代,软件测试需要多维的方式去操作,质量/测试工程师时时刻刻都要从下列多个维度去评估软件产品的质量。

维度
1. 验证技术性的可交物(前端、中间件、后端、平台)。
2. 在客户生态系统(Web浏览器、手机、台式机、平板电脑、原生环境、混合环境、跨平台、可穿戴、不同操作系统、不同版本)中进行评估。
3. 借助最大程度的自动化,提高测试速度,以满足CI/CD(持续交付)、产品开发的速度。
4. 通过进行各种类型的测试(用户行为、功能、性能、安全性、可用性等)以实现测试全覆盖
5. 根据最终用户、PO、产品经理、开发人员、架构师、业务分析师、DevOps经理等各自的需求来评估软件产品。
6. 通过高端测试设计技术不断优化测试设计(基于风险的方法、基于需求的方法、组合测试方法、基于场景的测试、基于模型的测试、两两组合、正交试验法、边界值分析等)
7. 充分复用测试生命周期的各个阶段产生的测试资产,特别是业务分析师、PO、开发人员、架构师、其它测试人员等人积累下来的测试资产(包括测试用例、测试脚本、测试数据等)

在新时代,测试工程师在软件交付中要扮演多种角色,他们需要转变软件测试思维,需要测试自动化和与各种解决方案/技术的集成,以支持他们多维度的工作方式。

在新时代,测试不再局限于测试执行的自动化、测试设计的自动化或测试过程中单个环节的自动化,而是:

  • 关于在第一时间如何实现测试的推导和设计,以及如何管理和执行测试;
  • 关于测试的透明性、可视性和可控制;
  • 关于速度和周转时间;
  • 关于无缝集成,如将工具和流程融合在一起。

  

 

 

下列内容强调了新时代软件测试中的现实需求。

提高生产率(测试效率):

  • 通过最少的手工参与,实现功能测试的自动化。
  • 利用现有测试资产 – 测试用例、测试需求、原型。
  • 消除测试自动化积压(Backlog)

增加和优化的覆盖范围:

  • 尽可能少地测试复杂系统、优化回归测试集。
  • 查看生成的测试,了解覆盖了哪些测试、以及为什么需要这些测试;
  • 获得可视性,能够了解什么测过、什么没有测试。

综合测试流程:

  • 与所有SDLC工具和流程无缝集成;
  • 直接链接到自动化执行框架。

测试自动化:

  • 缩短测试自动化的路径;
  • 简化高级的测试设计技术;
  • 在许多平台和生态系统上自动执行测试;
  • 在内部或云端上实现并发测试。

可重用性:

  • 重用现有资产,包括模型、手动测试用例、记录和回放测试;
  • 重用每个利益相关者的资产提升交付速度。

测试自动化

以开发的速度进行测试,对于软件发布变得非常关键。自动化测试是在每个迭代实现足够高的测试覆盖率的唯一途径,从而提供测试人员为其项目获得高品质和快速的质量反馈。

自动化测试,不仅帮助我们节省测试的时间、可以进行更全面的回归测试,增强我们对系统质量的信心,而且这种信任使得我们大胆进行系统的改进和定制以满足不同用户的需求,测试人员也可以将精力投入到真正需要人类洞察力的新功能测试领域,开发人员也变得更加自信。

测试自动化框架

测试自动化框架是支架,用于为自动化测试脚本提供执行环境。框架是各种指南、编码标准、概念、流程、实践、项目层次化、模块化、报告机制、测试数据等的智慧结晶,并有力支持自动化测试的流畅执行。因此,用户可以遵循这些准则,同时自动化应用程序以利用各种高效的成果。

        • 在高层次上,自动化框架使用驱动程序和数据集在各种测试环境中执行测试。

          好的框架吸收了许多自动化测试技术,利用其优势,智能地解决其弱点,满足各类项目利益相关者的需求:

          • 基于组件的测试框架;
          • 库架构测试框架;
          • 数据驱动测试框架;
          • 关键字驱动测试框架;
          • 混合测试框架;
          • 行为驱动开发框架(BDD);
          • 业务流程测试框架。