软件测试应用技术--架构相关的注意事项

news/2024/5/20 10:06:01

一、分层架构软件测试

1.1、分层架构层级

第一层:表示层(客户端)
第二层:服务层(服务端)
第三层:业务逻辑层(服务端)
第四层:数据层(数据库)

1.2、分层架构的优点

(1)复用性强
(2)利于合作开发
(3)分层独立
(4)维护方便

1.3、分层架构的缺点

(1)性能下降
(2)成本增加

1.4、分层架构各层级的质量特性

1.4.1、表示层的质量特性

WEB端涉及的质量特性:可移植性、易用性、性能效率
PC端涉及的质量特性:可移植性、易用性、功能性
移动端涉及的质量特性:可移植性、易用性、性能效率、功能性、安全性

1.4.2、 服务层的质量特性

(1)功能性:输入、输出、处理
(2)信息安全性:SQL注入、信息泄露、身份验证、访问控制、明文传输
(3)性能效率:接口服务的响应时间、并发、服务端资源的使用情况

1.4.3、 业务逻辑层的质量特性

(1)功能性:功能点测试、业务流程测试,通常采用黑盒测试
(2)信息安全性:代码审计、,常见的代码问题有编码错误、编码规范、成都、复杂度、注释解释

1.4.4、 数据层的质量特性

(1)可靠性
(2)性能效率
(3)安全性:用户及口令管理、授权和审计管理、数据加密
(4)正确性与完整性
(5)功能性
(6)可移植性

二、事件驱动架构软件测试

2.1、事件驱动架构的组成

(1)事件(通知)
(2)事件队列
(3)事件分发器
(4)事件通道
(5)事件处理逻辑

2.2、事件驱动架构优点

(1)擅长解决工程领域中以交互为主的问题
(2)事件与事件处理逻辑、事件处理逻辑之间都得到了成分的解耦,从而使得软件易于扩展新的功能,还改善了软件的可维护性和可移植性,并且使得事件的分布式处理变得可能。
(3)交互时的响应性能较好。

2.2、事件驱动架构缺点

事件驱动架构的实现是异步编程,开发相对复杂,与事件处理相关的缺陷也非常常见,同时在实践中,此类缺陷导致的失效往往比较难以复现和定位。

2.3 事件驱动架构的质量特性

(1)功能性
(2)可靠性
(3)性能效率
(4)易用性
(5)信息安全性
(6)兼容性
(7)维护性
(8)可移植性

三、维内核架构软件测试

3.1、微内核架构的特点和核心

微内核架构的特点是模块高度独立,可移植。 微内核架构模式的核心是:
(1)基本服务封装到微内核。
(2)插件模块负责整合某个特定领域的抽象,微内核负责通用的功能抽象。
(3)应用程序、服务器通过基于“事件”的微内核通信,用来沟通各个不同的模块。

3.2、微内核架构的优点

(1)整体灵活性高,能够快速响应不断变化的环境
(2)易于部署,因为功能之间是隔离的,插件可以独立的加载和卸载
(3)可定制性高,适应不同的开发需求
(4)可测试性高,插件模块可以单独测试,能够非常简单的被核心系统模拟出来进行演示,或者在对核心系统很小影响,甚至没有影响的情况下对下一个特定特性进行原型展示
(5)性能高

3.3、微内核架构的缺点

(1)通信效率低,插件通过核心实现间接通信,需要更多开销
(2)开发难度高,微内核架构需要设计,因此实现起来比较复杂
(3)通信规约,丰富的插件通信连接方式
(4)版本控制复杂

3.4、微内核架构的质量特性

(1)功能性:微内核如那件货系统安装与卸载插件、插件的具体功能使用测试,以手工为主。
(2)信息安全性:查看是否有病毒、上传用户数据、且听用户隐私等。
(3)可靠性:对集成插件后的应用进行测试,查看插件和整体应用的稳定性,是否会出现集成后的崩溃、闪退、兼容性降低、效率变低等问题。
(4)易用性:体现易操作、易理解,有好的向导,方便用户对已加载的插件进行管理或配置插件。

四、分布式架构软件测试

4.1、分布式架构的特点和组件

特点:系统内部有多个独立的计算机组成
组件:面向不同业务领域的分布式架构,可能有不同的组件,但大多数情况下将至少包含以下组件
(1)分布式业务框架 (2)分布式缓存和管理组件 (3)分布式消息组件 (4)分布式数据库 (5)分布式文件系统

4.2、分布式架构的优点

(1) 支持大量并发用户
(2)容错和灾备能力
(3)可灵活扩展

4.3、分布式架构的缺点

(1)高维护成本
(2)数据/事务处理上的一致性难题
(3)逻辑耦合强,定位问题困难

4.4、分布式架构的质量特性

(1)数据一致性
(2)事务处理
(3)并发和互斥
(4)远过程调用和通信
(5)功能性
(6)运维


http://www.mrgr.cn/p/66686133

相关文章

无人零售,重塑购物新纪元

在这个快节奏的时代,科技的每一次跃进都在悄无声息地改变着我们的生活方式。而今,无人零售正以雷霆之势,颠覆传统购物模式,为我们带来前所未有的便捷与智能体验。想知道无人零售如何彻底改变我们的购物方式吗?跟随我&a…

Vue3管理系统-路由设置+表单校验

一、配置路由规则 1.在views 下创建文件夹分类,搭好架子 2.配置路由规则 在router下Index.js import { createRouter, createWebHistory } from vue-routerconst router createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [//一级路由//这里可以…

栈数据结构

1,概念 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈 顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈(push)&#x…

set-cookie字段,cookie文件介绍+原理,如何查看cookie文件,在基于http协议服务器的代码实现,cookie存在问题+解决(会话机制)

目录 Set-Cookie 引入 介绍 原理 描述 图解 保存"cookie文件"的方法 内存级 文件级 查看cookie文件 示例 实现 介绍 代码 核心代码 全部代码 示例 cookie存在的问题 介绍 存在的必要性 如何解决 问题梳理 引入 会话机制 -- 解决信息泄漏…

微软正在自主构建一个名为 MAI-1 的大型语言模型(不依赖 OpenAI)

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

栈的实现以及c语言解决括号匹配问题

一、栈的实现 1、头文件 typedef int STDataType; typedef struct Stack {STDataType* _a;int _top; // 栈顶int _capacity; // 容量 }Stack; // 初始化栈 void StackInit(Stack* ps); // 入栈 void StackPush(Stack* ps, STDataType data); // 出栈 void StackPop(S…

于光电容积波PPG和心电图ECG的连续血压估计深度学习模型

具体的软硬件实现点击 http://mcu-ai.com/ MCU-AI技术网页_MCU-AI人工智能 血压监测是监测人们健康状况的途径之一。早期发现血压异常可以帮助患者得到早期治疗并降低与心血管疾病相关的死亡率。因此,有一种机制来实时监测患者的血压变化是非常有价值的。在本文中,我们提出了…

向各位请教一个问题

这是菜鸟上的一道题目,单单拿出来问问大家,看看能不能解惑 ,谢谢各位! 题目25:求12!3!...20!的和 解题思路:这个题不知道为什么我用DEV C 5.11显示出来为0.000000,可能版本有问题?&a…

Unet简单结构概述

总体结构代码 class UNet(nn.Module):def __init__(self, n_channels, n_classes, bilinearFalse):super(UNet, self).__init__()self.n_channels n_channelsself.n_classes n_classesself.bilinear bilinearself.inc (DoubleConv(n_channels, 64))self.down1 (Down(64, …

美易官方:美股周一收高,道指连续第四个交易日上涨

收盘之际,美股市场周一的表现可圈可点,各大股指纷纷走高,道指更是连续第四个交易日实现上涨。这一积极态势不仅凸显了投资者对于全球经济的信心,也反映了市场对于未来前景的乐观预期。 道指涨176.59点,涨幅为0.46%&…

测试平台开发:Django开发实战之注册界面实现(下)

1、 评论和用户建立关联 1)修改model: 软关联还是硬关联默认值是什么关联方被删除怎么办如何根据评论找到用户如何根据用户找到评论 然后执行命令: pdm run M pdm run init 这样在表里面就会多一个user_id的字段 2)修改视图&#xf…

kraken2 最新版安装,极简模式

kraken2 git clone https://github.com/DerrickWood/kraken2.gitcd kraken2./install_kraken2.sh /opt/krakenvim .bashrc ---------------- # Kraken export PATH"/opt/kraken:$PATH" ----------------source .bashrc Note: 不晓得是不是我设置了清华源&#xff0c…

R语言数据探索与分析-中国GDP回归分析与预测

首先读取数据: 将GDP列转换为常规数字格式 # 可视化GDP数据 # 查看数据结构 # 确保数据类型是正确的 第一张图片展示了中国2002年到2021年间的GDP增长趋势,这是一个时间序列图,其中横轴表示年份,纵轴表示GDP(单位未…

学成在线 - 第3章任务补偿机制实现 + 分块文件清理

7.9 额外实现 7.9.1 任务补偿机制 问题:如果有线程抢占了某个视频的处理任务,如果线程处理过程中挂掉了,该视频的状态将会一直是处理中,其它线程将无法处理,这个问题需要用补偿机制。 单独启动一个任务找到待处理任…

ReSharper 显示使用的颜色

在代码里面输入类似于 Colors.Red 的代码,将会自动在代码后面显示一个对应颜色的小方块。本文将告诉大家这个功能的开关在哪里如 ReSharper 的官方文档描述,此功能的效果如下或如下此功能名叫 “Highlight color usages” 可以对代码里面的颜色进行颜色标识,比如在代码提示或…

2009-2022年上市公司华证ESG评级评分数据(含细分项)

2009-2022年上市公司华证ESG评级评分数据(含细分项) 1、时间:2009-2022年 2、来源:华证ESG 3、指标:证券代码、证券简称、综合评级、年度、综合得分、E评级、E得分、S评级、S得分、G评级、G得分 4、范围&#xff1…

[开发|安卓] Android Studio 开发环境配置

Android Studio下载 Android Studio下载地址 下载SDK依赖 1.点击左上角菜单 2.选择工具 3.打开SDK管理中心 4.下载项目目标Android版本的SDK 配置安卓虚拟机 1.打开右上角的设备管理 2.选择合适的手机规格 3.下载并选择项目目标Android系统 4.点击完成配置 …

Hive Views 视图

Hive Views 视图 在Hive中,视图(Views)是虚拟表,它只包含查询定义,而不包含实际的数据。视图可以简化复杂查询,隐藏数据结构,提供安全性,以及促进数据访问和重用。 创建视图的语法如…

DI-engine强化学习入门(十又二分之一)如何使用RNN——数据处理、隐藏状态、Burn-in

一、数据处理 用于训练 RNN 的 mini-batch 数据不同于通常的数据。 这些数据通常应按时间序列排列。 对于 DI-engine, 这个处理是在 collector 阶段完成的。 用户需要在配置文件中指定 learn_unroll_len 以确保序列数据的长度与算法匹配。 对于大多数情况, learn_un…