軟件測試是找茬遊戲
以前有一個很火的遊戲叫《大家來找茬》,我玩這個遊戲很厲害,在這個遊戲中,兩幅圖中有幾個不一樣的地方,有些地方很明顯,一眼就能看到,有的地方隱藏得比較深,要仔細看才能看清楚。 遊戲也不需要你把沒處不同都找出來,只要達標就可以進入下一關。
軟件測試就是玩《大家來找茬》,拿到的需求就是第一幅圖, 開發寫出來的代碼是第二幅圖。 開發在編寫代碼的過程中會出現邏輯錯誤,從而導致第二幅圖和第一幅圖不完全一樣, 而測試的任務就是把這些不一樣的地方找出來,避免損失。
隨機測試法不靈
低段位的選手玩《找茬》遊戲一般是隨機查找,看到了就看到了,沒看到再換個區間。這種測試方法教 “隨機輸入測試法”,很明顯,這是效率最低的方式。
在一張圖上的任意一個像素點都有可能不同,而在成千上萬行代碼中,任意一行都有可能出問題。 隨機測試法就好像拿個小碗到大海里撈針,撈到的機率很小。
窮舉法也不靈
還有一種辦法來玩《找茬》遊戲,那就是一個個像素點比對,這種方式確實能找到,但是速度實在是太慢了。爲了提高速度,總是會跳過一些地方,總會有漏網之魚。
小時候過年,家裏撈池塘裏的魚就是用這種辦法,但是每年池塘裏總會有很多魚沒有撈乾淨。
測試用例方法必須學精
精通的方法:
- 等價類
- 邊界值
- 因果圖和判定表
- 錯誤猜測
剛入行想掌握好這幾種用例設計方法應該也還行了,所以其他的用例設計方法我也沒有仔細看。看着就這幾個字,但是實操起來還是有難度的。 尤其是當因果圖和等價類這些結合起來的時候,分分鐘就暈了。放張圖感受一下。
測試類型不是兒戲
想那些報班學習的應該只關注功能測試吧,對於模塊測試、系統測試應該關注不多,這就是自學的優勢,能看到全世界最厲害的人的思想結晶。
當然,對於互聯網應用,最少也應該從表示層、業務層和數據層面進行測試。
表示層主要測試界面是否顯示正常:
- 字體
- 鏈接指向
- 圖形分辨率
- 拼寫檢查
- 光標位置
- 默認狀態
- 交互友好度
- 商業風格
業務層主要測試是否完成了正確的事情:
- 計算是否正確
- 數據採集和返回正常
- 事務正確完成
- 失敗事務回滾正常
- 響應時間和吞吐率
數據層主要看數據庫:
- 數據庫性能
- 數據存儲正常
- 數據備份正常
- 數據加密和安全
- 後端數據輸入和管理功能的可用性
測試很難
我不知道有多少人聽到測試門檻低,工資高就一頭扎入了這個行業, 但是測試是一個邏輯遊戲,邏輯思維不行的,考慮問題不健全的,對用戶沒有同理心的幹這個可能會很喫虧。
當然入門還是比較簡單的,就和你想學唱歌一樣,想學入門很輕鬆。 但是你要靠這個作爲飯碗,要做歌手,那就需要經過系統的訓練。
同時,面試也會用非常多的八股文需要背,我之前收集到的面試題多如牛毛,佩服自己是應試教育的一把好手,後面整理了一下碰到的主要面試題,送給有緣人,順便求點個贊,三連必回。