Complete collection of back-end development terms

Complete collection of back-end development terms

If a worker wants to do something well, he must first sharpen his tools; if a scholar wants to declare his righteousness, he must first read his book. As the apple of the eye in the field of Internet technology, background development has always been the peak of the pursuit of developers.

最后更新 3/31/2022 11:31 AM
云加社区
预计阅读 36 分钟
分类
share
标签
rear end

导语 工欲善其事,必先利其器;士欲宣其义,必先读其书。后台开发作为互联网技术领域的掌上明珠,一直都是开发者们的追逐的高峰。本文将从后台开发所涉及到的技术术语出发,基于系统开发、架构设计、网络通信等几个方面让大家对后台来发有一个清晰的了解,讲解全面易懂。(作者:willlv)

system development

  1. High cohesion/low coupling

高内聚指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。模块的内聚反映模块内部联系的紧密程度。

模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。一个完整的系统,模块与模块之间,尽可能的使其独立存在。通常程序结构中各模块的内聚程度越高,模块间的耦合程度就越低。

  1. over-designed

Over-design means making too much future-oriented design or complicating relatively simple things, excessively pursuing modularity, extensibility, design patterns, etc., adding unnecessary complexity to the system.

  1. premature optimization

Premature does not mean early in the development process, but when the future changes in requirements are not yet clear. Not only may your optimizations prevent you from being able to implement new requirements well, but your guesses about the optimization's expectations may still be wrong, resulting in you actually getting nothing but complicating the code.

正确的方法是,先有质量地实现你的需求,写够testcase,然后做profile去找到性能的瓶颈,这个时候才做优化。

  1. Refactoring

Refactoring is to improve the quality and performance of software by adjusting program code, make the design pattern and architecture of the program more reasonable, and improve the scalability and maintainability of the software.

  1. broken window effect

Also known as the broken window theory, the broken windows theory is a theory in criminology. This theory holds that if undesirable phenomena in the environment are allowed to exist, they will induce people to follow suit or even intensify them. Take a building with a few broken windows. If those windows are not repaired, vandals may destroy more windows. Eventually they may even break into the building and if they find it uninhabited, they may settle there or set fire to it.

应用在软件工程上就是,一定不能让系统代码或者架构设计的隐患有冒头的机会,否则随着时间的推移,隐患会越来越重。反之,一个本身优质的系统,会让人不由自主的写出优质的代码。

  1. Principle of mutual distrust

It means that in the entire link upstream and downstream of program operation, every point cannot be guaranteed to be absolutely reliable. Any point may have failures or unpredictable behavior at any time, including machine networks, services themselves, dependent environments, inputs and requests, etc., so we must be guarded everywhere.

  1. Persistence

Persistence is a mechanism for transitioning program data between temporary and persistent states. In layman's terms, temporary data (such as data in memory, which cannot be permanently stored) is persisted into persistent data (such as persisted to a database or local disk, which can be stored for a long time).

  1. critical section

Critical section is used to represent a common resource or shared data. It can be used by multiple threads, but at a time, only one thread can use it. Once the critical section resource is occupied, other threads want to use this resource. They must wait.

  1. Blocking/non-blocking

Blocking and non-blocking often describe the interaction between multiple threads. For example, if a thread occupies critical section resources, all other threads that need this resource must wait in this critical section, and waiting will cause the thread to hang. This condition is blockage. At this point, if the thread occupying the resource has been unwilling to release the resource, then all other threads blocking this critical section cannot work. Non-blocking allows multiple threads to enter the critical section at the same time.

  1. synchronous/asynchronous

Generally synchronous and asynchronous refer to the function/method invocation aspect.

Synchronization means that when a function call is issued, the call does not return until a result is obtained. The asynchronous call will return instantly, but the instantaneous return of the asynchronous call does not mean that your task is completed. It will start a thread in the background to continue the task, and notify the caller by callback callback or other means after the task is completed.

  1. Concurrent/Parallel
  • 并行(parallel)

Refers to multiple instructions executing simultaneously on multiple processors at the same time. So whether from a micro or macro perspective, both are implemented together.

  • 并发(concurrency)

This means that only one instruction can be executed at the same time, but multiple process instructions are quickly executed in rotation, so that on the macro level, it has the effect of multiple processes executing simultaneously, but on the micro level, it is not executed simultaneously, but only divides the time into several segments, allowing multiple processes to execute quickly and alternately.

architecture design

  1. High concurrency

Due to the advent of distributed systems, high concurrency usually refers to the design that ensures that the system can process many requests in parallel at the same time. In layman's terms, high concurrency means that at the same time, many users access the same API interface or Url address at the same time. It often occurs in business scenarios with a large number of active users and a high concentration of users.

  1. High Availability

High Availability (HA) is one of the factors that must be considered in the design of distributed system architecture. It usually means that a system is specially designed to reduce downtime while maintaining the high availability of its services.

  1. read-write separation

In order to ensure the stability of database products, many databases have dual-machine hot standby functions. That is to say, the first database server is a production server that provides external additions, deletions and modifications; the second database server mainly performs reading operations.

  1. Cold standby/hot standby
  • 冷备:两个服务器,一台运行,一台不运行作为备份。这样一旦运行的服务器宕机,就把备份的服务器运行起来。冷备的方案比较容易实现,但冷备的缺点是主机出现故障时备机不会自动接管,需要主动切换服务。

  • 热备:即是通常所说的active/standby方式,服务器数据包括数据库数据同时往两台或多台服务器写。当 active 服务器出现故障的时候,通过软件诊测(一般是通过心跳诊断)将 standby 机器激活,保证应用在短时间内完全恢复正常使用。当一台服务器宕机后,自动切换到另一台备用机使用。

  1. different living

异地多活一般是指在不同城市建立独立的数据中心,“活”是相对于冷备份而言的,冷备份是备份全量数据,平时不支撑业务需求,只有在主机房出现故障的时候才会切换到备用机房,而多活,是指这些机房在日常的业务中也需要走流量,做业务支撑。

  1. Load Balancer

Load Balancer is a Load Balancer service that distributes traffic to multiple servers. It can automatically allocate the external service capabilities of an application among multiple instances, improve the availability of the application system by eliminating single points of failure, allowing you to achieve a higher level of application fault tolerance, thereby seamlessly providing the Load Balancer capacity needed to allocate application traffic, providing you with efficient, stable and safe services.

  1. dynamic and static separation

Separation of dynamic and static refers to the architectural design method of separating static pages from dynamic pages or static content interfaces and dynamic content interfaces from different systems in the web server architecture, thereby improving the overall service access performance and maintainability.

  1. cluster

The concurrent carrying capacity of a single server is always limited. When the processing capacity of a single server reaches a performance bottleneck, multiple servers are combined to provide services. This combination method is called a cluster. Each server in the cluster is called a "node" of this cluster. Each node can provide the same service, thereby doubling the concurrent processing capacity of the entire system.

  1. distributed

A distributed system divides a complete system into many independent subsystems according to business functions. Each subsystem is called a "service". The distributed system sorts and distributes requests to different subsystems, allowing different services to handle different requests. In a distributed system, subsystems operate independently, and they are connected through network communication to achieve data interoperability and composite services.

  1. CAP theorem

CAP theory means that in a distributed system, Consistency, Availability, and Partition Tolerance cannot be established at the same time.

  • Consistency: It requires that at the same point in time, all data backups in a distributed system are the same or in the same state.

  • Availability: After some nodes in the system cluster are down, the system can still correctly respond to user requests.

  • Zoning fault tolerance: The system can tolerate failures in network communication between nodes.

简单的来说,在一个分布式系统中,最多能支持上面的两种属性。但显然既然是分布式注定我们是必然要进行分区,既然分区,我们就无法百分百避免分区的错误。因此,我们只能在一致性和可用性去作出选择。

In distributed systems, what we often pursue is availability, which is more important than consistency. So how to achieve high availability, there is another theory here, namely BASE theory, which further expands the CAP theory.

  1. BASE theory

BASE theory points out:

  • Basically Available

  • Soft state

  • Eventually consistent

BASE 理论是对 CAP 中的一致性和可用性进行一个权衡的结果,理论的核心思想就是:我们无法做到强一致,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。

  1. Horizontal expansion/vertical expansion
  • 水平扩展 Scale Out 通过增加更多的服务器或者程序实例来分散负载,从而提升存储能力和计算能力。

  • 垂直扩展 Scale Up 提升单机处理能力。

There are two ways to expand vertically:

(1)增强单机硬件性能,例如:增加 CPU 核数如 32 核,升级更好的网卡如万兆,升级更好的硬盘如 SSD,扩充硬盘容量如 2T,扩充系统内存如 128G;

(2)提升单机软件或者架构性能,例如:使用 Cache 来减少 IO 次数,使用异步来增加单服务吞吐量,使用无锁数据结构来减少响应时间;

  1. parallel expansion

Similar to horizontal expansion. The nodes in the cluster server are all parallel peer nodes. When capacity needs to be expanded, more nodes can be added to improve the service capabilities of the cluster. Generally speaking, critical paths in the server (such as login, payment, core business logic, etc. in the server) need to support dynamic parallel expansion at runtime.

  1. elastic expansion

Refers to dynamic online expansion of deployed clusters. The elastic capacity expansion system can automatically add more nodes (including storage nodes, computing nodes, and network nodes) according to certain policies based on the actual business environment to increase system capacity, improve system performance or enhance system reliability, or achieve these three goals at the same time.

  1. Status synchronization/frame synchronization
  • Status synchronization: Status synchronization means that the server is responsible for calculating all game logic and broadcasting the results of these calculations. The client is only responsible for sending the player's actions and displaying the received game results.

特征:状态同步安全性高,逻辑更新方便,断线重连快,但是开发效率较低,网络流量随游戏复杂度增加,服务器需要承载更大压力。

  • 帧同步:服务端只转发消息,不做任何逻辑处理,各客户端每秒帧数一致,在每一帧都处理同样的输入数据。

Feature: Frame synchronization needs to ensure that the system has the same output under the same input. Frame synchronization development is efficient, low and stable traffic consumption, and puts very little pressure on the server. However, the network requirements are high, the disconnection and reconnection time are long, and the computing pressure on the client side is high.

network communication

  1. connection pool

Establish a connection buffer pool in advance and provide a set of connection usage, allocation, and management policies, so that connections in the connection pool can be reused efficiently and safely, avoiding the overhead of frequent connection establishment and closure.

  1. disconnect and reconnect

Due to network fluctuations, the user intermittently disconnected from the server. After the network is restored, the server attempts to connect the user to the status and data at the time of the last disconnection.

  1. session persistence

Session persistence refers to a mechanism on the Load Balancer that can identify the correlation of the interaction process between the client and the server. While performing Load Balancer, it also ensures that a series of related access requests are distributed to one machine. Put it in human terms: multiple requests initiated during a session will all land on the same machine.

  1. Long connection/short connection

Usually refers to TCP long connections and short connections. A long connection is to maintain the connection after establishing a TCP connection. Generally, heartbeats will be sent to each other in the middle to confirm the existence of the corresponding connection. Business data transfers will be made multiple times in the middle, and generally the connection will not be actively disconnected. A short connection generally means that after a connection is established, a transaction is executed (such as an http request), and then the connection is closed.

  1. Traffic control/congestion control
  • 流量控制 防止发送方发的太快,耗尽接收方的资源,从而使接收方来不及处理。

  • 拥塞控制防止发送方发的太快,使得网络来不及处理产生拥塞,进而引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿。

  1. swarm effect

Some people also call it the thunder swarm effect, but what is it called? In short, the swarm phenomenon is that when multiple processes (multiple threads) block and wait for the same event at the same time (dormant state). If the waiting event occurs, it will wake up all the waiting processes (or threads), but in the end, only one process (thread) can gain "control" of this time and process the event. However, other processes (threads) fail to gain "control" and can only go back to sleep. This phenomenon and performance waste are called shocking.

  1. NAT

NAT (Network Address Translation) replaces the address information in the header of an IP packet. NAT is usually deployed at an organization's network exit location and provides public network reachability and upper-layer protocol connectivity by replacing the internal network IP address with the exit IP address.

fault exception

  1. downtime

Downtime generally refers to the crash of the computer host due to an unexpected failure. Secondly, some servers such as databases can also be called downtime when some services of some servers are suspended.

  1. coredump

When a program fails and interrupts abnormally, the OS stores the current status of the program's work as a coredmp file. Normally, the coredump file contains memory, register status, stack pointers, memory management information, etc. when the program is running.

  1. Buffer penetration/breakdown/avalanche
  • Cache penetration: Cache penetration refers to querying a certain non-existent data. Since the cache misses, it needs to be queried from the database, and if the data cannot be found, it will not be written to the cache. This will cause the non-existent data to have to be queried every time it is requested, which in turn puts pressure on the database.

  • Cache breakdown: Cache breakdown refers to when a hot key expires at a certain point in time, and there are a large number of concurrent requests for this key at this point in time, resulting in a large number of requests reaching db.

  • Cache avalanche: Cache avalanche refers to the time when data in the cache is large and expires, and the amount of query data is huge, causing excessive pressure on the database or even a machine to be down.

  • Different from cache breakdown: memory breakdown is a hot key failure, while cache avalanche is a large number of keys fail at the same time.

  1. 500/501/502/503/504/505
  • 500 Internal Server Error:内部服务错误,一般是服务器遇到意外情况,而无法完成请求。可能原因: 1、程序错误,例如:ASP 或者 PHP 语法错误;2、高并发导致,系统资源限制不能打开过多的文件所致。

  • 501Not implemented:服务器不理解或不支持请求的 HTTP 请求。

  • 502Bad Gateway:WEB 服务器故障,可能是由于程序进程不够,请求的 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 版本不受支持)

Except for the 500 error, which may be a program language error, all other errors can probably be understood as a problem with the server or server configuration.

  1. Memory overflow/memory leak
  • 内存溢出:内存溢出(Out Of Memory)指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储 int 类型数据的存储空间,但是你却存储 long 类型的数据,那么结果就是内存不够用,此时就会报错 OOM,即所谓的内存溢出。

  • 内存泄漏:内存泄漏(Memory Leak)指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。

  1. Handle leak

Handle leakage occurs when the process does not release the open file handle after calling the system file. Generally, the phenomenon after a handle leak is that the machine slows down, the CPU soars, and the CPU utilization of the cgi or server where the handle leak occurs increases.

  1. deadlock

Deadlock refers to a blocking phenomenon caused by two or more threads competing for resources or communicating with each other during execution. If there is no external force, they are all suppressed in a blocking state and cannot proceed. At this time, it is said that the system is in a deadlock state or the system has a deadlock.

  1. Soft interrupt/hard interrupt
  • 硬中断:我们通常所说的中断指的是硬中断(hardirq)。

Generated automatically by peripherals connected to the system (such as network cards, hard drives).

It is mainly used to notify the operating system of changes in the status of system peripherals.

  • 软中断:1、通常是硬中断服务程序对内核的中断;2、为了满足实时系统的要求,中断处理应该是越快越好。

In order to achieve this feature, linux handles work that can be completed in a short time when an interrupt occurs, while tasks that handle events for a long time are completed after the interrupt, that is, soft interrupts (softirq).

  1. Burr

At a certain moment, server performance indicators (such as traffic, disk IO, CPU utilization, etc.) are much greater than the time period before and after that moment. The appearance of glitches means that the server resources are unevenly and insufficiently utilized, which can easily induce other more serious problems.

  1. replay attacks

An attacker sends a packet that the destination host has received to achieve the purpose of spoofing the system. It is mainly used in the identity authentication process and undermines the correctness of authentication. It is a type of attack that constantly maliciously or fraudulently repeats a valid data transmission, and replay attacks can be carried out by the initiator or by an enemy that intercepts and retransmits the data. The attacker uses network listening or other methods to steal the authentication credentials and then re-issue it to the authentication server.

  1. network islands

A network island refers to the situation in which some machines lose their network connection with the entire cluster in a cluster environment, splits into a small cluster, and data inconsistency occurs.

  1. data skew

For cluster systems, general caching is distributed, that is, different nodes are responsible for a certain range of cached data. We do not disperse the cached data enough, resulting in a large amount of cached data being concentrated on one or several service nodes, which is called data tilt. Generally speaking, data tilt is caused by poor performance of Load Balancer implementation.

  1. split brain

Splitting brain refers to the division of the system caused by the inaccessibility of the network between some nodes in a cluster system. Different divided small clusters will provide services according to their respective states. The original clusters will have inconsistent reactions at the same time, causing nodes to compete for resources. The system is chaotic, and data is damaged.

monitoring alarm

  1. service monitoring

The main purpose of service monitoring is to accurately and quickly discover problems with services or are about to occur to reduce the scope of impact. There are generally multiple means for service monitoring, which can be divided into:

  • System layer (CPU, network status, IO, machine load, etc.)

  • Application layer (process status, error logs, throughput, etc.)

  • Business layer (error code, response time for service/interface)

  • User level (user behavior, public opinion monitoring, front-end buried points)

  1. Full link monitoring
  • Service dial testing: Service dial testing is a monitoring method to detect the availability of services (applications). Target services are periodically detected through dial testing nodes, mainly measured through availability and response time. There are usually multiple dial testing nodes in different places.
  • Node detection: Node detection is a monitoring method used to discover and track the network availability and patency between different computer room (data center) nodes. It is mainly measured by response time, packet loss rate, and hop count. The detection method is generally ping, mtr or other private protocol.
  • Alarm filtering: Filters certain predictable alarms and excludes data from alarm statistics, such as http response 500 errors caused by a small number of crawler visits, customized exception information by business systems, etc.
  • Alarm de-duplication: When an alarm is notified to the person in charge, the same alarm will not continue to be received until the alarm is restored.
  • Alarm suppression: In order to reduce the interference caused by system jitter, suppression is also needed. For example, it may be normal for the server to be loaded instantaneously. Only the high load that lasts for a period of time needs to be paid attention to.
  • Alarm recovery: Development/operation and maintenance personnel not only need to receive alarm notifications, but also need to receive notification that the fault has been eliminated and the alarm has returned to normal.
  • Alarm merge: Combine multiple identical alarms generated at the same time. For example, a microservice cluster has an alarm that multiple sub-services are overloaded at the same time, and need to be merged into one alarm.
  • Alarm convergence: Sometimes when an alarm is generated, it is often accompanied by other alarms. At this time, alerts can only be generated for the root cause, and other alarms can be converged into sub-alarms and notified together. When CPU load alarms occur on cloud servers, they are often accompanied by availability alarms for all systems on which they are equipped.
  • Fault self-healing: Discover alarms in real time, pre-diagnose and analyze, automatically recover faults, and open up surrounding systems to realize a closed loop of the entire process.

service governance

  1. microservices

Microservices architecture is an architectural model that advocates dividing a single application into a set of small services, and the services coordinate and cooperate with each other to provide ultimate value to users. Each service runs in its own independent process, and services communicate with each other using a lightweight communication mechanism (usually an HTTP-based Restful API). Each service is built around a specific business and can be independently deployed to production environments, production-like environments, etc.

  1. service discovery

Service discovery refers to the use of a registry to record information about all services in a distributed system so that other services can quickly find these registered services. Service discovery is a core module supporting large-scale SOA and microservices architecture, and it should be as high as possible.

  1. flow peak clipping

If you watch the request monitoring curve of the lottery or spike system, you will find that such systems will have a peak during the time when the event is open. When the event is not open, the system's request volume and machine load are generally relatively stable. of. In order to save machine resources, we cannot always provide maximum resource capacity to support short-term peak requests. Therefore, some technical means need to be used to weaken the instantaneous request peak and keep the system throughput controllable under peak requests. Peak clipping can also be used to eliminate glitches and make more balanced and adequate utilization of server resources. Common peak clipping strategies include queuing, frequency limiting, hierarchical filtering, multi-level caching, etc.

  1. compatible

During the process of upgrading the version, it is necessary to consider whether the new data structure can understand and parse the old data after upgrading the version, and whether the newly modified protocol can understand the old protocol and make appropriate treatment within expectations. This requires version compatibility during service design.

  1. overload protection

Overload means that the current load has exceeded the maximum processing capacity of the system. The occurrence of overload will cause some services to be unavailable. If it is not handled properly, it is very likely to cause the service to be completely unavailable or even an avalanche. Overload protection is a measure to deal with this abnormal situation to prevent the service from being completely unavailable.

  1. Service blown

The function of a service blowing is similar to the fuse in our home. When a service becomes unavailable or the response times out, in order to prevent an avalanche in the entire system, the call to the service is temporarily stopped.

  1. service degradation

Service downgrade is a strategic downgrade of some services and pages based on current business conditions and traffic when server pressure increases sharply, thereby releasing server resources to ensure the normal operation of core tasks. Downgrades often specify different levels and perform different processing when faced with different exception levels.

  • Depending on the service method: service can be refused, service can be delayed, and sometimes services can be provided randomly.

  • Depending on the scope of service: You can cut off a certain function or certain modules.

总之服务降级需要根据不同的业务需求采用不同的降级策略。主要的目的就是服务虽然有损但是总比没有好

  1. Blow VS downgrade
  • 相同点:目标一致,都是从可用性和可靠性出发,为了防止系统崩溃;用户体验类似,最终都让用户体验到的是某些功能暂时不可用;

  • 不同点:触发原因不同,服务熔断一般是某个服务(下游服务)故障引起,而服务降级一般是从整体负荷考虑;

  1. service current limiting

Current limiting can be regarded as a kind of service degradation. Current limiting is to limit the input and output traffic of the system to achieve the purpose of protecting the system. Generally speaking, the throughput of the system can be measured. In order to ensure the stable operation of the system, once the threshold that needs to be restricted is reached, traffic needs to be restricted and some measures are taken to achieve the purpose of restricting traffic. For example: delayed processing, refused processing, or partial refused processing, etc.

  1. fault screen

Remove failed machines from the cluster to ensure that new requests are not distributed to failed machines.

test method

  1. Black box/white box testing

黑盒测试不考虑程序内部结构和逻辑结构,主要是用来测试系统的功能是否满足需求规格说明书。一般会有一个输入值,一个输入值,和期望值做比较。

白盒测试主要应用在单元测试阶段,主要是对代码级的测试,针对程序内部逻辑结构,测试手段有:语句覆盖、判定覆盖、条件覆盖、路径覆盖、条件组合覆盖

  1. Unit/Integration/System/Acceptance Testing

Software testing is generally divided into four stages: unit testing, integration testing, system testing, and acceptance testing.

  • 单元测试:单元测试是对软件中的最小可验证单元进行检查和验证,如一个模块、一个过程、一个方法等。单元测试粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”。

  • 集成测试:集成测试也叫做组装测试,通常在单元测试的基础上,将所有的程序模块进行有序的、递增的测试。集成测试界于单元测试和系统测试之间,起到“桥梁作用”,一般由开发小组采用白盒加黑盒的方式来测试,既验证“设计”,又验证“需求”。

  • 系统测试:系统测试时将经过集成测试的软件,作为计算机系统的一部分,与系统中其他部分结合起来,在实际运行环境下进行一系列严格有效的测试,以发现软件潜在的问题,保证系统的正常运行。系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”。

  • 验收测试:验收测试也称交付测试,是针对用户需求、业务流程进行的正式的测试,以确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统。验收测试与系统测试相似,主要区别是测试人员不同,验收测试由用户执行

  1. regression testing

Retest when defects are discovered and modified, or when new functions are added to the software. Used to check whether the discovered defects have been corrected and that the modifications have not caused new problems.

  1. smoke testing

This term comes from the hardware industry. After making changes or repairs to a hardware or hardware component, power up the device directly. If there is no smoke, the component passes the test. In software, the term "smoke testing" describes the process of verifying code changes before embedding them into the product's source tree.

Smoke testing is a rapid basic function verification strategy for software version packages during the software development process. It is a means to confirm and verify basic software functions, not an in-depth test of software version packages.

For example, for a smoke test of a login system, we only need to test and enter the correct user name and password to verify the core function point of login. As for input boxes, special characters, etc., we can perform it after the smoke test.

  1. performance test

Performance testing uses automated testing tools to simulate a variety of normal, peak and abnormal load conditions to test various performance indicators of the system. Load testing and stress testing are both performance tests, and the two can be combined.

Through load testing, the performance of the system under various workloads is determined. The goal is to test the changes in various performance indicators of the system as the load gradually increases.

Stress testing is a test that determines bottlenecks or unacceptable performance points of a system to obtain the maximum service level that the system can provide.

  1. benchmarking

Benchmark is also a performance testing method that is used to measure the highest actual operating performance of the machine's hardware and the performance improvement effect of software optimization. It can also be used to identify CPU or memory efficiency problems for a certain piece of code. Many developers use benchmarks to test different concurrency patterns, or use benchmarks to assist in configuring the number of working pools to ensure that system throughput is maximized.

  1. A/B testing

The A/B test uses two or more groups of randomly assigned samples with similar numbers. If the experimental results of the experimental group and the control group are statistically significant in terms of target indicators, then it can explain the experimental group's function can lead to the results you want, helping you verify assumptions or make product decisions.

  1. code coverage testing

Code coverage is a measure in software testing that describes the proportion and extent to which source code in a program is tested. The resulting proportion is called code coverage. When doing unit tests, code coverage is often used as an indicator to measure the quality of the test. Code coverage is even used to assess the completion of test tasks. For example, code coverage must reach 80% or 90%. As a result, testers went to great lengths to design cases to cover the code.

Release deployment

  1. DEV/PRO/FAT/UAT
  • DEV(Development environment):开发环境,用于开发人员调试使用,版本变化较大。

  • FAT(Feature Acceptance Test environment):功能验收测试环境,用于软件测试人员测试使用。

  • UAT(User Acceptance Test environment):用户验收测试环境,用于生产环境下的功能验证,可作为预发布环境。

  • PRO(Production environment):生产环境,正式线上环境。

  1. releasing services on a server in stages

Gray release means that during the upgrade process, some users will first upgrade product features through zoning control, whitelist control, etc., while the rest of the users will remain unchanged. When the users who upgrade product features after a period of time have no feedback problems, gradually expand the scope and finally open the new version features to all users. Gray release can ensure the stability of the overall system, and problems can be discovered and modified during the initial gray to ensure their influence.

  1. Rollback

refers to the behavior of restoring a program or data to the previous correct state (or the previous stable version) when a program or data is processed incorrectly.

Keep Exploring

延伸阅读

更多文章