【01】霍格沃兹测试开发学社技术学习笔记之测试开发体系介绍

互联网测试技术体系

经典技术架构【01】霍格沃兹测试开发学社技术学习笔记之测试开发体系介绍_第1张图片

到一家公司,首先需要了解业务线的技术架构,不同的技术架构采用的测试方法不同。

经典业务架构【01】霍格沃兹测试开发学社技术学习笔记之测试开发体系介绍_第2张图片

业务架构强调的是对业务的理解。

技术架构的质量保证

  • 用户体验层:UI,UE
  • 业务逻辑层:重要,梳理好业务模型,输出完整的测试用例【接口覆盖/代码覆盖】,需要有自动化测试用例 / 自动化框架去保证它
  • 技术架构层:需要使用合理的技术
  • 模块与单元层

测试技术体系

【01】霍格沃兹测试开发学社技术学习笔记之测试开发体系介绍_第3张图片

工作中如何切不同环境的接口

  • 绑定host
  • 切:解决dns的分配问题
  • 连代理,比如:Charles
  • nginx (找一个能控制的域名,然后去切各个集群)

总结

测试一个项目或者负责一个公司的业务线,需要了解业务的业务知识和技术知识。

  • 分析业务
    • 要理解业务,可以通过画用例图、时序图、状态图、活动图
  • 分析技术
    • 需要了解nginx、数据库、常用的服务(例:spring-boot,django、flask)、消息管道

一个实践

  • 学会配置域名指定到某个服务器上
  • 在服务器上搭建自己的web服务器【收流量】,nginx,或者网关服务
  • 往下游进行负载均衡,流量分拆到具体的python服务上/java服务进行相关的处理

分层测试策略

【01】霍格沃兹测试开发学社技术学习笔记之测试开发体系介绍_第4张图片

自动化测试策略

用户端自动化测试分层测试阶段

  • 功能测试
    • 研发单元测试:JUnit、Robolectric 不依赖真机或者模拟器
    • SDK 测试:Instrumentation 依赖真机或者模拟器
    • 集成测试:Espresso 单应用快速集成测试
    • 验收测试:Appium、ATX/AirTest、Calabash 跨应用测试
  • 非功能测试
    • 健壮性测试:Monkey Maxim AppCrawler
    • 兼容性测试:多设备分布式测试
    • 专项测试:性能测试、弱网测试、耗电量测试、卡顿测试、内存泄漏测试、安全测试

ui自动化改进策略

  • 测试策略:分层测试,功能自动化测试、智能遍历测试、人工测试
  • 测试框架:框架封装、异常处理
  • 业务模型:Page Object 模式、DDT、BDD、ATDD

服务端自动化测试

  • 使用 Mock 技术解耦与提高测试覆盖

接口测试框架

  • Python:Requests
  • Java:RestAssured
  • 简约的接口测试 DSL
  • 支持结构化解析 XML JSON 等

接口自动化测试用例自动生成

  • 静态生成:
    • 基于文档 Swagger YAPI
    • 基于代码分析语法树
  • 动态生成、录制、生成、回放:
    • 基于 Proxy 生成用例*
    • 基于插桩框架生成用例 JVM-SandBox ByteBuddy

测试框架设计

  • 领域建模
  • 自动化
  • 结果分析

测试框架分类

  • TDD:使用TDD框架结合领域DSL描述测试,Requests、RestAssured、Selenium、Appium
  • DDT:数据驱动测试,代表作 HttpRunner
  • ATDD:验收测试驱动开发,代表作 RobotFramework
  • BDD:行为驱动开发,代表作 Cucumber RobotFramework

持续交付与DevOps体系

【01】霍格沃兹测试开发学社技术学习笔记之测试开发体系介绍_第5张图片

测试左移体系

  • 需求分析与评审
  • 代码评审
  • 代码审计、代码静态分析
  • 自动化测试左移
  • 单元测试
  • 覆盖率统计:语法树
  • 应用监控
  • 测试用例生成

测试右移体系

  • 应用监控
  • 综合监控 质量监控 Continuous Quality Monitoring
  • A/B 测试
  • 金丝雀部署 Canary releases
  • TIP 线上测试
  • 故障注入 混沌工程 Chaos testing

精准测试体系

价值

  • 根据代码变更定位测试用例范围
  • 根据代码覆盖精准改进测试用例
  • 测试用例漏测精准定位
  • 基于大数据反推有效测试用例

关键技术

  • 静态分析
    • 语法树分析 javaparser antlr
    • 代码变更 git diff
    • 字节码分析 ASM
  • 动态分析
    • 覆盖率 JaCoCo
    • 插桩 JVM-SANDBOX ByteBuddy
    • 流程追踪 debug trace hook
  • 测试用例
    • 手工用例
    • 自动化用例 JUnit pytest

测试开发工程师进阶路线

【01】霍格沃兹测试开发学社技术学习笔记之测试开发体系介绍_第6张图片

你可能感兴趣的:(测试,学习笔记,学习)