深入單元測(cè)試系列之一軟件測(cè)試的歷史

這是單元測(cè)試系列文章第一篇,完整的系列內(nèi)容:

深入單元測(cè)試系列之一,軟件測(cè)試的歷史
深入單元測(cè)試系列之二,TDD和單元測(cè)試
深入單元測(cè)試系列之三稻据,Junit5和Mockito
深入單元測(cè)試系列之四,測(cè)試的度量
深入單元測(cè)試系列之五买喧,持續(xù)集成和持續(xù)交付

軟件測(cè)試是在軟件的發(fā)展過(guò)程中逐漸產(chǎn)生和成熟的捻悯,要了解單元測(cè)試,也不得不從軟件測(cè)試說(shuō)起淤毛,只有了解一件事物的過(guò)去和歷史背景今缚,才能站在更高的視角去看待這個(gè)世界。

1962年6月22日9點(diǎn)26分低淡,在弗羅里達(dá)州的卡納維拉爾角火箭發(fā)射基地姓言,隨著一聲巨響,Atlas號(hào)火箭點(diǎn)火成功騰空而起蔗蹋,它裝載著水手一號(hào)探測(cè)器準(zhǔn)備送入太空何荚。發(fā)射站的工作人員緊張地盯著監(jiān)控中心的屏幕,因巡航系統(tǒng)故障火箭已經(jīng)偏離了正常的軌道猪杭,工作人員切換到了備用雷達(dá)餐塘,切換之后發(fā)現(xiàn)一處BUG導(dǎo)致雷達(dá)無(wú)法正常運(yùn)行,偏離越來(lái)越遠(yuǎn)皂吮,第293秒戒傻,安全主管做出決定税手,摧毀該火箭,又一聲巨響稠鼻,Atlas瞬時(shí)化為一團(tuán)火球冈止,造價(jià)約1850美元的設(shè)備付之一炬。在此之前候齿,相同的系統(tǒng)已經(jīng)成功發(fā)射過(guò)兩次,沒(méi)有出現(xiàn)問(wèn)題闺属,是因?yàn)閷?dǎo)航系統(tǒng)正常而未啟動(dòng)備用雷達(dá)系統(tǒng)慌盯,而這一次是切換到有問(wèn)題的雷達(dá)系統(tǒng)了。一個(gè)月之后亚皂,該BUG被修復(fù),水手二號(hào)發(fā)射成功国瓮。

歷史總在不停地重演,大約從1995年開(kāi)始乃摹,成千上萬(wàn)的程序員忙著升級(jí)程序,解決千年蟲(chóng)問(wèn)題孵睬,將原本設(shè)計(jì)成兩位的年份轉(zhuǎn)換為四位的年份。2011年掰读,捷豹被迫召回2006年-2010年期間出廠的柴油動(dòng)力車(chē),因?yàn)檐浖毕葑柚寡埠较到y(tǒng)關(guān)閉蹈集,發(fā)動(dòng)機(jī)停下來(lái)才能關(guān)閉巡航控制。

1957年拢肆,Charles L Baker在IBM工作期間,讀到一本書(shū)《Digital Computer Programming》獲得靈感善榛,提出了Debugging和Testing進(jìn)行區(qū)分的觀點(diǎn),這是首次將測(cè)試作為軟件開(kāi)發(fā)中的獨(dú)立活動(dòng)的里程碑移盆,他為此寫(xiě)文章講述了他在項(xiàng)目中的應(yīng)用,在此之前通常認(rèn)為軟件的測(cè)試就是Debugging咒循。

1979年绞愚,經(jīng)典之作《The Art of Software Testing》問(wèn)世,作者Glenford J. Myers颖医,當(dāng)時(shí)同樣在IBM工作位衩,曾經(jīng)參與過(guò)System360的研發(fā)工作,他提出了關(guān)于測(cè)試的核心觀點(diǎn):測(cè)試是為了發(fā)現(xiàn)程序中錯(cuò)誤而執(zhí)行程序的過(guò)程熔萧。在書(shū)中探討了代碼檢查糖驴、代碼評(píng)審、測(cè)試用例的設(shè)計(jì)佛致、模塊測(cè)試贮缕、系統(tǒng)測(cè)試、調(diào)試等測(cè)試相關(guān)的話題俺榆,至今廣泛流傳感昼。


1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)局發(fā)布“Guideline for Lifecycle Validation, Verification and Testing of Computer Software”罐脊,明確定義了測(cè)試的兩個(gè)活動(dòng):

Verification: Are we building the product right
Validation: Are we building the right product

軟件測(cè)試工程在這個(gè)時(shí)期得到了快速的發(fā)展定嗓,軟件測(cè)試正作為一門(mén)獨(dú)立的,專業(yè)的萍桌,具有影響力的工程學(xué)發(fā)展起來(lái)了宵溅,出現(xiàn)測(cè)試經(jīng)理、測(cè)試分析師等職稱梗夸,越來(lái)越多的測(cè)試會(huì)議和活動(dòng)開(kāi)展了层玲,也有越來(lái)越多的文章和刊物出版。這個(gè)時(shí)期反症,軟件測(cè)試不再是程序驗(yàn)證的過(guò)程辛块,而是貫穿軟件生命周期的活動(dòng),包含從需求铅碍、設(shè)計(jì)润绵、單元測(cè)試、集成胞谈、驗(yàn)收等過(guò)程尘盼。

2001年2月,在美國(guó)猶他州的雪鳥(niǎo)度假村烦绳,有17個(gè)中年男性匯聚一堂卿捎,本來(lái)邀請(qǐng)了一位女士,但是沒(méi)有到場(chǎng)径密。他們?cè)谲浖袠I(yè)都有二三十年的經(jīng)驗(yàn)午阵,可謂是業(yè)界頂級(jí)專家,有計(jì)算機(jī)科學(xué)家,有軟件公司CEO底桂,有極限編程XP之父植袍,有Scrum之父,還有重構(gòu)之父等籽懦。這些人對(duì)軟件開(kāi)發(fā)的現(xiàn)狀深惡痛絕于个,他們雖然觀點(diǎn)各異,但都希望改變低效的暮顺、重量級(jí)的、高度儀式化的軟件開(kāi)發(fā)過(guò)程捶码,比如瀑布方法宙项,找到一個(gè)輕量而高效的方法尤筐。他們激烈討論了兩天洞就,在頭腦風(fēng)暴中不斷擦出思想的火花旬蟋,最終排除萬(wàn)難達(dá)成一致,簽署了影響軟件行業(yè)二十年的《敏捷宣言》冕碟。一石激起千層浪匆浙,宣言發(fā)布后,簇?fù)碚卟粩嗵羰笕瞬粩嘣诿艚菪缘幕A(chǔ)上實(shí)踐和改進(jìn)迎捺,產(chǎn)生了大量提升軟件開(kāi)發(fā)效率的方法和工具查排。

個(gè)體和互動(dòng)?高于 流程和工具
工作的軟件?高于 詳盡的文檔
客戶合作?高于 合同談判
響應(yīng)變化?高于 遵循計(jì)劃
也就是說(shuō),盡管右項(xiàng)有其價(jià)值范舀,我們更重視左項(xiàng)的價(jià)值

敏捷軟件開(kāi)發(fā)宣言

作為歷史的見(jiàn)證者和推動(dòng)者,這段歷史在Bob大叔(Robert C. Martin)的書(shū)《敏捷整潔之道》中有更詳細(xì)的描述聪全。宣言下方的署名第一個(gè)Kent Beck就是極限編程和測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的創(chuàng)始人辅辩,在Java流行之前玫锋,他對(duì)Smalltalk編程語(yǔ)言造詣?lì)H深,著有《Smalltalk Best Practice Patterns》一書(shū)谦炬,并寫(xiě)出了Smalltalk的測(cè)試框架SUnit节沦。

測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的測(cè)試先行甫贯,重構(gòu),以及小步前進(jìn)等理念極大的提高了軟件開(kāi)發(fā)的質(zhì)量赔桌,得到廣泛的支持渴逻。測(cè)試已經(jīng)變成了軟件開(kāi)發(fā)的一部分裸卫,測(cè)試不僅僅是事后的驗(yàn)證,還需要在開(kāi)發(fā)階段就要提前預(yù)防茧泪,通過(guò)重構(gòu)防止質(zhì)量變差队伟,代碼腐化幽勒。 通過(guò)自動(dòng)化和持續(xù)集成等工具,做到變更即測(cè)試顷霹,時(shí)刻保證軟件的可工作和可用击吱,達(dá)到快速交付的目標(biāo)。例如在Facebook朵纷,沒(méi)有專門(mén)的測(cè)試人員袍辞,自動(dòng)化測(cè)試案例是由開(kāi)發(fā)人員完成搅吁,我還專門(mén)聯(lián)系了一個(gè)在Facebook的前同事進(jìn)行了確認(rèn)落午,他們團(tuán)隊(duì)就沒(méi)有專職測(cè)試人員。歷史一次次證明,沒(méi)有不變更的需求盐类,總會(huì)有測(cè)試不出來(lái)的生產(chǎn)問(wèn)題呛谜,那么盡早的開(kāi)始測(cè)試,盡早發(fā)現(xiàn)問(wèn)題猫妙,上線之后的風(fēng)險(xiǎn)也就越小割坠,修復(fù)的成本也就越低妒牙。

隨著云計(jì)算、微服務(wù)敢朱、DevOps、AI等工具和技術(shù)的發(fā)展孝常,軟件的規(guī)模越來(lái)越復(fù)雜精续,已經(jīng)不是幾臺(tái)服務(wù)器就可以獨(dú)立運(yùn)行起來(lái)的系統(tǒng)了箍铲,可能是成百上千的微服務(wù)構(gòu)成的龐大的復(fù)雜系統(tǒng),不僅僅包含了應(yīng)用軟件洛巢,還包括底層的基礎(chǔ)設(shè)置稿茉,各種依賴的服務(wù)漓库,未來(lái)的軟件測(cè)試也勢(shì)必進(jìn)化,在效率渺蒿、智能化茂装、安全性等方面需要更多關(guān)注少态。

下一篇文章將講解TDD的實(shí)踐彼妻,敬請(qǐng)關(guān)注豆茫。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末为肮,一起剝皮案震驚了整個(gè)濱河市肤京,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌白修,老刑警劉巖重斑,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件祖很,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡假颇,警方通過(guò)查閱死者的電腦和手機(jī)笨鸡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)形耗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人激涤,你說(shuō)我怎么就攤上這事昔期。” “怎么了梦抢?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵奥吩,是天一觀的道長(zhǎng)霞赫。 經(jīng)常有香客問(wèn)我肥矢,道長(zhǎng)端衰,這世上最難降的妖魔是什么叠洗? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮旅东,結(jié)果婚禮上灭抑,老公的妹妹穿的比我還像新娘。我一直安慰自己抵代,他們只是感情好腾节,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著荤牍,像睡著了一般案腺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上康吵,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天劈榨,我揣著相機(jī)與錄音邑闺,去河邊找鬼。 笑死靶衍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播商叹,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼过蹂,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼晚岭!你這毒婦竟也來(lái)了库说?” 一聲冷哼從身側(cè)響起字管,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤锰什,失蹤者是張志新(化名)和其女友劉穎霜幼,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡祭刚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年撤防,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡墙懂,死狀恐怖扔亥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布魂仍,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏锯岖。R本人自食惡果不足惜捶牢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望帘靡。 院中可真熱鬧瓤帚,春花似錦怯邪、人聲如沸搂捧。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)火惊。三九已至惶岭,卻和暖如春摩疑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背楷怒。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工蛋勺, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鸠删。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓抱完,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親刃泡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子巧娱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 想學(xué)習(xí)單元測(cè)試無(wú)從下手,本文對(duì)以最易懂的方式介紹單元測(cè)試烘贴。 若有錯(cuò)漏禁添,煩請(qǐng)斧正。轉(zhuǎn)載請(qǐng)注明出處桨踪。作者:程序引力 |...
    程序引力閱讀 895評(píng)論 0 8
  • 最關(guān)鍵價(jià)值 :業(yè)務(wù)知識(shí)老翘、對(duì)客戶的理解和把握、對(duì)客戶的溝通單元測(cè)試 :開(kāi)發(fā)人員完成集成測(cè)試 :主要測(cè)試接口項(xiàng)...
    適當(dāng)車(chē)閱讀 361評(píng)論 1 2
  • 久違的晴天锻离,家長(zhǎng)會(huì)酪捡。 家長(zhǎng)大會(huì)開(kāi)好到教室時(shí),離放學(xué)已經(jīng)沒(méi)多少時(shí)間了纳账。班主任說(shuō)已經(jīng)安排了三個(gè)家長(zhǎng)分享經(jīng)驗(yàn)逛薇。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,523評(píng)論 16 22
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友疏虫。感恩相遇永罚!感恩不離不棄。 中午開(kāi)了第一次的黨會(huì)卧秘,身份的轉(zhuǎn)變要...
    迷月閃星情閱讀 10,567評(píng)論 0 11
  • 在妖界我有個(gè)名頭叫胡百曉呢袱,無(wú)論是何事,只要找到胡百曉即可有解決的辦法翅敌。因?yàn)槭侵缓偞蠹乙杂瀭饔灲形摇皟A城百曉”羞福,...
    貓九0110閱讀 3,265評(píng)論 7 3