机器学习将会如何影响软件开发和测试?看完这文就懂了

2020 年 8 月 9 日 THU数据派


来源:AI科技大本营

本文 1850 ,建议阅读 4分钟
本文介绍机器学习究竟是如何影响软件开发和测试的呢?未来会是什么样子呢?


机器学习(ML)和人工智能(AI)经常被认为是通向未来世界的大门,在这个世界里机器人像人一样互动,它们可以在各个方面都比人类聪明。如今,机器学习已经被应用在世界各地数以万计的应用程序中,而且它以一种看不见的方式,开始重塑我们的生活和工作方式。尽管这些技术堪称具有破坏性,被认为是引起人类恐慌的罪魁祸首,但它们在人类社会的各个领域都发挥着巨大作用。

更吸引人的是机器学习在自动驾驶汽车等新兴技术上的应用。多亏了ML,自动驾驶软件不仅可以通过数百万次的迭代进行自我改进,还可以在驾驶过程中面对新环境时快速自适应。不仅如此,ML在软件测试等领域可能更为重要,因为无论什么技术,几乎都离不开软件测试。

那么,机器学习究竟是如何影响软件开发和测试的呢?未来会是什么样子呢?

机器学习和人工智能

首先,让我们解释一下ML和AI之间的区别,因为这些技术是相关的,但经常相互混淆。机器学习指的是一种算法系统,它被用来帮助计算机不断地自我改进。换句话说,通过机器学习,可以将一个功能(比如面部识别、自动驾驶或语音转换文本)测试和改进得越来越好;而对于外部观察者来说,这个系统看起来像是在学习。

人工智能被认为是一种由机器展示的智能,它通常以ML为基础。没有演示AI的ML系统是可能的,但是没有ML的AI是很难的。

软件测试的重要性

现在,让我们来看看软件测试——软件开发过程中的一个关键环节,也可以说是最重要的阶段。软件测试的目的是确保产品按照预期运行,在大多数情况下,在产品实际完成之前,会经历反复迭代的过程。

通过软件测试,您可以预先识别错误和其他缺陷,在变成真正的问题之前纠正它们。您还可以评估产品的质量,通过测试来评估其在各种不同情况下的速度和性能。最终实现更好、更可靠的产品——以及在产品的生命周期中更低的维护成本。

试图在没有完成测试的情况下交付软件产品,类似于构建一个缺乏良好基础的高楼大厦。据估计,如果没有完全执行适当的测试,软件交付后的成本可能是项目本身的总成本的4-5倍。当谈到软件开发时,测试失败就是项目失败。

机器学习是如何重塑软件测试的

这里,我们可以把两者结合起来。机器学习如何使软件开发和测试变得更好?

ML已经被软件测试人员用于自动化和改进测试过程。它通常与敏捷方法结合使用,后者强调持续交付和增量迭代开发,而不是一次构建整个产品。作者认为敏捷和scrum方法的未来会涉及大量的机器学习和人工智能,这就是原因之一。

机器学习可以在很多方面改进软件测试:

更快、更轻松的测试。老式的测试方法几乎完全依赖于人工干预和人工努力;软件工程师和QA测试人员将手动运行软件并检查错误。如果使用ML技术,您可以自动化并更快地执行测试,不需要花费几个小时的人工时间。

连续测试。此外,QA测试人员只在部分时间内介入,如果您在持续开发软件,这是不可能的。基于ML的测试系统可以部署连续测试,不断检查产品在不同条件下的性能。

一致性测试。如果您需要对同一产品进行两次测试,您是否有信心以完全相同的方式进行测试?很可能没有——人类很难做到这一点。但ML算法的建立和执行尤其擅长重复相同的过程,一遍又一遍、不耐烦地、可靠地——您永远不必担心测试脚本的一致性问题。

更高的灵敏度。基于ML的现代验证工具能够识别人眼无法识别的UI差异。这个UI元素的颜色正确吗?它在正确的位置吗?视觉缺陷有时很明显就容易被发现,但是基于ML的“眼睛”具有更高的灵敏度和准确性。

多层测试。ML测试还支持多层测试,而不需要用户界面。ML软件测试系统可以测试应用程序日志,包括源代码和软件监控系统日志。

虽然软件开发和测试过程的自动化势在必行,但困难依然重重。我们还远没有达到全面自动化所需的技术水平。即使是当今最先进的软件测试环境,机器学习是帮助批量处理代码集,在不需要解耦的情况下测试和解决大数据问题。如果测试过程中出现错误,基于ML的多层结构化测试也会提醒相关用户标记问题,并继续完成自动测试过程。

基于ML的软件测试不仅提高了一致性,减少了错误,同时也节省了时间,降低了成本。随着ML技术的不断进步,它将以全新的、更具创新性的方式重塑软件测试领域。

虽然我们离这个目标还有一定的差距,但我们相信,ML技术必将助力软件开发人员“创纪录”地完成迭代过程。这将引发未来软件开发和测试领域的一场变革。

原文链接:

https://readwrite.com/2020/07/06/machine-learning-software-testing/

——END——


登录查看更多
0

相关内容

机器学习的可解释性
专知会员服务
175+阅读 · 2020年8月27日
【实用书】Python编程,140页pdf
专知会员服务
41+阅读 · 2020年8月20日
【2020新书】高级Python编程,620页pdf
专知会员服务
235+阅读 · 2020年7月31日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
356+阅读 · 2020年2月15日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
【机器学习】无处不在的机器学习
产业智能官
4+阅读 · 2019年8月18日
7个实用的深度学习技巧
机器学习算法与Python学习
16+阅读 · 2019年3月6日
CCCF译文 | 机器学习如何影响本科生计算机课程
中国计算机学会
6+阅读 · 2019年2月18日
理解五个基本概念,让你更像机器学习专家
云栖社区
5+阅读 · 2018年11月29日
【机器学习】如何通过机器学习预测维护设备?
产业智能官
16+阅读 · 2018年7月9日
机器学习不能做什么?
引力空间站
5+阅读 · 2018年3月28日
关于机器学习,你需要知道的三件事!
云栖社区
3+阅读 · 2018年3月3日
如何入门Python与机器学习 | 赠书
AI100
8+阅读 · 2017年11月14日
机器学习实践指南
Linux中国
8+阅读 · 2017年9月28日
Arxiv
23+阅读 · 2018年10月1日
Arxiv
10+阅读 · 2018年2月9日
VIP会员
相关VIP内容
机器学习的可解释性
专知会员服务
175+阅读 · 2020年8月27日
【实用书】Python编程,140页pdf
专知会员服务
41+阅读 · 2020年8月20日
【2020新书】高级Python编程,620页pdf
专知会员服务
235+阅读 · 2020年7月31日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
356+阅读 · 2020年2月15日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
相关资讯
【机器学习】无处不在的机器学习
产业智能官
4+阅读 · 2019年8月18日
7个实用的深度学习技巧
机器学习算法与Python学习
16+阅读 · 2019年3月6日
CCCF译文 | 机器学习如何影响本科生计算机课程
中国计算机学会
6+阅读 · 2019年2月18日
理解五个基本概念,让你更像机器学习专家
云栖社区
5+阅读 · 2018年11月29日
【机器学习】如何通过机器学习预测维护设备?
产业智能官
16+阅读 · 2018年7月9日
机器学习不能做什么?
引力空间站
5+阅读 · 2018年3月28日
关于机器学习,你需要知道的三件事!
云栖社区
3+阅读 · 2018年3月3日
如何入门Python与机器学习 | 赠书
AI100
8+阅读 · 2017年11月14日
机器学习实践指南
Linux中国
8+阅读 · 2017年9月28日
Top
微信扫码咨询专知VIP会员