[SourceMonitor]中文註解造成複雜度爆炸的Bug

  • 7335
  • 0

[SourceMonitor]中文註解造成複雜度爆炸的Bug

有關SourceMonitor的使用與介紹,請參考:[Tool]SourceMonitor - 程式碼掃瞄


之前就有因為註解,造成SourceMonitor誤判複雜度的bug,
今天又遇到了一次,順便抓出來當一下test case的sample。
 

猜測原因是:
中文註解中特定字眼(SourceMonitor判斷UTF8錯了)放在大括號之前,就會出現爆炸性的複雜度。

bug1


修正後的程式:

fix1

猜測是UTF8判讀出錯的原因是,
成立的條件,
1.註解or中文字元在最後面與大括號相接
2.將「用」這個字換成別的字不一定會出錯
3.當最後一個字,是「的」,也會出錯


一樣的程式,因為註解判讀錯誤,
一個複雜度6,一個複雜度30。

ComplexityAfterFix


在使用SourceMonitor時,或寫程式時,請避開這樣的使用方式,以降低誤判的可能性。

[註]公司前輩建議,可以在註解最後加上英文句號".",即可避免此問題。


blog 與課程更新內容,請前往新站位置:http://tdd.best/