测试架构需要具备哪些能力

简介: 如果是一个简单的软件系统,没有太多用户使用,也没有较为复杂的业务逻辑,那架构设计几乎是不需要的。为什么呢?一般来说用户少意味着操作场景较少,没有高并发场景,也没有复杂的业务逻辑,只要功能正确实现可以正常使用即可。

这篇文章是软件工程系列知识总结的第五篇,同样我会以自己的理解来阐述软件工程中关于架构设计相关的知识。


相比于我们常见的研发架构师,测试架构师是近几年才出现的一个岗位,当然岗位title其实没有特殊的含义,在我看来测试架构师其实更像对某一类人的抽象称呼和对其复合能力的期待及认可。在聊这篇文章的主题之前,先来看这样一个问题:为什么软件项目需要架构设计?


为什么软件项目需要架构设计?


如果是一个简单的软件系统,没有太多用户使用,也没有较为复杂的业务逻辑,那架构设计几乎是不需要的。为什么呢?一般来说用户少意味着操作场景较少,没有高并发场景,也没有复杂的业务逻辑,只要功能正确实现可以正常使用即可。但在我们实际的工作场景中,我们面对的工作对象,常常具备这两个特点:


  • 需求不确定性较高;
  • 系统使用的技术较为复杂;


需求的复杂和不确定性大家都很熟悉,特别是做互联网To C业务的企业,需求的复杂和不确定性就更高。而技术的复杂性,主要来源于下面几点因素:


  1. 需求让技术变复杂:为了满足需求的复杂和不确定性,软件系统背后的技术应用就会很复杂;
  2. 人员让技术变复杂:团队里的同学来自不同背景不同企业,技术栈和工作经验各不相同,因此技术也会变复杂;
  3. 技术本身就很复杂:不同的编程语言、框架、技术组件、数据库、大数据、算法、ARVR等本身就是复杂的技术;
  4. 让软件稳定运行很复杂:线上服务要稳定运行会面临各种不确定性,比如峰值流量冲击、云服务不可用、网络问题;


因为技术的复杂性,会导致软件研发的过程变得很复杂,而软件工程本身就是为了摆脱软件质量危机,以软件开发为核心,对开发过程组织+对方法的运用+对工具的使用,来让软件系统达到稳定,而架构设计正好可以解决这些复杂性带来的问题。架构设计的有点如下:


  1. 降低需求变更带来的研发成本;
  2. 可以更好的组织人员高效协作;
  3. 架构设计本身就是对各种复杂技术的合理运用和组合;
  4. 架构设计可以保障线上服务更稳定的为业务目标达成提供支撑;


测试架构师需要解决什么问题?


看完了上面关于架构设计的优势,其实可以快速推导出测试架构要做的事情。


研发角度的架构设计要做的是:用最小人力成本满足需求开发和响应变更,用最合适的技术架构来保障软件的平稳运行。


简单来说就是:组织人力高效协作+合理设计技术框架+保障线上服务稳定运行。


从测试的角度出发,测试的本质是质量保障和推动研发效能提升。那么测试架构要做的事情是:


  1. 质量把控:从需求质量到研发过程质量以及线上质量的把控;
  2. 技术设计:针对不同项目,选择合适的技术栈来快速解决问题;
  3. 组织协调:组织测试团队的同学高效完成软件产品的质量保障工作;


测试架构师需要具备哪些能力?


大多数企业的组织架构是横向的,而测试团队在其中的定位既可能是横向的大团队,也可以是纵向跟着项目走的小团队。而测试架构师的角色,在我看来其实需要具备两点特质:


  1. 纵向的业务了解和技术深耕;
  2. 横向的拉通对齐和组织协调;


结合测试架构要做的事情以及在团队中的角色定位,我认为测试架构应该具备如下几点基础能力:


640.png


测试工程师如何培养架构能力?


与其说测试架构师是一个岗位和title,不如说他是具备某些复合能力的可以解决问题的人。


当然并不是说所有测试同学都需要变成测试架构师,这种测试架构能力在日常工作和学习中是可以培养的。


对于普通的测试工程师,想要培养测试架构能力,我建议可以先从如下几点入手:


  1. 分析需求:在日常工作中仔细分析需求,做好需求评审和风险评估;
  2. 技术选型:无论是自动化或者性能或者单元测试,尽可能选择成熟的技术方案并对其深入了解;
  3. 逐步迭代:解决问题的过程中,避免追求完美的方案,而是先解决眼下问题,再逐步深入分析和优化;
  4. 不断优化:解决问题后要不断验证其效果和效率,评估能否满足未来的变化,能否持续保障软件高质量运行;


你看,上面四点是不是和产品设计中提倡的mvp方案有类似的思路。


我在前面的文章中也提到过一个质量保障体系的总结,即:风险可识别+问题可追踪+结果可验证+数据可量化。


按照上面的几点坚持去做,迟早我们都会具备架构能力。

相关文章
|
29天前
|
数据采集 机器学习/深度学习 大数据
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
这篇文章详细介绍了C3D架构在行为检测领域的应用,包括训练和测试步骤,使用UCF101数据集进行演示。
32 1
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
|
23天前
|
缓存 Devops jenkins
专家视角:构建可维护的测试架构与持续集成
【10月更文挑战第14天】在现代软件开发过程中,构建一个可维护且易于扩展的测试架构对于确保产品质量至关重要。本文将探讨如何设计这样的测试架构,并将单元测试无缝地融入持续集成(CI)流程之中。我们将讨论最佳实践、自动化测试部署、性能优化技巧以及如何管理和扩展日益增长的测试套件规模。
41 3
|
3月前
|
Kubernetes Cloud Native 测试技术
探索软件测试的奥秘:从理论到实践深入理解云原生架构:从基础到实践
【8月更文挑战第28天】在软件开发的世界中,测试不仅是质量的守护者,也是创新的催化剂。本文将带你穿越软件测试的迷宫,从基础概念到高级策略,揭示如何通过测试提升软件质量和用户体验。我们将一起解码测试的核心原则,探索自动化测试的魅力,并学习如何设计有效的测试案例。无论你是测试新手还是资深开发者,这篇文章都将为你提供宝贵的见解和实用的技巧,让你在软件测试的道路上更加从容不迫。 【8月更文挑战第28天】本文旨在为读者揭示云原生技术的核心概念、优势以及如何在实际项目中应用。通过深入浅出的方式,我们将探索云原生的多个方面,包括容器化、微服务架构、持续集成和持续部署(CI/CD)、以及如何利用Kubern
|
5月前
|
JavaScript 前端开发 安全
在众多的测试工具中,Cypress以其强大的端到端测试能力和与TypeScript的完美结合,成为了前端开发者的首选
【6月更文挑战第11天】Cypress结合TypeScript,打造前端测试新体验。TypeScript增强代码可读性和稳定性,Cypress提供强大端到端测试,二者结合提升测试准确性和可靠性。通过类型定义、自定义命令和断言,优化测试代码;Cypress模拟真实用户操作、时间旅行功能及内置调试工具,确保应用功能性能。推荐前端开发者使用TypeScript+Cypress进行端到端测试。
70 2
|
1月前
|
存储 消息中间件 运维
架构升级的救星!流量回放自动化测试的必备指南
大家好,我是小米,一名29岁的技术宅。今天分享一个物联网领域的实用技能——流量回放自动化测试。系统重构后,测试工作量巨大,本文介绍如何通过日志收集和数据回放进行自动化测试,包括离线、实时和并行回放模式,帮助快速定位Bug,提升测试效率和系统稳定性。欢迎关注我的微信公众号“软件求生”,获取更多技术干货!
39 3
|
3月前
|
缓存 Java Maven
SpringCloud基于Eureka的服务治理架构搭建与测试:从服务提供者到消费者的完整流程
Spring Cloud微服务框架中的Eureka是一个用于服务发现和注册的基础组件,它基于RESTful风格,为微服务架构提供了关键的服务注册与发现功能。以下是对Eureka的详细解析和搭建举例。
|
4月前
|
测试技术 调度 微服务
微服务架构下的两类测试
【7月更文挑战第16天】微服务架构下的两类测试:流量录制回放测试和仿真环境测试
|
3月前
|
运维 Kubernetes 索引
揭秘ChaosBlade的Helm安装双架构:一步到位,让系统故障测试变得前所未有的简单和高效!
【8月更文挑战第7天】在多变的IT环境中,确保应用的稳定与可用至关重要。混沌工程通过故意引入故障来增强系统韧性。ChaosBlade是一款开源混沌实验工具,支持多样化的故障注入。结合Kubernetes的包管理器Helm,可简化ChaosBlade在集群中的部署。本文介绍如何使用Helm安装ChaosBlade双架构版本,包括添加仓库、选择版本、安装配置及验证等步骤,助力高效实施混沌工程,提升系统稳定性和可靠性。
49 0
|
5月前
|
存储 测试技术 数据库
在django中的测试架构
【6月更文挑战第13天】该文主要讨论Django项目的测试数据查询和测试架构。文中展示了如何创建`TestCase`子类进行测试,并提供了执行测试的不同选项,如增加详细信息、并行运行和选择性运行特定测试。
48 2
在django中的测试架构
|
5月前
|
运维 安全 网络架构
【计算巢】网络模拟工具:设计与测试网络架构的有效方法
【6月更文挑战第1天】成为网络世界的超级英雄,利用网络模拟工具解决复杂架构难题!此工具提供安全的虚拟环境,允许自由设计和测试网络拓扑,进行性能挑战和压力测试。简单示例代码展示了创建网络拓扑的便捷性,它是网络设计和故障排查的“魔法棒”。无论新手还是专家,都能借助它探索网络的无限可能,开启精彩冒险!快行动起来,你会发现网络世界前所未有的乐趣!
67 2
【计算巢】网络模拟工具:设计与测试网络架构的有效方法
下一篇
无影云桌面