• 0
  • 0
分享
  • 全部自动化可行吗?
  • FunTeste 2023-09-25 16:18:47 字数 2189 阅读 923 收藏 0


软件测试耗费时间和资源是事实。可以从不同的角度观察软件的测试。可以根据我们测试的内容来划分。例如,项目中的每个可交付成果,如需求、设计、代码、文档、用户界面等,都应该进行测试。


此外,我们可能会根据用户和功能要求或规范对代码进行测试,即黑盒测试。在此级别,我们将代码作为黑盒进行测试,以确保程序预期的所有服务都存在、按预期工作且没有问题。我们可能还需要测试代码的结构,即白盒测试。测试也可以根据测试中的子阶段或活动来划分,例如,测试用例生成和设计,测试用例执行和验证,建立测试数据库等。测试确保开发的软件最终没有错误。但是,任何过程都不能保证开发的软件 100% 没有错误。



尽管手动测试存在各类的问题,但即使在大型项目中,也不可能用自动化测试完全取代它。UX、可用性、探索性等测试需要人为介入,因为自动工具无法完全模仿用户行为。自动化测试也不适用于安全测试。自动漏洞扫描需要后续手动检查,因为它会提供许多误报信息。


在当今的现实场景中,应用程序会根据用户反馈、网络流量(性能/负载)等频繁发生变化。因此,要想在竞争中保持领先,就需要创新、升级和增强产品质量,使一切自动化变得具有挑战性。



# 需要全部的自动化吗?


自动化测试并不是精确的测试;它正在检查事实。检查是程序可感知的;测试需要感知。测试(手动)需要人类对可用性做出合理的判断。我们可以在意想不到的时候注意到异常情况的发生。此外,在实施测试自动化解决方案时还有其他相互关联的开发活动,而不仅仅是编写测试用例脚本。


通常业务会开发一个框架来演示测试用例选择、报告等操作。框架的开发是一项艰巨的任务,需要熟练的开发人员,并且需要时间来构建。此外,即使有一个功能齐全的框架,编写自动检查脚本也比手动执行相同测试花费的时间更长。


企业花费大量时间使用最佳工具和实践来开发完美的测试自动化解决方案,但如果自动化检查对团队没有帮助,那也无济于事。我们不应该以取代手动测试为目标,而应该拥抱它对团队的优势。例如,自动化测试有助于解放测试工程师的时间来进行更多的探索性测试,并发现更多的潜在的缺陷。


# 哪些测试应该自动化?


团队通常希望尽可能自动化更多的测试场景。但当他们遇到各种问题时,这又回来困扰着他们。团队应该分析他们希望自动化的测试用例类型,以及不能自动化或不应该自动化的案例。团队不应该仅仅为了测试而自动化测试。例如,如果将需要大量维护的一整套测试自动化,那么你将投入额外的时间,而从投入产出比来讲,这些通常意味着浪费。


让我们看看最可行的自动化测试场景:


- 回归测试: 回归测试需要对相同的变量进行多次测试,以确保新功能不会与旧功能混淆。回归测试非常适合自动化。

- 复杂的功能: 可以自动化所有需要复杂计算的测试。

- 冒烟测试: 可以通过运行自动化测试为业务验证重要功能的质量,这将快速分析功能是否需要更多测试。

- 数据驱动测试: 使用大量数据集重复测试功能也是考虑自动化测试的好场景。

- 性能测试: 在不同情况下监控软件性能的测试非常适合自动化测试。为手动测试团队进行性能测试将非常详细且耗时。

- 快速功能测试: 每当开发人员需要执行要快速执行以获得即时反馈的功能测试时,这是自动化测试的另一个例子。如果没有自动化,就不可能实现这一目标,尤其是在快速发展的组织中。


# 自动化测试的问题


问题的症结在于敏捷团队不再进行测试。由于 DevOps 等开发实践和文化,手动测试已经失去了优势。QA 领域存在鸿沟:**可以编码的人和不能编码的人**。大多数测试人员现在都在努力跟上自动化需求。在每个冲刺中都有自动化测试的压力,并且没有足够的时间进行彻底的探索性测试。


敏捷开发中的问题是测试人员采用用户流程并自动化其验收标准。但是,在这样做的同时,他们主要且唯一的关注点是与他们有限的编码技能作斗争以通过测试。


## 高期望


大多数人相信新的技术解决方案将挽救局面。测试工具也不例外!我们不能否认现在的工具几乎可以解决我们目前在测试自动化中面临的所有问题。然而,这种不切实际的乐观主义也会导致不切实际的期望。无论工具多么有能力,如果管理层的期望不切实际,它就不会达到期望。


## 不必要的测试


不要仅仅为了测试而自动化测试。相反,在这个过程中多加思考,研究产品的高层和底层架构。在整体测试方法中采用基于风险的自动化方法。例如,发生故障的可能性有多大,故障的影响是什么?如果答案很高,这些场景应该自动化并在每次构建时执行。


## 有缺陷的安全性


仅仅因为测试工具没有发现任何缺陷并不意味着软件没有缺陷。重要的是要了解,如果测试包含缺陷,它们将带来不正确的结果。自动化测试将无限期地保留那些不令人满意的结果。需要定期对自动化用例巡检、评估,维护自动化用例库的有效性和及时性。


## 忽略重要场景


一个严重的问题通常会泄漏到生产中,因为没有人考虑过特定场景。执行多少自动化测试并不重要。如果一个场景被忽略,就会出现一个错误,根据墨菲定律,即如果某事可能出错,它就会出错。所以那些自动化测试忽略掉的测试场景,需要手动测试重点覆盖。


# 结论


多数测试自动化工程师花时间与自动化代码作斗争,并让测试在现代软件开发中发挥作用。他们几乎不专注于适当的测试和探索系统。通常团队最终会执行大量的自动化测试发现很少缺陷,但探索性测试会发现大部分错误。团队应该基于风险评估来选择要自动化的内容。



  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 如图多个元素的xpath路径是一样的,如何依次点击每个元素呢?//div[@class='item__10RTO']需要用find_element函数,用By进行定位。获取到的是一个list然后用for循环对list进行遍历需要注意的是find_elements是不能直接使用click()函数的,遍历时才能用click()from selenium.webdriver.common.by import Byjob_list=driver.find_elements(By.XPATH, ("//div[@class='it...
            0 0 1148
            分享
          • 1.并发测试最近小屌丝一直在埋头苦练性能的知(zi)识(shi)~。很是努力。但是,小屌丝的最近遇到的问题,可是挺棘手的,例如:小屌丝:鱼哥,你说这性能测试,是不是就是并发测试?小鱼: 性能测试和并发测试,是两个概念,且并发测试不等同于性能测试。小屌丝:鱼哥,那你说,性能测试是不是包含并发测试?小鱼:吐血ing… 性能测试只是并发测试的一个小类而已小屌丝:哦,那性能测试…小鱼:住嘴!! 你别问,我怂~我给你详细的讲什么是并发测试,以及从我实际的项目中 给你解析常见的并发问题!小屌丝:挖草,这次赚大发了 !小屌丝:鱼哥,请开始你的表演!!1.1并发测试的定义1.并发测试的定义中,最主要的有两点①...
            1 0 1834
            分享
          •   一、专业技能  1、孰练测试理论,测试方法,测试流程以及常用的测试文档的编写,如︰测试计划,方案,用例,报告等,能够根据项目需求提取测试点,设计合理的测试用例,执行用例以及提交测试报告。保证软件的质量。  ⒉、熟练测试用例设计方法︰如等价类,边界值,场景法,因果判定表等进行测试用例的设计,熟练使用禅道进行Bug的提交和管理,并对缺陷进行跟踪和定位,配合开发人员解决bug,确保产品的质量。  3、熟练使用Mysql和Oracle数据库,熟练使用Sql语句进行增删改查,子查询,多表联查,分组查询等,可用于表单测试、后台数据查询,熟练数据库的管理,对数据进行批量操作等。nosql,redis,m...
            0 0 383
            分享
          • 1.BUG等级划分建议:目前project上的BUG严重程度分为五个等级,按照CMM5中定义的规范,BUG严重等级可分为3-5个等级,由于我们公司的CMM水平还处于初级阶段,将BUG等级划分过细不符合我们当前的CMM水平,同时也不利于测试人员对BUG等级的精确划分。根据我们公司的情况,同时参照其它中小公司的等级划分标准,建议将BUG等级划分四个等级,分别为致命、严重、一般、提示。致命(可对应目前BUG体系中的“非常严重”):致命性问题主要为:系统无法执行、崩溃或严重资源不足、应用模块无法启动或异常退出、无法测试、造成系统不稳定。具体基本上可分为:严重花屏内存泄漏用户数据丢失或破坏系统崩溃/死机...
            0 0 3598
            分享
          • 接口测试用例是目前软件开发中不可或缺的一个重要部分,因此编写接口测试用例同样重要。接口测试用例的作用非常明显,它能够帮助我们了解产品正在考验、调整它如何表现在特定情境之下、产品是否存在可改善的问题以及对其他流程执行有影响的因素。通过编写清晰准确的接口测试用例,能够有效避免很多无法预料的问题出现。在开始编写接口测试用例之前,需要注意几件事:确保你理解并准确衡量期望系统行为充分考虑使用者会怎么使用你的产品要将你所理解的客户端/后端对象明显列出来在运行之前应当充分测试所有代码在此过程中要定期总结编写接口测试用例的步骤包括:明确测试目标: 根据客观要求和最终需求来明确测试目标。确定用例场景: 根据业务...
            0 0 1010
            分享
      • 51testing软件测试圈微信