- 相關(guān)推薦
淺談軟件測試的幾個(gè)問(wèn)題
【論文關(guān)鍵詞】:定義;因素;組織
【論文摘要】:現今軟件開(kāi)發(fā)的規模越來(lái)越大,作為軟件開(kāi)發(fā)的重要環(huán)節,軟件測試越來(lái)越受到人們的重視,軟件測試的重要性更加突出。文章主要探討軟件測試中的影響因素和軟件測試質(zhì)量的提升與測試管理階段采用的方法和人員的組織的幾點(diǎn)認識。
一、軟件測試的定義
軟件測試(Software testing)是軟件生存期(Software life cycle)中的一個(gè)重要階段,是軟件質(zhì)量保證的關(guān)鍵步驟。通俗地講,軟件測試就是在軟件投入運行前,對軟件需求分析、設計規格說(shuō)明和編碼進(jìn)行最終復審的活動(dòng)。1983年IEEE提出的軟件工程術(shù)語(yǔ)中給軟件測試下的定義是:"使用人工或自動(dòng)的手段來(lái)運行或測定某個(gè)軟件系統的過(guò)程,其目的在于它是否滿(mǎn)足規定的需求或弄清預期結果與實(shí)際結果之間的差別"。這個(gè)定義明確指出:軟件測試的目的是為了檢驗軟件系統是否滿(mǎn)足需求。
從用戶(hù)的角度來(lái)看,普遍希望通過(guò)軟件測試暴露軟件中隱藏的錯誤和缺陷,所以軟件測試應該是"為了發(fā)現錯誤而執行程序的過(guò)程";蛘哒f(shuō),軟件測試應該根據軟件開(kāi)發(fā)各階段的規格說(shuō)明和程序的內部結構而精心設計一批測試用例(即輸入數據及其預期的輸出結果),并利用這些測試用例去運行程序,以發(fā)現程序錯誤或缺陷。
二、影響軟件測試的因素
影響測試效率的因素除了測試方法之外,主要因素還有人為因素、軟件類(lèi)型、錯誤類(lèi)型、測試充分度等。下面對這些因素作一個(gè)簡(jiǎn)要分析。
1. 人為因素
軟件測試中的許多工作是由人來(lái)完成的,因此,人為因素是影響測試效率的一個(gè)重要方面。這樣的差異并非偶然,這是因為測試人員在應用一個(gè)測試方法時(shí)具有很大的靈活性,從而使測試人員的經(jīng)驗和學(xué)習能力可以有較大的發(fā)揮余地。所以只能采用越來(lái)越嚴格的測試方法和過(guò)程來(lái)有效地避免人為因素對測試效率的影響。
2. 軟件類(lèi)型
軟件類(lèi)型也是影響測試效率的一個(gè)重要因素。即使是同一個(gè)測試者,測試不同類(lèi)型的軟件的效率和發(fā)現軟件錯誤的能力也是不盡相同的。測試什么類(lèi)型的軟件的效率較高則因人而異,這往往與測試者的相關(guān)知識、經(jīng)驗與專(zhuān)業(yè)訓練有關(guān)。
3. 測試充分度
測試充分度反映了一個(gè)測試是否得到了良好的執行,它直接關(guān)系到測試的效率。1993年Frankl和Weiss發(fā)現,只有當充分度十分接近100%時(shí),才能使測試發(fā)現錯誤的能力得到發(fā)揮。因此,在測試軟件時(shí),必須設法使充分度十分接近100%,否則將難以保證測試質(zhì)量。
三、加強對測試工作的組織和管理
隨著(zhù)軟件開(kāi)發(fā)規模的增大、復雜程度的增加,以尋找軟件中的錯誤為目的的測試工作就顯得更加困難。然而,為了盡可能多地找出程序中的錯誤,生產(chǎn)出高質(zhì)量的軟件產(chǎn)品,加強對測試工作的組織和管理就顯得尤為重要。
從軟件的生存周期看,測試往往指對程序的測試,這樣做的優(yōu)點(diǎn)是被測對象明確,測試的可操作性相對較強。但是,由于測試的依據是規格說(shuō)明書(shū)、設計文檔和使用說(shuō)明書(shū),如果設計有錯誤,測試的質(zhì)量就難以保證。即使測試后發(fā)現是設計的錯誤,這時(shí),修改的代價(jià)是相當昂貴的。因此,較理想的做法應該是對軟件的開(kāi)發(fā)過(guò)程,按軟件工程各階段形成的結果,分別進(jìn)行嚴格的審查。
雖然測試是在實(shí)現且經(jīng)驗證后進(jìn)行的,實(shí)際上,測試的準備工作在分析和設計階段就開(kāi)始了。
1. 測試的過(guò)程及組織
當設計工作完成以后,就應該著(zhù)手測試的準備工作了,一般來(lái)講,由一位對整個(gè)系統設計熟悉的設計人員編寫(xiě)測試大綱,明確測試的內容和測試通過(guò)的準則,設計完整合理的測試用例,以便系統實(shí)現后進(jìn)行全面測試。
在實(shí)現組將所開(kāi)發(fā)的程序經(jīng)驗證后,提交測試組,由測試負責人組織測試,測試一般可按下列方式組織:
(1) 首先,測試人員要仔細閱讀有關(guān)資料,包括規格說(shuō)明、設計文檔、使用說(shuō)明書(shū)及在設計過(guò)程中形成的測試大綱、測試內容及測試的通過(guò)準則,全面熟悉系統,編寫(xiě)測試計劃,設計測試用例,作好測試前的準備工作。
(2) 為了保證測試的質(zhì)量,將測試過(guò)程分成幾個(gè)階段,即:代碼審查、單元測試、集成測試和驗收測試。
(3) 代碼會(huì )審:代碼會(huì )審是由一組人通過(guò)閱讀、討論和爭議對程序進(jìn)行靜態(tài)分析的過(guò)程。會(huì )審小組由組長(cháng),2~3名程序設計和測試人員及程序員組成。會(huì )審小組在充分閱讀待審程序文本、控制流程圖及有關(guān)要求、規范等文件基礎上,召開(kāi)代碼會(huì )審會(huì ),程序員逐句講解程序的,并展開(kāi)熱烈的討論甚至爭議,以揭示錯誤的關(guān)鍵所在。實(shí)踐表明,程序員在講解過(guò)程中能發(fā)現許多自己原來(lái)沒(méi)有發(fā)現的錯誤,而討論和爭議則進(jìn)一步促使了問(wèn)題的暴露。例如,對某個(gè)局部性小問(wèn)題修改方法的討論,可能發(fā)現與之有牽連的甚至能涉及到模塊的功說(shuō)明、模塊間接口和系統構的大問(wèn)題,導致對需求定義的重定義、重設計驗證,大大改善了軟件的質(zhì)量。
(4) 單元測試:?jiǎn)卧獪y試集中在檢查軟件設計的最小單位-模塊上,通過(guò)測試發(fā)現實(shí)現該模塊的實(shí)際功能與定義該模塊的功能說(shuō)明不符合的情況,以及編碼的錯誤。由于模塊規模小、功能單一、邏輯簡(jiǎn)單,測試人員有可能通過(guò)模塊說(shuō)明書(shū)和源程序,清楚地了解該模塊的I/O條件和模塊的邏輯結構,采用結構測試(白盒法)的用例,盡可能達到徹底測試,然后輔之以功能測試(黑盒法)的用例,使之對任何合理和不合理的輸入都能鑒別和響應。高可靠性的模塊是組成可靠系統的堅實(shí)基礎
(5) 集成測試:集成測試是將模塊按照設計要求組裝起來(lái)同時(shí)進(jìn)行測試,主要目標是發(fā)現與接口有關(guān)的問(wèn)題。如數據穿過(guò)接口時(shí)可能丟失;一個(gè)模塊與另一個(gè)模塊可能有由于疏忽的問(wèn)題而造成有害影響;把子功能組合起來(lái)可能不產(chǎn)生預期的主功能;個(gè)別看起來(lái)是可以接受的誤差可能積累到不能接受的程度;全程數據結構可能有錯誤等。
2. 測試的人員組織
為了保證軟件的開(kāi)發(fā)質(zhì)量,軟件測試應貫穿于軟件定義與開(kāi)發(fā)的整個(gè)過(guò)程。因此,對分析、設計和實(shí)現等各階段所得到的結果,包括需求規格說(shuō)明、設計規格說(shuō)明及源程序都應進(jìn)行軟件測試;诖,測試人員的組織也應是分階段的。
(1) 軟件的設計和實(shí)現都是基于需求分析規格說(shuō)明進(jìn)行的。需求分析規格說(shuō)明是否完整、正確、清晰是軟件開(kāi)發(fā)成敗的關(guān)鍵。為了保證需求定義的質(zhì)量,應對其進(jìn)行嚴格的審查。
(2) 設計評審:軟件設計是將軟件需求轉換成軟件表示的過(guò)程。主要描繪出系統結構、詳細的處理過(guò)程和數據庫模式。按照需求的規格說(shuō)明對系統結構的合理性、處理過(guò)程的正確性進(jìn)行評價(jià),同時(shí)利用關(guān)系數據庫的規范化理論對數據庫模式進(jìn)行審查。
(3) 程序的測試:軟件測試。是整個(gè)軟件開(kāi)發(fā)過(guò)程中交付用戶(hù)使用前的最后階段,是軟件質(zhì)量保證的關(guān)鍵。軟件測試在軟件生存周期中橫跨兩個(gè)階段:通常在編寫(xiě)出每一個(gè)模塊之后,就對它進(jìn)行必要的測試(稱(chēng)為單元測試)。編碼與單元測試屬于軟件生存周期中的同一階段。該階段的測試工作,由編程組內部人員進(jìn)行交叉測試(避免編程人員測試自己的程序)。這一階段結束后,進(jìn)入軟件生存周期的測試階段,對軟件系統進(jìn)行各種綜合測試。測試工作由專(zhuān)門(mén)的測試組完成,測試組設組長(cháng)一名,負責整個(gè)測試的計劃、組織工作。測試組的其他成員由具有一定的分析、設計和編程經(jīng)驗的專(zhuān)業(yè)人員組成,人數根據具體情況可多可少,一般3~5人為宜。
【淺談軟件測試的幾個(gè)問(wèn)題】相關(guān)文章:
談軟件測試的幾個(gè)問(wèn)題10-04
淺談具有計量特色的軟件測試人才培養08-04
軟件性能測試研究09-23
軟件測試實(shí)驗報告05-17
嵌入式軟件的覆蓋測試07-13
性能測試在軟件企業(yè)的應用分析06-11
淺談善意取得制度中應注意的幾個(gè)問(wèn)題09-14
淺談農村家庭養羊應注意的幾個(gè)問(wèn)題09-26
淺談軟件開(kāi)發(fā)管理策略05-19