常見的4種Bug 出現原因和解決方案

????????某項目定期進行線上Bug分析大會,主要針對近期出現的Bug和事故進行分析其出現的原因。經過一段時間的數據分析和匯總,找到了在開發過程中,較為常見的Bug以及其出現的原因。

????????通過分析原因,進一步找到解決方案,從而有利于降低Bug出現率,提高測試質量和產品質量。常見的4種Bug如下:

常見的4種Bug
常見的4種Bug

????????1、開發人員使用java框架錯誤

????????這個問題出現頻率較高,原因就是開發人在使用多線程時,將多例使用成單例,導致系統在高并發進出現了串數據的現象。雖然我們使用單例能節省資源,降低系統的占用率,但這種情況并不合適目前的系統。

  而此種情況在測試過程中并不一定能測試出來,這種出現的機率不定,必須在數據高并發時才有可能出現。

????????解決方案:

????????技術問題,將單例修改成多例。單例模式確保只有一個對象實例存在,而多例模式則允許存在多個對象實例,需要注意兩者間的區別。

Java框架
Java框架

????????在Spring框架中,你可以通過設置bean的scope屬性為prototype來實現多例模式。請注意,多例模式在進行注入時,不能使用 @Autowired,否則注入的還是單例模式,實現多例模式需要使用工廠模式。

????????2、開發人員上線時合并代碼有遺漏

  合并代碼時容易出現遺漏,當遇到沖突時,開發者需仔細檢查并解決所有沖突。不同的合并策略可能會影響合并結果,因此需要選擇了適合當前情況的合并策略。在手動合并代碼時,需要正確地合并每一處差異,否則可能會導致遺漏或重復。

????????解決方案:

(1)仔細審查合并沖突:在解決沖突時,要逐行檢查代碼,確保所有的更改都被考慮到。

(2)使用合適的合并策略:根據項目的具體需求和工作流程選擇最合適的合并策略。

(3)測試合并后的代碼:合并完成后,進行徹底的測試,確保新的代碼能夠正常工作且與原有功能兼容。

合并代碼
合并代碼

(4)保持良好的版本控制習慣:定期提交更改,避免長時間的代碼積累,這樣在合并時沖突會更少,更易于管理。

(5)使用合并工具:利用圖形化的合并工具,如GitKraken、SourceTree等,可以幫助更直觀地查看和解決沖突。

(6)代碼審查:在合并前后進行代碼審查,可以發現可能遺漏的問題。

????????3、回歸測試不全

????????回歸測試不全,其實就是相當于一定程度上的漏測,漏測應該是軟件測試人員盡量避免,一般漏測是因為測試人員思考不全,導致某個方面沒有測試到。如回歸測試時,驗證某個流程,但只驗證到任務創建,就沒有執行任務,上線后,該任務創建后執行會報錯。

????????解決方案

? ? ?(1)回歸測試時,主流程必須回歸,并且有完整的回歸步驟。

   (2)一個業務流程測試必須跑完一個完整流程。

   (3)測試過程中一定要細致,不能遺漏重要的點。

? ? ? ?為了進一步提高測試覆蓋率,我們可以使用CoCode開發云中的自動生成測試用例功能,使用AI,自動生成每個需求的正向反向多維度測試用例,提高測試覆蓋度和全面性,保障測試質量,減輕測試人員工作量,提高20%-30%工作效率。

CoCode自動生成測試用例
CoCode自動生成測試用例

????????4、多系統上線 缺少聯調或聯調不全

????????聯調出現問題,是常見問題。公司業務是由有多個系統組成的,同時還需要調用其他公司業務接口,測試人員在測試時調用相關系統接口時模擬返回或回調,基本都是使用的mock,mock返回的值并不是真的從相應系統的返回值,所以如果聯調測試時沒有把握好,就非常容易出現問題。

????????解決方案:

?  (1)在聯調之前先將自己系統中本次項目所有用例測試完全。

  (2)編寫聯調用例,并且與多方測試人員溝通,確保聯調用例能全面覆蓋業務流程和任務。

  (3)在聯調時,確保所有業務流程是全部走通,且返回的值正確。

代碼聯調
代碼聯調

????????為了避免Bug問題的出現,開發人員需培養良好的編程習慣,而測試人員需要將測試范圍考慮完全,盡量避免遺漏測試點,對于不清楚的點,需要重點討論。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/710919.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/710919.shtml
英文地址,請注明出處:http://en.pswp.cn/news/710919.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2024.02.29作業

1. TCP模型 server #include "test.h"#define SER_IP "192.168.191.128" #define SER_PORT 9999int main(int argc, char const *argv[]) {int sfd -1;sfd socket(AF_INET, SOCK_STREAM, 0);if (-1 sfd){perror("socket error");return -1;…

Java底層自學大綱_數據結構和算法篇

數據結構和算法專題_自學大綱所屬類別學習主題建議課時(h) A 數據結構和算法001 數據結構和算法基礎,時間復雜度Ot和空間復雜度Os2.5 A 數據結構和算法002 數學知識回顧-指數、對數、級數、模運算、復雜度2.5 A 數據結構和算法003 高數知識…

算法沉淀——動態規劃之兩個數組的 dp(上)(leetcode真題剖析)

算法沉淀——動態規劃之兩個數組的 dp 01.最長公共子序列02.不相交的線03.不同的子序列04.通配符匹配 01.最長公共子序列 題目鏈接:https://leetcode.cn/problems/longest-common-subsequence/ 給定兩個字符串 text1 和 text2,返回這兩個字符串的最長 …

0201sherlock(福爾摩斯)-通過名稱尋找媒體賬號(地址)-github-開源項目學習

文章目錄 一 項目簡介二 項目安裝和演示1 安裝2 演示 三 源碼分析1 項目結構2 主程序源代碼分析 四 添加自定義網址結語 一 項目簡介 二 項目安裝和演示 1 安裝 # clone the repo $ git clone https://github.com/sherlock-project/sherlock.git# change the working direct…

前端訪問線上的html 怎么給html 的js中傳遞 訪問路徑

1.需求 我想在項目中訪問一個html 文件 這個html 文件中 跳轉的又是另一個地址 。這個需求是為了讓實現公眾號H5 的重定向登錄 主要是 一個oem 系統 他有多個公眾號 但是每個公眾號 都有對應不用的域名 2.動態域名 <!DOCTYPE html> <html lang"zh">&…

opencv--使用直方圖找谷底進行確定分割閾值

直方圖原理就不說了&#xff0c;大家自行百度 直方圖可以幫助分析圖像中的灰度變化&#xff0c;進而幫助確定最優二值化的灰度閾值&#xff08;threshold level&#xff09;。如果物體與背景的灰度值對比明顯&#xff0c;此時灰度直方圖就會包含雙峰&#xff08;bimodal histo…

Python web框架fastapi數據庫操作ORM(一)

文章目錄 Fastapi ORM操作1、創建模型2、創建數據庫連接配置文件3、啟動項目4、根據模型類創建數據庫表1. 初始化配置&#xff0c;只需要使用一次2. 初始化數據庫&#xff0c;一般情況下只用一次3. 更新模型并進行遷移4. 重新執行遷移&#xff0c;寫入數據庫5. 回到上一個版本6…

Oracle 11g升級19c 后部分查詢功能很慢

*Oracle 11g升級19c 后部分查詢功能很慢 今天生產突然有個查詢非常慢&#xff0c;日志顯示執行了50秒左右&#xff0c;但是從日志中拿出SQL在PLSQL執行&#xff0c;發現用時不到1秒&#xff0c;查看SQL,懷疑是下面幾種原因導致 1、使用函數不當 UNIT.UNIT_CODE LIKE CONCAT(‘…

狀態碼轉文字!!!(表格數字轉文字)

1、應用場景&#xff1a;在我們的數據庫表中經常會有status這個字段&#xff0c;這個字段經常表示此類商品的狀態&#xff0c;例如&#xff1a;0->刪除&#xff0c;1->上架&#xff0c;0->下架&#xff0c;等等。 2、我們返回給前端數據時&#xff0c;如果在頁面顯示0…

python 線程、進程區別與事例

線程&#xff1a;簡單來說&#xff0c;一個進程中包含多個線程&#xff0c;比如打開一個 QQ&#xff08;進程&#xff09;&#xff0c;然后你一邊聊 QQ&#xff08;一個線程&#xff09;&#xff0c;一邊用 QQ 傳送文件&#xff08;一個線程&#xff09;&#xff0c;等等。在一…

Linux中如何執行腳本

要執行一個保存在文件中的腳本&#xff0c;可以按照以下步驟進行&#xff1a; 1. 創建腳本文件&#xff1a; 首先&#xff0c;使用文本編輯器&#xff08;如 ?vi?、?nano?等&#xff09;創建一個新的腳本文件&#xff0c;并將需要執行的命令寫入到文件中。例如&#xff0…

【Unity】在Unity中導出WebGL并讀取Excel數據的實現方法

在游戲開發中&#xff0c;數據的處理和導出是至關重要的環節之一。Unity作為一款強大的游戲開發引擎&#xff0c;提供了豐富的工具和功能來處理和導出數據&#xff0c;包括將游戲導出為WebGL應用&#xff0c;并讀取外部數據文件&#xff0c;比如Excel表格。本文將介紹如何在Uni…

gpt生成器,批量gpt文章生成器

GPT&#xff08;生成式預訓練模型&#xff09;生成器軟件在當今的數字化時代扮演著越來越重要的角色&#xff0c;它們通過人工智能技術&#xff0c;可以自動生成各種類型的文章內容&#xff0c;為用戶提供了無限的創作可能性。本文將介紹6款不同的GPT生成器軟件&#xff0c;并介…

STM32自學?AD單通道

程序的最終運行成果: 當轉動電位器時&#xff0c;數值和電壓值發生變化 ad.c文件 #include "stm32f10x.h" #include "stm32f10x_adc.h" #include "ad.h" #include "stdint.h" void ad_Init(void) { /* 初始化步驟&#xff1a;…

java學習筆記-初級

一、變量 1.雙標簽 <!-- 外部js script 雙標簽 --><script srcmy.js></script> 在新文件my.js里面寫&#xff1a; 2.字符串定義&#xff1a; //外單內雙var str 我是一個"高富帥"的程序員;console.log(str);// 字符串轉義字符 都是用 \ 開頭 …

并發編程中常見的設計模式,c++多線程如何設計

C多線程設計&#xff08;任務的“多對一”、“一對多”、“多對多”情況 該如何設計線程&#xff1f;&#xff09; C書籍中并未找到對多線程設計&#xff0c;有很完整詳細的總結&#xff01;&#xff01;C并發編程書籍中也只是一些理論或則零散的多線程實例。無奈&#xff0c;…

MySQL-MHA搭建、故障測試

一、架構說明 MHA&#xff08;Master High Availability&#xff09;是一個用于 MySQL 主從復制管理和自動故障轉移的開源工具集。MHA 的主要目的是提供 MySQL 環境的高可用性和自動故障轉移功能&#xff0c;確保在主庫發生故障時能夠快速切換到備庫&#xff0c;降低業務中斷時…

ElasticSearch之Completion Suggester

寫在前面 通過completion suggester可以實現如下的效果&#xff1a; 其實就是做的like xxx%這種。通過FST這種數據結構來存儲&#xff0c;實現快速的前綴匹配&#xff0c;并且可以將es所有的數據加載到內存中所以速度completion的查詢速度非常快。 需要注意&#xff0c;如果…

JWT令牌的使用教程

一、導入maven依賴 <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version> </dependency> 二、導入JWT工具類 &#xff08;工具類&#xff09; import io.jsonwebtoken.Cl…

HUAT——Fasc——算法組學習筆記

目錄 系列文章目錄 前言 一、配置相關環境 二、創建工作空間 1.創建工作空間并初始化 2.進入 src 創建 ros 包并添加依賴 三、HelloWorld(C版) 1.進入 ros 包的 src 目錄編輯源文件 2.編輯 ros 包下的 Cmakelist.txt文件 3.進入工作空間目錄并編譯 四 運行程序 五 …