zoukankan      html  css  js  c++  java
  • Selenium自动化最佳实践技巧(下)

    书接上文和上上文:

    学习和使用测试技术

    使用测试技术是自动浏览器测试的最佳实践之一。作为一名测试人员,总要留出时间和精力都集中在学习测试技术上。当然,手动测试也是需要一定的测试技术才能够胜任的。不要让自己拥有的宝贵知识在Selenium测试自动化项目中白白浪费。因为测试技术范围远远超出手动测试所要求的。

    如果测试人员在测试自动化中使用它们,则测试技术尤其具有很多优势。

    自动化用例与手动用例

    自动化测试优先自动化那些易于自动化的测试用例。但如果没有良好的设计或手动测试用例,那么自动化将无法带来更多的价值。因此,最佳实践之一是事先编写手动测试用例。清楚描述操作步骤,并提及每个步骤的预期结果。

    同样,保持每个测试用例的目标明确。确保它不会过多地依赖于其他测试用例。我建议自动化工程师至少手动运行一次测试用例。这将帮助他们确定操作流程以及需要识别的对象。这种做法的另一个好处是有时测试工程师甚至可以在编写自动化脚本之前识别程序BUG

    不自动化不稳定的功能

    在开发新功能期间,出现BUG是难以避免的。有时,仅由于需求方改变了主意,甚至会导致某些功能下线。假设测试工程师在功能的开发阶段开始进行自动化。在这种情况下,自动化测试维护成本会远远超出手动测试的成本。自动化测试团队需要多次更新测试仓库,功能可能会不断发展变化,甚至被砍掉。

    可以说,跟上这么多意想不到的变化是非常不明智的。而且,如果改功能在某个节点被删除掉,那么所有的努力都相当于打水漂了。因此,明智的做法是仅在功能没有太多更改且稳定的情况下使功能自动化。

    创建高质量的测试数据

    通过创建高质量的测试数据,测试工程师可以将数据驱动的web端自动化测试提升到一个全新的水平。一个好的自动化工具可以很好地解析数据文件的内容。通常测试人员可以手动创建测试数据并将其存储到喜欢的位置。某些工具提供了测试数据自动化生成器,使用户能够创建工作表和变量来保存测试数据。

    花费大量时间和精力来创建高质量的测试数据是一个值得尝试的实践。这使自动测试的编写变得更加简单。这种做法还有助于扩展现有的自动化测试并加快应用程序开发进程。

    减少维护的测试用例

    UI的更改会极大地影响测试用例的执行结果,尤其是在应用程序的初始阶段。当应用程序版本升级时,它会在自动化测试的工作方式上造成障碍。例如,某些脚本使用位置坐标查找对象。可是一旦位置或者定位信息发生改变,测试用例就必须重新维护。

    如果在这种情况下运行自动化测试,测试将会失败,因为测试脚本将无法找到真实的页面元素。为了确保测试用例正确执行,可以添加新名称来替换旧名称。或者提前指定命名规则保证控件的名称唯一,则用户界面中的更改不会影响测试结果。

    拓展自动化测试用例

    当拿到有一个手动测试用例时,可以优先考虑如何扩展其测试范围。考虑不同的自动化场景,以提高测试自动化的效率。例如,最常见的测试用例是登录到应用程序。如果将其扩展,则可以使该特定测试用例成为数据驱动。

    登录功能可能有不同的方案。例如,无效的密码,无效的用户名,空白用户名,无效的电子邮件等。将它们列出并在测试数据文件中提供预期的结果,使用它作为测试用例的数据源。因此,当测试人员手动执行自动化测试用例时,可以一次检查更多的测试场景。

    避免UI自动化

    如果我们看一下不同的自动化测试,UI自动化是最困难的。但这是否意味着团队需要直接放弃它?当然不是。但是明智的做法是尽可能避免UI自动化,特别是在存在其他替代方案的情况下。优秀的自动化工程师可以确定UI层是否有必要进行自动化测试。

    测试人员还应该了解,如果条件不允许UI自动化项目继续维护,则需要及时停止它。真的放弃UI自动化时,说明自动化测试项目在当时的情况下已经失去了可期望的价值。过多的UI自动化会导致测试流程的混乱,大大拖延项目进度。

    了解测试类型适用价值

    单元测试服务测试API测试UI测试具有用于自动化测试的不同目的和价值。在自动化之前,了解每个测试的适用价值很重要。例如,单元测试涉及对单个方法或功能的测试。API测试确定一组类或函数是否能够协同工作。它还可以确保与其他类之间的数据交互。UI测试检查显示、控件、窗口、对话框等。总而言之,它可以确保整个系统根据常见的用例和用户场景运行良好。

    不要试图替换手动测试

    自动化测试是不能代替手动测试的。这里的自动化技术是对手动测试的补充,使测试人员的工作更加高效。重要的是自动化测试意味着可以用更少的时间执行更多测试。例如,回归测试可能需要很长时间才能完成,而且还需要测试人员经常执行它们,以确保应用程序的所有现有功能正常运行。因此,从这个角度来讲,使这些功能自动化是有意义的。

    但是新添加的功能可能会干扰现有功能的运行。因此,盲目地自动化端到端测试不会对团队有任何好处。测试自动化无法处理无法预料的情况。在这种情况下,团队需要执行探索性测试。在这里,测试人员必须发挥自己的创造力。综上所述,自动化是为了防止手动测试人员进行大量重复的工作,而要专注于发现错误和更多测试场景。

    快速反馈

    快速反馈有助于快速发现和修复BUG。自动化测试的全部目的是在保持高质量的同时加快测试过程。较短的发布周期可缩短迭代的时间。这使得连续的反馈成为可能,并促使软件不断的改进。

    利益相关者、职能部分、测试人员的持续反馈确保了高质量快速的发布新版本。反馈内容包括必要的信息以及在问题不断解决时所采取的措施。

    总结

    这就是Selenium测试自动化的最佳实践全部内容了。有很多工作可以改善测试自动化的效能,希望这些实践一定可以帮助改善。


    公众号FunTester首发,原创分享爱好者,腾讯云和掘金社区首页推荐,知乎七级原创作者,欢迎关注、交流,禁止第三方擅自转载。

    FunTester热文精选

  • 相关阅读:
    .net环境变量 的设置
    情人节我们依旧单身(制作属于自己的QQ拼音皮肤)(带全部ps素材)
    sqlServer 中 正则表达式的使用(regexReplace函数)及配置(转)
    winform开发日常问题小记
    Ext 界面开发工具 Ext Designer 破解补丁
    中关村海龙大厦买本上当经历给大家提个醒
    [原创]Ext Panel 收缩时显示收缩文本
    解决php json_encode 出现的中文转码、乱码问题
    js获取get方式提交的参数返回json格式数据
    解决php的$美元符号与Zen Coding冲突问题
  • 原文地址:https://www.cnblogs.com/FunTester/p/13684056.html
Copyright © 2011-2022 走看看