自動(dòng)化測(cè)試實(shí)施步驟和實(shí)踐[2]

字號(hào):

遵守軟件開(kāi)發(fā)的規(guī)則
     你 可能了解 SEI (軟件工程研究所)提出的 CMM (能力成熟度模型)。 CMM 分為 5 個(gè)界別,該模型用來(lái)對(duì)軟件開(kāi)發(fā)組織劃分等級(jí)。 Jerry Weinberg (美國(guó)軟件工程專家)也創(chuàng)建了自己的一套軟件組織模型,在他的組織模型中增加了一個(gè)額外的級(jí)別,他稱之為零級(jí)別。很顯然,一個(gè)零模式的組織實(shí)際上也是開(kāi)發(fā)軟件;零模式組織中,在開(kāi)發(fā)人員和用戶之間沒(méi)有差別 [Weinberg 1992] 。恰恰在這類組織環(huán)境中,經(jīng)常采用自動(dòng)化測(cè)試方法。因此,把資源用于自動(dòng)化測(cè)試,并且把自動(dòng)化測(cè)試當(dāng)作一個(gè)軟件開(kāi)發(fā)活動(dòng)對(duì)待,把軟件測(cè)試自動(dòng)化提升到一級(jí)。這是解決測(cè)試自動(dòng)化的核心的方案。我們應(yīng)該像運(yùn)作其他的開(kāi)發(fā)項(xiàng)目一樣來(lái)運(yùn)作軟件自動(dòng)化測(cè)試項(xiàng)目。
     像其他軟件開(kāi)發(fā)項(xiàng)目一樣,我們需要軟件開(kāi)發(fā)人員專注于測(cè)試自動(dòng)化的開(kāi)發(fā)任務(wù);像其他軟件開(kāi)發(fā)項(xiàng)目一樣,自動(dòng)化測(cè)試可以自動(dòng)完成具體的測(cè)試任務(wù),對(duì)于具體的測(cè)試任務(wù)來(lái)說(shuō),自動(dòng)化開(kāi)發(fā)人員可能不是這方面的專家,因此,軟件測(cè)試專家應(yīng)該提供具體測(cè)試任務(wù)相關(guān)的咨詢,并且提供測(cè)試自動(dòng)化的需求;像其他軟件開(kāi)發(fā)項(xiàng)目一樣,如果在開(kāi)發(fā)編碼之前,對(duì)測(cè)試自動(dòng)化作了整體設(shè)計(jì)有助于測(cè)試自動(dòng)化開(kāi)發(fā)的順利開(kāi)展。像其他軟件開(kāi)發(fā)項(xiàng)目一樣,自動(dòng)化測(cè)試代碼需要跟蹤和維護(hù),因此,需要采用源代碼管理。像其他軟件開(kāi)發(fā)項(xiàng)目一樣,測(cè)試自動(dòng)化也會(huì)出現(xiàn) BUG ,因此,需要有計(jì)劃的跟蹤 BUG ,并且對(duì)修改后的 BUG 進(jìn)行測(cè)試。像其他軟件開(kāi)發(fā)項(xiàng)目一樣,用戶需要知道如何使用軟件,因此,需要提供用戶使用手冊(cè)。
     本文中不對(duì)軟件開(kāi)發(fā)做過(guò)多講述。我假定您屬于某個(gè)軟件組織,該組織已經(jīng)知道采用何種合理的、有效的方法開(kāi)發(fā)軟件。我僅僅是推動(dòng)您在自動(dòng)化測(cè)試開(kāi)發(fā)過(guò)程中遵守已經(jīng)建立的軟件開(kāi)發(fā)規(guī)則而已。本文按照在軟件開(kāi)發(fā)項(xiàng)目中采用的標(biāo)準(zhǔn)步驟組織的,重點(diǎn)關(guān)注測(cè)試自動(dòng)化相關(guān)的事宜和挑戰(zhàn)。
     * 改進(jìn)軟件測(cè)試過(guò)程
     * 定義需求
     * 驗(yàn)證概念
     * 支持產(chǎn)品的可測(cè)試性
     * 可延續(xù)性的設(shè)計(jì)( design for sustainability )
     * 有計(jì)劃的部署
     * 面對(duì)成功的挑戰(zhàn)
    1. 改進(jìn)軟件測(cè)試過(guò)程
     如果你負(fù)責(zé)提高一個(gè)商業(yè)交易操作的效率,首先,你應(yīng)該確認(rèn)已經(jīng)很好的定義了這個(gè)操作的具體過(guò)程。然后,在你投入時(shí)間和金錢(qián)采用計(jì)算機(jī)提供一套自動(dòng)化的商業(yè)交易操作系統(tǒng)之前,你想知道是否可以采用更簡(jiǎn)單、成本更低的的方法。同樣的,上述過(guò)程也是用于自動(dòng)化測(cè)試。我更愿意把 “ 測(cè)試自動(dòng)化 ” 這個(gè)詞解釋成能夠使測(cè)試過(guò)程簡(jiǎn)單并有效率,使測(cè)試過(guò)程更為快捷,沒(méi)有延誤。運(yùn)行在計(jì)算機(jī)上的自動(dòng)化測(cè)試腳本只是自動(dòng)化測(cè)試的一個(gè)方面而已。
     例如,很多測(cè)試小組都是在回歸測(cè)試環(huán)節(jié)開(kāi)始采用測(cè)試自動(dòng)化的方法。回歸測(cè)試需要頻繁的執(zhí)行,再執(zhí)行,去檢查曾經(jīng)執(zhí)行過(guò)的有效的測(cè)試用例沒(méi)有因?yàn)檐浖淖儎?dòng)而執(zhí)行失敗。回歸測(cè)試需要反復(fù)執(zhí)行,并且單調(diào)乏味。怎樣才能做好回歸測(cè)試文檔化的工作呢?通常的做法是采用列有產(chǎn)品特性的列表,然后對(duì)照列表檢查。這是個(gè)很好的開(kāi)始,回歸測(cè)試檢查列表可以告訴你應(yīng)該測(cè)試哪些方面。不過(guò),回歸測(cè)試檢查列表只是合于那些了解產(chǎn)品,并且知道需要采用哪種測(cè)試方法的人。
    在開(kāi)始測(cè)試自動(dòng)化之前,你需要完善上面提到的回歸測(cè)試檢查表,并且,確保你已經(jīng)采用了確定的的測(cè)試方法,指明測(cè)試中需要什么樣的數(shù)據(jù),并給出設(shè)計(jì)數(shù)據(jù)的完整方法。如果測(cè)試掌握了基本的產(chǎn)品知識(shí),這會(huì)更好。確認(rèn)可以提供上面提到的文檔后,需要明確測(cè)試設(shè)計(jì)的細(xì)節(jié)描述,還應(yīng)該描述測(cè)試的預(yù)期結(jié)果,這些通常被忽略,建議測(cè)試人員知道。太多的測(cè)試人員沒(méi)有意識(shí)到他們?nèi)鄙偈裁矗⑶矣捎诤ε聦擂味桓胰デ笾?。這樣一份詳細(xì)的文檔給測(cè)試小組帶來(lái)立竿見(jiàn)影的效果,因?yàn)?,現(xiàn)在任何一個(gè)具有基本產(chǎn)品知識(shí)的人根據(jù)文檔可以開(kāi)展測(cè)試執(zhí)行工作了。在開(kāi)始更為完全意義上的測(cè)試自動(dòng)化之前,必須已經(jīng)完成了測(cè)試設(shè)計(jì)文檔。測(cè)試設(shè)計(jì)是測(cè)試自動(dòng)化主要的測(cè)試需求說(shuō)明。不過(guò),這時(shí)候千萬(wàn)不要走極端去過(guò)分細(xì)致地說(shuō)明測(cè)試執(zhí)行的每一個(gè)步驟,只要確保那些有軟件基本操作常識(shí)的人員可以根據(jù)文檔完成測(cè)試執(zhí)行工作既可。但是,不要假定他們理解那些存留在你頭腦中的軟件測(cè)試執(zhí)行的想法,把這些測(cè)試設(shè)計(jì)的思路描述清楚就可以了。
    以前負(fù)責(zé)過(guò)一個(gè)軟件模塊的自動(dòng)化測(cè)試工作。這個(gè)模塊的一些特性導(dǎo)致實(shí)現(xiàn)自動(dòng)化非常困難。當(dāng)我了解到這項(xiàng)工作無(wú)需在很短的時(shí)間內(nèi)完成后,決定制定一個(gè)詳細(xì)回歸測(cè)試設(shè)計(jì)方案。我仔細(xì)地檢查了缺陷跟蹤庫(kù)中與該模塊相關(guān)的每個(gè)已經(jīng)關(guān)閉的缺陷,針對(duì)每個(gè)缺陷,我寫(xiě)了一個(gè)能夠發(fā)現(xiàn)該問(wèn)題的測(cè)試執(zhí)行操作。我計(jì)劃采用這種方法提供一個(gè)詳細(xì)的自動(dòng)化需求列表,這可以告訴我模塊的那一部分適合自動(dòng)化測(cè)試。在完成上述工作后,我沒(méi)有機(jī)會(huì)完成測(cè)試自動(dòng)化的實(shí)現(xiàn)工作。不過(guò),當(dāng)我們需要對(duì)這個(gè)模塊做完整回歸測(cè)試的時(shí)候,我將上面提到的文檔提供給若干只了解被測(cè)試產(chǎn)品但是沒(méi)有測(cè)試經(jīng)驗(yàn)的測(cè)試人員。依照文檔的指導(dǎo),幾乎不需要任何指導(dǎo)的情況下,各自完成了回歸測(cè)試,并且發(fā)現(xiàn)了 BUG 。從某種角度看,這實(shí)際上是很成功的自動(dòng)化測(cè)試。在這個(gè)項(xiàng)目中,我們與其開(kāi)發(fā)自動(dòng)化測(cè)試腳本,還不如把測(cè)試執(zhí)行步驟文檔化。后來(lái),在其它項(xiàng)目中,我們開(kāi)發(fā)了自動(dòng)化測(cè)試腳本,發(fā)現(xiàn)相關(guān)人員只有接受相關(guān)培訓(xùn)才能理解并執(zhí)行自動(dòng)化測(cè)試腳本,如果測(cè)試自動(dòng)化設(shè)計(jì)的很好,可能會(huì)好一些。不過(guò),經(jīng)過(guò)實(shí)踐我們總結(jié)出完成一份設(shè)計(jì)的比較好的測(cè)試文檔,比完成一份設(shè)計(jì)良好的測(cè)試腳本簡(jiǎn)單的多。