软件自动化测试工具使用应该注意的事项

发表于:2022-6-23 09:28

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:自动化测试冰茶    来源:今日头条

分享:
  自动化测试正在逐步取代部分手动测试,因为它可以节省时间并提高测试质量。特别是在进行回归测试的情况下,自动化可以通过多种方式提高效率。手动进行重复测试是浪费时间和资源。此外,由于重复测试可能会遗漏,因此存在一定的错误范围,但是自动化中发生错误的可能性很小。但是什么是自动化测试?简单来说,自动化测试就是通过重复执行预定义的动作来执行测试用例的系统来代替人工操作。为了充分利用自动化,必须选择正确的自动化测试工具。
  自动化测试工具的类型
  1. 记录和重放:此类别中的工具为自动脚本提供了记录选项。屏幕上的每个交互(例如点击,滚动或键入)都将被记录并转换为自动化步骤。可以重播已录制的脚本以执行操作并验证。
  2. 基于坐标的识别:此类工具在x/y坐标的帮助下与被测应用程序交互,以自动化和验证应用程序。
  3. 本机对象识别:使用本机对象识别的工具可检测给定元素树上的UI或控件元素。该树由XPATH,XML或CSS构建,以标识元素,验证和自动化脚本。
  4. 文字识别:文本识别:文本识别或(OCR)光学字符识别工具可根据其文本识别元素。这些工具使用可见文本来推动自动化并验证应用程序。
  5. 图像识别:这些工具会获取产品中UI元素的屏幕截图,以将其添加到自动化脚本中。这些屏幕截图将帮助AUT自动执行。
  许多测试自动化工具支持多种识别方法,这对于获取更强大的自动化脚本很有用。现在让我们看看选择自动化测试工具时要考虑的因素。
  自动化测试工具本身也是软件,也要重视工具本身的质量
  自动化测试工具也是通过编写代码实现的,所以肯定也存在缺陷或不符合软件测试需求或者产品需求的地方。在工作中经常会发生如下情形:当自动化测试工具显示出某个测试用例的测试结果没有通过,然后开发工程师对相应部分的产品代码进行排查,同时测试工程师配合开发工程师也对测试代码以及测试数据进行排查,最后发现没通过的原因可能在产品代码上,也可能在测试代码上,还可能在测试数据上。为了提高测试代码的质量,通常采用以下两种方法。
  (1)书写测试代码前,先对相应的测试用例进行严格的评审工作。使得开发、测试、运维以及需求人员在早起对于产品的需求就有一致的理解。
  (2)当测试代码书写完毕,对测试代码进行严格的验证。
  (3)检查是否存在测试数据发生问题,建议采用测试数据与测试代码分离的机制。
  由于测试代码相对于产品代码简单,所以走读检查比较容易实施。虽然对测试用例评审与对测试代码走读都很费时间和精力,但这是控制测试代码质量的最好办法。对测试用例的评审、对测试代码的走读最好由专门的负责人员安排专门的场所(如会议室)进行,如有可能,最好请相关人员,如软件测试工程师、开发工程师、需求工程师、运维工程师一起参加,以便更有效地达到评审或走读的效果。
  自动化测试工具要随用户的需求变化而变化
  百度百科中提到,“自动化测试的前提条件之一是软件需求变动不频繁”。但是,现实情况是用户的需求经常变化。而“拥抱变化”是敏捷开发提倡的一个理念,所以,使用自动化工具进行软件测试时,需要注意:当用户的需求发生变更时,开发要及时调整产品代码,与此同时,测试工程师也应该及时对测试代码进行调整。
  不是所有的功能都可以作自动化测试
  在软件测试界一直以来有一句非常经典的话:“自动化测试永远代替不了手工测试”。
  使用自动化测试工具的同行都会感受到自动化测试工具给工作带来的便利,但是并不是所有的功能都可以通过自动化测试方式来实现,如James Whittaker在他的《探索式软件测试》一书中提到的超模软件测试(其实就是一种用户体验性测试),由于这种类型的软件测试没有统一的标准,且具有一定的主观性,所以不适合用自动化方式来进行测试。
  探索式软件测试也可由自动化测试来实现
  “探索式软件测试”是软件测试专家CemKaner博士于1983年提出,由于它符合快速交付的理论,且随着近年来敏捷和DevOps的兴起,探索式软件测试也被重新提出。但是,许多人可能存在一种误解,认为探索式软件测试只能通过手工测试的方法实现,而不能采用自动化测试。然而,就像James Whittaker在《探索式软件测试》一书中提到的“强迫症软件测试法”,由于这种方法具有典型的机械重复性,所以最好采用自动化工具来实现,这样可以节省很多精力,还可以带来很好的效果。
  是否需要采用自动化测试,需要考虑测试的效率
  自动化测试虽好,但它也具有一定的局限性。如果采用现有的自动化测试工具,那么学习、熟悉、了解这些自动化测试工具要花费一定的时间和精力。如果自己开发自动化测试工具,开发的过程更要花费相当的时间和人力。所以,对于一些需求还不稳定,需求变化很频繁或者对特定客户订制的一些很容易用手工测试来进行的小的功能,就不需要用自动化测试方式了。
  自动化测试可以覆盖软件测试中的每个阶段
  很多刚入门的软件测试的新手往往认为自动化测试只限于系统测试和验收测试,而不适用于单元测试和集成测试,其实,这不完全正确的。开源工具JUnitTestNG、unittest、Pytest以及ParaSoft公司出品的Jtest、Ctest、C++Test和Google公司开发的Gtest等工具都是基于单元测试或集成测试的。但是它们也承担了接口测试和基于GUI测试的测试框架的角色。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
价值398元的测试课程免费赠送,填问卷领取吧!

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海漕溪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2022
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号