從錯(cuò)誤補(bǔ)丁看回歸測(cè)試的重要性_第1頁
從錯(cuò)誤補(bǔ)丁看回歸測(cè)試的重要性_第2頁
從錯(cuò)誤補(bǔ)丁看回歸測(cè)試的重要性_第3頁
從錯(cuò)誤補(bǔ)丁看回歸測(cè)試的重要性_第4頁
從錯(cuò)誤補(bǔ)丁看回歸測(cè)試的重要性_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第第頁從錯(cuò)誤補(bǔ)丁看回歸測(cè)試的重要性從錯(cuò)誤補(bǔ)丁看回歸測(cè)試的重要性

發(fā)表于:2023-11-25來源:InfoQ:崔康點(diǎn)擊數(shù):標(biāo)簽:回歸測(cè)試

最近,某著名信息安全公司發(fā)布了一個(gè)更新補(bǔ)丁,導(dǎo)致用戶的密鑰管理軟件無法正常工作,應(yīng)該從類似的問題中學(xué)習(xí)到怎樣的教訓(xùn)呢?評(píng)論家AndrewBinstock撰文強(qiáng)調(diào)了回歸測(cè)試的重要性!

最近,某著名信息(安全)公司發(fā)布了一個(gè)更新補(bǔ)丁,導(dǎo)致用戶的密鑰管理軟件無法正常工作,應(yīng)該從類似的問題中學(xué)習(xí)到怎樣的教訓(xùn)呢?評(píng)論家AndrewBinstock撰文強(qiáng)調(diào)了(回歸)(測(cè)試)的重要性!

有關(guān)問題的背景,Andrew做了相應(yīng)的介紹:

在我看來,不使用一個(gè)全面的回歸測(cè)試集合是錯(cuò)誤的。這種錯(cuò)誤將導(dǎo)致正如卡巴斯基這家消費(fèi)者導(dǎo)向的安全軟件公司(提供反病毒,反惡意軟件)所面臨的尷尬局面。卡巴斯基的一款產(chǎn)品是供用戶存放安全密鑰的密鑰安全軟件。當(dāng)用戶需要使用一個(gè)密鑰時(shí),用戶通過密鑰安全軟件的密碼打開軟件,復(fù)制/粘貼要使用的密鑰。其要使用的密鑰會(huì)顯示為一組圓點(diǎn)。完成操作后,他們關(guān)閉安全軟件然后繼續(xù)他們的工作。通過一個(gè)簡單的列表,用戶就可以添加新的密鑰。這個(gè)列表還非常明智地添加了密鑰有效期限。用戶也可以將選擇"從不設(shè)定有效期限'。

下面我將仔細(xì)說明。更新的結(jié)果是所以的密鑰都突然過期,而且修改有效期的按鈕失效。我并不知道卡巴斯基是怎么(開發(fā))軟件的。盡管如此,我們不難從這些現(xiàn)象推斷出一些信息。

Andrew強(qiáng)調(diào)了測(cè)試的重要性:

和很多人一樣,我一直以來很欣賞"UncleBob'Martin的部分觀點(diǎn)。盡管我不贊同他的一些觀點(diǎn)(有時(shí)是強(qiáng)烈不贊同),但我從來沒有質(zhì)疑過的他一直強(qiáng)調(diào)的這一點(diǎn):沒有測(cè)試的提交代碼方式是不正確的。我并不是在推崇Martin的大解決方案(測(cè)試驅(qū)動(dòng)開發(fā)),而是強(qiáng)調(diào)他基本立場的正確性。老實(shí)說,Martin即不是唯一的、也不是第一個(gè)提出測(cè)試與提交代碼同步的重要性的人。KentBeck、MichaelFeathers等許多持續(xù)集成和DevOps的倡導(dǎo)者們,一直以來都持有這個(gè)觀點(diǎn)。但是Martin孜孜不倦的倡導(dǎo)這個(gè)觀點(diǎn)。并且正是由于他的推動(dòng)努力,很多勤奮的開發(fā)人員今天本能地理解了寫完代碼后立即進(jìn)行測(cè)試的重要性。

測(cè)試已經(jīng)成為開發(fā)工作的重要部分。Andrew認(rèn)為,以至于當(dāng)開發(fā)者沒有進(jìn)行測(cè)試時(shí),人們會(huì)認(rèn)為開發(fā)者又陷入了老的工作模式或者指責(zé)開發(fā)者草率行事,對(duì)自己的代碼毫不關(guān)心。直到幾年前,我們還可以說可以不用對(duì)開發(fā)者編寫的代碼進(jìn)行測(cè)試,就能成功地把人類送到月球上。當(dāng)時(shí),大部分人都認(rèn)為自己可以不進(jìn)行測(cè)試就完成出色的代碼。直到今天,還都需要面對(duì)這個(gè)重要的問題:他們?nèi)绾沃雷约簩?duì)代碼的修改不會(huì)影響到現(xiàn)存代碼的正常運(yùn)行?測(cè)試的作用作為整個(gè)代碼的傳感器和監(jiān)視器是對(duì)進(jìn)行測(cè)試工作的必要性的最有力的論證。

對(duì)于該信息安全公司的問題,Andrew分析道:

卡巴斯基公司肯定沒有進(jìn)行回歸測(cè)試,否則它將不會(huì)遇到這個(gè)問題。這個(gè)問題發(fā)生在(Windows)7的機(jī)器上我的朋友告訴我這個(gè)問題發(fā)生在普通的Window7家庭機(jī)上(家庭機(jī)的主要運(yùn)行的程序是Office、Outlook和IE瀏覽器)。評(píng)論說很多Window7的電腦都遇到了這個(gè)問題。考慮到(Windows)7是當(dāng)下最流行的操作系統(tǒng),卡巴斯基公司肯定沒有針對(duì)這款系統(tǒng)進(jìn)行測(cè)試。

還有另外一條線索說明測(cè)試工作沒有進(jìn)行或者至少進(jìn)行的不充分:這款軟件里被標(biāo)明"從不設(shè)定有效期限'的密鑰突然顯示為過期狀態(tài),而且其到期日期變?yōu)?601年。

Andrew認(rèn)為,這個(gè)日期非常麻煩。在測(cè)試中,了解程序的不變量十分有用。不變量是程序中不管程序處于什么狀態(tài),總為真的一些東西。不變量是程序中豐富的"靜脈',我們?cè)诨貧w測(cè)試集合中要充分利用它們。在這個(gè)程序中,我們可以知道它的一個(gè)不變量是任何軟件的到期日期都不能早于軟件發(fā)布日期。打個(gè)比方,如果說卡巴斯基是在2023年7月1日第一次發(fā)布的這個(gè)軟件,那么所有用戶的密鑰的截止日期就不會(huì)早于這個(gè)日期。這就是一個(gè)不變量任何密鑰的截止日期不能早于2023年7月1日。如果密鑰的截止日期早于這個(gè)日期,那就說明程序有錯(cuò)誤。而現(xiàn)在程序中出現(xiàn)1601年這個(gè)日期,這說明測(cè)試工作不足或設(shè)計(jì)工作很差。也就是說,使用無效的日期作為使用的數(shù)據(jù),如一個(gè)錯(cuò)誤代碼。這種重用數(shù)據(jù)字段來代表一個(gè)完全陌生的數(shù)據(jù)項(xiàng)的做法是很可怕的。這種做法在磁盤空間和內(nèi)存都很昂貴的時(shí)代非常流行。標(biāo)志位的字節(jié)常常被重載來表示獨(dú)特的信號(hào)或者罕見的條件。如今在資源受限制的嵌入式系統(tǒng)中我們依舊可以見到這種做法,那是因?yàn)楝F(xiàn)在還沒有更好的做法來替代這種做法。不過對(duì)于桌面程序,這是一個(gè)嚴(yán)重的問題。首先,你會(huì)給正在試圖解決一些困惑問題的用戶帶來新的令人困惑。其實(shí),你會(huì)讓不變量不穩(wěn)定。現(xiàn)在,針對(duì)不變量的測(cè)試必須測(cè)試所有合法的異常值一個(gè)常數(shù)的維護(hù)問題作為新的誤差值被添加到這個(gè)重載的字段。相反,錯(cuò)誤常常被他們自身的領(lǐng)域和診斷所標(biāo)明。這保證了測(cè)試的完整性,代碼的清晰、可讀性。關(guān)于后者,想想那些測(cè)試錯(cuò)日期、翻譯錯(cuò)日期的代碼。當(dāng)你在你是用的應(yīng)用程序中看到這些問題是你會(huì)怎么想?

我朋友現(xiàn)在明智的思考她是否應(yīng)該更換一款安全軟件,用一款從不會(huì)鎖住她的密鑰的軟件。如果你不充分測(cè)試你的軟件(從開發(fā)者測(cè)試開始進(jìn)行開發(fā)者測(cè)試將在產(chǎn)品發(fā)布前早早發(fā)現(xiàn)問題),你可能會(huì)遇到大麻煩。

資深敏捷專家LisaCrispin曾經(jīng)撰文強(qiáng)調(diào)了(自動(dòng)化)回歸測(cè)試的重要性:敏捷團(tuán)隊(duì)沒有測(cè)試(自動(dòng)化)會(huì)成功嗎?可能吧,但是我們所知道的成功團(tuán)隊(duì)都依賴自動(dòng)化回歸測(cè)試。如果你花費(fèi)全部時(shí)間用在手動(dòng)回歸測(cè)試上,絕沒有時(shí)間用于重要的探索性測(cè)試(會(huì)發(fā)現(xiàn)隱藏在代碼中的危險(xiǎn)行為)。敏捷開發(fā)利用測(cè)試來指導(dǎo)開發(fā)。為了編寫代碼使測(cè)試通過,你需要快速、簡單地運(yùn)行測(cè)試。沒有短期反饋周期和安全的回歸測(cè)試,團(tuán)隊(duì)將很快陷入技術(shù)債務(wù),(缺陷)不斷增加,速度越來越慢。

自動(dòng)化回歸測(cè)試是團(tuán)隊(duì)的工作。整個(gè)團(tuán)隊(duì)?wèi)?yīng)該選擇每種測(cè)試適合的工具。提前考慮測(cè)試將幫助開發(fā)人員為了便于測(cè)試自動(dòng)化來設(shè)計(jì)代碼。使用(敏捷測(cè)試)象限和測(cè)試自動(dòng)化金字塔來幫助你自動(dòng)化各種類型的測(cè)試。記住從簡單入手。你會(huì)驚訝地發(fā)現(xiàn)一些基本的自動(dòng)化冒煙測(cè)試或者自動(dòng)化(單元測(cè)試)會(huì)發(fā)生很大作用。

測(cè)試自動(dòng)化是團(tuán)隊(duì)的工作。開始時(shí)很艱苦,需要克服很

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論