FindBugs缺陷型別統計分析(部分)

2021-08-25 06:47:12 字數 3085 閱讀 1609

專案 內容

bugid

am_creates_empty_jar_file_entry

錯誤正規化

zipentry zipentry=new zipentry(fileto);

zipoutputstream.putnextentry(zipentry);

zipoutputstream.closeentry();     

正確正規化

zipentry zipentry=new zipentry(fileto);

zipoutputstream.putnextentry(zipentry);

// do something

fileinputstream fileinputstream=new fileinputstream(file);

while((n=fileinputstream.read(rgb))>-1)

fileinputstream.close();

// do end

zipoutputstream.closeentry();

zipoutputstream.close(); 描述

建立了乙個空的

jar檔案 詳細

建立了乙個空的

jar檔案,在呼叫

putnextentry()

和closeentry()之間

,沒有做任何寫入操作。

重要級別

專案 內容

bugid

am_creates_empty_zip_file_entry

錯誤正規化 同上

正確正規化 同上

描述 同上

詳細 同上

重要級別

專案 內容

bugid

bc_impossible_cast

錯誤正規化

object obj = new object();

vector list = (vector)obj;

正確正規化

描述 必然會導致型別轉換異常(

classcastexception

)的表示式 詳細

導致該錯誤的幾種情況:

1. 

無公共基類型別進行顯示型別轉換

2. 

純基型別向派生類顯示型別轉換

3. 

繼承鏈中非公共節點間進行顯示型別轉換

重要級別

專案 內容

bugid

bc_impossible_instanceof

錯誤正規化

public boolean isbusy()

正確正規化

描述 某個方法始終返回

false 詳細

如果有方法始終返回

false

,那麼就要考慮到是不是編碼的時候有所遺漏或者會導致邏輯錯誤,需要謹慎對待。

重要級別

專案 內容

bugid

bit_and

錯誤正規化

public static final int m_show_window = 0x01;

public static final int m_window_visible = 0x11;

public boolean isvisible(int mask)

else }

正確正規化

public static final int m_show_window = 0x01;

public static final int m_window_visible = 0x11;

public boolean isvisible(int mask)

else }

描述不起作用的掩碼 詳細

當掩碼值設定不合理或判斷方式錯誤時會導致掩碼值無論為什麼都無法滿足程式分支遍歷要求,可能是設計或編碼問題導致,請確認程式邏輯是否正確。

雙目「&」運算子表示式中包含常量,則這個表示式的值必然小於等於這個常量,如果比較的值為乙個大於該常量的另乙個常量,則該條件永遠不會滿足。

重要級別

專案 內容

bugid

bit_and_zz

錯誤正規化

public static final int m_show_window = 0x0;

public boolean isvisible(int mask)

else }

正確正規化

public static final int m_show_window = 0x01;

public boolean isvisible(int mask)

else }

描述不起作用的掩碼 詳細

當掩碼值設定不合理或判斷方式錯誤時會導致掩碼值無論為什麼都無法滿足程式分支遍歷要求,可能是設計或編碼問題導致,請確認程式邏輯是否正確。

0不能作為功能掩碼,否則表示式

(mask & 0) ==0)

始終為真,功能掩碼失效。

重要級別

專案 內容

bugid

bit_ior

錯誤正規化

public static final int m_show_window = 0x11;

public static final int m_window_visible = 0x01;

public boolean isvisible(int mask)

else }

正確正規化

public static final int m_show_window = 0x01;

public static final int m_window_visible = 0x11;

public boolean isvisible(int mask)

else }

描述不起作用的掩碼 詳細

當掩碼值設定不合理或判斷方式錯誤時會導致掩碼值無論為什麼都無法滿足程式分支遍歷要求,可能是設計或編碼問題導致,請確認程式邏輯是否正確。

雙目「|」運算子表示式中包含常量,則這個表示式的值必然大於等於這個常量,如果比較的值為乙個小於該常量的另乙個常量,則該條件永遠不會滿足。

重要級別

各階段缺陷檢出密度的統計分析案例

某企業積累了10個專案的歷史度量資料,積累了5個階段的缺陷密度,即從需求評審的缺陷密度,直至交付後3個月內的缺陷密度,計量單位統一為缺陷數 kloc。對10個專案資料在一張圖上採用箱線圖圖進行展示,得到如下的趨勢 第10個專案在3個箱線圖圖中都是離群點,該專案是公司的乙個重點專案,公司抽調了精英進行...

缺陷型別 缺陷種類介紹

軟體缺陷的定義 軟體缺陷,常常又被叫做bug,從產品內部看,缺陷是軟體產品開發或維護過程中存在的錯誤 毛病等各種問題 從產品外部看,缺陷是系統所需要實現的某種功能的失效或違背。按照軟體缺陷的產生原因,可以將其劃分為不同的缺陷類別 1 功能不正常 簡單地說就是所應提供的功能,在使用上並不符合產品設計規...

最早的統計分詞

文章 richard sproat,a statistical method for finding word boundaries in chinese,1990 剛看了一篇2020年關於分詞的綜述,當中提到,最早使用統計方法進行分詞的是1990的一篇文章,看了一下作者名字,richard spr...