随着软件发展到不同的阶段对自动化会有不同的测试需求,因此也产生了多种测试类型,然而万变不离其宗,一切皆可自动化

单元测试

单元测试也可以看做是代码层的测试,而但凡成熟的语言都附有单元测试框架,例如Java的Junit和TestNG,例如Python的Unittest和Pytest,在很多场合我都曾强调,单元测试才是自动化的核心,从某种意义上讲具备单元测试框架的语言就都能进行单元测试的自动化执行,而这最小单元可以是一个函数、一个方法、一个类或是一个模块

然而很多公司的研发团队虽然要求单元测试,但很少要求交付单元测试报告的,也有很多公司的单元测试是有自动化测试团队承担的,虽然测试无法穷尽,但测试不同的输入、边界值、非法值、默认值、异常情况等等是基本要求,而这些内容让研发团队自行去做,若非严格的制度限制,又如何能保证高速迭代的环境里真的能达到单元测试目的呢,研发人员的兴趣点绝大多数都在创造力上,他们更喜欢开发新东西,而对质量兴趣不大

功能测试

通常情况下,功能测试是测试团队介入的第一个阶段,开发人员将完成的功能特性写成文档输出给测试团队,测试团队根据这些文档开发设计测试用例,最后执行测试用例,对功能进行验证,理想情况下,如果功能特性文的规范写的足够清晰,测试团队应该在功能开发完成之前就开发完测试用例,甚至可以根据这些用例来编写自动化测试用例

然而尽管大多数情况下,都希望根据质量体系的规范输出详尽的文档,但实操起来确是各种问题:

  • 功能文档不规范,协作之间理解不一致,出现偏差,导致设计的用例变成了无效用例
  • 需求变更,导致功能特性更新,直接影响原先的测试用例设计
  • 新功能不稳定,导致测试用例无法顺利执行

以第三点新功能不稳定为例,过早的执行自动化测试会被不稳定的新功能阻碍住,一个严重的问题可能导致很多用例无法执行或执行失败,最终仍然需要人来干预执行结果的,认为进行判断甚至重复劳动,这就使得自动化不那么自动了,也就是说需要人值守,遇到问题后手动介入解决
测试开发也是软件开发的一个类型,其本身的质量不能和被测系统的质量纠缠到一起,否则会让问题的排查更为复杂

因此,如果非牛逼的研发团队,自动化测试用来辅助测试提升测试效率的角度出发更为实际,将其用于单元测试自动化,接口测试自动化,辅助自动化工具类将成为相当可行的选择,当功能相对稳定后,在全面的实现自动化测试。

再不然,对于功能测试而言非要强行引入自动化测试,那么测试用例本身的构建和修改一定要非常迅速,自动化测试框架需要提供快速构建用例的能力,以此来响应需求的变更,测试代码的健壮性和灵活性要求非常高,从而应对不稳定的功能产生的阻塞,并且还要对灾难性的错误进行测试环境上的自动恢复

回归测试

回归测试时软件开发迭代阶段的一种测试,主要是保障原有的功能没有因为新功能的引入而导致功能回退,在这个阶段自动化测试将得到大量的应用,相对于新功能的不稳定,回归测试的目标是已经发布的或者稳定的功能,相应的测试代码也相对比较稳定,自动化代码也已经经过多轮的完善,执行结果相对也会稳定的多

可用性测试及冒烟测试

可用性测试和冒烟测试都是一种快速验证的过程,测试周期很短,为保证这种快速验证,有些测试团队会针对性的快速开发一些用例,然而这些用例往往又和实际的功能测试验证点重复,因此在大量自动化测试用例中迅速抽取核心的测试用例集,然后将测试用例集集成到整个团队的CI中,将测试用例的执行放在编译的job后作为下游任务,当编译结束后自动执行下游任务,而对于一些持续CD情况中,自动化又需要集成在发布上线前的节点,来保证上线的包不存在基本功能问题

系统测试

系统测试是一个复杂的测试过程,其主要目的是使被测产品的众多功能甚至是产品本身的集合,以系统级别运行时进行行为级别的验证,其测试类型非常多样且复杂,例如:

  • 相对于功能测试比较固定的测试环境,系统测试环境比较复杂,配置繁多,不固定,不稳定,在这种情况下,自动化测试需要足够灵活的应对不同的环境配置来执行相同的测试目的
  • 测试用例的兼容性要足够强,稳定性足够强,且被测系统的稳定性足够强
  • 压力测试和性能测试的需求,自动化测试应能够快速的集成相应的标准性能测试设备或工具
  • 客户场景模拟测试,即便再聪明的测试工程师能够设计出种类繁多的测试方案,总有想象不到的场景,客户才是麻烦的最佳制造者,因此很多企业会花一些经历收集客户场景,并加入到系统测试的模拟场景中

可以看出,自动化测试要有足够的弹性来匹配不同的测试场景,而不是通过不同的测试用例来对应不同的场景,同时要具备足够的可扩展性,能够加入不同的第三方工具或者设备来满足更多的测试场景

自动化测试平台化[v1.0.0][自动化测试基本需求]相关推荐

  1. 自动化测试平台化[v1.0.0][模块化设计]

    模块化设计是一种拆分的设计思想,将一个产品拆分为很小的功能,根据需求将一些功能要素组合而形成一个相对独立的子系统,并通过特定的标准接口和外界通信,如此可以将不同功能的子系统进行不同形式的组装,形成不同 ...

  2. 自动化测试平台化[v1.0.0][Django模型]

    设计系统表 Django提供了完善的模型层,来创建和存取数据,它包含你所储存数据的必要字段和行为,每个模型对应数据库中唯一的一张表,模型避免了我们直接对数据库的操作 每个模型是一个Python类,集成 ...

  3. 自动化测试平台化[v1.0.0][微服务化测试平台]

    微服务字面上理解一个是微,另一个是服务,用大白话描述就是每个模块负责很小的功能范围视为微,而服务则是通过API的形式向其他模块提供服务 在早期的单体架构中,整个网站都运行在一套服务器集群上,共享计算机 ...

  4. 自动化测试平台化[v1.0.0][事件驱动理论]

    所谓事件驱动,就是不再以测试用例为基本单位,而是将所有的测试步骤.验证操作都作为一个系统中发生的事件来对待,如果将一个系统的所有操作都定义为单独的事件,那么就会有一个完整的事件库,测试用例开发者便可以 ...

  5. ZLMS教学管理平台系统V1.2.0最新版本发布,支持纯Web视频直播点播,还带运营在线支付功能!完全免费提供!...

    ZLMS教学管理平台系统V1.2.0最新版本发布,支持纯Web视频直播,点播!还带在线支付功能! ZLMS 开发团队在综合参考了各方面的合理建议之后,经过两个多月的紧张开发及测试,终于发布V1.2.0 ...

  6. 开源进展|区块链跨链协作平台WeCross v1.1.0发布

    WeCross是完全开源的区块链跨链协作平台,致力于促进跨行业.机构和地域的跨区块链信任传递和商业合作,有助于实现异构区块链系统之间安全可信的互操作. 2020年12月,WeCross v1.0.0正 ...

  7. python appium自动化测试平台开发,Python+Appium实现自动化测试

    一.环境准备 1.脚本语言:Python3.x    IDE:安装Pycharm 2.安装Java JDK .Android SDK 3.adb环境,path添加E:\Software\Android ...

  8. pythonui自动化测试平台_django+appium实现UI自动化测试平台(开源部分,可定制开发)...

    背景 UI自动化,在进行的过程中,难免会遇到平台化, 在实际的工作中,有的领导也会想要实现自动化测试的平台化.自动化平台化后,有了更为实际的成果, 在做UI自动化,很想吧现在的自动化的框架进行平台化, ...

  9. python自动化测试平台github_GitHub - DangKaio/FXTest: 接口自动化测试平台——python+flask版,支持http协议...

    FXTest测试平台 flask + Python3 实现的API自动化测试平台. 下面有介绍python flask部署相关的文章链接.为自己部署的记录文章 前后端开始进行分离,通过接口进行交互 敬 ...

最新文章

  1. 深度学习——无监督,自动编码器——尽管自动编码器与 PCA 很相似,but自动编码器既能表征线性变换,也能表征非线性变换;而 PCA 只能执行线性变换...
  2. docker run -it 如何退出_Docker学习笔记(4)容器的基本命令 1 - 你个小秃头
  3. 2022-01-04
  4. 视觉编码(Visual Encoding)
  5. linux 内核 面试 机制,请你来说一下linux内核中的Timer 定时器机制
  6. 蓝桥杯2015初赛-奇妙的数字
  7. Linux重启网卡的方法
  8. C++ 字符串指针和字符串指针数组详解
  9. 笔记本计算机无法开机怎么办,笔记本开机没反应,教您笔记本电脑开不了机怎么处理...
  10. CountDownLatch和CyclicBarrier的区别
  11. NodeSchool: JavaScript函数式编程
  12. 理解 position:relative 与 position:absolute
  13. c语言程序设计教程 郭浩志,C语言程序设计教程答案杨路明郭浩志.doc
  14. 计算机软件水平考试中级题目,计算机软考中级考试试题及答案
  15. 钳位型过压保护器件压敏电阻MOV的生产工艺你知道吗?
  16. 基于xxtea算法文件加密工具
  17. 智慧零售四年,来酷科技好大一盘棋
  18. 设计adm和CPU计算机组装方案,成熟的解决方案:CPU风扇(AMD和INTEL)的详细拆卸和安装方法(图形教程)...
  19. 如何使用MySQL存储Emoji表情,UTF-8和UTF-8MB4字符编码有何区别?
  20. echarts折线图常见配置项 分割线虚线样式 显示y轴符号 设置间隔

热门文章

  1. [知识点整理]中科院/国科大 网络与系统安全 期末考试知识点整理
  2. 详解 gRPC 客户端长连接机制实现
  3. 镜头和相机的匹配问题
  4. 最新尚硅谷2018SpringBoot教学视频(内含Docker)
  5. mine makefile studing processing
  6. 从零讲JAVA ,给你一条清晰地学习道路!该学什么就学什么!!
  7. python编写网页美化_五 使用并美化网页文本
  8. Java设计模式之Builder模式
  9. JS实现雪花飘落特效效果
  10. 新疆计算机系统集成资质年审,新疆涉密信息系统集成资质