APP為什么需要測(cè)試?因?yàn)樗鼤?huì)幫你避免一個(gè)億的損失
越早的發(fā)現(xiàn)bug,成本損失就越小。
測(cè)試軟件的需求是什么?為什么一個(gè)公司要有一個(gè)軟件測(cè)試和質(zhì)量保證團(tuán)隊(duì)?為什么測(cè)試?這些都是一些問題,每個(gè)軟件測(cè)試人員在他的測(cè)試生涯中都要經(jīng)常面對(duì)。其實(shí),就是簡(jiǎn)單的一句話:測(cè)試可以減少錯(cuò)誤,以免付出昂貴的代價(jià)。
軟件錯(cuò)誤的成本代價(jià)可以為任何事物,如大量的金錢,有時(shí)甚至是生命的損失。有上百個(gè)關(guān)于計(jì)算機(jī)系統(tǒng)故障的事故,都是由于軟件中的錯(cuò)誤造成的。系統(tǒng)失敗的原因有很多,但其中最突出的問題是缺乏足夠的測(cè)試。
真實(shí)的案例
以下這些有記錄的故事強(qiáng)調(diào)了正確和徹底的測(cè)試的必要性,因?yàn)樗婕暗娘L(fēng)險(xiǎn)不僅僅是用金錢來衡量的,而是用在人的生命中。這對(duì)用于人類生活的軟件尤其重要,比如制藥行業(yè)的軟件或通用的IPL機(jī)器。
在新系統(tǒng)的開發(fā)過程中發(fā)生了比較大的災(zāi)難,造成了巨大的財(cái)務(wù)損失,而這些本來是可以通過有效的測(cè)試來避免的。
1、百事可樂- 420億美元的錯(cuò)誤
1992年5月,百事在菲律賓進(jìn)行了一次促銷活動(dòng)。該公司告訴客戶,如果他們買了一瓶百事可樂,并在瓶蓋的底部發(fā)現(xiàn)了349號(hào),那么,他們可以贏得100萬比索(約等于100萬美元)。不幸的是, 由于軟件的錯(cuò)誤,80萬個(gè)瓶蓋都被錯(cuò)刷成了 349,相當(dāng)于要多支付420億美元的獎(jiǎng)金。這導(dǎo)致一些人將百事公司告上法庭,控訴其支付獎(jiǎng)金,而最終百事公司支付了數(shù)百萬美元的賠償金,但也使得公司損失慘重。
?2、Cahoot -網(wǎng)站故障
英國八大銀行之一的阿比國民銀行,于2000年6月上線了它的在線銀行Cahoot。在交易的第一天,在交易的90分鐘內(nèi),系統(tǒng)崩潰,導(dǎo)致網(wǎng)站崩潰。
這是由于Cahoot成功的營銷激勵(lì)計(jì)劃后,客戶對(duì)網(wǎng)站的需求增加。后來發(fā)現(xiàn),注冊(cè)應(yīng)用程序及其與網(wǎng)絡(luò)的集成還沒有經(jīng)過充分的壓力測(cè)試,不足以承受巨大的瀏覽量。
該系統(tǒng)應(yīng)該被設(shè)計(jì)用來應(yīng)對(duì)網(wǎng)站訪問量的激增和并發(fā)用戶的大量增加。如果在項(xiàng)目的開發(fā)生命周期早期進(jìn)行了基于web的負(fù)載和性能測(cè)試,那么該應(yīng)用程序服務(wù)器的瓶頸就可以在運(yùn)行之前識(shí)別出來。
3、化學(xué)銀行
另一個(gè)故事在1994年2月在《紐約時(shí)報(bào)》上被曝光。紐約化學(xué)銀行成功地從每10萬個(gè)賬戶中,就取出了1500萬美元——這是程序中的一個(gè)單行錯(cuò)誤,而非故意為之。巨大的bug導(dǎo)致他們網(wǎng)絡(luò)上的每個(gè)ATM都要處理兩次交易,大大增加了工作量同時(shí),也為上述錯(cuò)誤留下伏筆。
4、英國兒童撫養(yǎng)機(jī)構(gòu)
商業(yè)服務(wù)巨頭EDS公司為英國兒童撫養(yǎng)機(jī)構(gòu)(簡(jiǎn)稱CSA)開發(fā)了一個(gè)計(jì)算機(jī)系統(tǒng),結(jié)果一個(gè)未被察覺的結(jié)算系統(tǒng)bug,導(dǎo)致該撫養(yǎng)機(jī)構(gòu)給190萬人多付了款,少付款給70萬人,還有35億英鎊的兒童撫養(yǎng)費(fèi)未收到款,積壓的待辦事宜達(dá)23.9萬件, 有3.6萬件新的案子“卡”在系統(tǒng)上。一場(chǎng)系統(tǒng)災(zāi)難,令這個(gè)龐大的“事業(yè)單位”最終損失達(dá)5.39億英鎊。
5、美國航天局火星極地登陸者號(hào)探測(cè)器
1999年12月3日,美國航天局的火星極地登陸者號(hào)探測(cè)器試圖在火星表面著陸時(shí)失蹤。一個(gè)故障評(píng)估委員會(huì)(Failure Review Board,FRB) 調(diào)查了故障,認(rèn)定出現(xiàn)故障的原因極可能是一個(gè)數(shù)據(jù)位被意外置位。最令人警醒的問題是為什么沒有在內(nèi)部測(cè)試時(shí)發(fā)現(xiàn)呢。
從理論上看,著陸的計(jì)劃是這樣的: 當(dāng)探測(cè)器向火星表面降落時(shí),它將打開降落傘減緩探測(cè)器的下降速度。降落傘打開幾秒鐘后,探測(cè)器的三條腿將迅速撐開,并鎖定位置,準(zhǔn)備著陸。當(dāng)探測(cè)器離地面1800米時(shí),它將丟棄降落傘,點(diǎn)燃著陸進(jìn)器,緩緩地降落到地面。
美國航天局為了省錢,簡(jiǎn)化了確定何時(shí)關(guān)閉著陸推進(jìn)器的裝置。為了替代在其他太空船上使用的貴重雷達(dá),他們?cè)谔綔y(cè)器的腳部裝了一個(gè)廉價(jià)的觸點(diǎn)開關(guān),在計(jì)算機(jī)中設(shè)置一個(gè)數(shù)據(jù)位來控制觸點(diǎn)開關(guān)關(guān)閉燃料。很簡(jiǎn)單,探測(cè)器的發(fā)動(dòng)機(jī)需要一直點(diǎn)火工作,直到腳“著地”為止。
遺憾的是,故障評(píng)估委員會(huì)在測(cè)試中發(fā)現(xiàn),許多情況下,當(dāng)探測(cè)器的腳迅速撐開準(zhǔn)備著陸時(shí),機(jī)械震動(dòng)也會(huì)觸發(fā)著陸觸點(diǎn)開關(guān),設(shè)置致命的錯(cuò)誤數(shù)據(jù)位。設(shè)想探測(cè)器開始著陸時(shí),計(jì)算機(jī)極有可能關(guān)閉著陸推進(jìn)器,這樣火星極地登陸者號(hào)探測(cè)器飛船下墜1800米之后沖向地面,撞成碎片。
結(jié)果是災(zāi)難性的,但背后的原因卻很簡(jiǎn)單。登陸探測(cè)器經(jīng)過了多個(gè)小組測(cè)試。其中一個(gè)小組測(cè)試飛船的腳折疊過程,另一個(gè)小組測(cè)試此后的著陸過程。前一個(gè)小組不去注意著地?cái)?shù)據(jù)位是否置位一一這不是他們負(fù)責(zé)的范圍; 后一個(gè)小組總是在開始測(cè)試之前復(fù)位計(jì)算機(jī)、清除數(shù)據(jù)位。雙方獨(dú)立工作都做得很好,但合在一起就不是這樣了。
通過以上案例,可以直觀的看到測(cè)試的重要性,測(cè)試不到位帶來的損失是無法估計(jì)的甚至是致命的,并且眾所周知,隨著時(shí)間的推移,軟件缺陷修復(fù)的費(fèi)用越高,如下圖:
越早的發(fā)現(xiàn)bug,成本損失就越小。在這個(gè)移動(dòng)互聯(lián)時(shí)代,APP就是最大的系統(tǒng),通過行之有效的APP測(cè)試,盡早發(fā)現(xiàn)APP具有的bug并修復(fù)它們,避免的可不止是一個(gè)億的損失啊,還有無價(jià)的用戶體驗(yàn)及好感度呢….
作者:陳迪 Derek,Testin云測(cè)SaaS運(yùn)營總監(jiān),前樂視高級(jí)運(yùn)營經(jīng)理,增長(zhǎng)黑客, 加拿大MBA海歸,多年國內(nèi)和海外互聯(lián)網(wǎng)公司運(yùn)營經(jīng)驗(yàn)。曾在北美B2C 100強(qiáng)公司任運(yùn)營管理工作。回國后,曾多次創(chuàng)業(yè),并參與多個(gè)互聯(lián)網(wǎng)公司運(yùn)營咨詢工作。
本文由 @陳迪 Derek? 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自StockSnap.io,基于 CC0 協(xié)議
??