软件测试培训
美国上市软件测试培训机构

400-111-8989

热门课程

人工智能给软件测试带来了哪些变化?

  • 发布:丁涵
  • 来源:51Testing软件测试网
  • 时间:2018-04-03 13:28

人工智能的时代来临了,科技改变了我们的生活,让我们生活变得更加便利。人工智能为我们带来了一种新的生活方式,很多传统的东西都面临着改变。那么人工智能给软件测试带来了哪些改变呢?在知道人工智能给软件测试带来的改变之前,小编先带大家了解一下,人工智能和软件测试是什么。

人工智能与机器学习

人工智能(AI, Artificial Intelligence)与机器学习(ML, Machine Learning)是时下最火热的技术方向之一。准确地讲,人工智能不等同于机器学习,机器学习只是人工智能的一个子集。由于媒体的误用,本文遵循媒体的叫法,文中提到的人工智能,一般泛指机器学习。

人工智能,顾名思义,就是希望创造出拥有像人类那样智能的机器,这是人类的终极梦想之一。该词早在1956年就提出了,当时的科学家曾乐观地估计,二十年左右人类就可以将其实现。然而科学家也很快就发现其难度远大于预估。在此之后的很长一段时间里,人工智能的研究陷入低谷。

通常我们将人工智能分为弱人工智能和强人工智能,前者只专注于完成某个特定的任务,例如2016年战胜围棋世界冠军李世石的Alpha Go,而强人工智能,目前只存在于科幻电影之中。虽然强人工智能仍然道路漫长,但是弱人工智能却有希望取得突破,至少从表现行为来看,它已经拥有了一些"智能"。那么它是如何实现的呢?这主要归功于一种实现人工智能的方法--机器学习。

然而现实中,有很多问题无法用确定的规则来定义算法,例如把手写的数字图片用计算机程序识别出来。因为每个人写的都不一样。但是,假如我们有大量的手写数字图片和实际结果数据的话,就可以通过这些数据的学习(训练),使得计算机程序能够自己找到其内在的方法,就好像是计算机程序学习了知识经验一样。这样,下次再遇到手写数字的时候,计算机程序就能够自动识别了。这个过程就是机器学习。

机器学习的关键点在是找到训练模型,利用大量的数据进行训练,获得最优模型,以用于对未来的问题进行预测与解决。机器学习当前在很多领域都有了迅速的发展,也有人将其引入软件测试领域。

软件测试

软件测试的目的是为了发现软件工程中存在的bug,从而提高软件的质量。

早期软件的规模小,复杂度低,那个时候基本没有什么软件测试,软件测试基本等同于开发人员的软件调试。随着软件规模的扩大和软件复杂度的提升,软件测试变得越来越重要,软件项目中也有了测试人员。

软件测试发展到如今,基本可以分成两类:

手工测试:

通过手工方式完成软件的测试。这种方式费时费力,重复性的工作让测试人员身心倍感疲倦。但是目前来讲,软件测试还不能完全杜绝手工测试,其原因主要在于有些手工测试转换成自动化测试难度太大或者成本太高。

自动化测试:

借助自动化测试工具或者测试人员自己编写测试脚本完成软件的测试。自动化测试极大的提高了软件测试的效率,减轻了测试人员的负担。理论上来说,重复性的测试工作都应该做到自动化。在有些人力资源不充足的团队当中,开发人员本身就要负责单元测试(UT)的开发,这虽然违背软件测试的某些原则,但是却能实实在在地提高软件开发的质量。

不管哪种测试,软件测试的根本是利用预测的结果和实际测试时的结果进行比较来完成测试功能,所以软件测试用例的预期结果在测试前就确定了。

随着软件规模的扩大,这种传统的测试方法越来越难以应对日益增长的测试对测试人员的挑战。

随着软件开发时间的增长,功能点可能会按指数级增长,因为新的功能和状态与现有的功能进行交互,而测试却只能一次增加一个,只能线性增长,这中间存在测试无法覆盖的空白。同时,因为确定的测试预期结果,当软件功能发生变化的时候,测试用例也得做出修改,维护自动化测试用例也是软件测试隐藏的成本。

那么人工智能可能将给软件测试带来哪些变化?

人工智能时代,软件测试可能会发生巨大变化。

首先,测试变得更简单了。机器学习擅长的就是通过数据训练来完成新的情形的处理,这意味着测试人员将不需要再大量手工编写自动化测试用例和执行测试,而是利用AI自动创建测试用例并执行!

测试人员的主要工作不再是执行测试,甚至也不是设计自动化测试用例,而是提供输入输出数据来训练AI,最终可以让AI自动生成测试用例并执行。对于某些通用测试,只需要一个被验证过的模型,甚至连数据也无需提供。

这种能够自动生成测试用例的系统叫bot,可以一次生成大量的组合测试用例,有效解决功能点和测试点的覆盖空白问题。大约80%的测试工作到时候将由bot自动完成,而测试人员的主要精力将会被解放出来以放在更有创造性和探索性的测试任务上。

这不是幻想,而是已经变为现实,比如Appdiff是一个基于AI的移动app自动化测试平台,能够完成一个典型移动app 90%的界面测试,而且它比人手工测试做得更好。

其次,AI bot可以发现更多的软件bug。AI bot一边测试一边时刻不停地新增数据输入,测试能力会越来越好,因而能够发现更多的bug。与此同时,对于迭代频繁的软件开发而言,当一个regression bug发现后,测试人员常常需要确定这个bug是什么时候引入的,这往往需要耗费大量的精力和时间,而AI bot能够持续地跟踪软件开发过程,找出其中bug被引入的时间,从而为开发人员提供有效信息。

最后,基于AI的测试也会让测试人员感到困惑。测试人员可能会怀疑AI测试的有效性,要消除这种不信任,测试人员需要掌握不同于传统测试人员所需的技能,他们需要更多聚焦在数据科学技能上,还需要了解一些机器学习的原理。

人工智能给软件测试带来了哪些变化

以上就是小编跟你分享的人工智能给软件测试带来了哪些变化的文章,你还喜欢吗,想了解更多软件测试相关知识,记得关注达内软件测试官网哦~

预约申请免费试听课

上一篇:软件测试的基础知识(三)
下一篇:软件测试基础学习有哪些?

达内软件测试培训2018年10月份免费训练营课程表

达内软件测试培训2018年9月份免费训练营课程表

达内软件测试培训2018年8月份免费训练营课程表

软件测试基础学习有哪些?

选择城市和中心
贵州省

广西省

海南省