code

2016年11月3日 星期四

Algorithms 筆記1: Stress Test

完成了Coursera Scala Specialization系列的第一門課之後,也來上一下之前沒看過的UCSD資料結構和演算法系列。之前不論是學校學的還是工作後學的,忘光光了吧!

這門課算是蠻實作入門的,先從實際的program執行告訴你演算法的好壞有顯著的影響,接著告訴你要怎麼debug你的演算法:stress test。

stress test主要是一個實驗組,一個對照組來跑隨機建立的input data。對照組是我們已知(應該)正確的演算法,我們藉由跑同一組input來檢視我們(實驗組)的program output是否正確,不過可能會出現對照組output是錯誤的情況,這時候也要修正對照組的程式。

stress test是一個無窮迴圈的測試,每次iteration都產生隨機的input data,但由於是利用pseudo-random generator,所以其實可以重現每次測試的input data。

測試的順序建議如下:

1. 手動測試number overflow cases,因為如果對照組也有overflow的問題,很有可能你們得出一樣的答案,但非正確
1.5 手動測試corner cases: 最大與最小可接受的value / size
2. 手動測試大input size,看所耗時間如何,這用來找出小input size能夠多大來跑得多次iteration
3. 小input size /小 input value
4. 小input size / 大 input value
5. 大input size / 大 input vale


在工作中好像不常使用stress test,主要是看什麼性質的application。非核心部分通常用不到吧!

沒有留言:

張貼留言