系统健壮性设计

系统健壮性设计

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L9B8S7Dg-1637823824501)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211124095803319.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LIU1LBla-1637823824512)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211124095814931.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4MpJyokx-1637823824523)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211124095830046.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GnI1khNR-1637823824528)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211124095844072.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Arh2xzIi-1637823824533)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211124095906575.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YoslQA8n-1637823824539)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211124095918799.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ve3ESQTw-1637823824551)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211124095936945.png)]

在这里插入图片描述

1.entity作为传入的参数,不单要进行非空校验,而且要进行具体参数的校验,

2.根据id查询获得users对象,要判断users是否为空

3.注释//生成用户列表 很模糊,要注释成为 生成属于这个角色的用户列表

4.1,3,4是错误的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1GDKMzv6-1637823824580)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211124103349044.png)]

1.魔法数字应该定义为常量

2.log的时候出错奥带上messageVo否则不知到什么地方出错

3.直接使用toString输出日志

在这里插入图片描述
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MfGNYJ3N-1637823824589)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211124103722921.png)]

F5 龙卷风的最高等级
在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-InbfeEH5-1637823824597)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211124103912546.png)]

软件负载

-20211124103929791.png)]

同机房,同单元优先 1ms一下

跨机房 5ms左右

跨区域 200ms以上

新加坡发起调用请求,中国有机房美国也有机房,根据区域优先的规则,应当优先调用中国的机房

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HVjGeePZ-1637823824603)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211124104245183.png)]

1.限流:限制一部分用户的访问,限制西部地区的用户的访问,限制恶意用户的访问,加入黑名单,短时间内多次访问的用户。

2.降级:对用户的使用体验降级

​ eg:双十一汪汪的头像全部点亮,减少服务器的负荷。

​ eg:es使用了10台服务器搭建起来的集群提供搜索服务,此时挂了5台,呢么就将搜素的匹配精度下调50%

3.熔断:停止全部都服务保证核心的流程

4.灾备:保证遇到问题的时候可以恢复到正常状态的能力

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cg6PLUwm-1637823824606)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211124105035648.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kg6kUPac-1637823824608)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211124105120138.png)]

控制台是基于springboot搭建的可以自己设置规则

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NVktkXHz-1637823824613)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211124105408131.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4bMScWCF-1637823824616)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211124105432227.png)]

只能做到准时,再怎么快也无法做到实时的监控

在这里插入图片描述

1.主备准实时备份,一般1主3备

2.杜绝物理删除,只使用逻辑删除

3.定时对数据进行冷备份(日志快照)

4.为了防止自然灾害,要往云端备份,防止遇到自然灾害导致数据物理销毁

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aEOFNzSA-1637823824624)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211124110452558.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S6rMil8U-1637823824629)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211125100603961.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o9PlBk4Z-1637823824631)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211125100949603.png)]

一开始如果是public接口那么如果需要改变成为,protect、private会很麻烦,因为已经有很多人直接调用了这个接口,所以一开始设定的范围呀小一点,使用private这样修改会简单

封装是一种思维方式,自己用private,子类用protect

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JvDDQjMU-1637823824633)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211125101613764.png)]

弱网的情况下更能看出一个app的质量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hsqENzlV-1637823824637)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211125102138848.png)]

坏处是有时间差的,无论怎么迅速,一定是有时间差

双电式是最好的 但是价格昂贵

起到一个稳压的作用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8Plxjw2r-1637823824642)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211125102831144.png)]

有其他机房但是不敢切换,因为怕数据不一致

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-21S0uuAH-1637823824644)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211125103212366.png)]

同城灾备切换的时候时间差会小,dtc的同步框架

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wp7yIS8I-1637823824646)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211125103359515.png)]

思维就是力量

在这里插入图片描述
在这里插入图片描述

代码覆盖率

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aaeBs03k-1637823824665)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211125104359885.png)]

90%覆盖率高还是低?有些覆盖没有用

a3,b4,c==5 还要测 组合的,之后的代码如果还有if、else 的嵌套,路径+条件覆盖才算覆盖,很复杂很多

代码覆盖率低的有问题 ,代码覆盖率高也不一定就没有问题,所以自动化测试不是没用的,但是想要全部的覆盖也需要写很多的脚本,

所以自动化测试其实是针对固定的输入输出效率高

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wOqoC1DM-1637823824669)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211125144051821.png)]

netflix拍网剧的公司,提供了很多技术的潮流

在这里插入图片描述

在这里插入图片描述
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pPz18URb-1637823824688)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211125144949365.png)]

asm侵入式的代码侵入inject

### 软件测试中健壮性测试的设计方法与最佳实践 健壮性测试(Robustness Testing)是软件测试的一个重要组成部分,旨在验证软件在异常条件下的行为是否符合预期。以下是关于健壮性测试设计方法和最佳实践的详细说明。 #### 1. 健壮性测试的目标 健壮性测试的主要目标是确保软件系统能够在面对意外输入、边界条件以及极端环境时保持稳定运行[^1]。这种测试通常关注以下方面: - 验证系统对无效输入的处理能力。 - 检查系统在资源不足或超负荷情况下的表现。 - 确保系统能够从故障中恢复并继续正常运行。 #### 2. 健壮性测试的设计方法 以下是几种常见的健壮性测试设计方法: - **边界值分析(Boundary Value Analysis, BVA)** 边界值分析是一种常用的测试技术,用于检查系统在边界条件下的行为。例如,如果一个函数接受整数范围为 [1, 100] 的输入,则应测试 0、1、99 和 100 等边界值[^2]。 - **等价类划分(Equivalence Partitioning)** 将输入数据划分为若干个等价类,每个等价类中的任意输入都应产生相同的结果。通过选择代表性的测试用例,可以减少冗余测试[^1]。 - **错误注入测试(Error Injection Testing)** 在系统中人为引入错误,例如模拟网络中断、磁盘空间不足或内存泄漏,以观察系统的响应行为。这种方法有助于发现潜在的健壮性问题[^3]。 - **压力测试(Stress Testing)** 对系统施加超出正常负载的压力,例如高并发用户访问或大量数据处理,以评估其在极端条件下的表现[^1]。 #### 3. 健壮性测试的最佳实践 为了提高健壮性测试的有效性,可以遵循以下最佳实践: - **尽早进行健壮性测试** 健壮性测试应尽可能早地融入开发周期,以便及早发现和修复问题[^2]。 - **覆盖多种异常场景** 设计测试用例时,应考虑各种可能的异常场景,包括但不限于无效输入、空指针引用、文件权限问题等。 - **使用自动化工具** 利用自动化测试工具(如 NUnit、JUnit 或 PyTest)可以显著提高测试效率,并确保每次代码变更后都能执行全面的回归测试。 - **记录和分析测试结果** 对每次测试的结果进行详细记录,并定期分析测试数据,以便识别潜在的健壮性问题模式。 - **编写专门的测试用例** 针对特定的修复或功能改进,编写专门的测试用例以验证其健壮性。例如,在修复负数订单金额的问题时,可以设计如下测试用例: ```csharp [TestClass] public class OrderServiceTests { [TestMethod] public void TestNegativeOrderAmount() { // Arrange var orderService = new OrderService(); var order = new Order { Amount = -10 }; // Act & Assert try { orderService.PlaceOrder(order); Assert.Fail("Expected an exception for negative order amount."); } catch (ArgumentException ex) { Console.WriteLine($"Caught expected exception: {ex.Message}"); } } } ``` #### 4. 注意事项 - 在设计健壮性测试时,应避免仅依赖于正常输入条件,而忽略异常和边界情况。 - 测试用例的设计应尽量涵盖所有可能的输入组合,但也要注意避免不必要的重复测试。 - 对于关键模块或易受影响的功能,应增加额外的测试覆盖率以降低风险[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值