測試與優化bugbugbugbug
阿新 • • 發佈:2018-09-30
自己 調優 test rand 操作 per 程序 返回 new
單元測試
?? 211606318 林鋥寒
??211606335 吳沂章
附一張至誠的朝陽美照(? ω ?)
設計單元測試的思路
對每一個方法的代碼塊進行測試,返回測試結果並和預期結果進行比對
對源代碼進行相應的重構,以適應測試代碼的調用,且不影響源代碼的正常運行
構造測試數據的思路
- 通過assertEquals進行對比,可以得出測試是否成功
- 測試要調用的方法需為public類型,否則無法測試
- 如需調用源代碼的全局變量需要將其修改為public類型
@Test public void testAdd() { assertEquals(4, new MathExam6335().add(2,2,1)); } @Test public void testSub_0() { assertEquals(2, new MathExam6335().sub(2,4,1)); } @Test public void testSub_1() { assertEquals(0, new MathExam6335().sub(2,2,1)); } @Test public void testMul_0() { assertEquals(4, new MathExam6335().mul(2,2,1)); } @Test public void testMul_1() { assertEquals(0, new MathExam6335().mul(0,2,1)); } @Test public void testDiv_0() { assertEquals("1", new MathExam6335().div(3,3,1)); } @Test public void testDiv_1() { assertEquals("0", new MathExam6335().div(0,3,1)); } @Test public void testDiv_3() { assertEquals("1...1", new MathExam6335().div(3,2,1)); }
- 測試代碼的覆蓋率截圖
結構優化
UML類圖
程序流程圖
重構解析
重構了3年級題目生成方法中 操作數 和 操作符 的隨機生成
在代碼中隨機生成 操作數 和 操作符 的地方很多,有很大的資源浪費,重構處這兩處方法可以很好的改善代碼的重復率
- 重構後方法的作用:
- 操作符——operator()
- 返回一個隨機符號
- 操作數——operand()
- 返回一個隨機數字
- 操作符——operator()
性能調優
優化前效能分析截圖
性能瓶頸
- 代碼冗余,繁雜
- 代碼內的個方法塊互相依賴性較高,不利於以後擴展
優化方案
- 將重復的代碼重構成一個方法,減少資源重復
- 將代碼塊重新封裝,減少依賴性
優化後效能分析截圖
總結
- 這次代碼感覺自己有很多的知識點不會,導致代碼優化有點困難,經過兩天兩夜的奮戰,讓我們看到了提交作業的希望(至誠的朝陽),對於自己來說,也算是學到了一點東西!??
測試與優化bugbugbugbug