如何讓軟件測試更理性?
一、前二天在寫一份PPT,看到波普爾哲學:
卡爾.波普爾的哲學:科學理論和人類所掌握到的一切知識,都不過是推測和假想,人在解決問題的過程中不可避免地摻入了想象力和創造性,人們只能依靠僅有的數據來證明一條科學理論。這一“可錯性”原則所推演出的“真偽不對稱性”(真不能被證明,只有偽可以被證明)。
二、軟件測試是一份非理性的職業
1、軟件測試能證明軟件存在Bug,不能證明軟件不存在Bug。
2、軟件測試無止境,但測試周期有嚴格限制。
3、軟件質量是一步一步積累、提高的。
4、《軟件測試的藝術》,雖然當前還是很苦逼的職業。
三、舉例個人經歷過的3個不同行業的故障
● 故障:
1、2008年,同一個版本,上海、成都同時割接(通信行業專有說法)新版本,成都用戶投訴,手機不能訪問網站,上海正常。
2、2011年,新版本(金融行業)上線后,4個用戶扣款失敗。
3、2012年,版本(團購)發布后商品價格設置為19.9,顯示變成18.89。
● 原因:
1、成都的無線信號比上海的差,網絡大量重發包,導致句柄耗盡。
2、新版本部署過程中,有4個正在扣款的任務;部署完成后,補償處理扣款任務失敗。接口有一個備注參數調整(英文->中文),支付方校驗前后參數不一致,扣款失敗。
3、19.9–>18.99,Java的浮點計算精度丟失。
● 總結:特定環境、特定用戶、特定場景下發生的bug,測試人束手無策。
四、如何讓測試更理性
● 系統實現透明–>代碼質量提高
1、告別黑盒。
2、學習代碼、框架,理解實現(一個月)。
3、code review開發代碼(長期)。
4、充分了解與外部的交付細節。
5、促進代碼質量(長期)
● 測試設計更全面–>自動化持續積累
1、擁有:測試理論 + 業務知識 + 系統實現。
2、用最少的用例達到業務覆蓋。
3、用最多的思考,追求場景的豐富。
4、長期積累,如果實現自動化更佳。
五、做到什么程度才理性
1、本身就是一個非理性的職業,沒有答案。
2、測試覆蓋率要多少?缺陷密度要多少?轉測試標準要如何?code review要多少?自動化率要多少?探索性測試多少?沒有答案。
3、根據公司、產品、團隊情況,做到當前的理性就可以,慢慢積累向更理性努力。
4、不過,如果一個人堅持理性主義,那么他本身就是有非理性主義因素的。
posted on 2012-05-09 09:28 順其自然EVO 閱讀(179) 評論(0) 編輯 收藏 所屬分類: 測試學習專欄