手機(jī)版WPS 手機(jī)版wps免費(fèi)下載
2022-11-29
更新時間:2022-04-03 14:36:52作者:佚名
軟件開發(fā)階段的測試需要貫穿于開發(fā)各階段的測試活動,它包括通過運(yùn)行軟件來檢驗軟件質(zhì)量的動態(tài)測試方法,還包括通過對需求分析、設(shè)計及代碼等通過人為審閱查找問題的靜態(tài)測試方法,本文中我逐一介紹在軟件開發(fā)各個階段軟件測試的具體應(yīng)用。
隨著軟件開發(fā)技術(shù)的不斷發(fā)展,軟件測試技術(shù)也逐步得到重視,但一般觀念認(rèn)為軟件開發(fā)的中后期才需要測試活動介入,同時有人甚至認(rèn)為測試活動不屬于研發(fā)過程,僅依賴開發(fā)完成后的黑盒測試階段來保證軟件產(chǎn)品的質(zhì)量。事實證明,這種方式不是一種能保證軟件的質(zhì)量的測試方法。軟件測試是開發(fā)過程中重要內(nèi)容之一,是軟件質(zhì)量保證的關(guān)鍵,測試工作越早介入,對軟件產(chǎn)品質(zhì)量的影響越是事倍功半。因此,軟件測試在開發(fā)階段是不容忽視的一個重要環(huán)節(jié)。
一、軟件測試的概念
軟件測試是根據(jù)軟件開發(fā)各階段的說明文檔和程序結(jié)構(gòu)而設(shè)計一批測試用例,利用這些測試用例去運(yùn)行程序,從而發(fā)現(xiàn)程序錯誤的過程。軟件測試的過程由一系列的不同測試階段所組成,而開發(fā)階段的測試分為:需求分析審查、設(shè)計審查、單元測試、集成測試、系統(tǒng)測試等多個階段。
二、測試在軟件開發(fā)各個階段的應(yīng)用與目標(biāo)
(一)需求分析審查。軟件需求規(guī)格說明書的評審專家組由用戶代表、項目負(fù)責(zé)人及具體的軟件開發(fā)人員組成,對軟件需求規(guī)格說明書進(jìn)行仔細(xì)閱讀,站在不同的角度查找其缺陷的過程。主要看它是否完整地描述系統(tǒng)預(yù)期的外部行為和用戶可視化行為;功能描述是否具有二義性;在實現(xiàn)上是否具有可行性;除設(shè)計和實現(xiàn)兩方面的限制,軟件需求規(guī)格說明不應(yīng)包括設(shè)計、構(gòu)造、測試或工程管理部分的細(xì)節(jié)。最后,評審專家組和作者通過會議方式將缺陷確認(rèn)、整理后由作者進(jìn)行修改,直到評審專家組認(rèn)可為止。
?。ǘ┰O(shè)計審查。軟件設(shè)計從整個系統(tǒng)層面、每一層子模塊層面分為概要設(shè)計和詳細(xì)設(shè)計,它依據(jù)需求規(guī)格說明書對系統(tǒng)各層次的具體實現(xiàn)進(jìn)行了描述。它不但要考慮完成需求規(guī)格中向用戶承諾的功能,還需要兼顧性能、可靠性等軟件質(zhì)量保障。這個評審過程是通過幾個有軟件開發(fā)經(jīng)驗的評審專家對設(shè)計文檔進(jìn)行預(yù)審后召開評審會議,在會議上與設(shè)計人員將問題一一進(jìn)行確認(rèn)。評審專家要依據(jù)需求規(guī)格說明書查看設(shè)計是否覆蓋到每個功能點(diǎn),同時需要對每個函數(shù)流程或偽代碼進(jìn)行邏輯審查,更重要是要求評審專家根據(jù)自己的項目經(jīng)驗對設(shè)計中使用的數(shù)據(jù)結(jié)構(gòu)、代碼執(zhí)行效率、資源訪問沖突風(fēng)險等問題進(jìn)行合理評估,盡量把對系統(tǒng)有著顛覆性影響的錯誤、不合理在編碼及單元測試之前排除。
?。ㄈ┐a走讀。代碼走讀是在開發(fā)人員對某個模塊的代碼依據(jù)設(shè)計說明書完成編碼并經(jīng)過編譯通過后進(jìn)行的代碼評審活動。代碼走讀前需要在項目組內(nèi)部統(tǒng)一走讀的標(biāo)準(zhǔn),明確質(zhì)量目標(biāo)。代碼走讀需要看代碼是否具有可讀性、可維護(hù)性,是否遵守編程規(guī)范,注釋是否充分、有效等。由于每個人的編碼水平和習(xí)慣都不盡相同,所以要提高代碼的可讀性以及降低編碼出錯概率養(yǎng)成按編程規(guī)范編碼的習(xí)慣至關(guān)重要,可讀性的、規(guī)范性的代碼更是方便日后進(jìn)行有效維護(hù)的保障。
(四)單元測試。單元測試的目的是檢驗軟件基本組成單位(函數(shù))的正確性(包括功能正常,輸出正確),它是對軟件中的基本組成單位進(jìn)行測試。在設(shè)計評審?fù)瓿珊髥卧獪y試用例的編寫就可以就啟動,和編碼可以同時進(jìn)行,如果在時間允許的情況下,單元測試用例還是放在編碼后編寫最好,這樣能更好的覆蓋代碼的每個分支,如果設(shè)計文檔為唯一的編寫依據(jù),那么對于代碼走讀時能發(fā)現(xiàn)的缺陷也會在用例評審中被發(fā)現(xiàn),造成重復(fù)勞動。函數(shù)覆蓋是單元測試用例編寫的目標(biāo),覆蓋方法有多種:語句覆蓋、條件覆蓋、分支覆蓋、路徑覆蓋條、件組合覆蓋。
首選路徑覆蓋的方法可以用最少的資源做最多測試檢查。路徑覆蓋需要計足夠的測試用例,覆蓋程序中所有可能的分支。我們以下段代碼為例來說明如何設(shè)計路徑覆蓋的單元測試用例。
(五)集成測試
軟件系統(tǒng)集成過程中所進(jìn)行的測試就是集成測試,其主要目的是檢查軟件單位之間的接口的正確性。大型項目中是必然存在接口,它主要以通信協(xié)議、調(diào)用關(guān)系、文件、數(shù)據(jù)庫、第三方中間件等方式進(jìn)行交互。
集成測試的執(zhí)行主要通過借助測試工具來實現(xiàn),也就是俗稱的樁程序,為防止一個人對接口定義理解有偏差的意外發(fā)生,樁程序的編寫最好由其他人員來完成。
?。┫到y(tǒng)測試
對已經(jīng)集成好的軟件系統(tǒng)進(jìn)行徹底的測試就是系統(tǒng)測試,從而驗證軟件系統(tǒng)的正確性、性能等是否可以滿足其各項系統(tǒng)需要。系統(tǒng)測試就是對系統(tǒng)所提供的業(yè)務(wù)流程與功能進(jìn)行測試,同時需要關(guān)注軟件的易用性和強(qiáng)壯性等。
系統(tǒng)測試包含若干個不同測試組成,從而能夠充分運(yùn)行系統(tǒng),驗證系統(tǒng)各部件是否都能正常工作并完成所賦予的功能。除了我們熟知的業(yè)務(wù)測試外,還應(yīng)包括以下內(nèi)容:
1.恢復(fù)測試。用于檢查系統(tǒng)的容錯能力?;謴?fù)測試需要采用各種方法迫使系統(tǒng)失敗,然后驗證系統(tǒng)是否能夠自動恢復(fù)。
2.安全測試。檢查系統(tǒng)對非法侵入的防御能力。
3.強(qiáng)度測試。檢查系統(tǒng)對異常情況的抵抗能力。強(qiáng)度測試總是迫使系統(tǒng)在非正常的資源配置下運(yùn)行。
4.性能測試。這里的性能測試與集成測試中的性能測試不同,它是在真實環(huán)境中全面、可靠進(jìn)行系統(tǒng)性能測試。
三、結(jié)束語
總而言之,測試不是軟件開發(fā)之后的一個階段,測試工作的對象也不僅是針對程序本身。測試工作貫穿于軟件開發(fā)的整個過程,只有這樣,才能輔助提升開發(fā)效率,同時對外提供質(zhì)量更有保障的優(yōu)質(zhì)系統(tǒng)。