来源:https://marutitech.com/artificial-intelligence-in-testing
Testing is avital process that guarantees customer satisfaction within an application andhelps in safeguarding against potential failures that may prove to bedetrimental down the line. It is a planned process where the application isassessed and analyzed under certain conditions to understand the overallthreshold and risks involved in its implementation.
测试是一个重要的过程,它保证了应用程序中的客户满意度,并有助于防止潜在的故障,而这些故障可能会被证明是有害的。这是一个有计划的过程,在一定的条件下对应用程序进行评估和分析,以了解其实现所涉及的总体阈值和风险。
With softwaredevelopment life-cycles becoming more complicated by the day and delivery timespans reducing, testers need to impart feedback and evaluations instantly tothe development teams. Given the breakneck pace of new software and productlaunches, there is no other choice than to test smarter and not harder in thisday and age.
随着软件开发生命周期的日益复杂和交付时间的缩短,测试人员需要立即向开发团队提供反馈和评估。考虑到新软件和产品发布的惊人速度,在当今时代,除了测试更聪明而不更难之外别无选择。
Releases thathappened once a month, now occur on a weekly basis and updates are factored inon almost every alternate day. Thus, it is quite evident that the key tostreamlining software testing and making it more smarter/efficient is ArtificialIntelligence.
每月发布一次,现在每周发布一次,几乎每隔一天都会有更新。因此,很明显,简化软件测试并使其更智能/高效的关键是人工智能。
By assimilatingmachines which can meticulously mimic human behavior, the team of testers canmove beyond the traditional route of manual testing models and progressivelymove forward towards an automated and precision-based continuous testingprocess.
通过吸收能够精确模仿人类行为的机器,测试团队可以超越传统的手工测试模式,逐步走向自动化和基于精度的连续测试过程。
An AI-poweredcontinuous testing platform can recognize changed controls more efficientlythan a human, and with constant updates to its algorithms, even the slightestchanges can be observed.
人工智能驱动的连续测试平台能够比人类更有效地识别变化的控制,并且随着算法的不断更新,甚至可以观察到微小的变化。
When it comes toautomation testing, Artificial Intelligence is being used widely in objectapplication categorization for all user interfaces. Here, recognized controlsare categorized when you create tools and testers can pre-train controls thatare commonly seen in out of the box setups. Once the hierarchy of controls isobserved, testers can create a technical map such that the AI is looking at theGraphical User Interface (GUI) to obtain labels for the different controls.
在自动化测试方面,人工智能在面向所有用户界面的对象应用分类中得到了广泛的应用。这里,当您创建工具和测试人员可以预先训练在开箱即用设置中常见的控件时,会对识别的控件进行分类。一旦观察到控件的层次结构,测试人员就可以创建一个技术图,这样AI就可以查看图形用户界面(GUI)来获取不同控件的标签。
With testingbeing all about verification of results, one needs access to a plethora of testdata. Interestingly, Google DeepMind created an AI program that utilizes deepreinforcement learning to play video games by itself, thus, producing quite alot of test data.
由于测试都是为了验证结果,因此需要访问大量的测试数据。有趣的是,Google DeepMind创建了一个人工智能程序,它利用深度强化学习来自己玩视频游戏,从而产生了大量的测试数据。
Down the line,Artificial Intelligence will be able to observe users performing exploratorytesting within the testing site, using the human brain to assess and identify theapplications that are being tested. In turn, this will bring business usersinto testing and customers will be able to automate test cases fully.
接下来,人工智能将能够观察用户在测试站点内进行探索式测试,利用人脑来评估和识别正在测试的应用程序。反过来,这将使业务用户进入测试,客户将能够完全自动化测试用例。
When userbehavior is being assessed, a risk preference can be assigned, monitored andcategorized accordingly. This data is a classic case for automated testing toevaluate and weed out different anomalies. Heat maps will assist in identifyingbottlenecks in the process and help determine which tests you need to conduct.By automating redundant test cases and manual tests, testers can, in turn,focus more on making data-driven connections and decisions.
当评估用户行为时,可以相应地分配、监控和分类风险偏好。这些数据是一个典型的自动测试案例,用于评估和排除不同的异常。热图将有助于确定流程中的瓶颈,并有助于确定需要进行哪些测试。通过自动化冗余测试用例和手动测试,测试人员可以反过来更加关注于数据驱动的连接和决策。
Ultimately,risk-based automation assists users in determining which tests they need to runto get the greatest coverage when limited time to test is a critical factor.With the amalgamation of AI in test creation, execution and data analysis,testers can permanently do away with the need to update test cases manuallycontinually and identify controls, spot links between defects and components ina far more effective manner.
最终,当有限的测试时间是一个关键因素时,基于风险的自动化帮助用户确定他们需要运行哪些测试以获得最大的覆盖率。随着人工智能在测试创建、执行和数据分析方面的融合,测试人员可以永久地不再需要手动不断地更新测试用例和识别控件,以更有效的方式发现缺陷和组件之间的链接。
To list downsome of the salient benefits of AI in testing –
列出人工智能在测试中的一些显著好处
1.Improvedaccuracy
To err is human.Even the most meticulous tester is bound to make mistakes while carrying outmonotonous manual testing. This is where automated testing helps by performingthe same steps accurately every time they are executed and never miss out onrecording detailed results. Testers freed from repetitive manual tests havemore time to create new automated software tests and deal with sophisticatedfeatures.
1.精度提高
犯错是人之常情。即使是最细致的测试人员在执行单调的手动测试时也会犯错误。这就是自动测试的帮助之处,每次执行相同的步骤时,它们都会准确地执行,并且不会错过记录详细结果的机会。从重复的手工测试中解放出来的测试人员有更多的时间来创建新的自动化软件测试和处理复杂的特性。
2.Goingbeyond the limitations of manual testing
It is nearlyimpossible for the most significant software/QA departments to execute acontrolled web application test with 1000 users. With automated testing, onecan simulate tens, hundreds or thousands of virtual set of users that caninteract with a network, software or web-based applications.
2.超出人工测试的局限性
对于最重要的软件/QA部门来说,几乎不可能对1000多个用户执行受控web应用程序测试。通过自动化测试,人们可以模拟数十、数百或数千个可以与网络、软件或基于web的应用程序交互的虚拟用户集。
3. Helps bothdevelopers and testers
Shared automatedtests can be used by developers to catch problems quickly before sending to QA.Tests can run automatically whenever source code changes are checked in andnotify the team or the developer if they fail. Features like these savedevelopers time and increase their confidence.
3.帮助开发人员和测试人员
开发人员可以使用共享的自动化测试在发送给QA之前快速捕获问题。只要签入源代码更改,测试就可以自动运行,如果更改失败,则通知团队或开发人员。像这样的特性可以节省开发人员的时间并增加他们的信心。
4. Increasein overall test coverage
With automatedtesting, one can increase the overall depth and scope of tests resulting inoverall improvement of software quality. Automated software testing can lookinto memory and file contents, internal program states and data tables in orderto determine if the software is behaving as it is expected to. All in all, testautomation can execute 1000 different test cases in every test run providingcoverage that is not possible with manual tests.
4.增加总体测试覆盖率
通过自动化测试,可以增加测试的总体深度和范围,从而全面提高软件质量。自动化软件测试可以查看内存和文件内容、内部程序状态和数据表,以确定软件是否按预期运行。总之,测试自动化可以在每次测试运行中执行1000多个不同的测试用例,提供手动测试不可能提供的覆盖范围。
5. Saved Time Money = Faster time to Market
With softwaretests being repeated every time source code is modified, manually repeatingthose tests can be not only time-consuming but extremely costly. In contrast,once created – automated tests can be executed again and again, with zeroadditional cost at a much faster pace. Software testing timespan can be reducedfrom days to mere hours which translates directly into cost savings.
5.节省的时间 金钱=更快的上市时间
由于每次修改源代码时都要重复软件测试,手动重复这些测试不仅耗时而且成本极高。相比之下,一旦创建,自动化测试就可以一次又一次地执行,以更快的速度实现零额外成本。软件测试时间跨度可以从几天缩短到几小时,这直接转化为成本节约。
Some of thepopular AI based test automation tools being used –
一些流行的基于人工智能的测试自动化工具正在使用
- Testim.io
This tool makesuse of ML for the authoring, execution, and maintenance of automated tests. Itemphasizes on functional, end to end testing and user interface testing. Thetool becomes smarter with more runs and increases the stability of test suites.Testers can use JavaScript and HTML to write complex programming logic.
这个工具使用机器学习来编写、执行和维护自动化测试。它强调功能测试、端到端测试和用户界面测试。该工具随着更多的运行变得更加智能,并增加了测试套件的稳定性。测试人员可以使用JavaScript和HTML编写复杂的编程逻辑。
- Appvance
Appvance makesuse of Artificial Intelligence to generate test cases based on user behavior.The portfolio of tests comprehensively covers what actual end-users do onproduction systems. Hence, this makes it 100% user centric.
Appvance利用人工智能技术生成基于用户行为的测试用例。测试组合全面涵盖了实际的最终用户在生产系统上所做的工作。因此,这使得它100%以用户为中心。
- Test.ai
Test.ai is amobile test automation that uses AI to perform regression testing. It is usefulwhen it comes to getting the performance metrics on your application and ismore of a monitoring tool than a functional testing tool.
Test.ai是一种移动测试自动化,它使用ai执行回归测试。在获取应用程序的性能指标时,它非常有用,而且它更像是一个监视工具,而不是一个功能测试工具。
- Functionize
Functionize usedmachine learning for functional testing and is very similar to other tools inthe market regarding its capabilities such as being able to create testsquickly (without scripts), execute multiple tests in minutes and carry outin-depth analysis.
Functionize使用机器学习进行功能测试,其功能与市场上的其他工具非常相似,例如能够快速创建测试(无脚本)、在几分钟内执行多个测试并进行深入分析。
With everypassing day, as Artificial Intelligence finds its way into the softwaredevelopment lifecycle, organizations are still contemplating if they shouldadopt it wholly within their product engineering practices.
随着人工智能逐渐进入软件开发生命周期,组织仍在考虑是否应该在其产品工程实践中完全采用它。
Post the initialinvestment to set up an AI system in test automation is carried out,organizations are bound to produce greater testing rewards for less money. Inturn, these savings can be redirected towards Quality Assurance efforts when itcomes to testing uncovered areas or exploratory testing or the more exciting& creative parts of software testing.
在测试自动化中建立一个人工智能系统的初始投资完成后,组织必然会以更少的成本产生更大的测试回报。反过来,当涉及到测试未覆盖的领域或探索性测试或软件测试中更令人兴奋和更具创造性的部分时,这些节省可以重新用于质量保证工作。