作为程序员,最烦人的事情是查找并修复错误。但是,人脑具有恒大的健忘性,软件的后端代码并不像十几行或数千行那么简单。因此,在具有大数据的代码中发现漏洞是非常痛苦的。随着技术的进步,人工智能技术可以为我们解决这个问题。过去,程序员必须发现并修补软件漏洞。如今,人工智能技术的发展正在加速。如果检查和修复漏洞的工作是由人工智能完成的,则将有助于提高效率和质量。从简单的手动任务到复杂的法律决定和医疗诊断,机器人和人工智能正以惊人的速度取代人类。尽管人工智能本身和大多数软件仍主要由人类编写,但有迹象表明这种情况正在改变。已经有几种编程工具可以自动完成软件测试。这种前途看起来非常令人兴奋,但也会带来一些问题,例如该行业距离被盗用还有多远?将来会不会有一个类似终结者的世界,编程软件最终将使人类同事失业?我们的计算机程序员在测试软件和修复漏洞上投入了大量时间和精力。此过程不仅成本高昂且耗时,而且要求很高的精度,这对于您要设计高质量的软件非常重要。测试软件的一种常见方法是运行程序,要求其执行特定任务并观察其处理方式。这种方法称为动态分析,许多工具可以帮助完成此过程。 Facebook最近宣布了一个名为Sapienz的工具,该工具在该领域取得了巨大飞跃。该工具最初由伦敦大学学院开发,可以通过自动测试识别Android软件中的漏洞。 Sapienz包含一种进化算法,可以根据软件响应做出新的选择。其目标是找到最大数量的故障并完成最大数量的测试,以尽可能高效地完成任务。 Facebook可能很快就会迎来DiffBlue竞争,这是由牛津大学衍生的公司。该公司基于可分析和理解程序操作的人工智能引擎,开发了多种自动工具来帮助程序员。一个可以发现漏洞并执行软件测试,另一个可以发现可能被黑客利用的弱点。还有一种可以纠正过时或可以改进编码的软件。 DiffBlue最近获得了2200万美元的投资,并宣布将把这些工具应用于许多蓝筹公司。我们已经开发了专用于查找程序漏洞的工具。通常,软件错误通常只是手指的无意错误,例如写“ +”号。当它被写为“-”时,与Word文档的输入没有太大区别。或者由于计算机科学家计数的不同,他们从0开始计数,而不是从1开始计数,这导致了一个错误的所谓差异。您将在程序测试期间发现这些烦人的故障,并且需要重复测试和调整,直到消除所有故障为止。 Sapienz工具的工作方式就是这样。办公室工作人员将在白天执行正常的工作任务,并报告他们发现的任何软件漏洞。人们晚上下班后,系统会对计算机代码进行较小的更改,并检查此调整是否可以修复所报告的漏洞。来自每个代码运行的反馈用于推断更改将是下一个测试的最佳选择。工作人员在雷克雅未克的一个组织中对Sapienz进行了为期4个月的测试,涉及大约200位用户。该测试发现了22个漏洞,所有漏洞均已自动修复。每当解决方案在晚上完成时,这意味着程序员在早上到达办公室时,就会有一系列的错误修复在等待他们。这种技术将改变程序员的工作,他们不再需要频繁的程序检查,并且他们有更多的时间进行研发。工作人员还表明,同一系统也可以应用于其他不同的任务,包括使程序运行更快和提高预测软件的准确性。我们可以很容易地理解这些程序给软件开发人员带来的好处,那么它们的负面影响是什么?大型公司会裁员IT部门吗?程序员应该开始担心自己的未来吗?我们认为这不会发生。尽管自动化软件测试工具的兴起可能使公司裁员一些低级的程序员,但我们认为