专栏首页用户6517667的专栏如何构建Web服务自动化测试系统?

如何构建Web服务自动化测试系统?

来源:51testing

 1. 目的

  保证版本功能正确、性能符合要求。

  包括功能测试性能测试两部分,其中性能测试包括:压力测试、单个运行时间测试。

  测试scope包括前端页面和后端API功能。

 2. 测试分类

  测试级别:单元测试、集成测试、接口测试系统测试、验收测试

  测试方法:动态测试、静态测试;黑盒测试、白盒测试、灰盒测试。

  测试类型:上述19种

  构建自动化测试系统中,需要根据项目大小和对错误的容忍程度,酌情补充不同类型和级别的用例。

 3.经典测试金字塔

  Manual Test:手工测试/探索性测试

  GUI: 系统测试及验收测试

  API: 集成测试

  Unit Test:单元测试

  从下到上,效率更高,运行速度更快,详细scope如下:

单元测试(Unit Tests)

  单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。又称为模块测试

  测试阶段:编码后

  测试对象:最小模块

  测试人员:白盒测试工程师或开发工程师

  测试依据:代码和注释+详细设计文档

  测试方法:白盒测试

  测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试

集成测试(Integration Testing)

  集成测试也称联合测试、组装测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。阿旺主要目的是检查软件单位之间的接口是否正确。

  测试阶段:一般单元测试之后进行

  测试对象:模块间的接口

  测试人员:白盒测试工程师或开发工程师

  测试依据:单元测试的模块+概要设计文档

  测试方法:黑盒测试与白盒测试相结合

  测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响

系统测试(System Testing)

  将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。时间大部分在系统测试执行阶段

  测试阶段:集成测试通过之后

  测试对象:整个系统(软、硬件)

  测试人员:黑盒测试工程师

  测试依据:需求规格说明文档

  测试方法:黑盒测试

  测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等

验收测试(Acceptance Testing)

  验收测试是部署软件之前的最后一个测试操作。它是技术测试的最后一个阶段,也称为交付测试。阿旺总结验收测试的目的是确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买都展示该软件系统满足原始需求。

  测试阶段:系统测试通过之后

  测试对象:整个系统(包括软硬件)。

  测试人员:主要是最终用户或者需求方。

  测试依据:用户需求、验收标准

  测试方法:黑盒测试

  测试内容:同系统测试(功能...各类文档等)

4. 构建测试系统中可能出现的问题及方案

  1.UI测试时间长,稳定性差,与页面设计耦合严重

  罗列已有的功能,可能会改的,重点进行API测试,尽量减少UI测试

  页面设计使用唯一性id

  2.前期项目构建,unitest太少,但此时代码又有修改的风险

  先补充API测试、基础模块、重要功能的测试。

  代码出现bug, 必须补充unitest。

  3.后端代码未面向接口编程,不利于打桩(如:函数内部数据直接从数据库查询获取,测试函数功能时,无法模拟数据库数据,强烈依赖数据库)

  重构,并在之前补充测试用例

结论

  测试流程:unitest-intergration-system

  1.unitest:

  数量:50%。

  测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试。

  实现 :pytest/打桩

  触发:重构/新增需求更改/Bug

  测试级别:component、intergration、function

  功能:保证每个模块内部功能正确和模块的交互之间接口正确

  2.api:

  数量:30%

  测试内容:针对页面所有重要REASTFUL进行测试,包括功能和性能测试

  实现:katalon+jemeter

  触发:有新的REASTFUL接口发布

  测试级别:bvt、intergration、function、performance

  功能: 保证系统功能正确且性能满足要求

  3.UI test:

  数量:10%

  测试内容:主要覆盖用户主要的使用场景,不做对各个元素的点击功能验证(因为,一旦页面不响应,定位解决更快)

  实现:katalon UI 测试

  触发:用户有重要的新加配置流程,一般不触发

  测试级别:systerm、intergration

  功能:保证用户使用正常

  4.manual test:

  数量:10%

  测试内容:针对本次修改点对应的功能进行重点测试

  实现:手工测试

  触发:每个迭代的新增功能和bug及探索性测

试,有必要的话,需要对应增加上述自动化用例

星云测试

http://www.teststars.cc

奇林软件

http://www.kylinpet.com

联合通测

http://www.quicktesting.net

本文分享自微信公众号 - 软件测试培训(iTestTrain)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • HTTP与TCP连接的那些事

    前言:HTTP作为应用层的一个协议,可以说是和我们开发人员经常打交道的一个协议,深入理解HTTP协议对我们的工作非常有帮助,今天我们来看一看HTTP协议和TCP...

    用户1260737
  • Python 命令行之旅:深入 click 之选项篇

    在上一篇文章中,我们介绍了 click 中的“参数”,本文将继续深入了解 click,着重讲解它的“选项”。

    Python猫
  • [springboot 开发单体web shop] 7. 多种形式提供商品列表

    上节 我们实现了仿jd的轮播广告以及商品分类的功能,并且讲解了不同的注入方式,本节我们将继续实现我们的电商主业务,商品信息的展示。

    Isaac Zhang
  • 聊聊rocketmq的maxReconsumeTimes

    rocketmq-client-4.5.2-sources.jar!/org/apache/rocketmq/client/consumer/DefaultMQ...

    codecraft
  • 今天用JAVA来写个爬虫!其实也不难!

    这篇文章其实是我很早之前就写好了的,这次重新整理一下。Java写爬虫可能很多朋友没有去试过,可能是由于这方面的资料比较少,也可能是Python写爬虫过于的...

    JAVAandPython君
  • Gradle Builds Everything —— Task 实例

    为了方便,我们的语境分不开 Gradle和 AndroidGradlePlugin,因此此处不脱离 Android环境来介绍 Gradle。我们在讲述任务依赖的...

    程序亦非猿
  • Java世界最常用的工具类库

    Java世界有很多实用的工具类框架,今天介绍3个使用频率最高的框架。有很多实用的工具类并没有全部列出来,只列出了最基础的一部分,感兴趣的小伙伴,可以看官方的ap...

    Java识堂
  • 用啤酒和乐高解释什么是API

    物流IT圈
  • docker--docker架构

    Docker uses a client-server architecture. The Docker client talks to the Docker ...

    eadela
  • 恕我直言,在座的各位根本不会写 Java!

    自 2013 年毕业后,今年已经是我工作的第 4 个年头了,总在做 Java 相关的工作,终于有时间坐下来,写一篇关于 Java 写法的一篇文章,来探讨一下如果...

    java思维导图

扫码关注云+社区

领取腾讯云代金券