像一句古老的諺語中說得:“不變的是改變”。

  在軟件開發(fā)模型中,曾被認(rèn)為的瀑布模型的一個(gè)缺陷是假定很少或者沒有改變,而現(xiàn)實(shí)世界是每天都在改變的。也因?yàn)槿绱耍渌拈_發(fā)模型比如“快速應(yīng)用開發(fā)(Rapid Application Development,RAD)”逐漸發(fā)展成可以接收改變,并通過計(jì)劃好的迭代過程利用這些改變來改進(jìn)軟件的開發(fā)模型。

  雖然RAD可以幫助軟件開發(fā)人員加快開發(fā)的速度,但是卻也讓測(cè)試人員非常頭痛。因?yàn)槊恳淮胃淖兌加锌赡墚a(chǎn)生新的缺陷,而要想找到新的缺陷只有一個(gè)辦法??進(jìn)行全面的回歸測(cè)試??對(duì)所有原來已經(jīng)測(cè)試通過的部分再次測(cè)試,對(duì)返回值進(jìn)行比較并找出不同的地方。

  這里有兩個(gè)問題需要注意:

  1)在軟件頻繁改變的時(shí)候,可能進(jìn)行全面測(cè)試嗎?

  實(shí)際上這是不可能的。不過,這個(gè)問題本身有問題^_^,因?yàn)楹芏鄷r(shí)候甚至都不可能在一個(gè)完全穩(wěn)定的環(huán)境中測(cè)試軟件。這個(gè)問題其實(shí)是想問:“在軟件頻繁變化的時(shí)候,能否進(jìn)行有效的測(cè)試?”我們能否期望通過更好的使用人力和其他來完成這種測(cè)試?我們能否找到所期望的那么多缺陷?

  通過對(duì)使用RAD方法的項(xiàng)目的觀察,我發(fā)現(xiàn)過程對(duì)于發(fā)現(xiàn)缺陷是非常重要的,不同的過程會(huì)表現(xiàn)出不同的效果。因?yàn)榇蠖鄶?shù)時(shí)候我們的開發(fā)過程都不是簡(jiǎn)單的重復(fù),所以在RAD環(huán)境中不能象其他環(huán)境那樣??嘗試著用各種方法到處看看能不能找到一些缺陷。

  2)在軟件頻繁改變的時(shí)候,有哪些策略可以使用?

  應(yīng)該花些時(shí)間學(xué)習(xí)怎樣在不同的環(huán)境下開展工作,不過在軟件頻繁改變的時(shí)候有些一般的策略還是可以參考的。

  ● 首先,你必須接受這個(gè)事實(shí)??你不可能有6周的時(shí)間對(duì)一個(gè)每天都在變化的軟件進(jìn)行測(cè)試??或者說你的老板不會(huì)允許你在每次軟件改變后都用這么長(zhǎng)的周期來進(jìn)行測(cè)試。的辦法是你要定義一個(gè)可以快速有效的完成測(cè)試任務(wù)的過程。

  ● 進(jìn)行評(píng)估。能夠區(qū)分不同測(cè)試對(duì)象的風(fēng)險(xiǎn)級(jí)別是非常重要的,因?yàn)檫@樣你可以通過對(duì)不同的測(cè)試對(duì)象排列優(yōu)先級(jí),在那些很簡(jiǎn)單的問題上只花費(fèi)較少的時(shí)間,而對(duì)更高的風(fēng)險(xiǎn)則給予更高的優(yōu)先級(jí)和更多的時(shí)間以及其他資源。

  ● 必須有一個(gè)確定的工作版本(基線版本),以便于你在將來進(jìn)行測(cè)試的時(shí)候可以進(jìn)行比較。

  ● 自動(dòng)化測(cè)試。使用捕捉/回放工具可以借助一些自動(dòng)化特性幫助你來對(duì)軟件進(jìn)行回歸測(cè)試。應(yīng)該考慮花些時(shí)間和資金把一些工具融入到你的中,讓大家都學(xué)會(huì)如何使用這些工具會(huì)對(duì)你的工作有所幫助。對(duì)于一個(gè)不愿引入的組織??比如自動(dòng)化??是很難在軟件頻繁改變期間完成測(cè)試的。這像蓋一座房子,手頭上必須要有些合適的工具才行。

  ● 自動(dòng)化工具只能對(duì)你的操作進(jìn)行記錄和回放,這是不夠的。你必須明確業(yè)務(wù)需求,設(shè)計(jì)測(cè)試用例和測(cè)試過程,制定測(cè)試計(jì)劃。另外,如果人們想在長(zhǎng)期工作過程中獲得比短期工作更多的好處,需要考慮測(cè)試用例和測(cè)試腳本。

  在軟件頻繁改變的時(shí)候進(jìn)行測(cè)試不是不可能的,但是需要快速的響應(yīng)、努力工作和維護(hù)對(duì)改變的跟蹤。

  在軟件頻繁改變時(shí)進(jìn)行測(cè)試同樣需要一個(gè)有創(chuàng)新思維的團(tuán)隊(duì)和過程,工具自己不會(huì)工作,只有在工作中由的人員在合適的時(shí)機(jī)使用才會(huì)產(chǎn)生好的效果。使工具、人員和過程達(dá)到一個(gè)理想的結(jié)合是一件非常有挑戰(zhàn)性的事情。