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 微内核架构测试策略

  • 由需求文档确定本次需求的目标
  • 对各个插件需进行的测试
    • 单元测试:各模块测试,确认功能正常
    • 集成测试:内核与插件之间是否存在问题;插件与插件之间是否存在问题
    • 系统测试:实际运行环境,功能测试完成后再考虑兼容性、性能测试