企业IT软件非常复杂,通过协作由全球高技能人员快速开发,必须在许多生态系统和许多设备上不间断地运行。在过去,软件每年一般只发布几次;但是今天,新的版本可能会每分钟出去一次,持续不断的。在许多情况下,软件开发过程以瀑布方法开始,现在已经转向敏捷、精益和持续集成(CI)。在这个新时代,云服务消费者(软件用户)生活在一个多租户世界中,他们不再能够控制软件版本更新的时间。客户分散在许多时区,每个客户都必须访问该软件,所以永远不会给维护、超时或宕机等机会。
持续操作——以软件用户无中断的方式管理软件和硬件的更新。即使软件和服务器在计划的维护或更新过程中可能会离线,这也需要对其进行管理,从而在维护时用户依旧可以继续使用现有版本的应用程序。一旦部署成功并经过冒烟测试后,就会自动切换到新的版本。
当软件测试进入了一个新时代,在开发、交付、部署和运营的高速运行的同时,要确保这些高度复杂和动态的软件产品的质量,就变得非常困难。在新时代,软件测试需要多维的方式去操作,质量/测试工程师时时刻刻都要从下列多个维度去评估软件产品的质量。
维度
1.验证技术性的可交物(前端、中间件、后端、平台)。
2.在客户生态系统(Web浏览器、手机、台式机、平板电脑、原生环境、混合环境、跨平台、可穿戴、不同操作系统、不同版本)中进行评估。
3.借助最大程度的自动化,提高测试速度,以满足CI/CD(持续交付)、产品开发的速度。
4.通过进行各种类型的测试(用户行为、功能、性能、安全性、可用性等)以实现测试全覆盖
5.根据最终用户、PO、产品经理、开发人员、架构师、业务分析师、DevOps经理等各自的需求来评估软件产品。
6.通过高端测试设计技术不断优化测试设计(基于风险的方法、基于需求的方法、组合测试方法、基于场景的测试、基于模型的测试、两两组合、正交试验法、边界值分析等)
7.充分复用测试生命周期的各个阶段产生的测试资产,特别是业务分析师、PO、开发人员、架构师、其它测试人员等人积累下来的测试资产(包括测试用例、测试脚本、测试数据等)
在新时代,测试工程师在软件交付中要扮演多种角色,他们需要转变软件测试思维,需要测试自动化和与各种解决方案/技术的集成,以支持他们多维度的工作方式。