首先,在這裏特別感謝個人結對編程夥伴HnuLyx,他在算法上和設計思路上都與我有很大的不一樣,我的項目互評中,爲個人項目提出了不少很好的建議,讓我在認清本身不足的同時,瞭解到不少之前沒有注意的地方。此處附上連接,便於之後翻閱。html
其次,我來對HnuLyx的我的項目稍做評論,在發現內在不足的同時,學習長處,取長補短。程序員
在拿到項目文件後,我先進行了黑盒測試,從運行上體會程序的編寫。算法
(1) 優勢1:界面設計較好(是我要學習的地方),用戶體驗感會獲得適度的提高,操做簡單易懂,便於操做,題目正確;編程
缺點1:平方的「^2」換成「²」(Alt+0178就能夠用鍵盤打出);架構
(2) 將已創建的文件夾刪除後,顯示報錯;模塊化
缺點2:可是建議製做建立文件夾的操做,mkdir()函數能夠解決這個問題,能夠爲大批量用戶使用時,節省不少沒必要要的建立文件夾的操做;函數
(3) 缺點3:與描述不符,建議修改,明明是退出當前用戶,卻返回上一界面,須要優化。性能
(雖然已經實現了需求的退出功能,可是使用上的合理性也是要考慮的呢,可不要功虧一簣咯~)學習
(4)優勢2:數據容錯性較高,錯誤輸入會提示並可供從新輸入。測試
以上,爲黑盒測試的所有內容,功能正常,界面溫馨。
爲了進行白盒測試,HnuLyx與我用了一個下午來交流雙方的代碼,而且進行討論。
通過他的講解,我對系統內部的結構和工做原理有一個清楚的瞭解,明白盒子內部的東西以及裏面是如何運做的,從而考慮測試用例,發現內部的長處與不足。
(1)優勢3:總體上,先大體瀏覽代碼,我會清晰的感受到,HnuLyx的代碼模塊化設計良好,一個函數實現一個功能,極大的加強了代碼的邏輯性,可讀性;
(雖然我也有寫一些函數,可是在功能的架構上,可能略遜與他,不是特別清晰)
(2)優勢4:登陸數據保存在文件中;
(其實,經過了解代碼後才發現,HnuLyx爲了提升程序的可拓展性,將用戶登陸數據存儲在txt文件中,每次登陸時進行查詢。
若是在之後拓展程序,這將會帶來極大的便利。)
(3)缺點4:在瞭解了該程序算式生成的算法後,通過屢次測試,我發現了一個問題,雖然題目達到需求的要求,可是沒法將題目徹底隨機,如:
每一個操做數只能有一個左括號,舉個例子:7*(8+(9+1))+5 而不能生成如7*((8+9)+1)+5。
(右括號受左括號限制,需求中最多五個操做數,則右括號最多3個:A + ( B + ( C + ( D +E)))。)此處數據過多,不便截圖展現,抱歉。
(4)優勢5:HnuLyx在編程時,他除了考慮了架構的合理性,還考慮到了程序的性能問題,有所針對的優化部分代碼,提升程序性能。
如,經過getchar(),cin,scanf三者性能的比較,獲得getchar()的效率最高,而且加以調用,以便將來在查重時大量數據的輸入效率問題。
以上,爲白盒測試的所有內容。再次感謝HnuLyx同窗的耐心講解。