來自知乎的轉載之--測試
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。
其實測試工作不一定只能通過軟件工程進行理解,實際上,現實生活裏我們都沒有逃脫測試的魔爪,咱們就通過“陪老婆/女友逛商場”這個示例,比較一下幾種測試方法之間的區別~~
黑盒測試:老婆從商場的某一個入口進入,你在商場外面等待,這時候商城對你來說就像一個不透明的黑盒子,你並不知道商場內發生了什麽,你也不去關心裏面發生什麽,你只知道如果一切運轉正常,結果是老婆帶著一堆商品從某一個出口(可以與入口相同)出來。這是原定正常的情況,這時候我們就不需要管商場裏面發生了什麽,只需要知道老婆進去轉了一圈,你的這月工資報銷了,一切正常,這就OK了。否則,在多次逛商場(多次黑盒測試)過程中,頻繁發生無法達到正常結果的情況,例如老婆與人發生爭執、老婆帶的錢不夠、老婆有選擇困難需要與你協商等情況的發生,這就需要相關人員(你)通過別的檢測手段進到商場(黑盒)裏進行檢查解決了。
白盒測試:老婆從商場的某一個入口進入,你隨著陪同進入商場,全程陪伴,這時商場對你來說是個白盒子,就是透明的,你可以看到他內部的全部細節。這時你要觀察老婆購物的每個細節,了解其走過的每一步,發生的每個小情況,隨時準備應對支付、拎包、與人對罵、按摩揉腿(我。。。已經寫不下去了。。。)等突發事件,記錄整個期間出現錯誤需要修正的問題(當然,整個過程你也不免出現走神情況,例如偷看別的美女,錯過老婆喜歡某種商品的信號,結果可能就是重測。。。也就是再逛一遍),最後結果是,你抱著一堆商品陪著老婆從某一個出口出來,這月工資還是報銷了。
單元測試:老婆進入商場後,專門盯著某一個專賣店,查看其是否有新品、是否有活動,一天去三次,一周去三天,一月去三周,各級別VIP全辦齊,面對任何一個店員都可以刷臉,達到對該專賣店了如指掌,對店鋪的任何細節都確保萬無一失之後,再轉向下一個專賣店……
壓力測試:響應打折號召,原本互不認識的老婆們瞬間組成聯盟,組團進入商場進行大量掃貨,每天進行,天天堅持,持續一段時間,看商場是否頂得住,觀察這種壓力下商場是否會出現斷貨、服務員暴走、刷卡機宕機等問題。
性能測試:這個概念比較廣,包括整個商場的運轉穩定性,如能否做到每天開業、24小時開業、服務員被大媽折磨後的情緒控制能力等;商場安全性,保安能否保護顧客安全、防火防盜措施、小三專用逃生通道(例如程序裏的特殊值、邊界值處理)等。
因此,其實軟件測試並不是什麽新鮮的概念,我們在現實生活中,一直在對各大商場進行“集成測試”,大量的商場被老婆團們以各種苛刻的測試手段所淘汰。因此,各位都是偉大的測試人員,並且,這項測試是永久存在的,永不宕機的,不要幻想產品終版發布的那天到來。
共勉。
--------------------------------------------------------
2015.9.20補充吸收@Jasin Yip的建議,提一下回歸測試:
每當店鋪根據顧客需求(bug記錄)上線了新品(修改bug)之後,老婆們需要到該店鋪,進行全方位從新檢查是否出現新的購物機會,並體驗該店鋪全部功能是否正常,如刷卡。。。不放過任何一絲消費的機會。。。
2015.10.12補充@Julia Jo 冒煙測試(Smoke Testing):
經過我認真閱讀(你信嗎)冒煙測試的概念,我腦中浮現出如下畫面。當我跟隨老婆進入商場後,發現有幾處新裝修或新開張的店面,我與老婆立刻呈現出截然相反的面部表情,歡喜與驚恐,接下來進入店面(不可能出現無視路過的情況。。。),由於對這個新店面所知較少,所以沒有既定計劃,只是根據店面應該提供的服務(軟件功能),進行隨意閑逛、隨意詢問店員、挑選商品、瘋狂砍價(如果具備此服務~)、完成支付(在劫難逃啊)等行為,整個過程並無特殊針對性,只是圍繞店面應該存在的服務隨意體驗(測試),這好像是女生逛街的基本模式吧~如果發現哪裏不合心意(無意中發現bug,即冒煙),基本上會立刻失去興趣,呈斜眼撅嘴狀(停止測試),等待再次裝修後再來閑逛~
UAT測試:版本1. 老婆對長期堅守的某個商場非常有信心,因此就對家人、朋友、同事、陌生人一致推薦此處,於是各路被忽悠組隊而來的“某某”觀光團進入商場進行購物(測試),並表達購物感言(反饋)。版本2. 換個角色~你的男/女友,對你完成長期測試(我也不知道都要測試什麽--)後,感覺這段感情可以上線運行了,於是就將男/女友帶到家中,由家人進行測試審核(感覺有點跑題。。。),然後家人群體表達測試結果~
總之:不同的測試方法有不同的側重點,雖然名稱差別很大,也許實際上只是細微的形式上的差異。然而如同陪老婆逛街一樣,雖然各種形式差別不大,並且結果都是一樣(當月工資報銷~),但是當我們對這些事情(我真的指的是測試。。。)從事過大量的重復體驗之後,會發現,就是這一點點細微的差異,在面對不同的測試需求時卻是那麽的恰如其分。
反正這些測試方式不是強硬規定出來的,而是剛好這種測試能夠測出當前存在的問題,所以需要進行某個方式的測試。所以,深入了解不同測試方式的側重點,然後在適當的時候選擇最合適的測試方式,最終發現隱藏的問題,這,才是核心價值。哪怕你用在教科書中沒有的方式也是可以的,比如自己寫測試腳本等。
就這樣吧,看我寫的多認真(完全沒看出來),給個贊再走啊~
來自知乎的轉載之--測試