知识卡片

架构测试的三个理解方向与两种存在形态

普通读书笔记卡

内容

相比架构分析和评估,软件架构测试方面的研究成果和相关文献都比较少。从已发表的文献和资料看,对”软件架构测试”的理解可以分成三个完全不同的方向:如何对软件架构自身进行测试?如何利用软件架构来指导软件测试(即架构作为测试设计的输入)?如何设计软件测试架构(即测试系统本身的架构)?书中坦承,第一个方向(对架构自身进行测试)的研究成果和应用成果都很少,几乎没有看到成熟的工作,比较接近的是”基于规约的软件测试”这类研究。至于究竟该如何测试架构自身,答案与软件架构存在的两种形态密切相关。处于开发态的软件架构(静态软件架构)以文档、模型、数据的形式存在,是开发早期阶段的智力产品,难以在真实环境中实际运行——因此它的质量保障属于开发过程早期阶段的质量保障问题,同时也是内部质量保障问题,主要依赖度量和评估、分析和验证这些手段(也就是本书第13、14、15章前面介绍的那些方法),而不是传统意义上”运行代码、观察输出”的测试。处于运行态的软件架构,是架构设计思想被融入代码之后,在实际运行过程中体现出的稳定性、安全性、可靠性和性能——对这种形态,需要借助插桩技术、监控技术来研究如何测试,但书中明确指出相关成果还处于实验阶段,尚未成熟。这个划分揭示了一个容易被忽视的事实:绝大多数所谓”架构分析方法”(SAAM、ATAM及其衍生方法)本质上都是针对静态架构的评审、评估手段,而非传统意义上会真正”运行”起来验证的测试;针对动态架构、运行态架构真正意义上的测试方法,至今仍然是一片相对空白的研究领域。

参考来源

- 位置:《软件架构理论与实践》第15章《软件架构分析与测试》"15.3 软件架构测试"节(源文件:_epub-src/OEBPS/text00123.html) - 结论依据:原文说明"对软件架构测试的理解包含三个方面:①如何对软件架构自身进行测试?②如何利用软件架构进行软件测试?③如何设计软件测试架构?……针对第一个方面的研究成果和应用成果都比较少",并说明处于开发态和运行态的软件架构各自的测试手段和成熟度差异,直接支撑本卡片结论。 - 原始内容:处于开发态的软件架构……属于软件开发过程早期阶段的质量保障问题,同时也属于内部质量保障问题。内部质量保障主要采用度量和评估、分析和验证等主要手段……我们会借助插桩技术、监控技术等研究如何对软件架构进行测试,相关成果还处于实验阶段。