人工智能如何帮助测试设计

人工智能算法的类型

智能人工

现今,人工智能的算法,已在垃圾邮件的处理、智慧医疗、数据分析、智能驾驶、语音识别、图像识别等诸多领域得到广泛应用。其中一些算法理论,可以追朔到上世纪50年代,近年来越发为各个行业广泛应用,内因是其具有的强大的函数拟合能力带来的机器学习的潜力;外因得益于现今更强的计算能力,更多的数据,以及更好的训练方法的驱动。

常见的人工智能的算法,有KNN算法、BP算法、卷积神经网络算法(CNN算法)、深度神经网络算法(DNN算法)等KNN算法在机器学习里面非常经典,不仅因为它本身的算法逻辑比较简单易懂,更因为它是基于实例的学习算法中的代表,是将新样本与已知的样本进行比较,通过已知样本局部的标签属性来为新样本打标签完成新样本的分类。

而BP算法、卷积神经网络算法(CNN算法)、深度神经网络算法(DNN算法)是训练网络模型来学习,是通过已知样本训练出一个可靠的模型,用这个模型来为新样本打标签完成新样本的分类。

下面我们就以这两种算法为例子,介绍他们为软件测试设计带来的帮助。

机器学习的实现最佳分类

我们以神经网络算法为例子,简单看看什么是机器学习。

神经网络的理论基础之一是多层的神经网络可以逼近任意的函数,也就是说,面对任何复杂的非线性分类任务,多层神经网络可以通过已有样本来调整参数实现任何分类。

下图是一个典型的神经网络单元的模型:包含有3个输入,1个输出,以及2个计算功能。注意中间的箭头线。这些线称为“连接”。每个上有一个“权值”。

连接是神经元中最重要的东西。每一个连接上都有一个权重。一个神经网络的训练算法就是让权重的值调整到最佳,以使得整个网络的预测效果最好。

一个典型的神经网络,由几个、上百个、上千个甚至几百万个上面这样的“单元”构成,它们排列在一系列的层中,每个层之间彼此相连。这些层可以分为输入单元(下图红色),隐藏单元(下图蓝色)和输出单元(下图黄色)组成。神经网络就是通过学习渐渐调整每两个单元(神经元)连接的力度,就是权重值,达到对新的样本各个属性的分析,得出其最佳的不同类别。 例如,在文件测试中,不用的测试用例,不同的测试路径,用多个属性来标示,作为一个经过训练的神经网络的输入,得出那个测试用例属于可提高覆盖率,发现缺陷的分类,帮助我们设计新的测试用例。

测试用例设计中的分类问题

上图是一个旅游助手网站,我们将希望的功能用右面的功能模块来表现。对应的每一个具体的功能,即我们之前称之为活动的内容,包含一个独立的测试模块。

在上面的模型化的模块图中,我们可以看到,每个可以并列的活动分配在各个不同的应用状态中,而各个不同状态间,活动之间有多种可能的测试工作流程。我们都知道,即使在一个简单的模型中,也确实有数十亿用户执行流程。我们不能全部执行。所以我们需要优化。用户可以在活动上设置优先级来实现业务上的优先需求。同时,我们也使用人工智能、机器学习算法来选择最佳路径来优化覆盖和发现缺陷。

人工智能算法辅助测试用例设计

我们以KNN算法为例,首先看看人工智能算法是如何工作的,再看看这个算法如何帮助我们做测试路径选择的决策。

KNN算法的逻辑就是选择离测试样本最近的K个邻居,根据邻居们的属性,设置新样本的属性,从而实现分类。例如如图,

我们有一组现有样本,它们被以某种方式分类;在这种情况下,我把它们分类为蓝色圆圈和红色三角形。然后,当新的样本出现时,算法通过查看k近邻来分类它们(假设k为5),并且选择哪个分类在该集合中更常见。因此,在这种情况下,我们将新样本归类为蓝色,因为在它的5个最近邻居中有更多的蓝色点而不是红色三角形。

同样的算法,也可以帮助我们选择下一步执行哪一个用户活动。在这种情况下,每个已有样本都是先前已经执行的测试,并按照测试是否通过或失败来分类。

蓝色圆圈是经过的用户执行流程,红色三角形是显示缺陷的用户执行流程。下一步,可能执行的活动,有三个可能,

我们可以做的是比较这三个不同的用户执行流程使用K近邻,并选择一个最有可能被归类为缺陷的下一步活动。因此,在这种情况下,我们再次使用k=5,并且您可以看到两个选项将被分类为PASS,而其中一个将被归类为失败。因此,我们执行选项“3”,因为它最有可能导致我们想要的缺陷。

这就是我们如何使用人工智能算法,来利用已有测试结果,帮助用户从模型中自动生成最有可能发现缺陷的执行路径的基本思路。

在实践中所做的当然更为复杂。我们有多个算法工作,有很多属性来分类路径,并且我们还需要在不同的测试要求之间做出权衡。但以上体现了人工智能在测试领域中的新的应用前景。

软件测试机器人的工作流程:

1.业务知识以知识图谱的方式进行存储

2.用户只需要输入自然语言

3.软件测试机器人智能生成测试用例

4.执行测试并发送报告

Android端的用例自动生成案例:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,009评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,808评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,891评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,283评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,285评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,409评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,809评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,487评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,680评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,499评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,548评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,268评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,815评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,872评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,102评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,683评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,253评论 2 341