是什么意思“测试”
我们先找出是什么意思“测试”认真谈论学习系统测试的影响。测试的目的是关闭之间的差距,我们知道我们不知道透露我们的软件中存在的问题。188金宝搏官网登录app我们测试的原因不会改变,但是我们会怎么做。我们怎么缩小知识差距呢?它在两个方面:我们测试软件通过检查(正式测试)和探索(探索性188金宝搏官网登录app测试)。
这个问题困扰我们中的大多数测试人员在人工智能的时代,“我们需要改变我们目前的测试方法来测试学习系统?“简而言之,答案很简单,是的,但仅略!“这是为什么呢?过去多次表明,新技术(例如,移动设备,云技术)明显影响我们如何交付软件。188金宝搏官网登录app不出所料,软件测试需要与这些变化188金宝搏官网登录app,所以这些技术需求(至少)一些轻微的适应我们当前的软件测试方法。
底线。随着技术的进步,所以必须我们的测试方法。
经过仔细观察,这是显而易见的。学习系统已经在我们的私人生活常伴我们左右,所以毫不奇怪,这些学习系统也会影响我们的日常测试例程。学习系统(例如,深层神经网络)是最有可能在软件测试下一个大事件。188金宝搏官网登录app但是,记住,这只是另一个技术。这不是黑魔法。
我们先找出是什么意思“测试”认真谈论学习系统测试的影响。测试的目的是关闭之间的差距,我们知道我们不知道透露我们的软件中存在的问题。188金宝搏官网登录app我们测试的原因不会改变,但是我们会怎么做。我们怎么缩小知识差距呢?它在两个方面:我们测试软件通过检查(正式测试)和探索(探索性188金宝搏官网登录app测试)。
检查手段评估算法决策规则应用到特定的观察软件的软件产188金宝搏官网登录app品(迈克尔·波顿)。检查只是提供了一个对这个问题的回答,“这断言通过或失败吗?“这意味着检查(例如,通过一个自动化的测试用例执行)提供了一个二进制的结果(或真或假,是或否,0或1)。这是我们目前的理解。检查机器可决定的,因此,检查通常被称为正式的测试。
检查可以通过机器或人类。是由机器完成的时候,我们称之为机器检查,当它是由人类,我们简单地称之为人类的检查。检查确认现有的信仰。这样的测试往往关注的是我们所知道的(Maaret Pyhajarvi)。
学习测试系统这是什么意思?它只表示两件事。
首先,我们需要学习。我们必须获得知识的内部工作学习系统(例如,神经网络)在这些系统使我们能够揭示问题在未来通过强大的测试实验。在这里,你已经运用探索性测试因为你关注你不知道系统的事情。
此外,你应该挑战假设每个人(例如,开发人员)对系统没有任何经验证据。这可能使您能够揭示基本问题起源于对系统错误的假设。这可能听起来像一个困难和艰巨的任务。但是没有看到困难;看到了机会,而不是威胁,接受新的挑战,抓住这个机会。我们更相信,通过深思熟虑的探索和实验,你将成为一个更强大的测试人员。
进入人工智能领域的一个方法是先跟你的开发者朋友来了解你们的具体学习系统测试。此外,参加在线课程对AI大局。我们强烈推荐的在线课程deeplearning.ai由Andrew Ng(斯坦福大学)。不用担心;我们没有一个既得利益在促进这门课。值得一试。不要退缩,不要害怕。这不是火箭科学(无论如何)。这是你的电话。
第二,我们需要改变我们的检查。我们当前的测试技术主要是基于固定的输入和输出。测试人员本能地认为,鉴于一些输入,输出将会持续,直到软件经历了一些变化。188金宝搏官网登录app这不再是真正的学习系统。在这些系统中,没有精确了。输出不再是固定的;它会随着时间改变。它将成为美联储体系是随着时间的推移,越来越多的数据(迪Mamnani)。
这意味着我们需要打破我们建立测试模式。这听起来像是我们必须扔掉我们目前的测试方法和从头再来。不用担心;情况并非如此。我们当前的测试的方法仍然是需要的。他们仍然适用。我们只需要稍微调整测试这些系统。而不是静态的测试系统,我们现在还要求测试动态系统。这不是一个大问题。相信我们。
如前所述,您需要做的第一件事是了解系统如何处理数据,如何学习,如何利用信息以数据的形式使未来的决策。这可以帮助您确定范围的正确性。
你可以测试你的学习系统之前,您必须给它一些食物来学习。这食物是数据。接下来你需要做的是创建一个训练数据集,从传统的角度来看,这意味着您将输入与预期的输出。在这个训练数据集,输入数据(如图像)标签与预期的输出(例如,它是一只猫)。通过这样做,你设定一个期望系统必须知道。
注意,与训练数据通过轰击你的学习系统,你允许学习系统创建其内部模型的现实。它将数据中寻找规律。您提供的更多的数据,在你的训练数据变化越多,越学习系统将改进模型。这意味着,你把系统训练到一个特定的知识状态。就像从一个纯测试角度配置你的学习系统。但是记住,通过提供数据,您已经创建一个学习系统必须知道期望的模式。
我们的建议是简单的开始,然后逐步增加每个测试后数据的丰富性。最后,需要对训练数据集的代表真实系统的使用。注意,这些系统通常提供的数据非常敏感,所以你可以轻易被愚弄了。
依照你的训练数据集,然后您必须开发一个测试数据集来检查是否学习预期的系统管理模式。注意,系统并不会返回一个二进制的结果(例如,“是的,图像中有一只猫!”)。在企业应用程序中,我们通常不检查二进制诸如猫、狗或其他动物图片。它更像是,“是最好的广告显示到一个特定的客户根据客户的购买行为?“但是我们如何验证呢?下面让我们看一看一个例子,带来一些光明进入这个黑暗。
假设您希望实现列车服务的定价。你的目标是鼓励乘客使用火车在非高峰时期。所以,你想要一个系统,实时动态地调整价格,使其在经济上对乘客的吸引力。因此,你想要一个系统,让乘客时考虑乘坐火车不太拥挤。
这样一个系统通常有不同的定价策略,并试图优化两个方面。它试图平衡客流量一整天,它试图增加客流量的总收入。现在,你可能会问,“为什么不使用传统的数学规则的优化呢?“事实证明,这些基于规则的系统不实用了,因为这些场景的复杂性。所以,学习系统的目标是要达到的状态(1)广泛的客流量和(2)收入,至少覆盖成本。
现在,想象一下,系统已经被训练。你如何检查这个系统优化这两个因素基于一些给定的输入?例如,假设您将提供一组测试数据,一群人从某个位置坐火车到其他位置以同样的价格和在高峰时间(例如,8点)。但这并不是铁路机构想要什么。
系统现在要求显示不同的旅行时间和不同价格的骑手,客流量扩散,总收入至少涵盖了铁路部门的成本。这意味着系统将返回一个客流量和价格分布。例如,假设系统(基于提供的输入)显示,60%的人应该在高峰时间坐火车(例如,8点)最高价,25%应该坐火车在非高峰时间(例如,早上7点)以较低的价格(例如,在一个10%的折扣),和15%应该坐火车在非高峰时间(例如,9点)以一个更低的价格(例如,在一个15%的折扣)。这些是假电话号码;不要混淆他们与现实。然而,问题是如何检查是否最优的解决方案。嗯,你不能。你不能检查是否这是最好的解决方案,可以实现。你只能检查系统是否执行所需的优化基于你的期望。
基于你训练系统的方式,你获得的期望系统应该如何反应新输入数据。例如,您可以定义一个范围的平均客流量分布和平均收入的范围你期望对新输入数据。然后你可以比较这些期望系统的结果。你不检查二进制的结果(例如,猫在图像)了。它更像是测量结果在统计术语。你测量结果的统计学意义,确定系统不随机分发客流量和调整价格。系统必须做到根据学习模式。虽然模糊,这是唯一的声明结束时你可以让您的测试。
永远不要忘记,你主要作为一个测试人员是提供信息给他人(如开发人员,产品所有者),使他们做出明智的决定。编写一个测试报告就像总结上面所述的所有活动。应该包含你所知道的关于学习系统和你的期望系统在某些情况下允许其他人发现你可能不正确的假设。
你应该提供详细信息如何训练系统和你的期望是什么,允许他人来决定是否训练数据足够有意义。你应该包括信息如何验证您的期望让别人解释你的(统计)的结论。你所要做的就是沟通的自信程度,系统按预期的方式工作。
测试学习系统背后的魔力不是黑魔法。没有魔法在幕后。让我们达成一个明智的声明安吉琼斯:“我了解到,无论多么智能机器,盲目相信他们是不明智的。虽然我们应该拥抱新技术,它是必要的(测试人员)不允许别人来说服我们,任何软件已经不仅仅需要测试的点。188金宝搏官网登录app我们必须继续的问题,询问,并提倡我们的客户服务。”