自己寫程式往往有兩個盲點:測試資源不夠,因而難以全盤瞭解用戶使用情形的全貌;另一個則是只有自己跟自己對話時,往往難以做出正確的判斷和決定。無論個人或團隊開發,都有各自的優缺點。 懂得電腦運作原理的人都知道,它的運作是一種「決定性」(deterministic)的機制。簡單的說,程式碼一但寫成,就決定了運作的順序;原則上只要給定同樣的參數,不管重複運作幾次,順序和結果都會是一樣的。 那這裡為什麼會提到不確定性呢? 雖然運作的本質沒變,但是當外部環境的輸入有變化時,程式碼的運作途徑 (execution paths)就會大不相同;所以在全部的程式碼中,實際真正會運算到的比例(或從另一個角度來說,就是「可以被人為測試到的」),就稱為「覆蓋率」(code coverage)。
業餘大叔程式心得筆記#8:寫程式的不確定性與多重人格/葉光釗
業餘大叔程式心得筆記#8:寫程式的不確定性與多重人格/葉光釗
業餘大叔程式心得筆記#8:寫程式的不確定性與多重人格/葉光釗
自己寫程式往往有兩個盲點:測試資源不夠,因而難以全盤瞭解用戶使用情形的全貌;另一個則是只有自己跟自己對話時,往往難以做出正確的判斷和決定。無論個人或團隊開發,都有各自的優缺點。 懂得電腦運作原理的人都知道,它的運作是一種「決定性」(deterministic)的機制。簡單的說,程式碼一但寫成,就決定了運作的順序;原則上只要給定同樣的參數,不管重複運作幾次,順序和結果都會是一樣的。 那這裡為什麼會提到不確定性呢? 雖然運作的本質沒變,但是當外部環境的輸入有變化時,程式碼的運作途徑 (execution paths)就會大不相同;所以在全部的程式碼中,實際真正會運算到的比例(或從另一個角度來說,就是「可以被人為測試到的」),就稱為「覆蓋率」(code coverage)。