当前位置:首页 > 技术分析 > 正文内容

自动化测试

ruisui883周前 (05-24)技术分析12

自动化测试

通过集成测试方案、测试要求和测试实施,功能测试、负载测试以及测试管理过程都可以自动化,从而降低成本,提高软件质量,还可以帮助团队沟通和提高效率。自动化脚本执行测试的速度比手工测试员要快很多,还可以测试在反复执行同样一批操作时软件的响应方式。由于执行自动化测试脚本时,每次执行的操作完全相同,从而消除了人为错误。

摘抄自:itconvergence

功能上:

  • 功能测试,主要是验收服务是否业务逻辑合理
  • 负载测试,在功能测试的基础上,进行负载,保证服务可靠性/稳定性

内容介绍

1、概念:wikipedia

在软件测试中, 自动化测试指的是使用独立于待测软件的其他软件来自动执行测试、比较实际结果与预期并生成测试报告这一过程。 在测试流程已经确定后,测试自动化可以自动执行的一些重复但必要测试工作。也可以完成手动测试几乎不可能完成的测试。对于持续交付和持续集成的开发方式而言,测试自动化是至关重要的。

2、自动化测试介绍

1、单元测试(Unit Test, UT)

关注某一个函数,模块的正确性,一般需要开发人员编写相关的测试代码来进行自动化测试。可以使用对应的测试驱动开发(TDD)框架,如:Java的JUnit等。

单元测试任务包括:1 模块接口测试;2 模块局部数据结构测试;3 模块边界条件测试;4 模块中所有独立执行通路测试;5 模块的各条错误处理通路测试。

1、Java单元测试工具:

  • JUnit,最常见的测试工具,目前使用的版本有Junit4/Juint5等
  • TestNG,参考自美团的自动化测试工具积木 ,相对于 Junit来说,是二次封装,功能更多
  • Mockito ,最常见的mock工具 .其他的还有 easymock, jmock 等
  • Spring Test框架,主要是支持与Spring框架的集成测试,一般推荐和Spring框架一起使用
  • Spock+Groovy, 这个需要具有Groovy语言的支持,学习成本比较高
  • Alibaba Cloud 的 MSE , 集成了 SpringCloud / Dubbo / Istio ,集成了 压测/巡检/自动化回归测试

2、Go语言相关的测试工具:

  • Go std test/benchmark,go语言原生支持友好,对于单元测试基本足够
  • testify + mockery , 前者是包,后者是代码生成器(这里需要注意的是Go语言需要大量的代码生成器工具,理由是Go不支持语言上的动态代理,所以需要自动生成代码)
  • go mock,这个是Go官方提供的mock工具,但是比较不好用,相对于上面的工具来说

2、集成测试(Integration Test, IT)

集成测试是为了在集成时测试模块/组件,以验证它们是否按预期工作,即测试单独工作的模块在集成时没有问题。在使用黑盒测试技术测试大型应用程序时,涉及多个彼此紧密耦合的模块的组合。我们可以应用集成测试技术概念来测试这些类型的场景。

集成测试的类型:

  • 大爆炸法
  • 自下而上/自上而下法

3、冒烟测试 (smoke testing)

完成一个新版本的开发后,对该版本最基本的功能进行测试,如果通过测试,才会进行下一步的测试(功能测试,集成测试,系统测试等等)。

4、用户验收测试(User Acceptance Test, UAT)

5、回归测试(Regression Test)

是指对软件的新版本测试时,重复执行之前某一个重要版本的所有测试用例

目的:

  1. 验证之前版本产生的所有缺陷已全部被修复;
  2. 确认修复这些缺陷没有引发新的缺陷

3、性能自动化测试(压测)

公司的wiki:
http://wiki.corp.ehcgnoytt.com:8360/pages/viewpage.action?pageId=34591882

主流产品还是基于 Jmeter的,生态比较好,支持分布式!

文章推荐:

1、字节跳动全链路压测(Rhino)的实践

2、全链路压测平台(Quake)在美团中的实践,写的比较好

3、有赞全链路压测实战

压测相关的概念:

1、 并发用户 VS TPS

2、

压测结果截图:这个是参加天池比赛的截图

3、全链路压测

4、功能自动化测试工具

selenium 框架,支持自动点击浏览器等功能

5、四种软件开发模式

TDD:测试驱动开发(Test-Driven Development)

学习教程:
http://www.testclass.net/tdd

BDD:行为驱动开发(Behavior Driven Development)

ATDD:验收测试驱动开发(Acceptance Test Driven Development)

DDD:领域驱动开发(Domain Drive Design)

参考/推荐:

什么是集成测试

TesterHome

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/4284.html

标签: easymock官网
分享给朋友:

“自动化测试” 的相关文章

云时代,Linux和容器为王,微软推出自己的发行版Azure Linux

看到今天的微软,其前CEO史蒂夫.鲍尔默肯定会后悔在15年前说过的一句话“Linux 是一种癌症(Linux is a cancer)”。 因为今天的微软不光靠Linux赚的钵满盆满,而且还发行了自己的Linux发行版Azure Linux。为了提高其云服务和容器化服务水平,其Azure公有云平台提...

Vue组件通信之props深入详解!

props 是 Vue 组件中一个很重要的概念。它是用来从父组件向子组件传递数据的。为什么需要props?这是因为在Vue中,组件是相互隔离的。每个组件都有自己的作用域,子组件无法直接访问父组件的状态或值。通过props,父组件可以将数据传递给子组件。使用props的步骤:1. 在子组件中定义pro...

Gitlab概览

Gitlab是开源的基于Git的仓库管理系统,也可以管理软件开发的整个生命周期,是项目管理和代码托管平台,支撑着整个DevOps的生命周期。Gitlab很容易选为GitHub,作为公司私有库管理的工具。我们可以用Gitlab Workflow来协同整个团队的软件开发管理过程。软件开发阶段Gitlab...

vue中router常见的三种传参方式

目录:我们在使用vue开发的过程中使用router跳转的时候肯定会遇到传参的情况;一般情况就三种传参是最常见的;那我们就来看看都有那几种传参方式吧!第一种:{ path: '/mall:id', name: 'Mall', component:...

三、Uni-app + vue3 页面如何跳转及传参?

Vue 项目往往需要使用 vue-router 插件,刚开始入门 Uni-app + Vue3 项目的同学,会不会想着路由使用 vue-router V4 版本不就可以了吗?不怕大家笑话,我就是这样想的,毕竟我是第一次使用 Uni-app ,由于孕期记性贼差,所以我决定写成笔记,加深记忆。uni-a...

Vue Router 4 路由操作 - 路由导航

路由导航分为 声明式导航 和 编程式导航。通过 <router-link to="..."> 标签跳转的方式为声明式导航。通过 路由实例对象(router.push(...))跳转的为编程式导航。导航到不同的位置想要导航到不同的URL,使用 router.push 方法。...