一.小組Github 地址java
https://github.com/ChenSilence/wcProgit
二.PSP表格github
PSP2.1 | PSP階段 | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 30 | 60 |
Estimate | 估計任務須要多少時間 | 30 | 60 |
Development | 開發 | 180 | 240 |
Analysis | 需求分析 | 20 | 30 |
Design Spec | 生成設計文檔 | 20 | 30 |
Design Review | 設計複審 | 20 | 30 |
Coding Standard | 代碼規範 | 30 | 10 |
Design | 具體設計 | 30 | 50 |
Coding | 具體編碼 | 30 | 40 |
Code Review | 代碼複審 | 30 | 40 |
Test | 測試 | 50 | 10 |
Reporting | 報告 | 90 | 240 |
Test Report | 測試報告 | 30 | 120 |
Size Measurement | 計算工做量 | 20 | 60 |
Postmortem | 總結 | 20 | 80 |
合計 | 360 | 560 |
三.模塊編寫sql
本次小組做業我所負責的模塊是輸入控制,基本上與上一次做業的輸入控制差很少,只是多了一個只能讀txt文本文件的判斷,所以個人就考慮了比較多的判斷分支狀況。我所編寫的只有一個Begin類,功能便是分析main函數中的args數組參數,判斷參數正確以後,將參數傳給下一個模塊,代碼以下:數組
package javatest; import java.util.Scanner; import java.lang.String; public class Begin { public static void main(String[] args) { //解析args數組中的參數 int i=0; if (args.length == 0) { //提示未輸入參數 System.out.println("請輸入參數"); return; }else if (args.length==1){ String name =args[0]; //args數組中的最後一個參數爲讀取文件 boolean doo=args[0].contains("."); if(doo){ String[] mode=name.split("\\."); //將文件名在"."處分裂開並存入mod數組中,判斷文件格式 if (mode[1].equals("txt")){ System.out.printf("everything is right!"); new CountNumber().count(name); }else{ System.out.printf("文件格式不對,請從新輸入!"); } }else { System.out.printf("請輸入正確文件名!"); } }else{ System.out.printf("請輸入正確文件名"); } } }
四.測試模塊設計
由於個人輸入控制模塊中只有一個main函數,不存在其餘的方法,所以設計測試時,我改了一部分個人相應代碼,爲了能在Junit框架中使用assertEquals函數判斷是否運行正確,改了以後的代碼以下:框架
package word; import java.util.Scanner; import java.lang.String; public class Begin { static String[] str = new String [8]; public static void main(String[] args) { //解析args數組中的參數 int i=0; if (args.length == 0) { //提示未輸入參數 //System.out.println("請輸入參數"); str[i]=("請輸入參數"); return; }else if (args.length==1){ String name =args[0]; //args數組中的最後一個參數爲讀取文件 boolean doo=args[0].contains("."); if(doo){ String[] mode=name.split("\\."); //將文件名在"."處分裂開並存入mod數組中,判斷文件格式 if (mode[1].equals("txt")){ System.out.printf("everything is right!"); str[i]=("everything is right!"); //new CountNumber().count(name); }else{ //System.out.printf("文件格式不對,請從新輸入!"); str[i]=("文件格式不對,請從新輸入!"); } }else { //System.out.printf("請輸入正確文件名!"); str[i]=("請輸入正確文件名!"); } }else{ // System.out.printf("請輸入正確文件名"); str[i]=("請輸入正確文件名"); } } public static String[] getOutput() { return str; } }
根據黑盒白盒測試設計的測試表格以下:eclipse
Test Case ID 測試用例編號 | Test Item 測試項(即功能模塊或函數) | Test Case Title 測試用例標題 | Test Criticality重要級別 | Pre-condition 預置條件 | Input 輸入 | Procedure 操做步驟 | Output 預期結果 | Result 實際結果 |
Status 是否經過 |
Remark 備註(在此描述使用的測試方法) |
1 | 輸入控制 | testread1 | Medium | 無 | text.txt | 運行Junit函數 | everything is right! | everything is right! | OK | 黑盒測試 |
2 | 輸入控制 | testread2 | Medium | 無 | text.tt | 運行Junit函數 | 文件格式不對,請從新輸入! | 文件格式不對,請從新輸入! | OK | 白盒測試 |
3 | 輸入控制 | testread3 | Medium | 無 | texttxt | 運行Junit函數 | 請輸入正確文件名! | 請輸入正確文件名! | OK | 白盒測試 |
4 | 輸入控制 | testread4 | Medium | 無 | text.cpp | 運行Junit函數 | 文件格式不對,請從新輸入! | 文件格式不對,請從新輸入! | OK | 黑盒測試 |
5 | 輸入控制 | testread5 | Medium | 無 | test.txt text2.txt | 運行Junit函數 | 請輸入正確文件名 | 請輸入正確文件名 | OK | 白盒測試 |
6 | 輸入控制 | testread6 | Medium | 無 | 空輸入 | 運行Junit函數 | 請輸入參數 | 請輸入參數 | OK | 白盒測試 |
7 | 輸入控制 | testread7 | Medium | 無 | abc.c.txt | 運行Junit函數 | 文件格式不對,請從新輸入! | 文件格式不對,請從新輸入! | OK | 白盒測試 |
8 | 輸入控制 | testread8 | Medium | 無 | asdhaiudhiwahidwahiawuhdawiuhdw.txt | 運行Junit函數 | everything is right! | everything is right! | OK | 黑盒測試 |
9 | 輸入控制 | testread9 | Medium | 無 | text.doc | 運行Junit函數 | 文件格式不對,請從新輸入! | 文件格式不對,請從新輸入! | OK | 黑盒測試 |
10 | 輸入控制 | testread10 | Medium | 無 | txt.txt | 運行Junit函數 | everything is right! | everything is right! | OK | 白盒測試 |
11 | 輸入控制 | testread11 | Medium | 無 | ....c | 運行Junit函數 | 文件格式不對,請從新輸入! | 文件格式不對,請從新輸入! | OK | 白盒測試 |
12 | 輸入控制 | testread12 | Medium | 無 | 空格符 | 運行Junit函數 | 請輸入正確文件名! | 請輸入正確文件名! | OK | 黑盒測試 |
13 | 輸入控制 | testread13 | Medium | 無 | text.java | 運行Junit函數 | 文件格式不對,請從新輸入! | 文件格式不對,請從新輸入! | OK | 黑盒測試 |
14 | 輸入控制 | testread14 | Medium | 無 | text.sql | 運行Junit函數 | 文件格式不對,請從新輸入! | 文件格式不對,請從新輸入! | OK | 黑盒測試 |
15 | 輸入控制 | testread15 | Medium | 無 | text.word | 運行Junit函數 | 文件格式不對,請從新輸入! | 文件格式不對,請從新輸入! | OK | 黑盒測試 |
16 | 輸入控制 | testread16 | Medium | 無 | text.png | 運行Junit函數 | 文件格式不對,請從新輸入! | 文件格式不對,請從新輸入! | OK | 黑盒測試 |
17 | 輸入控制 | testread17 | Medium | 無 | text.py | 運行Junit函數 | 文件格式不對,請從新輸入! | 文件格式不對,請從新輸入! | OK | 黑盒測試 |
18 | 輸入控制 | testread18 | Medium | 無 | text.jpg | 運行Junit函數 | 文件格式不對,請從新輸入! | 文件格式不對,請從新輸入! | OK | 黑盒測試 |
19 | 輸入控制 | testread19 | Medium | 無 | text.gif | 運行Junit函數 | 文件格式不對,請從新輸入! | 文件格式不對,請從新輸入! | OK | 黑盒測試 |
20 | 輸入控制 | testread20 | Medium | 無 | text.exe | 運行Junit函數 | 文件格式不對,請從新輸入! | 文件格式不對,請從新輸入! | OK | 黑盒測試 |
相應的測試腳本運行結果以下:函數
五.擴展任務性能
1.交叉互評測試
咱們小組所用開發規範參考了阿里巴巴的JAVA風格指南手冊。我評審的是組員17001代碼,他的代碼符合縮進、斷行風格整潔,命名簡單明瞭,邏輯清晰易讀,較好地遵照了設計規範。這裏我就不在放出他的代碼了,可在文首的小組github中查找。
2.靜態測試
本次的靜態測試是採用eclipse的checkstyle來進行掃描的,對個人代碼掃描以後主要發現如下三個問題:
1)代碼縮進問題較多
2)註釋較少
3)「{」前差空格,「}」後差空格
在改進這些問題的過程當中也慢慢提升了我對代碼規範的理解程度,之後也能提升個人代碼整潔度。參考連接:
https://blog.csdn.net/maritimesun/article/details/7668718
六.高級任務
在最後檢測個人代碼性能過程當中,因爲個人代碼自己就不是特別複雜,所以優化過程當中也沒有較多地方可供優化,我減小了一部分多餘的分支判斷,也提升了必定的運行速度。改後的代碼也可在小組github中查看。
七.小組貢獻分
在本次做業中,個人工做量較少,所以小組貢獻分評價爲0.2。