前言
似乎所有团队都宣称敏捷、DevOps或持续集成/持续交付环境。为了在上述名词取得成功,自动化测试越来越有必要。
在与软件测试团队一起工作时,经常会发生功能测试BUG的情况,需要制定均衡的测试策略。模仿用户体验的测试策略有其自身的成本。如果组织仍在手动进行功能测试,通过实施功能自动化测试可以显着降低成本。
在进行软件交付项目时,我们最终将面临应该自动进行哪些测试以获得更高投资回报率的决定以及如何计算自动化测试的投资回报率?。另外,要使功能测试转向自动化,必须具有预定义的路线图和策略,以节省时间和测试维护。
为什么要功能自动化测试?
有毫无疑问,严格的功能测试成功应用发展的关键。面临的挑战是如何在不破坏您本来就很紧张地预算的情况下准确地加快测试过程。
尽管在某些情况下手动测试是第一选择,但它是一个耗时且乏味的过程,效率低下并且与当今更短的开发周期相冲突。显然,手动测试容易出现人为错误和不一致的情况,从而会使测试结果产生偏差。
自动化的好处很多,功能自动化测试在软件应用程序上执行脚本化的测试用例。例如,您的应用程序可能具有一个带有多项选择题的注册表。脚本可以使每个答案自动执行以确保其有效。当结果与脚本不匹配时,将其标记为供审核,这可以节省大量时间并降低成本。
功能自动化测试的投资回报率
在使功能测试过程自动化时,成本是可量化的,但收益还包括许多无形因素。前面我们说过,开发自动化测试套件然后执行多次的情况下,自动化测试会发挥最大的价值。可以扩展测试范围,同时控制人工成本。例如:您如何使用Selenium来计算自动化测试的投资回报率?。
功能自动化测试流程
许多软件团队正在寻求更加适合自身情况的测试自动化的过程,以应对持续的集成/持续开发,这是敏捷团队的通用交付框架。尽管自动化最终可以执行关键、重复和复杂的测试过程所需的效率,但是如果缺乏计划和分析,它可能会成为灾难。
利用多元化的专业知识建立质量检查团队
要使功能测试自动化,您将需要组建一个专门的测试团队,其中包含测试,编程和工具知识。使团队中的人员的技能与角色职责相匹配非常重要。
例如,编写自动化测试脚本需要脚本语言的专业知识。因此,为了执行这些任务,您应该让质量检查工程师知道自动测试工具提供的脚本语言。有些团队成员可能不精通编写自动测试脚本,但这没关系。这些QA工程师可能更擅长编写测试用例。
自动化测试策略
下面是几种用于创建功能自动化测试的方法:
测试模块化
这种方法将被测应用程序分为脚本组件或模块。QA使用自动化测试解决方案的脚本语言,在每个组件的前面构建了一个抽象层,实际上将其隐藏在应用程序的其余部分中。
测试库架构
这是另一个基于脚本的框架。不同之处在于,测试库体系结构框架描述了过程和功能中的模块,而不是脚本中的模块,从而实现了更大的模块化,可维护性和可重用性。
关键字驱动
关键字驱动的测试是一个独立于应用程序的框架,使用易于理解的“关键字”来描述要在被测应用程序上执行的操作。操作和关键字与执行它们的自动化测试解决方案以及驱动应用程序及其数据的测试脚本无关。
数据驱动
数据驱动测试是一种测试框架,该框架将数据存储在外部文件(例如Excel表格)中,而不是将数据硬编码到测试脚本中。使用这种方法,单个脚本可以测试所有所需的数据值。
录制/播放测试
这种方法消除了为完成自动化测试而编写脚本的需要。首先记录与被测应用程序的手动交互输入。这些记录的输入用于生成自动测试脚本,这些脚本可以在以后重复执行。
自动化重点解决的问题
测试多久运行一次?
一项常见的测试(例如确保您可以登录)很简单,而且通常易于自动化。立即发现是否无法登录,并且可以在每次构建后运行(例如在冒烟测试中),这将是有帮助的。但是有一部分仅需要在发布前运行一次的测试,就不值得自动化。
测试需要输入多少数据?
有许多测试需要将数千个条目添加到数据库中,这确实是一个痛点。但这不是自动测试的情况。通常,输入的数据越多,自动化之后的效果越好。自动化的用例要很大程度上依赖于功能测试用例对测试数据的分类和关键数据的枚举。
测试的输出容易测量吗?
如果您可以轻松判断测试是成功还是失败,那么这是自动化测试的好方法。需要多个交叉引用才能知道输出的测试很难自动化。这需要更多的技术支持,甚至整个团队的支持,这样的测试用例在整个需要自动化的用例中优先级更低,请参考自动化如何选择用例。
UI是否经常更改?
自动化测试工具可以处理对UI元素的一些更改。UI在应用程序的生命周期中频繁更改是很常见的,其中许多依赖于其他元素。对于此类自动化UI测试,必须经常修改自动化脚本,这里频繁修改会导致成本增加,甚至会导致自动化用例失败。
测试是否使用任何自定义控件?
如果测试使用普通按钮,编辑框,组合框或网格,则可以是自动测试。如果您有自定义控件,这将很困难。并不是说自定义控件无法自动化。但是,通过首先自动化更多标准零件,会获得更好的结果。
如何创建测试数据?
在计划测试时,重要的是要知道测试需要哪些测试数据。很多时候,测试是针对可能没有您期望的数据的不同环境运行的,因此请确保已制定测试数据管理策略。
为了确保要测试的每个功能或模块的正确和准确的结果,最好并行创建测试数据以及针对特定测试阶段执行的其他活动。这种方法将得出每个测试过程并提供适当和所需测试数据输入的可用性。在这种方法中,可以使用对数据库的插入操作来生成测试数据,或者可以简单地通过软件应用程序的用户界面来生成测试数据。
测试套件的维护
为了简化自动测试套件的维护,请在开发、运维团队可以访问的仓库中存储测试资源。许多测试自动化环境提供了测试管理工具,通过在公用存储库中维护测试资源(测试用例,测试脚本和测试套件),可以更轻松地组织和访问测试资产。
另外,自动化测试工具会强制执行某种形式的访问控制。通过确保测试套件的完整性,可以减轻维护负担。您可以选择授予利益相关者和管理者只读权限,而从业者级别的开发人员和测试人员可能具有读/写访问权限。
结论
通过适当的计划和工作,功能自动化测试可以通过验证预生产中应用程序最终用户功能的准确性和可靠性来优化软件质量。通过功能自动化测试,在提高软件质量的能力上迈出重要的一步。
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。