新聞中心
雖然人們普遍關(guān)注軟件開發(fā)成本,并且從提供開發(fā)生產(chǎn)率改進(jìn)的技術(shù)中獲得了激動(dòng)人心的進(jìn)步,但軟件測試成本和生產(chǎn)率往往被忽視,或者干脆說“這就是它的成本,這就是它的生產(chǎn)率?!本哂兄S刺意味的是,軟件測試成本和時(shí)間通常與開發(fā)軟件所需要的時(shí)間和成本相近。

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


咨詢
建站咨詢
