正交表生成小工具
說明
小工具的適用物件主要是測驗人員,他們日常作業中手動設計大量測驗用例,作業繁雜甚至還存在覆寫不全面等問題,
為了提高他們的測驗效率,該小工具可以通過輸入一組多因素多水平的資料,然后查詢到相應的正交表,同時映射出這組資料的測驗用例,
為了方便使用,還增加了幫助、匯入檔案和保存結果的功能,
思路
-
同樣需要構思布局,先分為上中下三大塊
-
其次對每一塊進行細化,上方是用戶的操作區域
-
中間和下方顯示資料

-
逐個實作按鈕監聽的事件類
-
完善一些例外處理,進行軟體測驗
-
打包上交
注意事項
- 使用合適的布局格式
- 獲取/修改界面的資料
- 資料檔案的路徑應使用相對路徑!
- 事件監聽使用內部類可以非常方便的操作界面資料,
使用效果
- 首先點擊
幫助按鈕,查看使用說明 復制例子的內容,粘貼到小工具的輸入框- 點擊
生成按鈕生成正交表和映射表,

成功映射3^4的正交表
- 點擊
選擇檔案按鈕 - 找到符合輸入規范的
文本檔案,點擊打開 - 會自動將文本檔案的內容填充到輸入框
- 點擊
生成按鈕生成正交表和映射表,


成功映射2^3的正交表
遇到的問題
- 小工具打成jar包之后,資料檔案路徑失效
// 通過類名的相對路徑獲取資料檔案,Table.txt與MyGenerator類在同一個包下
URL table = MyGenerator.class.getResource("Table.txt");
File file = new File(table.toURI());
InputStreamReader input = new InputStreamReader(new FileInputStream(file));
BufferedReader bf = new BufferedReader(input);
// 處理資料
修改成輸入流即可解決
// 包中使用的方式
InputStream in = MyGenerator.class.getResourceAsStream("Table.txt");
InputStreamReader input = new InputStreamReader(in);
BufferedReader bf = new BufferedReader(input);
- 不能生成混合正交表,處理混合因素時出了點問題
-
解決思路:
- 首先將輸入框的資料拆分成行,得到的行數就是因子數
- 每一行資料冒號前面是條件名稱,冒號后面是水平名稱串列
- 對每一行的水平串列進行統計,將每行的水平數存入一個陣列counts中
- 對counts陣列中每個數字出現的次數進行統計,將結果拼接成字串陣列
-
舉例輸入
服務器:Tomcat Apache 作業系統:win10 Linux 插件:小程式 微信插件 瀏覽器:Chrome Firefox VPN:proxy6 Sockshub Luminati NewIPNow將輸入資料按行拆分得到5行資料,即結果由5個條件決定,因子數為5,
每一行冒號前的資料存到head陣列,冒號之后的資料按空格的拆分,得到二維字串陣列
{ {"Tomcat", "Apache"}, {win10", "Linux"}, {小程式", "微信插件"}, {Chrome", "Firefox"}, {"proxy6", "Sockshub", "Luminati", "NewIPNow"} }對每一行統計的結果存入輸入counts
{2, 2, 2, 2, 4}再對counts陣列進行統計,將結果拼接成字串陣列
{"2^4", "4^1"}//表示2水平的因子有4個,4水平的因子有1個 服務器:Tomcat Apache //0 1 作業系統:win10 Linux //0 1 插件:小程式 微信插件 //0 1 瀏覽器:Chrome Firefox //0 1 VPN:proxy6 Sockshub Luminati NewIPNow //0 1 2 3查表的時候,要同時包含以上陣列的每一段字串,
資料檔案
2^3 n=4 000 011 101 110 2^4 4^1 n=8 00000 00112 01011 01103 10013 10101 11002 11110 3^4 n=9 0000 0121 0212 1022 1110 1201 2011 2102 2220鎖定到
2^4 4^1 n=8這一行拆分等號后面的數值,往后讀取n行得到正交表最后映射正交表就完成核心功能,

-
保存為Excel檔案
- 參見POI操作

總結
解決完混合正交表之后,發現Java語言的可擴展性真的強,通過多載方法擴展查表方式,使用不同引數得到不同結果,
最后發現自己對Java常用API還不夠熟悉,很多高級的資料結構都沒用到,
不過相比于以前的面向百度編程, 如今已經可以通過有限的知識得到可行的解決方案,
還有為了匯出Excel檔案,專案升級為maven模式,引入大量依賴,打包時META-INF檔案一定要與src同級
接下來學習常用API和Java高級應用,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/177271.html
標籤:Java
下一篇:Java桌面應用程式打包
