2020年即将来临,为了帮助大家更好定义明年的KPI指标,规划明年的测试提升或投入计划,无偿奉献自己一年多的思考和总结:软件测试未来发展趋势被概况为“六化”
1. 敏捷化
敏捷和DevOps等流程的引入,特别是
- 测试左移,加强需求评审、设计评审,推行ATDD/BDD
- 测试驱动设计,从过去硬件的design for test到test driven design
- 让开发做更多的测试,至少做好单元测试、API测试和代码评审
- 测试右移,开展在线测试(含性能、安全、易用性、可靠性)、日志/数据分析,反过来改进产品。参考:如何不让“测试”成为敏捷的绊脚石?《测试敏捷化白皮书》发布了(附下载地址)敏捷模式下,如何构建团队测试能力?
2. 高度自动化
提高自动化测试技术,包括自动化框架的建立和优化、测试工具开发,让自动化无处不在,贯穿整个测试全过程,覆盖测试的各个方面。
参考:
3. 云化
测试的基础设施,采用当今的虚拟机、容器技术,这不仅使测试环境更容易维护、系统更容易部署,从而更好地支持自动化测试,而且可以可以更好地融合,收集更多的研发数据,更好支持下面的服务化、智能化。
4. 服务化
让软件测试成为一种服务(Test as a Service, TaaS), 简单地说,让所有的测试能力可以通过API来实现,构建测试中台,任何研发人员可以按需自动获取测试的能力,这样开发也乐意做更多的测试。
参考:
服务化测试 PankHuri Mishra
微服务测试及镜像化提测全流程实践
DOIS2019大会,腾讯 DevOps 测试中台探秘!
5. 模型化
基于模型的测试,才更有效、更精准,测试才能彻底自动化。过去,人们常说的自动化测试,只是半自动化——测试执行的自动化。彻底的自动化是指测试数据、测试脚本都是自动生成的。参考:MBT探索系列 – PRE/POST 模型在网络接口测试MBT的应用和探索
基于模型的自动化测试工具——GraphWalker
究竟什么是模型检验(Model Checking)?
6. 智能化
今天互联网、存储能力、技术能力和大数据再一次将AI推向第三次浪潮,AI能够服务其它行业,自然能够服务于测试,而且在上述自动化、云化、服务化、模型化的基础上,AI更能发挥作用,包括测试数据的自动生成、自主操控软件、缺陷和日志的智能分析、优化测试分析与设计等。
- Level 0: No autonomy:Nobody’s helping you write that automation code. And writing the code itself is repetitive
- Level 1: Drive assistance:AI can check the visual aspects of the application against a baseline, but the people still need to verify every change
- Level 2: Partial automation:AI helps you check changes against baseline and turns what was a tedious effort into a simple one.
- Level 3: Conditional automation:AI will autonomously determine that this is a bug
- Level 4: High automation:AI can run checks automatically and drive the test itself, for example, can look at user interactions over time, visualizing the interactions, and understand the pages and the flow through reinforcement learning
- Level 5: Full automation:(science fiction) AI would be able to converse with the product manager, understand the application, and fully drive the tests by itself
参考:
AI技术助力软件测试达到“质效合一”
如何在Appium中使用AI?
未来已来,人工智能测试势不可挡:介绍9款AI测试工具
AI测试:让软件测试变得聪明伶俐(下)