減少軟件測(cè)試的時(shí)間和成本(一)
雖然人們普遍關(guān)注軟件開(kāi)發(fā)成本,并且從提供開(kāi)發(fā)生產(chǎn)率改進(jìn)的技術(shù)中獲得了激動(dòng)人心的進(jìn)步,但軟件測(cè)試成本和生產(chǎn)率往往被忽視,或者干脆說(shuō)“這就是它的成本,這就是它的生產(chǎn)率。”具有諷刺意味的是,軟件測(cè)試成本和時(shí)間通常與開(kāi)發(fā)軟件所需要的時(shí)間和成本相近。
Boris Beizer報(bào)告稱(chēng),“開(kāi)發(fā)一個(gè)可工作的程序的一半工作量一般都消耗在測(cè)試活動(dòng)上。”
IDT對(duì)軟件測(cè)試進(jìn)行獨(dú)立調(diào)查(詳見(jiàn)第4章),收到超過(guò)700份回復(fù)。其中我們提出的一個(gè)問(wèn)題是總程序的計(jì)劃百分之多少消耗在測(cè)試上。46%的回復(fù)認(rèn)為占30%~50%,另外19%認(rèn)為占50%~70%。
與軟件測(cè)試相關(guān)的成本和時(shí)間占項(xiàng)目總成本和計(jì)劃的很大一部分,因此,對(duì)提高測(cè)試效率和減少勞動(dòng)時(shí)間的改進(jìn)會(huì)有顯而易見(jiàn)的效果。評(píng)估影響的主要考慮因素有:
哪些方面,有多少測(cè)試可以自動(dòng)化?
預(yù)期減少多少測(cè)試時(shí)間和計(jì)劃?
對(duì)提高測(cè)試覆蓋率和質(zhì)量的影響的期望是什么?
是否還需考慮其他要降低的因素?
有多少測(cè)試程序可以自動(dòng)化?并非項(xiàng)目中所有測(cè)試都能夠或應(yīng)該自動(dòng)化。作為AST的最佳對(duì)象是那些最常重復(fù)和勞動(dòng)密集型的測(cè)試。只運(yùn)行一次或很少運(yùn)行的測(cè)試是不值得進(jìn)行自動(dòng)化的測(cè)試,除非規(guī)定的環(huán)境中要求自動(dòng)化,例如,手動(dòng)測(cè)試很困難或非常耗時(shí)。此外,如果每次發(fā)布測(cè)試用例都會(huì)變化,從而AST每次都需要改變也不值得自動(dòng)化。第6章將進(jìn)一步介紹“是否需要自動(dòng)化以及哪些要自動(dòng)化”。
對(duì)大部分項(xiàng)目而言,我們的經(jīng)驗(yàn)是40%~60%的測(cè)試能夠且應(yīng)該自動(dòng)化。對(duì)每個(gè)項(xiàng)目都應(yīng)該進(jìn)行初步的高層次評(píng)估。第6章詳細(xì)介紹了這種做法。隨著在更多項(xiàng)目中實(shí)施AST的經(jīng)驗(yàn)積累,將不斷地改善你根據(jù)歷史數(shù)據(jù)對(duì)測(cè)試程序中應(yīng)用AST的等級(jí)的精確估算能力。
預(yù)期減少多少測(cè)試時(shí)間和計(jì)劃?在任何測(cè)試自動(dòng)化之前,應(yīng)計(jì)算ROI。計(jì)算ROI的細(xì)節(jié)參見(jiàn)第3章。此外,還要考慮在這些測(cè)試領(lǐng)域中可自動(dòng)化的最佳候選測(cè)試的需要:自動(dòng)化測(cè)試計(jì)劃和開(kāi)發(fā)、測(cè)試數(shù)據(jù)生成、測(cè)試執(zhí)行和結(jié)果分析、錯(cuò)誤狀態(tài)和監(jiān)視以及報(bào)告的生成,這會(huì)在下一節(jié)討論。
經(jīng)驗(yàn)表明,在測(cè)試執(zhí)行階段中,AST對(duì)減少項(xiàng)目進(jìn)度有很大的影響。這個(gè)階段一般包括的活動(dòng)有:執(zhí)行測(cè)試、分析測(cè)試結(jié)果、修正錯(cuò)誤和生成測(cè)試報(bào)告。根據(jù)經(jīng)驗(yàn),如果這些過(guò)程自動(dòng)化了,可以節(jié)省大量的時(shí)間。
經(jīng)驗(yàn)還表明,在最初的測(cè)試自動(dòng)化實(shí)施階段,即測(cè)試自動(dòng)化的開(kāi)發(fā)階段,將會(huì)有初始的時(shí)間增長(zhǎng)。
1、自動(dòng)測(cè)試計(jì)劃和開(kāi)發(fā)——初始測(cè)試的工作量增加
自動(dòng)化測(cè)試初期增加了測(cè)試工作的復(fù)雜程度。在決定引入自動(dòng)測(cè)試工具之前,需要考慮許多特殊的地方,關(guān)于這一點(diǎn)的討論將貫穿整本書(shū)。例如,需要回顧計(jì)劃的AUT或SUT,以確定它是否與測(cè)試工具兼容。有時(shí)市場(chǎng)上沒(méi)有能滿(mǎn)足自動(dòng)化需求的工具,這時(shí)就需要自己開(kāi)發(fā)測(cè)試軟件和框架。此外,需要審查未自動(dòng)化測(cè)試提供支持的樣本數(shù)據(jù)的有效性。需列出所需數(shù)據(jù)的種類(lèi)和變體,然后為獲取或開(kāi)發(fā)需要?jiǎng)?chuàng)建的樣本數(shù)據(jù)制定計(jì)劃,這將在下一節(jié)中討論。還需要考慮測(cè)試腳本的模塊化和復(fù)用。自動(dòng)化測(cè)試具有自己的開(kāi)發(fā)工作類(lèi)型,具備自己的小型開(kāi)發(fā)生命周期。必須支持測(cè)試開(kāi)發(fā)生命周期的計(jì)劃,可以與應(yīng)用程序開(kāi)發(fā)工作同時(shí)進(jìn)行,具有增加測(cè)試計(jì)劃工作的效果。
過(guò)去,測(cè)試過(guò)程的開(kāi)發(fā)是一個(gè)緩慢、昂貴且耗時(shí)的過(guò)程。當(dāng)軟件需求或軟件模塊改變時(shí),測(cè)試工程師往往要重新開(kāi)發(fā)已有的測(cè)試過(guò)程,并從頭開(kāi)始創(chuàng)建新的測(cè)試過(guò)程。利用測(cè)試管理和自動(dòng)測(cè)試工具的能力來(lái)生成或修改測(cè)試過(guò)程(參考第1章的介紹),花費(fèi)的時(shí)間只是耗費(fèi)手動(dòng)測(cè)試過(guò)程的一小部分。
2、生成測(cè)試數(shù)據(jù)——測(cè)試工作/計(jì)劃減少
使用測(cè)試數(shù)據(jù)生成工具也有助于減少測(cè)試工作。有效的測(cè)試策略需要仔細(xì)獲取和準(zhǔn)備測(cè)試數(shù)據(jù)。如果測(cè)試數(shù)據(jù)不佳,功能測(cè)試將遭受挫折。相反,如果測(cè)試數(shù)據(jù)良好,將有助于改善功能測(cè)試。好的測(cè)試數(shù)據(jù)是結(jié)構(gòu)化的,可以增進(jìn)理解,提高可測(cè)性。正確選擇數(shù)據(jù)的內(nèi)容,可以減少維護(hù)工作,并更具靈活性。在需求模糊的情況下,數(shù)據(jù)的準(zhǔn)備工作有助于將注意力集中在業(yè)務(wù)上。
數(shù)據(jù)字典和詳細(xì)的設(shè)計(jì)文檔對(duì)確定樣本數(shù)據(jù)非常有用。除了提供數(shù)據(jù)元素名稱(chēng),數(shù)據(jù)字典還可能提供數(shù)據(jù)結(jié)構(gòu)、基數(shù)、使用規(guī)則和其他有用信息。設(shè)計(jì)文檔,特別是數(shù)據(jù)庫(kù)模式(schema)的設(shè)計(jì)文檔,同樣有助于確定程序與數(shù)據(jù)之間的交互情況,以及數(shù)據(jù)和元素之間的關(guān)系。
因?yàn)橛刑嗟目赡苄裕ǔo(wú)法測(cè)試所有的輸入輸出的組合和變體,以檢驗(yàn)應(yīng)用程序的功能性及非功能性需求是否得到滿(mǎn)足。但是,自動(dòng)化測(cè)試以及各種測(cè)試設(shè)計(jì)技術(shù)可幫助縮小大量的數(shù)據(jù)輸入輸出組合和變體。其中一種測(cè)試技術(shù)是“數(shù)據(jù)流覆蓋”,旨在將數(shù)據(jù)流包含進(jìn)所選擇的測(cè)試過(guò)程步驟中。使用這種技術(shù)有助于確定測(cè)試路徑的選擇,以便滿(mǎn)足所有適合的路徑的數(shù)據(jù)流的某些特性。還有其他一些技術(shù),比如邊界條件測(cè)試技術(shù)。
【編輯推薦】
























