草庐IT

自动化测试类型有哪些?是怎么分类的

测试小苗苗 2024-02-27 原文

目录

什么是测试自动化?

自动化测试的类型

测试类型

测试阶段

自动化测试框架

线性框架(记录和回放):

基于模块的框架

基于库体系结构框架

结论

重点:配套学习资料和视频教学


什么是测试自动化?

在软件测试领域,有两种测试技术:手动测试和自动化测试。两者都旨在执行测试用例,然后将实际结果与预期结果进行比较。手动测试是一种基础的测试技术,需要大量的人工来确保软件解决方案能够完成它应该做的所有事情。

尽管对于特定的测试用例非常有用,但是随着时间的推移,过度使用手动测试被证明是效率低下的。现代软件开发由连续的开发周期组成,这些周期需要重复执行同一组测试(也称为测试套件)。如果手动执行此过程,则会在多版本迭代以后消耗惊人的时间而且更多的维护成本以及更大的出错概率。

因此,测试自动化的出现旨在解决这个问题。测试团队需要引入了许多类型的自动化测试,并且强大的测试工具通过简化编写和录制重放测试用例,使测试人员可以更加轻松,从而释放了宝贵的资源并提高了测试效率。

本文将介绍大部分测试人员应该知道的最受欢迎的测试自动化类型。

自动化测试的类型

什么可以自动化?实际上很多,但是通常容易误解这个问题。

有两个主要类型,功能性和非功能性:

  • 功能性:测试软件的实际业务应用程序。
  • 非功能性:用于测试软件的其余要求(例如性能,安全性,数据存储等)。

    自动化测试学习视频

2022最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+

     

 

测试类型

除了自动化测试的类型;烟雾测试,集成测试,回归测试,安全性测试,性能测试,验收测试等在测试自动化领域中也很常见。

  • 冒烟测试:冒烟测试是一种功能测试,仅涵盖软件解决方案的最关键功能,以确保软件程序能够正常使用基础功能,称为冒烟测试。
  • 集成测试:集成测试采用软件解决方案的所有各个部分和功能,并将它们作为一个整体进行测试,以确保它们之间的平稳运行。
  • 回归测试:回归测试运行功能测试和非功能测试的组合,以检查软件在给定的更改后是否影响到未发觉的地方。
  • 安全测试:安全测试包括功能测试和非功能测试,这些功能会筛选软件是否存在漏洞。揭示了系统中的弱点和任何潜在的利用。
  • 性能测试:性能测试通常是非功能性测试,可帮助测试人员在软件处理负载和压力时评估诸如响应性和稳定性之类的标准。
  • 验收测试:验收测试是功能测试,它确定软件对最终用户的接受程度。这是解决方案在发布之前必须通过的最终测试。

测试阶段

  • 单元测试:顾名思义,此阶段测试软件的各个组件或单元。单元测试是测试的第一阶段,通常由开发人员手动完成,然后再将软件交付给测试人员,但也可以实现自动化。
  • API测试:应用程序编程接口(或简称API)充当软件使用的所有系统之间的中间人,因此,在开发过程之后将对其进行测试,以确保系统和软件之间的顺利集成。该测试阶段相当灵活;它可以在UI阶段之前或之后进行,开发或测试团队都可以进行。
  • UI测试:用户界面(所谓UI测试)是最终用户看到并与之交互的内容,因此通常在流程的最后进行测试。在用户界面以尽可能真实地模拟用户操作和体验,在此检查和优化软件的业务逻辑,这也属于功能测试类别。

自动化测试框架

一旦确定了项目中使用的自动化测试的类型,便选择了自动化测试框架来帮助测试人员组织和标准化流程。标准化的好处在很多方面都很明显。如果所有这些措施都随意实施而没有任何形式的控制,那么这对于产品质量和整个团队的成功将是灾难性的。

有许多框架可供选择,但是这里有一些最常见的框架。

线性框架(记录和回放):

这是最基本的框架。测试人员针对每个测试案例编写和运行测试脚本,例如在屏幕上录制和回放,因此名称为录制和回放。由于其简单性,它最适合小型团队和测试自动化初学者,其实最出名的就是Selenium IDE。

基于模块的框架

顾名思义,该框架将每个测试用例组织到称为模块的较小部分中,并且这些模块彼此独立。然后,通过测试用例统一处理任何给定场景的模块,从而为测试人员节省了大量时间并优化了工作流程。但是,成功实施此框架需要提前进行自动化测试规划和自动化技能的学习。

web自动化测试学习

2022最新的Web自动化测试Python+Selenium自动化测试实战,没有比这个更详细的了

                     

 

基于库体系结构框架

在模块化框架的基础上,这个框架比前者具有多个优势。该框架没有分解测试用例,而是将测试脚本中的类似任务分解,然后将它们存储在库中。由于这些功能由具有共同目标的任务组成,因此测试脚本可以轻易调用它们。这种结构允许在测试中具有更大的可重用性和灵活性,但这样编写脚本和测试自动化经验所需的更多时间以及对于测试人员更高的要求。

结论

自动化测试的不同类型和各种测试自动化框架的简要概述,希望能对各位了解测试自动化有更好的帮助。

感谢每一个认真阅读我文章的人!!!

如果下面这些资料用得到的话可以直接拿走:

1、自学开发或者测试必备的完整项目源码与环境

2、测试工作中所有模板(测试计划、测试用例、测试报告等)

3、软件测试经典面试题

4、Python/Java自动化测试实战.pdf

5、Jmeter/postman接口测试全套视频获取

6、Python学习路线图

                    

 

重点:配套学习资料和视频教学

那么在这里我也精心准备了上述大纲的详细资料包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如下,需要的评论区留言或者私信我

                 

               

 

有关自动化测试类型有哪些?是怎么分类的的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  3. ruby - Ruby 的 Hash 在比较键时使用哪种相等性测试? - 2

    我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。

  4. ruby - RSpec - 使用测试替身作为 block 参数 - 2

    我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere

  5. ruby - Infinity 和 NaN 的类型是什么? - 2

    我可以得到Infinity和NaNn=9.0/0#=>Infinityn.class#=>Floatm=0/0.0#=>NaNm.class#=>Float但是当我想直接访问Infinity或NaN时:Infinity#=>uninitializedconstantInfinity(NameError)NaN#=>uninitializedconstantNaN(NameError)什么是Infinity和NaN?它们是对象、关键字还是其他东西? 最佳答案 您看到打印为Infinity和NaN的只是Float类的两个特殊实例的字符串

  6. ruby - 检查方法参数的类型 - 2

    我不确定传递给方法的对象的类型是否正确。我可能会将一个字符串传递给一个只能处理整数的函数。某种运行时保证怎么样?我看不到比以下更好的选择:defsomeFixNumMangler(input)raise"wrongtype:integerrequired"unlessinput.class==FixNumother_stuffend有更好的选择吗? 最佳答案 使用Kernel#Integer在使用之前转换输入的方法。当无法以任何合理的方式将输入转换为整数时,它将引发ArgumentError。defmy_method(number)

  7. ruby - Sinatra:运行 rspec 测试时记录噪音 - 2

    Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/

  8. ruby-on-rails - 迷你测试错误 : "NameError: uninitialized constant" - 2

    我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test

  9. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

    我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

  10. ruby - 即使失败也继续进行多主机测试 - 2

    我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r

随机推荐