1. 程式人生 > >結對程式設計Wordcount

結對程式設計Wordcount

結對夥伴:201631083106 201631063412

專案連結:https://gitee.com/monkeyjb/WordCount

作業連結:https://edu.cnblogs.com/campus/xnsy/2018softwaretest2398/homework/2187

 

 

WordCount新增功能

1 wc.exe -a file.c     //返回更復雜的資料(程式碼行 / 空行 / 註釋行)

 1 //輸出更復雜資訊
 2     public static String getMoreInfo(String fileName){
3 int noteLine=0; 4 int emptyLine=0; 5 int codeLine=0; 6 String result; 7 String line; 8 try{ 9 BufferedReader bf=new BufferedReader(new FileReader(fileName)); 10 while((line=bf.readLine())!=null){ 11 if(line.length()>1&&!line.contains("//")){
12 codeLine++; 13 }else if (line.length()<=1) { 14 emptyLine++; 15 }else if (line.contains("//")) { 16 noteLine++; 17 } 18 } 19 bf.close(); 20 }catch (Exception e) { 21 e.printStackTrace();
22 } 23 result="程式碼行/空行/註釋行:"+codeLine+"/"+emptyLine+"/"+noteLine; 24 return result; 25 }

 

2 wc.exe -e stopList.txt  // 停用詞表,統計檔案單詞總數時,不統計該表中的單詞。

3 -e 必須與停用詞檔名同時使用,且停用詞檔案必須緊跟在-e引數後面,不允許單獨使用-e引數。stopList.txt中停用詞可以多於1個,單詞之間以空格分割,不區分大小寫。

//停用詞表
    public static ArrayList<String> stopList(String stopListFile){
        ArrayList<String> result=new ArrayList<>();
        String line;
        try{
            BufferedReader bf=new BufferedReader(new FileReader(stopListFile));
            while((line=bf.readLine())!=null){
                String[] stopList=line.split(" ");
                for(int i=0;i<stopList.length;i++){
                    result.add(stopList[i]);
                }
            }
            bf.close();
        }catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

 

5 wc.exe -x  //該引數單獨使用,如果命令列有該引數,則程式會顯示圖形介面,使用者可以通過介面選取單個檔案,程式就會顯示檔案的字元數、單詞數、行數等全部統計資訊

互審程式碼情況

     201631083106:

  審查內容:基本版Wordcount,getCharCount(字元計數),getLineCount(行計數),getWordCount模組(詞計數)

  發現問題:程式碼上未發現較大錯誤,但是發現註釋較少,認為應該在每個方法前加一定註釋,方便閱讀。

  實行註釋之後截圖:

    

    

    

    

 201631063412

  審查內容:新增Wordcount功能模組,getMoreInfo(輸出更復雜資訊),stopList(停用詞表),getWordCount(詞計數)

  發現問題:功能基本健全,但發現部分命名不規範的情況,如字母未區分大小寫,變數命名為做到見名知意。

  進行命名更正後的截圖:

    

    

    

    

 

 

 

 

靜態程式碼檢查情況

本次靜態程式碼審查使用的工具是findbugs,使用方法參考https://blog.csdn.net/strawbingo/article/details/5924005

使用過程中,因本次的程式碼量較少,故未發現任何問題,因此截圖略去。

 

單元測試情況

測試工具:Junit,通過老師在課堂上的介紹,我們採用Junit進行單元測試。Junit的使用十分的方便快捷。

單元測試類:

 

 

測試結果:

 

通過....

 

黑盒測試

資料夾結構

測試文字檔案

停用詞表檔案

 

返回程式碼行 / 空行 / 註釋行

 

 

 

 加入停用此表後測試

 

效能測試和優化

效能測試使用工具:Test & Performance Tools Platform (TPTP)

通過在網上查閱相關資料得知,eclipse下可使用tptp對程式碼進行效能的測試,參考網站:https://blog.csdn.net/mark_qi/article/details/7794180

本次程式碼的效能測試主要使用到的功能有記憶體分析(Basic Memory  Analysis)、執行時間分析(Executeion Time Analysis)、程式碼覆蓋(Method Code Coverage)。因專案很小,故程式的記憶體佔用很小,執行時間較短。效能屬於較理想狀態。