自动化测试===自动化测试分类

botoo botoo     2022-09-22     497

关键词:

分层的自动化测试

测试金字塔的概念由敏捷大师Mike Cohn 在他的《Succeeding with Agile》一书中首次提出,如图7.1所示。他的基本观点是:我们应该有更多的低级别的单元测试,而不仅仅是通过用户界面运行高层的端到端的测试。

 Martin Fowler 大师在测试金字塔模型的基础上提出分层自动化测试的概念。在自动化测试之前加了一个“分层”的修饰,用来区别于“传统的”自动化测试。那么什么是传统的自动化测试?为何要提倡分层自动化测试的思想呢?

所谓传统的自动化测试我们可以理解为基于产品UI 层的自动化测试,它是将黑盒功能测试转化为由程序或工具执行的一种自动化测试。

在目前的大多数研发组织当中,都存在开发与测试团队割裂(部门墙)、质量职责错配(测试主要对质量负责)的问题,在这种状态下,测试团队的一个“正常”反应就是试图在测试团队能够掌控的黑盒测试环节进行尽可能全面的覆盖,甚至是尽可能全面的UI 自动化测试。

这可能会导致两个恶果:一是测试团队规模的急剧膨胀;二是所谓的全面UI 自动化测试运动。因为UI是非常易变的,所以UI 自动化测试维护成本相对高昂。

 

单元测试与模块测试

 单元测试(Unit testing)
In computer programming, unit testing is a software testing method by which individual units of source code, sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures, are tested to determine whether they are fit for use.
Intuitively, one can view a unit as the smallest testable part of an application. In procedural programming, a unit could be an entire module, but it is more commonly an individual function or procedure.In object-oriented programming, a unit is often an entire interface, such as a class, but could be an individual method. Unit tests are short code fragments created by programmers or occasionally by white box testers during the development process. It forms the basis for component testing。

总结一下就是:

 1、单元测试是应用程序的最小可测试部分。
2、在面向过程编程中,单元也可以是整个模块,但常见的是单个函数或过程。
3、在面向对象编程中,单元通常是整个接口,例如类,但可以是单独的方法。
4、单元测试多数情况下是由程序员自己完成的。

 

模块测试(Module testing)
大多时候,我们认为单元测试与模块测试是一样的。我在国外某网站找到另段关于模块测试的定义。
A library may be composed of a single compiled object or several compiled objects. There is only a slightdifference between unit testing and module testing. Modules are fully formed chunks of coherent source code that can typically be tested by driving a few function signatures with various stimuli. On the other hand, unit testing (which is considered as part of the implementation phase for this software development process) may involve testing one small part of a function that will never formally implement any function interface.

我们读到了几个模块测试的解释:
1、首先,这段定义认为模块测试与单元测试有细微的区别。
2、模块测试是针对具有明显的功能特征的代码块进行的测试。
3、并且,它认为单元测试可能只涉及测试一小部分的功能。
4、模块测试多数情况下由其它程序员或测试人员进行。

接口测试

我根据自己的理解和认识大致把接口分为两类:程序接口和协议接口。

关于程序接口,也可以看作是程序模块接口,具体到程序中一般就是提供了输入输出的类、方法或函数。对于程序接口的测试,一般需要使用与开发程序接口相同的编程语言,通过不同的传入不同的参数,来验证程序接口的功能。


关于协议接口,一般指系统通过不同的协议来提供的接口,例如HTTP/SOAP 协议等。这种类型接口对底层代码做了封装,通过协议的方式对外提供调用。因为不涉及到程序层面,所以,不受编程语言的限制;我们可以通过其它编程语言或工具对其进行测试。

 

顺便提一下


 

如果你也喜欢Python 这里有一群Python爱好者汇集在此。

关注微信公众号:【软件测试技术】,回复 888,获取QQ群号。 

自动化测试的主要分类

在敏捷开发流程中,自动化测试涉及到下面重要四种类型的测试。单元测试(UnitTest,UT)关注某一个函数,模块的正确性,一般需要开发人员编写相关的测试代码来进行自动化测试。可以使用对应的测试驱动开发(TDD)框架,... 查看详情

自动化测试基础:一(测试的分类)

测试的分类根据项目流程阶段划分测试“V”模型 单元测试:对程序的单哥子程序或独立功能的代码进行测试集成测试:在单元测试的基础上,通过单元模块组装成系统或子系统进行测试,重点检查模块间的接口是否正确系... 查看详情

自动化测试中的aw的分类

自动化测试中的AW的分类如下:1、代码对象:一般为用C++、Delphi、VB、VFP、PB以及NetForm等技术开发的桌面程序;2、Java对象:一般为用Swing、SWT等技术开发的桌面程序;3、IE网页对象:一般性的网站,比如大的门户类网站;4、Flex... 查看详情

软件测试方法

...。从测试是手动还是自动分类对于项目来说,手动测试和自动化测试同等重要,都是保障软件质量的方法。目前大部分的项目组都是手动测试和自动化测试相结合。因为很多测试无法做成自动化,很多复杂 查看详情

测试分类

...三方测试5.按是否手工执行测试的角度划分:手工测试、自动化测试6.按测试对象的角度划分:性能测试、安全测试、兼容性测试、文档测试、易用性测试(用户体验测试 查看详情

测试分类

...三方测试5.按是否手工执行测试的角度划分:手工测试、自动化测试6.按测试对象的角度划分:性能测试、安全测试、兼容性测试、文档测试、易用性测试(用户体验测试)、业务测试、界面测试、安装测试7.按测试地域的角度划... 查看详情

浅谈自动化测试

...,对提高软件质量起着重要作用。随着软件测试的发展,自动化测试技术也得到了很大提高。本文首先介绍了自动化测试的概念、分类和现状,并分别对不同端上的自动化测试实现原理进行了详细地分析和阐述,通过对目前主流... 查看详情

web自动化测试---xpath

参考技术A1.1什么是自动化测试首先比较一下手动和自动:1.1什么是自动化测试自动化测试的概念:软件自动化测试就是通过测试工具或者其他手段,按照测试人员的预定计划对软件产品进行自动化测试,他是软件测试的一个重要... 查看详情

测试的分类(代码片段)

...态测试4、按是否手工划分4.1手动测试(永远无法被替代)4.2自动化测试5 查看详情

测试的分类

...测试内存泄漏测试5.按是否手工执行划分:手工测试自动化测试6.按测试实施的组织:β测试α测试第三方测试7.其他分类:回归测试冒烟测试 查看详情

测试知识总结1——测试的分类

...运行划分静态测试动态测试2.按照是否手工划分手工测试自动化测试3.按照是否查看代码划分黑盒测试白盒测试灰盒测试4.按照测试地域划分软件国际化5.按照测试对象划分(1)业务测试(2)界面测试      响应... 查看详情

自动化测试(1610)

...基础零做起,那到底该做哪方面的测试呢?先看看热论的自动化测试。了解后定位:WebUI的自动化测试    现在市场上以web项目为主,自己参与多个web项目的开发,有编程经验,于是做WebUI的自动化测试,工具选Selen... 查看详情

测试的基本概念

...测试的分类:  从测试方法的角度可以分为手工测试和自动化测试。  手工测试:不使用任何测试工具,根据事先设计好的测试用例来运行系统,测试各功能模块。  自动化测试:利用测试工具,通过编写测试脚本和输入... 查看详情

软件测试方法的分类都有哪些

...不要只是简单的学习功能测试,而是会涵盖有现在流行的自动化测试、GUI测试,接口测试和性能测试开发等内容;2、培训机构的教学不仅仅是教会你做标准的软件测试,而是要教你一些测试逻辑,教会你使用工具但又不依赖于... 查看详情

测试之巅—自动化测试!

...驶的能力和水平。许多人对这个分类模型耳熟能详。 自动化测试和自动化驾驶一样,也是人类的梦想。如何衡量自动化测试的水平呢? 有人就参考自动驾驶的分层方法,对自动化测试也进行了类似的分级(参见《人工智... 查看详情

自动化测试基础

自动化测试的分类单元测试关注某一个函数或模块的正确性,一般需要开发人员编写相关的测试代码来进行自动动画测试。集成测试也叫组装测试或联合测试。在单元测试的基础上,讲所有模块按照设计要求组装为子系... 查看详情

软件测试基础

...详细的定义:“软件测试是在规定的条件下,使用人工或自动化手段来运行或测试某个系统的过程,其主要的目的是对其是否满足设计要求进行评估的过程”。在这个定义中详细的描述三个维度的内容:软件测试需要在规定条件... 查看详情

小白学习测试的第一天!(代码片段)

1.测试分类功能测试自动化测试接口测试性能测试2.软件测试分类2.1按测试阶段分:单元集成系统               验收测试:αβγ2.2按是否覆盖源码:黑盒白盒灰盒2.3按是否运行分:静态动态2.4按是否自动化... 查看详情