04 微内核架构软件测试
Posted on Wed, 25 Dec 2024 17:12:24 +0800 by LiangMingJian
1.微内核架构概述
1.1 概念
- 内核是操作系统最基本的部分,它是为众多应用程序提供对计算机硬件的安全访问的一部分软件。
- 内核可以分为宏内核和微内核。
- 微内核就是精简的内核,集成的功能相对宏内核来说要少,要实现其他的功能可能需要在内核之外写程序,并且通过内核来调用实现。
- 宏内核相当于一个是一个中央集权控制中心,把内存管理,文件管理等功能全部管理,例如 Windows、linux。
1.2 结构
- 微内核架构由核心系统(内核系统)和插件模块两部分组成,其结构是在核心系统下挂载多样插件,所以也称为插件架构。
- 核心系统是软件能运行的最小模块,只运行最小的功能,其他主要功能和业务逻辑都通过插件模块来实现。
- 插件模块是具有专业处理和额外特性的独立组件,它是微内核架构增加或扩展核心系统的业务逻辑能力的关键。
- 插件模块通过 OSGI、消息机制、WEB 服务、直接点对点绑定等方法与核心系统进行连接。
- 插件模块通过注册插件注册表来告知核心系统自身的存在,注册表包含模块的名称、数据结构、远程访问协议。
- 插件模块将功能从架构中剥离出来了,降低了架构的复杂性。
- 插件模块之间是不互相通信的,保持了相互的独立性,减少插件模块间的依赖关系。
1.3 核心
- 基于服务封装到微内核,内核系统只运行的必须的服务。
- 插件模块负责整合某个特定领域的抽象。
- 内核负责通用的功能抽象,具体的业务功能由插件负责,通用的功能由内核负责。
- 采用基于事件的微内核通信,沟通各个不同的模块。
1.4 设计的关键点
- 插件管理:插件注册表
- 插件连接:连接规范(通信方式)
- 插件通信:通信机制
1.5 优点
- 整体灵活性高,能够快速响应不断变化的环境
- 易于部署,因为功能之间是隔离的,插件可以独立的加载和卸载
- 可定制性高,适应不同的开发需求
- 可测试性高,插件模块可以单独测
- 性能效率高
1.6 缺点
- 通信效率低,插件通过内核实现间接通信,需要更多开销
- 开发难度较高,微内核架构需要设计,因此实现起来比较复杂
- 通信规约,丰富的插件通信连接方式
- 版本控制复杂
2.微内核架构的测试
2.1 功能性测试
- 加载与移除插件
- 插件的使用测试
- 插件管理测试
2.2 信息安全性测试
- 插件的安全性进行评估
- 是否含有病毒
- 用户数据上传是否安全
- 是否窃取用户隐私
- 漏洞进行扫描
2.3 可靠性测试
- 应用的稳定性,是否崩溃,闪退
2.4 易用性测试
- 易操作、易理解
- 用户对已加载的插件管理或配置是否方便
2.5 微内核架构测试策略
- 由需求文档确定本次需求的目标
- 对各个插件需进行的测试
- 单元测试:各模块测试,确认功能正常
- 集成测试:内核与插件之间是否存在问题;插件与插件之间是否存在问题
- 系统测试:实际运行环境,功能测试完成后再考虑兼容性、性能测试