移动网站建设厂家北京商城网站开发
news/
2025/9/23 19:44:22/
文章来源:
移动网站建设厂家,北京商城网站开发,阿里云网站建设基本流程,企业招聘官网导语#xff1a;工欲善其事#xff0c;必先利其器#xff1b;士欲宣其义#xff0c;必先读其书。后台开发作为互联网技术领域的掌上明珠#xff0c;一直都是开发者们的追逐的高峰。本文将从后台开发所涉及到的技术术语出发#xff0c;基于系统开发、架构设计、网络通信等… 导语工欲善其事必先利其器士欲宣其义必先读其书。后台开发作为互联网技术领域的掌上明珠一直都是开发者们的追逐的高峰。本文将从后台开发所涉及到的技术术语出发基于系统开发、架构设计、网络通信等几个方面让大家对后台开发有一个清晰的了解讲解全面易懂。 目录 一、系统开发 1. 高内聚/低耦合 2. 过度设计 3. 过早优化 4. 重构 (Refactoring) 5. 破窗效应 6. 互不信任原则 7. 持久化 (Persistence) 8. 临界区 9. 阻塞/非阻塞 10. 同步/异步 11. 并发/并行 二、架构设计 1. 高并发 (High Concurrency) 2. 高可用 (High Availability) 3. 读写分离 4. 冷备/热备 5. 异地多活 6. 负载均衡 (Load Balance) 7. 动静分离 8. 集群 9. 分布式 10. CAP理论 11. BASE理论 12. 水平扩展/垂直扩展 13. 平行扩容 14. 弹性扩容 15. 状态同步/帧同步 三、网络通信 1. 连接池 2. 断线重连 3. 会话保持 4. 长连接/短连接 5. 流量控制/拥塞控制 6. 惊群效应 7. NAT 四、故障异常 1. 宕机 2. coredump 3. 缓存穿透/击穿/雪崩 4. 500/501/502/503/504/505 5. 内存溢出/内存泄漏 6. 句柄泄漏 7. 死锁 8. 软中断/硬中断 9. 毛刺 10. 重放攻击 11. 网络孤岛 12. 数据倾斜 13. 脑裂 五、监控告警 1. 服务监控 2. 全链路监控 六、服务治理 1. 微服务 2. 服务发现 3. 流量削峰 4. 版本兼容 5. 过载保护 6. 服务熔断 7. 服务降级 8. 熔断VS降级 9. 服务限流 10. 故障屏蔽 七、测试方法 1. 黑盒/白盒测试 2. 单元/集成/系统/验收测试 3. 回归测试 4. 冒烟测试 5. 性能测试 6. 基准测试 7. A/B测试 8. 代码覆盖测试 八、发布部署 1. DEV/PRO/FAT/UAT 2. 灰度发布 3. 回滚 (Rollback) 一、系统开发 1. 高内聚/低耦合 高内聚指一个软件模块是由相关性很强的代码组成只负责一项任务也就是常说的单一责任原则。模块的内聚反映模块内部联系的紧密程度。 模块之间联系越紧密其耦合性就越强模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。一个完整的系统模块与模块之间尽可能的使其独立存在。通常程序结构中各模块的内聚程度越高模块间的耦合程度就越低。 2. 过度设计 过度设计就是进行了过多的面向未来的设计或者说把相对简单的事情想复杂了过度追求模块化、可扩展性、设计模式等为系统增加了不必要的复杂度。 3. 过早优化 过早指的不是在开发过程的早期而是在还没弄清楚需求未来的变化的走向的时候。你的优化不仅可能导致你无法很好地实现新的需求而且你对优化的预期的猜测有可能还是错的导致实际上你除了把代码变复杂以外什么都没得到。 正确的方法是先有质量地实现你的需求写够testcase然后做profile去找到性能的瓶颈这个时候才做优化。 4. 重构 (Refactoring) 重构Refactoring就是通过调整程序代码改善软件的质量、性能使其程序的设计模式和架构更趋合理提高软件的扩展性和维护性。 5. 破窗效应 又称破窗理论破窗效应Broken windows theory是犯罪学的一个理论。此理论认为环境中的不良现象如果被放任存在会诱使人们仿效甚至变本加厉。一幢有少许破窗的建筑为例如果那些窗不被修理好可能将会有破坏者破坏更多的窗户。最终他们甚至会闯入建筑内如果发现无人居住也许就在那里定居或者纵火。 应用在软件工程上就是一定不能让系统代码或者架构设计的隐患有冒头的机会否则随着时间的推移隐患会越来越重。反之一个本身优质的系统会让人不由自主的写出优质的代码。 6. 互不信任原则 指在程序运行上下游的整个链路中每个点都是不能保证绝对可靠的任何一个点都可能随时发生故障或者不可预知的行为包括机器网络、服务本身、依赖环境、输入和请求等因此要处处设防。 7. 持久化 (Persistence) 持久化是将程序数据在临时状态和持久状态间转换的机制。通俗的讲就是临时数据比如内存中的数据是不能永久保存的持久化为持久数据比如持久化至数据库或者本地磁盘中能够长久保存。 8. 临界区 临界区用来表示一种公共资源或者说是共享数据可以被多个线程使用但是每一次只能有一个线程使用它一旦临界区资源被占用其他线程要想使用这个资源就必须等待。 9. 阻塞/非阻塞 阻塞和非阻塞通常形容多线程间的相互影响。比如一个线程占用了临界区资源那么其它所有需要这个资源的线程就必须在这个临界区中进行等待等待会导致线程挂起。这种情况就是阻塞。此时如果占用资源的线程一直不愿意释放资源那么其它所有阻塞在这个临界区上的线程都不能工作。而非阻塞允许多个线程同时进入临界区。 10. 同步/异步 通常同步和异步是指函数/方法调用方面。 同步就是在发出一个函数调用时在没有得到结果之前该调用就不返回。异步调用会瞬间返回但是异步调用瞬间返回并不代表你的任务就完成了他会在后台起个线程继续进行任务等任务执行完毕后通过回调callback或其他方式通知调用方。 11. 并发/并行 并行(parallel)指在同一时刻有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看二者都是一起执行的。 并发(concurrency)指在同一时刻只能有一条指令执行但多个进程指令被快速的轮换执行使得在宏观上具有多个进程同时执行的效果但在微观上并不是同时执行的只是把时间分成若干段使多个进程快速交替的执行。 二、架构设计 1. 高并发 (High Concurrency) 由于分布式系统的问世高并发High Concurrency通常是指通过设计保证系统能够同时并行处理很多请求。通俗来讲高并发是指在同一个时间点有很多用户同时的访问同一 API 接口或者 Url 地址。它经常会发生在有大活跃用户量用户高聚集的业务场景中。 2. 高可用 (High Availability) 高可用HAHigh Availability是分布式系统架构设计中必须考虑的因素之一它通常是指一个系统经过专门的设计以减少停工时间而保持其服务的高度可用性。 3. 读写分离 为了确保数据库产品的稳定性很多数据库拥有双机热备功能。也就是第一台数据库服务器是对外提供增删改业务的生产服务器第二台数据库服务器主要进行读的操作。 4. 冷备/热备 冷备两个服务器一台运行一台不运行做为备份。这样一旦运行的服务器宕机就把备份的服务器运行起来。冷备的方案比较容易实现但冷备的缺点是主机出现故障时备机不会自动接管需要主动切换服务。 热备即是通常所说的active/standby方式服务器数据包括数据库数据同时往两台或多台服务器写。当active服务器出现故障的时候通过软件诊测一般是通过心跳诊断将standby机器激活保证应用在短时间内完全恢复正常使用。当一台服务器宕机后自动切换到另一台备用机使用。 5. 异地多活 异地多活一般是指在不同城市建立独立的数据中心“活”是相对于冷备份而言的冷备份是备份全量数据平时不支撑业务需求只有在主机房出现故障的时候才会切换到备用机房而多活是指这些机房在日常的业务中也需要走流量做业务支撑。 6. 负载均衡 (Load Balance) 负载均衡是对多台服务器进行流量分发的负载均衡服务。可在多个实例间自动分配应用程序的对外服务能力通过消除单点故障提升应用系统的可用性让您实现更高水平的应用程序容错能力从而无缝提供分配应用程序流量所需的负载均衡容量为您提供高效、稳定、安全的服务。 7. 动静分离 动静分离是指在web服务器架构中将静态页面与动态页面或者静态内容接口和动态内容接口分开不同系统访问的架构设计方法进而提升整个服务访问性能和可维护性。 8. 集群 单台服务器的并发承载能力总是有限的当单台服务器处理能力达到性能瓶颈的时将多台服务器组合起来提供服务这种组合方式称之为集群集群中每台服务器就叫做这个集群的一个“节点”每个节点都能提供相同的服务从而成倍的提升整个系统的并发处理能力。 9. 分布式 分布式系统就是将一个完整的系统按照业务功能拆分成很多独立的子系统每个子系统就被称为“服务”分布式系统将请求分拣和分发到不同的子系统让不同的服务来处理不同的请求。在分布式系统中子系统独立运行它们之间通过网络通信连接起来实现数据互通和组合服务。 10. CAP理论 CAP理论指的是在一个分布式系统中Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性)不能同时成立。 一致性它要求在同一时刻点分布式系统中的所有数据备份都相同或者都处于同一状态。 可用性在系统集群的一部分节点宕机后系统依然能够正确的响应用户的请求。 分区容错性系统能够容忍节点之间的网络通信的故障。 简单的来说在一个分布式系统中最多能支持上面的两种属性。但显然既然是分布式注定我们是必然要进行分区既然分区我们就无法百分百避免分区的错误。因此我们只能在一致性和可用性去作出选择。 在分布式系统中我们往往追求的是可用性它的重要性比一致性要高那么如何实现高可用这里又有一个理论就是 BASE 理论它给 CAP 理论做了进一步的扩充。 11. BASE理论 BASE 理论指出 Basically Available基本可用 Soft state软状态 Eventually consistent最终一致性 BASE 理论是对 CAP 中的一致性和可用性进行一个权衡的结果理论的核心思想就是我们无法做到强一致但每个应用都可以根据自身的业务特点采用适当的方式来使系统达到最终一致性。 12. 水平扩展/垂直扩展 水平扩展 Scale Out通过增加更多的服务器或者程序实例来分散负载从而提升存储能力和计算能力。 垂直扩展 Scale Up 提升单机处理能力。 垂直扩展的方式又有两种 1增强单机硬件性能例如增加CPU核数如32核升级更好的网卡如万兆升级更好的硬盘如SSD扩充硬盘容量如2T扩充系统内存如128G; 2提升单机软件或者架构性能例如使用Cache来减少IO次数使用异步来增加单服务吞吐量使用无锁数据结构来减少响应时间 13. 平行扩容 与水平扩展类似。集群服务器中的节点均为平行对等节点当需要扩容时可以通过添加更多节点以提高集群的服务能力。一般来说服务器中关键路径如服务器中的登录、支付、核心业务逻辑等都需要支持运行时动态平行扩容。 14. 弹性扩容 指对部署的集群进行动态在线扩容。弹性扩容系统可以根据实际业务环境按照一定策略自动地添加更多的节点包括存储节点、计算节点、网络节点来增加系统容量、提高系统性能或者增强系统可靠性或者同时完成这三个目标。 15. 状态同步/帧同步 状态同步状态同步是指服务器负责计算全部的游戏逻辑并且广播这些计算的结果客户端仅仅负责发送玩家的操作以及表现收到的游戏结果。 特征状态同步安全性高逻辑更新方便断线重连快但是开发效率较低网络流量随游戏复杂度增加服务器需要承载更大压力。 帧同步服务端只转发消息不做任何逻辑处理各客户端每秒帧数一致在每一帧都处理同样的输入数据。 特征帧同步需要保证系统在相同的输入下要有相同的输出。帧同步开发效率高流量消耗低而且稳定对服务器的压力非常小。但是网络要求高断线重连时间长客户端计算压力大。 三、网络通信 1. 连接池 预先建立一个连接缓冲池并提供一套连接使用、分配、管理策略使得该连接池中的连接可以得到高效、安全的复用避免了连接频繁建立、关闭的开销。 2. 断线重连 由于网络波动造成用户间歇性的断开与服务器的连接待网络恢复之后服务器尝试将用户连接到上次断开时的状态和数据。 3. 会话保持 会话保持是指在负载均衡器上的一种机制可以识别客户端与服务器之间交互过程的关连性在作负载均衡的同时还保证一系列相关连的访问请求都会分配到一台机器上。用人话来表述就是在一次会话过程中发起的多个请求都会落到同一台机器上。 4. 长连接/短连接 通常是指TCP的长连接和短连接。长连接就是建立TCP连接后一直保持这个连接一般会中间彼此发送心跳来确认对应的存在中间会做多次业务数据传输一般不会主动断开连接。短连接一般指建立连接后执行一次事务后如http请求然后就关掉这个连接。 5. 流量控制/拥塞控制 流量控制防止发送方发的太快耗尽接收方的资源从而使接收方来不及处理。 拥塞控制防止发送方发的太快使得网络来不及处理产生拥塞进而引起这部分乃至整个网络性能下降的现象严重时甚至会导致网络通信业务陷入停顿。 6. 惊群效应 惊群效应也有人叫做雷鸣群体效应不过叫什么简言之惊群现象就是多进程多线程在同时阻塞等待同一个事件的时候休眠状态如果等待的这个事件发生那么他就会唤醒等待的所有进程或者线程但是最终却只可能有一个进程线程获得这个时间的“控制权”对该事件进行处理而其他进程线程获取“控制权”失败只能重新进入休眠状态这种现象和性能浪费就叫做惊群。 7. NAT NATNetwork Address Translation网络地址转换就是替换IP报文头部的地址信息。NAT通常部署在一个组织的网络出口位置通过将内部网络IP地址替换为出口的IP地址提供公网可达性和上层协议的连接能力。 四、故障异常 1. 宕机 宕机一般情况下指的就是计算机主机出现意外故障而死机。其次一些服务器例如数据库死锁也可以称为宕机一些服务器的某些服务挂掉了就可以这么说。 2. coredump 当程序出错而异常中断时OS会把程序工作的当前状态存储成一个coredunmp文件。通常情况下coredump文件包含了程序运行时的内存寄存器状态堆栈指针内存管理信息等。 3. 缓存穿透/击穿/雪崩 缓存穿透缓存穿透是指查询一个一定不存在的数据由于缓存是不命中时需要从数据库查询查不到数据则不写入缓存这将导致这个不存在的数据每次请求都要到数据库去查询进而给数据库带来压力。 缓存击穿缓存击穿是指热点key在某个时间点过期的时候而恰好在这个时间点对这个Key有大量的并发请求过来从而大量的请求打到db。 缓存雪崩缓存雪崩是指缓存中数据大批量到过期时间而查询数据量巨大引起数据库压力过大甚至down机。 与缓存击穿不同的是存击穿是热点key失效缓存雪崩是大量的key同时失效。 4. 500/501/502/503/504/505 500 Internal Server Error内部服务错误一般是服务器遇到意外情况而无法完成请求。可能原因: 1、程序错误例如ASP或者PHP语法错误2、高并发导致系统资源限制不能打开过多的文件所致。 501Not implemented服务器不理解或不支持请求的HTTP请求。 502Bad GatewayWEB服务器故障可能是由于程序进程不够请求的php-fpm已经执行但是由于某种原因而没有执行完毕最终导致php-fpm进程终止。可能原因1、Nginx服务器php-cgi进程数不够用2、PHP执行时间过长3、php-cgi进程死掉 503Service Unavailable服务器目前无法使用。系统维护服务器暂时的无法处理客户端的请求这只是暂时状态。可以联系下服务器提供商。 504Gateway Timeout服务器504错误表示超时是指客户端所发出的请求没有到达网关请求没有到可以执行的php-fpm一般是与nginx.conf的配置有关。 505HTTP Version Not Supported服务器不支持请求中所用的 HTTP 协议版本。HTTP 版本不受支持 除了500错误可能是程序语言错误其余的报错都大概可以理解为服务器或者服务器配置出现问题。 5. 内存溢出/内存泄漏 内存溢出内存溢出Out Of Memory指程序申请内存时没有足够的内存供申请者使用或者说给了你一块存储int类型数据的存储空间但是你却存储long类型的数据那么结果就是内存不够用此时就会报错OOM,即所谓的内存溢出。 内存泄漏内存泄漏Memory Leak指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放造成系统内存的浪费导致程序运行速度减慢甚至系统崩溃等严重后果。 6. 句柄泄漏 句柄泄漏是进程在调用系统文件之后没有释放已经打开的文件句柄。一般句柄泄漏后的现象是机器变慢CPU飙升出现句柄泄漏的cgi或server的CPU使用率增加。 7. 死锁 死锁是指两个或两个以上的线程在执行过程中由于竞争资源或者由于彼此通信而造成的一种阻塞的现象若无外力作用它们都抑制处于阻塞状态并无法进行下去此时称系统处于死锁状态或系统产生了死锁。 8. 软中断/硬中断 硬中断我们通常所说的中断指的是硬中断(hardirq)。 主要是用来通知操作系统系统外设状态的变化。 软中断1、通常是硬中断服务程序对内核的中断2、为了满足实时系统的要求中断处理应该是越快越好。 linux为了实现这个特点当中断发生的时候硬中断处理那些短时间就可以完成的工作而将那些处理事件比较长的工作放到中断之后来完成也就是软中断(softirq)来完成。 9. 毛刺 在短暂的某一刻服务器性能指标如流量、磁盘IO、CPU使用率等远大于该时刻前后时间段。毛刺的出现代表这服务器资源利用不均匀不充分容易诱发其他更严重的问题。 10. 重放攻击 攻击者发送一个目的主机已接收过的包来达到欺骗系统的目的主要用于身份认证过程破坏认证的正确性。它是一种攻击类型这种攻击会不断恶意或欺诈性地重复一个有效的数据传输重放攻击可以由发起者也可以由拦截并重发该数据的敌方进行。攻击者利用网络监听或者其他方式盗取认证凭据之后再把它重新发给认证服务器。 11. 网络孤岛 网络孤岛指集群环境中部分机器与整个集群失去网络连接分裂为一个小集群并且发生数据不一致的状况。 12. 数据倾斜 对于集群系统一般缓存是分布式的即不同节点负责一定范围的缓存数据。我们把缓存数据分散度不够导致大量的缓存数据集中到了一台或者几台服务节点上称为数据倾斜。一般来说数据倾斜是由于负载均衡实施的效果不好引起的。 13. 脑裂 脑裂是指在集群系统中部分节点之间网络不可达而引起的系统分裂不同分裂的小集群会按照各自的状态提供服务原本的集群会同时存在不一致的反应造成节点之间互相争抢资源系统混乱数据损坏。 五、监控告警 1. 服务监控 服务监控主要目的在服务出现问题或者快要出现问题时能够准确快速地发现以减小影响范围。服务监控一般有多种手段按层次可划分为 系统层CPU、网络状态、IO、机器负载等 应用层进程状态、错误日志、吞吐量等 业务层服务/接口的错误码、响应时间 用户层用户行为、舆情监控、前端埋点 2. 全链路监控 服务拨测服务拨测是探测服务应用可用性的监控方式通过拨测节点对目标服务进行周期性探测主要通过可用性和响应时间来度量拨测节点通常有异地多个。 节点探测节点探测是用来发现和追踪不同的机房数据中心节点之间网络可用性和通畅性的监控方式主要通过响应时间、丢包率、跳数来度量探测方法一般是ping、mtr或其他私有协议。 告警过滤对某些可预知的告警进行过滤不进入告警统计的数据如少量爬虫访问导致的http响应500错误业务系统自定义异常信息等。 告警去重当一个告警通知负责人后在这个告警恢复之前不会继续收到相同的告警。 告警抑制为了减少由于系统抖动带来的干扰还需要实现抑制例如服务器瞬间高负载可能是正常的只有持续一段时间的高负载才需要得到重视。 告警恢复开发/运维人员不仅需要收到告警通知还需要收到故障消除告警恢复正常的通知。 告警合并对同一时刻产生的多条相同告警进行合并如某个微服务集群同一时刻出现多个子服务负载过高的告警需要合并成为一条告警。 告警收敛有时某个告警产生时往往会伴随着其它告警。这时可以只对根本原因产生告警其它告警收敛为子告警一并发送通知。如云服务器出现CPU负载告警时往往伴随其搭载的所有系统的可用性告警。 故障自愈实时发现告警预诊断分析自动恢复故障并打通周边系统实现整个流程的闭环。 六、服务治理 1. 微服务 微服务架构是一种架构模式它提倡将单一应用程序划分成一组小的服务服务之间相互协调、互相配合为用户提供最终价值。每个服务运行在其独立的进程中服务和服务之间采用轻量级的通信机制相互沟通通常是基于HTTP的Restful API).每个服务都围绕着具体的业务进行构建并且能够被独立的部署到生产环境、类生产环境等。 2. 服务发现 服务发现是指使用一个注册中心来记录分布式系统中的全部服务的信息以便其他服务能够快速的找到这些已注册的服务。服务发现是支撑大规模 SOA 和微服务架构的核心模块它应该尽量做到高可用。 3. 流量削峰 如果观看抽奖或秒杀系统的请求监控曲线你就会发现这类系统在活动开放的时间段内会出现一个波峰而在活动未开放时系统的请求量、机器负载一般都是比较平稳的。为了节省机器资源我们不可能时时都提供最大化的资源能力来支持短时间的高峰请求。所以需要使用一些技术手段来削弱瞬时的请求高峰让系统吞吐量在高峰请求下保持可控。削峰也可用于消除毛刺使服务器资源利用更加均衡和充分。常见的削峰策略有队列限频分层过滤多级缓存等。 4. 版本兼容 在升级版本的过程中需要考虑升级版本后新的数据结构是否能够理解和解析旧数据新修改的协议是否能够理解旧的协议以及做出预期内合适的处理。这就需要在服务设计过程中做好版本兼容。 5. 过载保护 过载是指当前负载已经超过了系统的最大处理能力过载的出现会导致部分服务不可用如果处置不当极有可能引起服务完全不可用乃至雪崩。过载保护正是针对这种异常情况做的措施防止出现服务完全不可用的现象。 6. 服务熔断 服务熔断的作用类似于我们家用的保险丝当某服务出现不可用或响应超时的情况时为了防止整个系统出现雪崩暂时停止对该服务的调用。 7. 服务降级 服务降级是当服务器压力剧增的情况下根据当前业务情况及流量对一些服务和页面有策略的降级以此释放服务器资源以保证核心任务的正常运行。降级往往会指定不同的级别面临不同的异常等级执行不同的处理。 根据服务方式可以拒接服务可以延迟服务也有时候可以随机服务。 根据服务范围可以砍掉某个功能也可以砍掉某些模块。 总之服务降级需要根据不同的业务需求采用不同的降级策略。主要的目的就是服务虽然有损但是总比没有好。 8. 熔断VS降级 相同点目标一致都是从可用性和可靠性出发为了防止系统崩溃用户体验类似最终都让用户体验到的是某些功能暂时不可用 不同点触发原因不同服务熔断一般是某个服务下游服务故障引起而服务降级一般是从整体负荷考虑 9. 服务限流 限流可以认为服务降级的一种限流就是限制系统的输入和输出流量已达到保护系统的目的。一般来说系统的吞吐量是可以被测算的为了保证系统的稳定运行一旦达到的需要限制的阈值就需要限制流量并采取一些措施以完成限制流量的目的。比如延迟处理拒绝处理或者部分拒绝处理等等。 10. 故障屏蔽 将故障机器从集群剔除以保证新的请求不会分发到故障机器。 七、测试方法 1. 黑盒/白盒测试 黑盒测试不考虑程序内部结构和逻辑结构主要是用来测试系统的功能是否满足需求规格说明书。一般会有一个输入值一个输入值和期望值做比较。 白盒测试主要应用在单元测试阶段主要是对代码级的测试针对程序内部逻辑结构测试手段有语句覆盖、判定覆盖、条件覆盖、路径覆盖、条件组合覆盖 2. 单元/集成/系统/验收测试 软件测试一般分为4个阶段单元测试、集成测试、系统测试、验收测试。 单元测试单元测试是对软件中的最小可验证单元进行检查和验证如一个模块、一个过程、一个方法等。单元测试粒度最小一般由开发小组采用白盒方式来测试主要测试单元是否符合“设计”。 集成测试集成测试也叫做组装测试通常在单元测试的基础上将所有的程序模块进行有序的、递增的测试。集成测试界于单元测试和系统测试之间起到“桥梁作用”一般由开发小组采用白盒加黑盒的方式来测试既验证“设计”又验证“需求”。 系统测试系统测试时将经过集成测试的软件作为计算机系统的一部分与系统中其他部分结合起来在实际运行环境下进行一系列严格有效的测试以发现软件潜在的问题保证系统的正常运行。系统测试的粒度最大一般由独立测试小组采用黑盒方式来测试主要测试系统是否符合“需求规格说明书”。 验收测试验收测试也称交付测试是针对用户需求、业务流程进行的正式的测试以确定系统是否满足验收标准由用户、客户或其他授权机构决定是否接受系统。验收测试与系统测试相似主要区别是测试人员不同验收测试由用户执行。 3. 回归测试 当发现并修改缺陷后或在软件中添加新的功能后重新测试。用来检查被发现的缺陷是否被改正并且所做的修改没有引发新的问题。 4. 冒烟测试 这一术语源自硬件行业。对一个硬件或硬件组件进行更改或修复后直接给设备加电。如果没有冒烟则该组件就通过了测试。在软件中“冒烟测试”这一术语描述的是在将代码更改嵌入到产品的源树中之前对这些更改进行验证的过程。 冒烟测试是在软件开发过程中的一种针对软件版本包的快速基本功能验证策略是对软件基本功能进行确认验证的手段并非对软件版本包的深入测试。 比如对于一个登录系统的冒烟测试我们只需测试输入正确的用户名、密码验证登录这一个核心功能点至于输入框、特殊字符等可以在冒烟测试之后进行。 5. 性能测试 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试两者可以结合进行。 通过负载测试确定在各种工作负载下系统的性能目标是测试当负载逐渐增加时系统各项性能指标的变化情况。 压力测试是通过确定一个系统的瓶颈或者不能接受的性能点来获得系统能提供的最大服务级别的测试。 6. 基准测试 基准测试Benchmark也是一种性能测试方式用来测量机器的硬件最高实际运行性能以及软件优化的性能提升效果, 同时也可以用来识别某段代码的CPU或者内存效率问题. 许多开发人员会用基准测试来测试不同的并发模式, 或者用基准测试来辅助配置工作池的数量, 以保证能最大化系统的吞吐量. 7. A/B测试 A/B测试是用两组及以上随机分配的、数量相似的样本进行对比如果实验组和对比组的实验结果相比在目标指标上具有统计显著性那就可以说明实验组的功能可以导致你想要的结果从而帮你验证假设或者做出产品决定。 8. 代码覆盖测试 代码覆盖Code coverage是软件测试中的一种度量描述程式中源代码被测试的比例和程度所得比例称为代码覆盖率。在做单元测试时代码覆盖率常常被拿来作为衡量测试好坏的指标甚至用代码覆盖率来考核测试任务完成情况比如代码覆盖率必须达到80%或 90%。于是乎测试人员费尽心思设计案例覆盖代码。 八、发布部署 1. DEV/PRO/FAT/UAT DEVDevelopment environment开发环境用于开发人员调试使用版本变化较大。 FATFeature Acceptance Test environment功能验收测试环境用于软件测试人员测试使用。 UATUser Acceptance Test environment用户验收测试环境用于生产环境下的功能验证可作为预发布环境。 PROProduction environment生产环境正式线上环境。 2. 灰度发布 灰度发布是指在升级版本过程中通过分区控制白名单控制等方式对一部分用户先升级产品特性而其余用户则保持不变当一段时间后升级产品特性的用户没有反馈问题就逐步扩大范围最终向所有用户开放新版本特性灰度发布可以保证整体系统的稳定在初始灰度的时候就可以发现、修改问题以保证其影响度。 3. 回滚 (Rollback) 指的是程序或数据处理错误时将程序或数据恢复到上一次正确状态(或者是上一个稳定版本)的行为。 ---------------------
作者iMike 来源微信公众号 - 运维之美Hi-Linux 转自云加社区 原文https://cloud.tencent.com/developer/article/1498018 版权声明本文为作者原创文章转载请附上博文链接
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/913671.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!