????????某項目定期進行線上Bug分析大會,主要針對近期出現的Bug和事故進行分析其出現的原因。經過一段時間的數據分析和匯總,找到了在開發過程中,較為常見的Bug以及其出現的原因。
????????通過分析原因,進一步找到解決方案,從而有利于降低Bug出現率,提高測試質量和產品質量。常見的4種Bug如下:

????????1、開發人員使用java框架錯誤
????????這個問題出現頻率較高,原因就是開發人在使用多線程時,將多例使用成單例,導致系統在高并發進出現了串數據的現象。雖然我們使用單例能節省資源,降低系統的占用率,但這種情況并不合適目前的系統。
而此種情況在測試過程中并不一定能測試出來,這種出現的機率不定,必須在數據高并發時才有可能出現。
????????解決方案:
????????技術問題,將單例修改成多例。單例模式確保只有一個對象實例存在,而多例模式則允許存在多個對象實例,需要注意兩者間的區別。

????????在Spring框架中,你可以通過設置bean的scope屬性為prototype來實現多例模式。請注意,多例模式在進行注入時,不能使用 @Autowired,否則注入的還是單例模式,實現多例模式需要使用工廠模式。
????????2、開發人員上線時合并代碼有遺漏
合并代碼時容易出現遺漏,當遇到沖突時,開發者需仔細檢查并解決所有沖突。不同的合并策略可能會影響合并結果,因此需要選擇了適合當前情況的合并策略。在手動合并代碼時,需要正確地合并每一處差異,否則可能會導致遺漏或重復。
????????解決方案:
(1)仔細審查合并沖突:在解決沖突時,要逐行檢查代碼,確保所有的更改都被考慮到。
(2)使用合適的合并策略:根據項目的具體需求和工作流程選擇最合適的合并策略。
(3)測試合并后的代碼:合并完成后,進行徹底的測試,確保新的代碼能夠正常工作且與原有功能兼容。

(4)保持良好的版本控制習慣:定期提交更改,避免長時間的代碼積累,這樣在合并時沖突會更少,更易于管理。
(5)使用合并工具:利用圖形化的合并工具,如GitKraken、SourceTree等,可以幫助更直觀地查看和解決沖突。
(6)代碼審查:在合并前后進行代碼審查,可以發現可能遺漏的問題。
????????3、回歸測試不全
????????回歸測試不全,其實就是相當于一定程度上的漏測,漏測應該是軟件測試人員盡量避免,一般漏測是因為測試人員思考不全,導致某個方面沒有測試到。如回歸測試時,驗證某個流程,但只驗證到任務創建,就沒有執行任務,上線后,該任務創建后執行會報錯。
????????解決方案:
? ? ?(1)回歸測試時,主流程必須回歸,并且有完整的回歸步驟。
(2)一個業務流程測試必須跑完一個完整流程。
(3)測試過程中一定要細致,不能遺漏重要的點。
? ? ? ?為了進一步提高測試覆蓋率,我們可以使用CoCode開發云中的自動生成測試用例功能,使用AI,自動生成每個需求的正向反向多維度測試用例,提高測試覆蓋度和全面性,保障測試質量,減輕測試人員工作量,提高20%-30%工作效率。

????????4、多系統上線 缺少聯調或聯調不全
????????聯調出現問題,是常見問題。公司業務是由有多個系統組成的,同時還需要調用其他公司業務接口,測試人員在測試時調用相關系統接口時模擬返回或回調,基本都是使用的mock,mock返回的值并不是真的從相應系統的返回值,所以如果聯調測試時沒有把握好,就非常容易出現問題。
????????解決方案:
? (1)在聯調之前先將自己系統中本次項目所有用例測試完全。
(2)編寫聯調用例,并且與多方測試人員溝通,確保聯調用例能全面覆蓋業務流程和任務。
(3)在聯調時,確保所有業務流程是全部走通,且返回的值正確。

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