软件测试架构师究竟干哪些工作?
(Test Ninja 是朱少民的笔名)
1. 什么是测试架构?
为了更好地阐述测试架构师做的工作,先说说什么是测试架构?
众所周知,“架构(architecture)”一词来源于建筑,具有 “建筑学、体系结构” 等含义。建筑学的内涵要比体系结构丰富得多,但其核心往往关注其造型和体系结构的设计,综合考虑环境需求和使用者的需求,进行空间上合理的功能分配,满足安全、经济、适用、美观等需求,达到人和环境的和谐。
今天在软件行业,谈到架构,更多是通过高度的抽象来实现体系结构的设计,包括技术架构、产品架构、业务架构等等。那么测试架构体现在哪些方面呢?主要有:
测试过程建模,包括V模型、W模型、TMap模型、TPI模型等; 被测对象建模,包括有限状态机、业务流程图、时序图等; 测试平台或测试技术设施架构体系、自动化测试框架等; 测试模式,如分层测试模式(面向接口测试)、契约测试、探索式测试等; 测试用例/脚本结构,如何组织测试用例/测试脚本。
就像建筑学对建筑的价值、软件系统架构对软件产品研发的价值,测试架构对软件测试有重大价值——极大地影响测试效率和质量。可以说,测试需求分析在前,测试架构在后,然后才是测试用例设计、测试执行和测试评估。具体说,其价值有以下几点:
能够以简洁直观方式讲清楚某类复杂的测试问题;
指导后续详细的测试设计;
基于被测对象的模型可以自动生产测试用例或脚本,提高测试效率;
基于被测对象的模型可以完成充分的测试,确保测试的质量;
如提高可测试性、分层测试模式、精准测试,提升测试效率;
良好的测试平台架构,确保测试平台的稳定性、性能和安全性、扩展性等。
......
了解国内外技术趋势,做好测试团队的技术规划,确保团队朝着正确的技术方向持续前进;
结合公司具体情况,引入和推广适合公司需要的测试新技术;
了解业界的普遍实践,对测试自动化或测试工具所涉及的技术提供很好的支持,或引导团队向正确的方向努力,不断地改进自动化测试工作;
制定设计软件系统的测试策略和方法,特别是帮助团队在系统的性能、安全性、稳定性、可靠性等方面的测试方法、技术线路和质量标准;
需要以全局的视角来把握软件测试项目,不仅要关注功能性需求,而且要关注非功能性测试,帮助团队确定测试的技术方案。
被测对象建模、复杂系统的业务建模等;
测试平台架构体系设计、自动化测试框架设计,包括重要的测试工具的研究、评估与设计;
复杂系统的非功能特性的测试设计(如全链路压力测试、混沌工程实验设计)等,参与系统的性能、可靠性分析,并提出为改善系统性能、可靠性而进行的设计修改、代码重构等方面的具体建议;
参与业务架构、系统技术架构的评审,审查系统架构、系统构件/组件及其接口关系等设计是否合理,确保系统的可测试性等。
在复杂的系统测试中,帮助团队分析、解决测试中出现的技术难题(Troubleshooting),帮助做好缺陷的隔离。
帮助改进测试流程、提高测试效率。
4. 测试架构师与开发架构师的区别
中间省去 “ 业务价值与精益、敏捷实践、
效能度量与可视化、云原生与研发效能
DDD与低代码实践、运维效能实践
研发流程改进与优化、效能落地实践
质量工程、自动化测试演进
专项测试、DevOps与工具链”等专场议题,
扫下面二维码或点击下面 “阅读原文” 了解详情