精华内容
下载资源
问答
  • 测试自动化

    千次阅读 2012-04-26 22:40:29
    最近公司在搞大规模弄自动化测试,所以今天想来谈谈测试自动化这个问题,当然我说的“测试自动化”跟“自动化测试”是不同概念,一样的字,不同的顺序。     所谓的“自动化测试”,一般是说用一些工具来帮助...

             最近公司在搞大规模弄自动化测试,所以今天想来谈谈测试自动化这个问题,当然我说的“测试自动化”跟“自动化测试”是不同概念,一样的字,不同的顺序。

     

             所谓的“自动化测试”,一般是说用一些工具来帮助测试,比如LoadRunner可以帮忙测试负载,QTP可以帮忙做功能测试,当然很多公司还自己写一些脚本做单元测试。这些工具的帮忙,可以极大地提高公司的测试效率,从而可以解放很多资源去做更加复杂、高级的测试。(所以“自动化测试”只是一个工具或者技术

            

             而所谓的“测试自动化”,主要是说我们的测试流程,应该怎样来充分地结合各种工具/系统(测试管理工具、自动化测试工具等等工具/系统),使得这个测试流程更加合理、更加高效。前面说的LoadRunner这类“自动化测试”工具对于“测试自动化”而言只是一个帮助因素。(所以“测试自动化”是一个方向,一个理论,一门科学研究

     

     

     

           在像LoadRunner这类工具出现之前,其实我们对于“测试自动化”的理论早已存在,出现的原因是由于软件发展速度太快,带来了越来越多光靠人力难解决的问题,比如:

                 1.      性能问题:很多软件都是很多人一起使用的,比如股票系统,可能会几百万、几千万人在用,但是股票系统开发公司不可能用人力来模拟这么多人一起使用

                 2.      功能问题:软件功能和逻辑是越来越多、越来越复杂,但是有不少旧的逻辑其实一直没怎么变,比如新建项目,备份项目等操作,但是这些虽然不变化,但是在每个Release时,总是需要测试的,这样子,就需要人力和时间了

                 3.      变更问题:很多功能虽然表面上看起来样子没啥变化,但是其实内在逻辑什么都可能在不断变化,优化算法啊,修Bug,都可能带来改变,怎么去保证能Catch到每次改变呢?这个是问题。

                 4.      ……

     

           就这样子,大家为了解决这种问题,推出了各种各样的工具,而且也解决地很不错,不过其实很多公司还是继续存在着问题,什么原因呢?过度地认为工具能帮忙解决一切,整天叫嚣着工具代替人,而忽视了一个重要因素:人的思维。

     

           我们知道工具虽然很厉害,但是思维绝对无法超过人,工具里面的逻辑都是人编进去的,而人的思维确实无限的,如果工具真的解决一切,为啥这些工具还不断经常推出新版本,不正是说明还有很多事情工具做不到,需要人来帮忙去让它们实现吗?

     

           所以在“测试自动化”的理论体系中,人总是在“训练”工具,而不是在“使用”工具。

     

           在测试自动化现有理论体系中,主要由以下几部分组成:

                 1.      

                 2.      自动化测试工具(LoadRunnerQTPSeleniumTest Complete……

                 3.      测试管理工具 (DevTest, TestDirector ……)

     

            关于“人”,我最后介绍了,先把23介绍一下,2其实已经介绍过了,对于3而言,虽然表面上可能没2厉害,但是其实起得作用可能比2还大,因为自动化测试工具只能测试产品的一个部分,而怎样能保证整个产品的所有部分都能被测好呢,这个就需要用到测试管理工具,比如TechExcelDevTest,它的测试用例可以绑定自动化测试工具,而所有的测试用例就代表了一个完整的产品了,当这些测试用例去触发绑定的自动化测试工具运行后返回结果以后,相当于这个产品全部测完了。

     

           而最重要的“人”的作用呢?其实我不说,大家应该都能想出很多作用来,接下来我来总结一下:

                 1.      维护产品的完整性:需要根据功能的变化,Bug的发现、自动化测试工具的局限性,经常地更新测试用例、测试脚本。这个是最基本的。

                 2.      发挥人的能动性、发散性:自动化工具永远无法把一个产品测好,所以作为人而言,不要以为懂了自动化测试工具而骄傲,也不用因为只懂手工测试而感到沮丧,关键是要了解测试的内涵,从而就能了解产品的内涵,最后让产品在你的脑海中能融会贯通,这样子,你自己的脑袋就是无敌的自动化测试工具了。

                 3.      吸收+创新+创造:相信我,即使一个完美的产品的测试,如果真正意义上说完成了是永远无法做到的,更何况普通产品了。所以这也就意味着这里面会有大量的地方可以得到加强,吸收以往经验,发掘与加强遗漏点,追寻潜在点,创造新方法,都是一个“人”都能做到的,当然你需要大量地去思考、去探索。

                 4.      更新体系:我们说“测试自动化”是一个方向,是一个理论,是一个科学研究,这个就意味着它可以不断进步,至于进步到什么程度,我也无法想象,有可能会出现类似自动分析产品逻辑从而得到测试用例与脚本这样子,不过唯一能知道的是,人还是会占主导地位,无论更新到什么样子,人会一直带领着这个系统前进!

     

     

     

     

    展开全文
  • Selenium 4.0-最新的测试自动化工具

    万次阅读 2020-08-24 10:08:00
    Selenium是业界领先的测试自动化工具之一,可以最大限度地实现测试自动化的目的。第一个Selenium工具于2004年作为Selenium Core推出。该Selenium测试自动化...

    Selenium是业界领先的测试自动化工具之一,可以最大限度地实现测试自动化的目的。第一个Selenium工具于2004年作为Selenium Core推出。Selenium测试自动化服务已在今年一些补充Selenium2007- IDE和Selenium的webdriver。

    下一代Selenium工具分别命名为Selenium2(2011),Selenium 3(2016),经过三年的差距,Selenium将发布其最新版本Selenium 4.0。发布被推迟,并发布了Selenium-Selenium 4.0 alpha的试用版。让我们看一下所做的新添加和修改。

    有什么新功能?

    SELENIUM IDE: Selenium IDE支持快速的测试开发过程,不需要大量的编程知识。

    Selenium的webdriver:Selenium的webdriver是一个用户友好的,并在最流行的编程语言和bowsers可用灵活的API。

    详细升级功能

    Selenium是自动化测试行业的话题,它已经发布了Selenium 4 Alpha,该版本将升级到Selenium 4.0。Selenium 4版本中可以发现以下功能;

    Web驱动程序已更改为W3c(万维网联盟)标准化:

    Selenium 4对W3C的标准化进行了更改,以鼓励WebDriver API的各种软件实现之间的兼容性。此更改可确保通信不需要API的编码和解码。这样可以形成一个更稳定的框架,并减少各种Web浏览器之间的兼容性问题。

    改进的Selenium网格

    Selenium Grid在UI和稳定性方面已被即兴创作。Selenium网格的编码已完全更改,并且网格的控制台已重组。这允许在多个浏览器和操作系统上并行执行测试用例。现在,网格可以满足节点和集线器的目的。

    Selenium 4的UI网格已创建为更加用户友好,并具有有关会话容量,运行时间和其他此类详细信息的所有相关信息。网格的另一个新增功能是支持将Docker容器与网格服务器一起使用。

    介绍了友好/相对定位器

    Selenium提供了多个显式定位符,例如id,XPath等…,新的定位符提供了一种通过考虑其他元素(例如上方,下方,从左到右,从右到近)来按位置定位元素的方法。

    支持浏览器

    对Opera&PhantomJS的现有支持将被删除。想要测试Opera的用户可以使用Chrome,而想要测试PhanthomJS的用户可以使用无头模式的Chrome或Firefox。在Selenium服务器上,HTML单元不再是默认值。

    Selenium Ide (Chrome & Firefox):

    Selenium IDE是用于记录和回放选项的工具,该工具具有许多更高级的功能。

    新插件

    Selenium IDE的旧版本只能在Google Chrome上运行,但是最新版本的Selenium 4的插件允许用户在任何可以声明以下内容的浏览器(Firefox,Google Chrome,Internet Explorer等)上运行Selenium供应商位置策略。

    新的Cli Runner

    新的CLI运行器的最新版本是基于Node.JS代码的WebDriver。这提供了回放和并行执行的功能以支持并行执行,并进一步有助于提供报告(测试报告通过和失败)。

    详细文件

    Selenium的用户面临许多困难,例如文档更新较晚。新版本有望提供更新的文档。

    更好的分析

    分析方面已得到增强-日志和调试详细信息已被改进,以加快测试人员对脚本问题的解决。

    网络与性能分析仪

    在网络分析器方面,已修改了诸如拦截请求,通过更改连接类型来模拟网络条件,启用网络跟踪之类的功能。

    在性能分析器方面,已经更新了对基于铬的边缘浏览器的支持,Firefox上的整页屏幕截图以及元素级别的屏幕截图。此外,性能包分析器还提供了一些用于收集和报告持续时间指标的方法,从而可以分析运行时性能。

    随着自动化测试行业中许多新的测试自动化工具和技术的引入,Selenium测试自动化工具始终具有领先优势,因为它具有满足组织的许多测试需求的综合潜力。

    Selenium 4.0为用户提供了最佳的体验和能力,可以执行其先前版本中的所有未完成的任务。它更快,更兼容,使其成为市场上最高效的自动化工具。

    推荐阅读

    展开全文
  • 测试自动化并不像某些人想象的那样容易或经济。仅应在必要和适用的情况下使用。而且,最重要的是,它不能替代手动测试。相反,它补充了手动测试。自动化框架和正确的测试自动化工具对于增强测试自动化...

    测试自动化并不像某些人想象的那样容易或经济。

    仅应在必要和适用的情况下使用。而且,最重要的是,它不能替代手动测试。相反,它补充了手动测试。

    自动化框架和正确的测试自动化工具对于增强测试自动化过程至关重要。

    在此博客中,我们将了解为什么需要测试自动化框架以及Indium的AI驱动的测试自动化框架iSAFE如何帮助加速自动化过程。

    测试自动化框架–它是什么

    在开始讨论自动化框架的重要性之前,请先了解框架的重要性。

    从一般的角度来看,框架是企业应遵循的一组规则和标准,以使其金钱获得最大价值。

    它是必须遵循的一套既定的准则和协议。

    可以将测试自动化框架定义为提供可以执行自动化测试脚本的环境的结构。

    它是一组使测试和报告生成更快的组件。这些组件包括测试工具,过程,脚本,设备和自动化工程师。

    为什么我们需要一个测试自动化框架?

    测试自动化框架用于必须对大量测试用例进行多个测试周期的情况。

    借助框架,测试自动化将提高团队的测试效率和速度,降低测试维护成本并提高测试准确性。

    它们对于有效的测试自动化过程至关重要。 

    一个自动化测试框架将使您的流程和应用程序更容易测试,更具可读性,可扩展性,可重用性和可维护性。

    自动化框架用于以各种版本多次运行命令和脚本,以验证输出和测试应用程序。

    开发自动化框架需要花费大量时间,因此,建议不要自动化仅使用一次的功能。

    而且,自动化消耗大量时间,精力和资源。因此,自动化只能用于多次使用的功能。

    现在,这里出现一个问题。如果自动化框架既费时又耗资源,那么为什么一个简单的脚本不能工作?

    脚本并非最适合测试大量场景的测试用例。

    如果为每种情况创建一个脚本,则应用程序测试套件将变得太大。

    如果任何对象的属性或应用程序有任何更改,则必须修改所有脚本,这将很麻烦。为了避免这种情况,使用了测试自动化框架。

    测试自动化框架的好处

    测试自动化框架允许人们在多种情况下重用测试代码。

    当测试中的应用程序发生更改时,框架还有助于简化维护。

    当不同的人使用同一个套件时,将使用框架以标准格式记录脚本。

    框架可以与各种API集成,并且还可以生成报告。一旦您的基本结构准备就绪,工程师就可以轻松地使用框架来为类似情况写下测试用例。

    iSAFE(增强了Indium的软件自动化框架)

    iSAFE或Indium的软件自动化框架增强版是一种可移植且可自定义的软件测试框架,可用于移动和Web应用程序。iSAFE适用于任何脚本语言。

    它可用于开源和商业工具,例如Ranorex,Selenium Grid,QTP,Appium,TestComplete,SilkTest和Selenium。

    iSAFE还支持基于云的服务提供商,例如Microsoft Azure,Sauce Labs,浏览器堆栈,跨浏览器测试和AWS(亚马逊网络服务)。这是一个提高生产率的框架。

    使用iSAFE的优势

    1. 数据驱动:这是任何框架中最重要的功能之一,因为我们可以轻松地使测试脚本适用于不同的测试数据集。iSAFE基于数据驱动的测试方法,可以完成测试并更好地处理错误。因此,可以将数据集从外部源中分离出来。无需修改代码即可修改测试。   

    2. 并行执行:使用iSAFE,您可以跨不同的操作系统,移动设备和Web浏览器执行并行测试。您可以验证软件的向前和向后兼容性,以确保产品的稳定性和适当的测试。

    3. 持续集成: Jenkins以持续集成而闻名。iSAFE支持Jenkins的集成,从而扩展了自动化范围。通过Jenkins的集成,可以安排测试时间,并指出测试的见解。这样可以节省大量时间。

    4. 连续测试过程: iSAFE允许连续和不间断的测试。即使测试失败,该框架也允许脚本连续运行,最后生成报告。这有助于减少测试运行的停机时间。

    5. API测试:使用iSAFE,您可以测试API以确保网络,数据库,系统和应用程序之间的流畅通信。API测试必须包含在自动化框架中,因为这将有助于快速发现问题。  

    6. 警报: iSAFE框架具有SMS和电子邮件警报。它向您发送有关测试性能,测试失败等变化的通知。它确保团队中的每个人都时刻了解项目的进展情况。这改善了团队成员之间的协作。

    7. 测试维护:测试维护有助于测试自动化。它涉及测试审查,确定稳定区域以及将较长的测试分解为较小的测试。iSAFE框架可以更快,更轻松地维护并快速识别问题。iSAFE框架足够灵活,可以确保代码结构合理且测试脚本可以良好维护。 

    8. 智能报告: iSAFE为智能报告提供完整的数据分析和可视化。它还可以根据用户要求生成自定义HTML报告。该框架允许您跟踪历史数据并监视性能。这对于商业智能很重要。      

    9. 页面对象模型:页面对象模型是一种用于减少代码重复并改善测试维护的设计模式。即使UI不断变化,页面对象模型也允许在页面对象内更改代码,而不是完全更改测试。iSAFE支持页面对象模型来分离元素定位器和测试,同时保持代码完整并易于理解。

    10. 可重用性:可重用性具有成本效益,可提高投资回报率。iSAFE允许在多个级别上启动可重用性,从而可以有效地处理可重复功能。借助iSAFE框架,用户可以在代码和数据级别内优化测试,从而可以消除测试过程中的所有障碍。

    总而言之

    随着敏捷和DevOps实践的发展,需要更快的版本和高质量的产品。您现在知道使用测试自动化框架的许多好处。如果您打算自动化测试过程,那么选择正确的工具和自动化框架至关重要。iSAFE是框架的良好起点。这个基于Ai的测试自动化框架是DevOps,具有动态仪表板和“自动自动化”功能,可用于云环境。

    紧急通知️

    8月,2020年成考高中升大专学历,大专升本科学历,高中升本科学历已进入收尾阶段,一年仅有一次,报名即将截止!另外南开大学可全程托管,还有少量名额,抓紧啦

    今年最后一批,明年本科4年拿证

    增加并行测试的好处

    API测试| 了解API接口测试| API接口测试指南

    Scrum中的软件测试指南

    使用开源工具进行性能测试-打破神话

    你想要的Fiddler抓包实操小技巧

    GitLab CI / CD管道的5个优势

    在测试自动化中使用Java枚举

    初学者自动化测试–终极指南

    展开全文
  • AI和测试自动化的真相

    千次阅读 2019-03-02 23:12:11
    目录 翻译内容 De-Mystifying ...Influence of AI in Test Automation AI在测试自动化中的影响 Faster and More Stable UI Tests更快,更稳定的UI测试 Reducing Maintenanceand Eliminating Flaky Test...

    目录

    翻译内容

    De-Mystifying Artificial Intelligence 去神秘化的人工智能

    Influence of AI in Test Automation AI在测试自动化中的影响

    Faster and More Stable UI Tests 更快,更稳定的UI测试

    Reducing Maintenance and Eliminating Flaky Tests 减少维护和消除不稳定测试

    Continuous Learning from Production Data 从生产数据中不断学习

    Removing Dependencies 删除依赖项

    Ease of Authoring and Executing Tests 易于编写和执行测试

    Releasing at the Speed of Development 加快研发速度

    关于作者

    原链接


    翻译内容

    Software testing has gradually evolved in the past few decades. In the past, teams were accustomed to the waterfall methodology: Everything was sequential, from requirements to product deployment.

    软件测试在过去几十年中逐渐发展。 在过去,团队习惯于瀑布方法:从需求到产品部署,一切都是顺序的。

    Only after the development phase was completed did the testers got their hands on the product. Historically, testers would find a number of bugs in this phase, and it would take a lot of redesign and rework to fix them. This resulted in a lot of wastage, from time to effort and cost, plus team morale.

    只有在开发阶段完成后,测试人员才能获得产品。 从历史上看,测试人员会在此阶段发现许多错误,需要进行大量的重新设计和返工才能修复它们。 这导致了大量的浪费,从时间到精力和成本,再加上团队士气。

    But in the current state of testing, most companies are following Agile processes, such as XP, Scrum, Kanban, or some variation of these. The main goal is to find bugs fast, fix them quickly, and release software faster.

    但在当前的测试状态下,大多数公司都在遵从敏捷流程,例如XP,Scrum,看板或其中的一些变体。 主要目标是快速发现缺陷,快速修复缺陷并更快地发布软件。

    In order to achieve this goal, there is a huge need to complement the already existing manual testing process with automated testing. This is a vital component of Continuous Integration (CI), Continuous Delivery (CD), and DevOps, which most teams are now following to make their Software Development Life Cycle (SDLC) process more lean and effective.

    为了实现这一目标,通过自动化测试来补充现有的手动测试过程,这是十分必要的。 这是持续集成(CI),持续交付(CD)和DevOps的重要组成部分,大多数团队正在遵循这些,使其软件开发生命周期(SDLC)流程更加精简和有效。

    Various tools and frameworks have evolved in the past decade to help with automated testing, but one approach worth talking about is the use of Artificial Intelligence (AI) in test automation.

    在过去十年中,各种工具和框架已经发展,以帮助进行自动化测试,但值得讨论的一种方法是在测试自动化中人工智能(AI)的使用。

    AI test automation

    De-Mystifying Artificial Intelligence 去神秘化的人工智能

    Let’s first take a step back and de-mystify AI. At its most basic level, AI is a technology that can comprehend, sense, and learn, and use computers to solve problems typically requiring human intelligence and understanding.

    让我们先退后一步,让AI去神秘化。 在最基本的层面上,AI是一种能够理解,感知和学习的技术,并且使用计算机来解决通常需要人类智能和理解的问题。

    Another way of looking at it is, AI applies human skills and tendencies to inanimate objects or ideas. Much like automation, AI makes it possible for technology to complete real human tasks.

    另一种看待它的方式是,AI将人类技能和倾向应用于无生命的物体或想法。 与自动化非常相似,AI使技术可以完成真正的人工任务。

    Contrary to popular opinion, AI is neither a distant reality nor a concept based on the plots of science fiction; instead, it has infiltrated the technology scene and is fueling the innovations that touch our daily lives. From chat bots posing as customer service representatives to search results and traffic predictions, on any given day, AI is all around us.

    与流行观点相反,人工智能既不是遥远的现实,也不是基于科幻小说的概念; 相反,它渗透了技术领域,并推动了触及我们日常生活的创新。 从作为客户服务代表的聊天机器人到搜索结果和流量预测,在任何一天,人工智能就在我们身边。

    Here are some mind blowing statistics about AI adoption: 以下是关于AI使用的一些令人兴奋的统计数据

    • According to a recent study by Narrative Science, 61% of businesses implemented AI in some way in 2017. The adoption rate is only growing in 2018.  根据Narrative Science最近的一项研究,61%的企业在2017年以某种方式实施了人工智能。这个使用率是仅在2018年的增长。
    • Another study from Juniper Research has found that global retailer spending on AI will reach $7.3 billion per annum by 2022, up from an estimated $2 billion in 2018. Juniper Research的另一项研究发现,到2022年,全球零售商在人工智能的支出将达到每年73亿美元,高于2018年估计的20亿美元。
    • CMO article claims that by 2035, AI will help to improve labor productivity by 40% and enable people to make efficient use of their time. 一篇CMO文章称,到2035年,人工智能将帮助提高40%的劳动生产率,并使人们能够有效利用他们的时间。

    Influence of AI in Test Automation AI在测试自动化中的影响

    AI has already started influencing test automation in various ways, resulting in a considerable amount of time saved in authoring and executing tests, creating more stable tests, finding bugs fast, and releasing software much faster to meet customer demands. Here are some of the ways this is happening.

    AI已经开始以各种方式影响测试自动化,从而在设计和执行测试中节省了大量时间,创建了更稳定的测试,快速发现缺陷,以及更快地发布软件以满足客户需求。 以下是正在发生的一些方面。

    Faster and More Stable UI Tests 更快,更稳定的UI测试

    As part of the continuous testing process, software development teams have unit tests, service/API level tests, and user interface (UI) tests. The common problem with UI tests specifically is that they are slow and brittle and involve high maintenance. AI can avoid this with the use of Dynamic Locators.

    作为持续测试过程的一部分,软件开发团队有单元测试,服务/ API级别测试和用户界面(UI)测试。 UI测试的常见问题是它们缓慢而脆弱,并且涉及大量维护。 AI可以通过使用动态定位器来避免这种情况。

    This is a strategy by which the AI parses multiple attributes of each and every element the user interacts with in the application and creates a list of location strategies, in real time. So, even if an attribute of an element changes, the tests do not fail; instead the AI detects this problem and goes to the next best location strategy to successfully identify the element in the page.

    这是一种策略,通过该策略,AI解析用户在应用程序中与之交互的每个元素的多个属性,并实时创建位置策略列表。 因此,即使元素的属性发生变化,测试也不会失败; 相反,AI会检测到此问题并转到下一个最佳位置策略,以成功识别页面中的元素。

    In this way, the tests are more stable, and as a result, the authoring and execution of tests is really fast as well.

    通过这种方式,测试更加稳定,因此,测试的设计和执行也非常快。

    AI test automation

    Reducing Maintenance and Eliminating Flaky Tests 减少维护和消除不稳定测试

    One of the most common problems with test automation is maintenance.

    测试自动化最常见的问题之一是维护。

    For example, say we have 100 automated tests running on a daily basis to ensure the main functionalities of the application are still stable; What if the next day we come back to work and find that half of the tests have failed? We would need to spend considerable amounts of time to troubleshoot the failures and investigate what actually happened. This involves figuring out ways to fix the failures and implement the fixes. Then, we re-run the automated tests to ensure everything passes. Does this ring a bell?

    例如,假设我们每天运行100次自动化测试,以确保应用程序的主要功能仍然稳定; 如果第二天我们重新开始工作并发现一半的测试失败了怎么办? 我们需要花费大量时间来排除缺陷并调查实际发生的情况。 这涉及找出修复缺陷和实施修复。 然后,我们重新运行自动化测试以确保一切都通过。 这会响铃告警吗?

    AI can avoid issues like this due to its self-healing mechanism. It can start detecting problems in the tests before they even occur, thus proactively fixing tests instead of us reacting to them.

    由于其自我修复机制,AI可以避免这样的问题。 它可以在测试发生之前就开始检测测试中的问题,从而主动修复测试而不是我们对它们做出反应。

    Based on the number of times the tests have run, the AI can figure out which tests are stable or flaky. As a result, it can give us data on what tests need to be modified to ensure test runs are stable.

    根据测试运行的次数,AI可以确定哪些测试是稳定的还是不稳定的。 因此,它可以为我们提供有关哪些测试需要被修改的数据,以确保测试运行稳定。

    Finally, based on large numbers of test runs, AI can optimize the wait times used in tests to wait for the pages to load and also can handle tests running on different resolutions. All of this adds up to a considerable decrease in the time spent on maintenance of tests and helps to solve one of the biggest bottlenecks of continuous testing.

    最后,基于大量的测试运行,AI可以优化测试中等待页面加载的等待时间,还可以处理在不同分辨率下运行的测试。 所有这些都大大减少了维护测试所花费的时间,并有助于解决连续测试的最大瓶颈之一。

    AI test automation

    Continuous Learning from Production Data 从生产数据中不断学习

    In this fast-paced environment where customer is king, it is important to observe and learn how customers use our product. This is true whether you have a web, mobile, or desktop application.

    在客户为王的快节奏环境中,观察和了解客户如何使用我们的产品非常重要。 无论您拥有网络,移动设备还是桌面应用程序,都是如此。

    With autonomous testing, we now have a way for AI to start observing and learning how our customers are using the product. Based on this, it can start creating tests based on real user data.

    通过自主测试,我们现在可以让AI开始观察和了解客户如何使用该产品。 基于此,它可以开始基于真实的用户数据创建测试。

    It is smart enough to identify commonly used actions such as logging in/out of the application and cluster them into reusable components. Then it injects these newly created reusable components into our tests as well. Now, all of a sudden we already have actual tests written by the AI based on real data, along with reusable components that can be used within other tests as well.

    它足够聪明,可以识别常用的操作,例如登录/注销应用程序,并将它们集中到可重用的组件中。 然后它将这些新创建的可重用组件注入我们的测试中。 现在,突然间我们已经有了基于AI编写的,基于真实数据的实际测试,以及可以在其他测试中使用的可重用组件。

    AI test automation

    This reminds me of a quote from the great Steve Jobs: “Start with the customer experience and work backwards.”

    这让我想起了伟大的史蒂夫乔布斯的一句话:“从客户体验开始,向后工作。”

    Removing Dependencies 删除依赖项

    Another challenge of test automation is writing tests for a system that may have dependencies on other modules that may or may not have been implemented yet. Usually during these times, we mock responses from a server or database. Now AI can help to do this for us.

    测试自动化的另一个挑战是为一个系统写测试,这个系统依赖于已经或尚未实现的其他模块。 通常在这些时间,我们mock来自服务器或数据库的响应。 现在AI可以帮助我们做到这一点。

    Once we have authored some tests and have run them consistently for a period of time, the AI can start recording all the server responses. The next time we run the tests, instead of talking to a server or database, the test will access the stored responses (which was facilitated with the help of AI) and will continue to run without any obstacles.

    一旦我们编写了一些测试,并且持续运行它们一段时间,AI就可以开始记录所有服务器响应。 下次我们运行测试,不再与服务器或数据库通信,测试将访问存储的响应(在AI的帮助下),并将继续运行没有任何障碍。

    As a result, the tests run much faster, since the delay in waiting for a response is eliminated and the need to rely on a physical database or server has completely been erased.

    因此,测试运行得更快,因为等待响应的延迟被消除了,并且依赖于物理数据库或服务器的需求已经完全被删除。

    AI test automation

    Ease of Authoring and Executing Tests 易于编写和执行测试

    Some of the biggest obstacles keeping companies from moving forward with automation is the amount of time and effort it takes to author and execute tests with the chosen tool or framework and the availability of skilled resources to do this task.

    阻止公司实现自动化的最大的一些障碍是使用所选工具或框架创建和执行测试所需的时间和精力,以及完成此任务所需的技能资源。

    Even when companies decide to move forward with automated testing, teams have to spend considerable amounts of time authoring and executing tests due to complexity of the application, tools available, and the programming language used.

    即使公司决定推进自动化测试,由于应用程序的复杂性,可用的工具以及所使用的编程语言,团队也必须花费大量时间来编写和执行测试。

    Now, there are AI-based tools that help to mitigate these problems. Tests that used to take one week to author and execute can now be done in a matter of hours using AI. This is possible with the use of Dynamic Locators and the ability to easily create reusable components, do data-driven testing, author and execute tests quickly, and integrate CI/CD systems easily with public and private grids. As a result, we are able to have reliable tests, more test coverage, less maintenance, and faster release cycles.

    现在,有一些基于AI的工具可以帮助缓解这些问题。 过去需要一周时间来设计和执行的测试,现在可以在几个小时内使用AI完成。 这可以通过使用动态定位器以及轻松创建可重用组件,快速执行数据驱动测试,设计和执行测试以及轻松地将CI / CD系统与公共和专用网格集成。 因此,我们能够进行可靠的测试,更多的测试覆盖,更少的维护和更快的发布周期。

    Also, this has opened up a new era in test automation where nontechnical people can get involved in test automation as well. This helps to increase collaboration within teams and encourages everyone to own the test automation effort. AI is now bringing a whole-team approach to test automation.

    此外,这开辟了测试自动化的新纪元,非技术人员也可以参与测试自动化。 这有助于增加团队内的协作,并鼓励每个人拥有测试自动化工作。 AI现在正在为测试自动化带来整个团队的方法。

    AI test automation

    Releasing at the Speed of Development 加快研发速度

    With AI powering the transition to autonomous testing, reducing the maintenance to a minimum, and creating more reliable tests, the ability for teams to release faster is better than ever.

    通过AI过渡到自主测试,将维护降至最低,并创建更可靠的测试,团队更快发布的能力比以往任何时候都更好。

    With AI and autonomous testing, quality assurance (QA) can focus on exploratory tests, while a big portion of the tests are continuously created and updated automatically. Now, your release frequency is only limited by how quickly your developers can code. It is also easier for QA to maximize user coverage by connecting authoring of tests with production apps mapping to real user flows.

    通过AI和自主测试,质量保证(QA)可以专注于探索性测试,而大部分测试可以自动创建和更新。 现在,您的发布频率仅受开发人员编码速度的限制。 通过将测试设计与映射到实际用户流的生产应用程序连接起来,QA也可以更轻松地实现最大化用户覆盖。

    Now, we have the ability to take a risk-based approach and base our decisions on real data. Most of all, we are ahead of the game by proactively fixing issues instead of reacting to them, because of the self-healing mechanism of the AI.

    现在,我们有能力采用基于风险的方法,并根据实际数据做出决策。 最重要的是,由于人工智能的自我修复机制,我们通过主动解决问题而不是对它们作出反应,来处于领先地位。

    Also, we are now able to create more user scenarios in short period of time. This means you can find bugs fast and release faster. The future of testing has only become brighter with AI.

    此外,我们现在能够在短时间内创建更多用户场景。 这意味着您可以快速找到缺陷并快速发布。 因为AI,测试前景变得更加光明。

    If you have experienced or heard of other ways to implement AI in test automation, please share your thoughts below in the comments section.

    如果您已经体验或听说过在测试自动化中实现AI的其他方法,请在评论部分分享您的想法。

    关于作者

    Raj Subramanian is a former developer who moved to testing to focus on his passion. Raj currently works as a Developer Evangelist for Testim.io, that provides stable self-healing AI based test automation to enterprises such as Netapp, Swisscom,Wix and Autodesk. He also provides mobile training and consulting for different clients. He actively contributes to the testing community by speaking at conferences, writing articles, blogging, making videos on his youtube channel and being directly involved in various testing-related activities. He currently resides in Chicago and can be reached at raj@testim.io and on twitter at @epsilon11. He actively blogs on www.testim.io and his website www.rajsubra.com . His videos on testing, leadership and productivity can be found here.

    Raj Subramanian是一名前开发人员,他由于自己的热情转向测试领域。 Raj目前担任Testim.io的开发人员宣传员,为Netapp,Swisscom,Wix和Autodesk等企业提供稳定的自我修复AI测试自动化。 他还为不同的客户提供移动培训和咨询服务。 他通过在会议上发表演讲,撰写文章,写博客,在他的YouTube频道上制作视频以及直接参与各种与测试相关的活动,积极地为测试社区做出贡献。 他目前居住在芝加哥,可以通过raj@testim.io和Twitter上的@ epsilon11与他联系。 他积极在www.testim.io和他的网站www.rajsubra.com上发表博客。 他的测试,领导力和生产力视频可以在这里找到。

    原链接

    https://simpleprogrammer.com/ai-test-automation/

    展开全文
  • 嵌入式测试自动化(一)

    千次阅读 2018-08-20 12:06:03
    为什么要做测试自动化?  一直以来,看着测试的同事日复一日做着毫无成就可言的重复劳动,总觉得要尽快的推进测试自动化,让他们从繁复的劳动中解脱,以便于留出更多的时间来思考测试方法。  目前公司的一个现状...
  • 测试自动化的三波浪潮

    千次阅读 2018-01-17 19:18:42
    测试自动化三波浪潮接踵而来:第一波第一个浪潮中充满了一些老式的供应商工具,如WinRunner,Silk Test和QTP。在我看来,这些解决方案开创了这一切,并为未来的测试自动化创新如Selenium奠定了基础。第二波Selenium...
  • 测试自动化/自动化测试的定义

    千次阅读 2007-05-16 13:02:00
    我们经常可以听到测试自动化/自动化测试,并且看到英文中有Test Automation, Automated Testing/Test,Automation Test,其实意思都一样,只不过有时需要根据重点使用不同的术语.如强调测试时,一般用 Automated Testing/...
  • 软件测试自动化从不同的测试阶段分类,可从下层到上层依次分为单元测试-->接口测试-->界面自动化测试。 单元测试一般有开发人员自行完成,而界面自动化测试合适的测试条件又很难达到,测试人员在繁杂的手工界面测试...
  • 接口测试之Jmeter接口测试自动化

    万次阅读 多人点赞 2018-07-03 18:29:31
    Jmeter是压力测试、接口测试工具,Ant是基于Java的构建工具,具有跨平台的作用,jenkins是持续集成工具。将这三者结合起来可以搭建一套webservice接口测试的持续构建环境。 优势 通过Ant构建可以看到详细的执行...
  • AppUI自动化测试 Appium 是一个移动端自动化测试开源工具,支持iOS 和Android 平台,支持Python、Java 等语言,即同一套Java 或Python 脚本可以同时运行在iOS 和Android平台, Appium 是一个C/S 架构,核心是一个 ...
  • Telemetry([项目主页](http://www.chromium.org/developers/telemetry))是 Google 为 Chromium 项目所编写的一套性能测试自动化框架。 从测试架构上以及实际使用中,Telemetry 均表现出极强的易用性和扩展性,...
  • 软件测试自动化方案探讨 一、 自动化测试的发展 软件研发的发展过程,就像我们社会发展的过程一样,从刚开始的手工磨坊式,逐步的发展到现在的分工协作、流程化。每个阶段的改变,都夹杂着大量的改变方向与争论。...
  • python+testlink+jenkins集成测试自动化

    千次阅读 2017-01-21 20:59:35
    python+testlink+jenkins集成测试自动化,这个有待完成,先占坑,后续补上。 加油~~
  • Postman接口测试自动化介绍

    万次阅读 多人点赞 2018-10-30 20:07:50
    其实它还具有很强大的接口自动化测试功能,它其实自己就提供了一个框架,采用js脚本编写的。其功能百度都可以查到使用方法,但感觉有点零散,我这里整理了一下,把使用postman进行接口测试的方法整合了,图文并茂,...
  • 在2000年代初期,一家名为Mercury Interactive的公司通过其工具Astra Quick Test统治了测试自动化领域。 这不是可以想象的最好的产品。 例如,您只能在Windows计算机上运行测试,仅支持少量浏览器版本,并且必须...
  • 测试工具和测试自动化

    千次阅读 2017-05-26 15:31:11
    对于测试而言,工具同样不可或缺,甚至于如果想判断某个厂商的测试水平是处于“蛮荒时代”还是已经进化到了“现代社会”,观察其使用的测试工具就能知道个大概。事实上,很多测试项目,尤其是性能和稳定性测试项目,...
  • Ant+Jmeter+Jenkins实现接口测试自动化

    千次阅读 2017-05-17 13:24:59
    用Jmeter编写接口测试用例,把用例保存到...以后每次可以用Jmeter写接口测试用例,上传svn,触发Jenkins,实现接口测试自动化。 环境搭建和本地Ant测试 安装Ant,配置Ant环境变量; Ant官网下载: http://ant.ap
  • 软件测试自动化框架的探讨

    千次阅读 2008-01-14 21:22:00
    上个月,测试时代举办了一次软件测试沙龙,专门探讨自动化测试框架技术,本次沙龙感觉高度还不错,在业内应该算先进的,第一次这么多人就软件测试自动化框架搭建技术进行探讨。 主要的内容:细节话题:1、什么是...
  • 测试自动化普遍存在的问题

    万次阅读 2006-06-15 23:55:00
    不正确的观念或不现实的期望没有建立一个正确的软件测试自动化的观念,或操之过急,或认为测试自动化可以代替手工测试,或认为测试自动化可以发现大量新缺陷,或不够重视而不愿在初期投入比较大的开支等。...
  • 测试自动化最佳实践:来自全球的经典自动化测试案例解析》译者序时光荏苒,转眼间本书的翻译工作已经进行了半年多,算是没有辜负出版社的期望,按时完成翻译任务。当初,看到本书的英文版,就有翻译本书的强烈愿望...
  • 测试自动化平台 | 测试开发工程师的进阶之路

    万次阅读 多人点赞 2018-05-24 10:23:44
    https://mp.weixin.qq.com/s/WU5h8FW6BT5YZtlsSuCIcw「摘要」随着...本文将概述测试工程师的现状及发展方向,并着重介绍测试开发工程师的发展及所需具备的技能,以及本部门搭建的测试平台的概况和意义。一、测试工程...
  • bat命令很强大,当然相比shell命令会弱一些,但是基本能应付手机常用的自动化测试 以下代码是可以实现自动拨打10086,13800138000等号码,无限循环拨打下去。 :one adb shell am start -a android.intent....
  • 自然地,Python还是测试自动化的最好的语言。它的简洁性使测试人员可以将更多的精力放在测试上,而不必在代码上。未完成大量编程工作的测试人员往往比其他语言(如Java或C#)学习Python的速度更快。Python非常适合...
  • 接口测试自动化生成框架

    千次阅读 2017-03-09 10:36:26
    目前我个人的理解,接口测试应该属于白盒测试的范畴,也是很多测试工程师很想从事和向往的一个测试手段。大家都觉得白盒测试深不可测,但实际上是怎么样的呢。接口测试的实施优先级对于Web应用来说,接口测试就是对...
  • 持续集成与测试自动化

    千次阅读 2005-12-23 10:47:00
    持续集成与测试自动化 作者 黄良生 来源 csai一、背景我从毕业到现在, 曾在大小不同的三个公司就职: 有民营的、有外资的、也有上市公司。 但以前大多都是做项目,从事软件开发工作,绝大部分公司对测试都不重视,...
  • 这里只说明我自己获取FPS、丢帧率等信息来测试流畅度的自动化代码,具体的业务技术知识和手工测试的方法可参考另两篇博客: 专项测试-流畅度测试之前的知识储备-Andorid中VSync机制的介绍 专项测试-如何测试APP流畅...
  • 不正确的观念或不现实的期望 没有建立一个正确的软件测试自动化的观念,或操之过急,或认为测试自动化可以代替手工测试,或认为测试自动化可以发现大量新缺陷,或不够重视而不愿在初期投入比较大的开支等。...
  • 功能测试自动化的投入和产出

    千次阅读 2006-06-14 18:20:00
    测试自动化,对于系统性能测试、负载测试等效果是明显的,而且我们也不得不为之。我们知道,没有测试工具进行负载模拟,要通过手工测试完成系统测试任务,几乎是不可能的。但在功能测试中,情况就大不一样了。手工...
  • (翻译)选择测试自动化框架

    千次阅读 2005-06-17 14:12:00
    选择测试自动化框架 --- 原著Mike Kelly《Choosing a test automation framework》---Kiki翻译于2005/6/16 一种测试自动化框架(test automation framework)是由一些假设,概念和为自动化软件测试提供支持的实践...
  • 迈向测试自动化成功的七个步骤

    千次阅读 2005-11-09 18:41:00
    摘要 测试自动化激起了我们的希望但是却经常使我们感到挫败及失望。尽管自动化许诺将把我们从艰苦的环境里解放出来,但是实现自动化测试所制造出的的问题却和它解决的问题一样多。在自动化测试过程中,关键是要遵循...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 105,032
精华内容 42,012
关键字:

测试自动化