如果科学家们能够增强大脑以增强记忆存储能力或植入芯片以解码神经模式,会怎样呢?如果外骨骼成为汽车工人的标准制服,使他们能够举起超出人类能力范围的重量,会怎样呢?如果医生可以植入传感器以追踪药物在体内如何传送,又会怎样呢?
两天前,Gartner立足于“以人为本的智慧空间”,发布了2020年十大战略性技术趋势,分为两类:
-
以人为中心:超级自动化(Hyperautomation)、多重经验或无尽体验(Multiexperience)、 技术普惠化(Democratization)、人类增强(Human augmentation)、透明和可追溯性(Transparency and traceability);
-
智慧空间:赋能型边缘(The empowered edge)、分布式云(The distributed cloud)、自主化设备(Autonomous things)、实用的区块链(Practical blockchain)、AI安全性(AI security)。
其中多重体验是指计算机从单一交互UI演变成为包括可穿戴设备和传感器之类的多感觉多接触点界面,专注于使用:
- 增强现实(AR)
- 虚拟现实(VR)
- 混合现实(AR+VR叠加等)
- 应用软件开发
- 数据及分析
- 设计
- 知识
- 感觉增强(听觉、视觉和知觉)
- 附肢及生物机能增强(外骨骼和假肢)
- 大脑增强(治疗癫痫的植入体)
- 基因增强(体细胞基因和细胞疗法)
“超级自动化”对软件开发和测试有什么启发呢??过去,我们也一直关注软件测试自动化,虽然更多人停留在“测试工具”的使用之上。我也在多种场合说,目前被大众称为的“自动化测试”只能称为“半自动化测试”——只是测试执行是自动化的,甚至执行都不能真正自动化,因为执行时不稳定,需要人工干涉,执行的结果还需要人工分析,而且人们要开发自动化测试的脚本,脚本不能自动生成。
真正的软件测试自动化,不局限于工具,更应该涵盖测试目标发现、测试分析、测试设计、测试执行、质量度量、测试过程监控和测试结果重新评估、测试过程重新评估的全流程的成熟度,这就是一个系统的过程、逐步积累和完善的过程。借助AI、数据和流程等共同驱动,能否将软件测试自动化带入“超级自动化呢”?
这就是我们明年乃至未来要努力实现的事情,虽然“将产品需求或测试需求输入进去,就自动得到测试结果”的理想状态也许永远都不会出现,但是,能否在人机交互情况下自动生成测试模型,然后基于测试模型生成测试数据、测试脚本,完全还是有可能的。
最近买了一本书《基于模型的测试》,其中谈到的模型包括流程图、决策表、状态图、有限状态机、Petri网、面向对象的模型等,并介绍了基于模型测试(MBT)的大量实践和工具。除了我们熟悉的ModelJUnit、MS Spec Explorer之外,书中还介绍了:
- MISTA可以从使用Java/C/C++/C#等语言或JUnit、nUnit、Selenium测试引擎等测试模型中生成可执行测试代码;
- Auto Focus 3 能针对分布式、反应式和定时计算机系统的结构和行为进行建模、分析,而且贯穿整个软件生命周期;
- GraphWalker利用GraphML建模的状态机生成离线或在线的测试序列。
- ......