規格BUG | 功能BUG | 是否有聯繫 | |
第九次做業 | 3 | 0 | 有 |
第十次做業 | 0 | 0 | 無 |
第十一次做業 | 0 | 0 | 無 |
從上面這個表格能夠看出來,個人三次做業都沒有被報功能性BUG,我認爲這村內在兩方面緣由:一是我寫了做業,二是測試者沒有測出來個人BUG,在第九次做業中,我被報告了3個規格BUG,在我看來,這三處BUG都是一摸同樣的,由於這是我三個判斷正則表達式的地方,都是因爲前置條件寫的有問題,當時我認爲不須要條件就要寫null,但是並非,要寫成空,因此被報告了三個BUG。正則表達式
我認爲被報告的BUG和代碼行數並無多大聯繫,這三處代碼算上我習慣的空行應該也沒有40行,有效代碼更是少,可是就會被報告規格BUG,而其餘地方寫的很長的方法並無被報告BUG。學習
因此,我認爲我被報告BUG的緣由主要是我沒有仔細看好那份word,因此纔會被報告規格BUG,這也是第一次寫規格,因此會出現一些紕漏。測試
一、運用了天然語言this
/** @REQUIRES: Req_list類的對象r
*@MODIFIES: this
*@EFFECTS: 給this裏的變量賦值
*@THREAD_REQUIRES:
*@THREAD_EFFECTS:
*/設計
修改後:對象
/** @REQUIRES: r!=null
*@MODIFIES: this
*@EFFECTS: this!=null
*@THREAD_REQUIRES:
*@THREAD_EFFECTS:
*/繼承
二、打出了null接口
/** @REQUIRES: null
*@MODIFIES: start_x, start_y, end_x, end_y
*@EFFECTS: 給上面的變量賦值
*@THREAD_REQUIRES:
*@THREAD_EFFECTS:
*/get
修改後:數學
/** @REQUIRES:
*@MODIFIES: start_x, start_y, end_x, end_y
*@EFFECTS: start_x=a1 && end_x=b1&&start_y=a2&&end_y=b2
*/
三、effect寫的不清楚
/** *@REQUIRES: null
*@MODIFIES: null
*@EFFECTS: 返回value
*@THREAD_REQUIRES: Vocked(value)
*@THREAD_EFFECTS:
*/
修改後:
/** *@REQUIRES:
*@MODIFIES:
*@EFFECTS: \result==>value
*@THREAD_REQUIRES: \locked(value)
*@THREAD_EFFECTS:
*/
四、較爲簡單的都是用了天然語言
/** @REQUIRES: null
*@MODIFIES: null
*@EFFECTS: 返x1
*@THREAD_REQUIRES: \locked(x1)
*@THREAD_EFFECTS:
*/
修改後:
/** @REQUIRES:
*@MODIFIES:
*@EFFECTS: \result==>x1
*@THREAD_REQUIRES: \locked(x1)
*@THREAD_EFFECTS:
*/
五、限定範圍不明確
/** @REQUIRES: null
*@MODIFIES: value
*@EFFECTS: 修改value爲x
*@THREAD_REQUIRES: \locked(value)
*@THREAD_EFFECTS:
*/
修改後:
/** @REQUIRES: x>=0 && x<=300
*@MODIFIES: value
*@EFFECTS:value==>x
*@THREAD_REQUIRES: \locked(value)
*@THREAD_EFFECTS:
*/
功能bug | 規格BUG | |
match | 0 | 1 |
match_op | 0 | 1 |
match_cl | 0 | 1 |
能夠看出,BUG基本都在規格方面,因此主要是因爲沒有看清楚word,因此纔會出現BUG。
要大量運用布爾表達式,纔會邏輯清楚沒有二義性。
詳細寫出前置條件。
代碼和JSF仍是要好好寫,分數只是好好學習的附屬品,咱們不該該爲了幾分就拋卻了重要的學習。開心的學習知識才是咱們上大學的目的,不是嗎?