第十一章軟件實現(xiàn)、測試和維護(hù)_第1頁
第十一章軟件實現(xiàn)、測試和維護(hù)_第2頁
第十一章軟件實現(xiàn)、測試和維護(hù)_第3頁
第十一章軟件實現(xiàn)、測試和維護(hù)_第4頁
第十一章軟件實現(xiàn)、測試和維護(hù)_第5頁
已閱讀5頁,還剩78頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 2008 BUPT TSEG軟件工程軟件工程Software Engineering第十一章第十一章 軟件實現(xiàn)、測試和維護(hù)軟件實現(xiàn)、測試和維護(hù)黃黃 海海 2u軟件實現(xiàn)軟件實現(xiàn)u軟件測試基礎(chǔ)軟件測試基礎(chǔ)u軟件測試方法與技術(shù)軟件測試方法與技術(shù)u軟件測試過程軟件測試過程u面向?qū)ο蟮臏y試方法面向?qū)ο蟮臏y試方法u軟件維護(hù)軟件維護(hù) 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心311.1 11.1 軟件實現(xiàn)軟件實現(xiàn)從宏觀上講,軟件實現(xiàn)包括詳細(xì)設(shè)計、程從宏觀上講,軟件實現(xiàn)包括詳細(xì)設(shè)計、程序編碼、單元測試和集成測試。序編碼、單元測試和集成測試。從微觀上來講,軟件實現(xiàn)

2、指程序編碼和單從微觀上來講,軟件實現(xiàn)指程序編碼和單元測試。元測試。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心411.1 11.1 軟件實現(xiàn)軟件實現(xiàn)1. 1. 軟件實現(xiàn)的目標(biāo)軟件實現(xiàn)的目標(biāo)軟件實現(xiàn)的目標(biāo)就是選擇某種程序設(shè)計軟件實現(xiàn)的目標(biāo)就是選擇某種程序設(shè)計語言,將詳細(xì)設(shè)計結(jié)果進(jìn)行編碼實現(xiàn),語言,將詳細(xì)設(shè)計結(jié)果進(jìn)行編碼實現(xiàn),并形成可執(zhí)行的軟件系統(tǒng)的過程。并形成可執(zhí)行的軟件系統(tǒng)的過程。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心511.1 11.1 軟件實現(xiàn)軟件實現(xiàn)2. 軟件實現(xiàn)的任務(wù)軟件實現(xiàn)的任務(wù)程序設(shè)計

3、語言的選擇。程序設(shè)計語言的選擇。 根據(jù)軟件系統(tǒng)的特點(diǎn)和設(shè)計方案,選擇一種或多根據(jù)軟件系統(tǒng)的特點(diǎn)和設(shè)計方案,選擇一種或多種程序設(shè)計語言作為編碼實現(xiàn)的工具。種程序設(shè)計語言作為編碼實現(xiàn)的工具。集成開發(fā)環(huán)境的選擇。集成開發(fā)環(huán)境的選擇。 集成開發(fā)環(huán)境是來幫助程序設(shè)計者組織、編譯、集成開發(fā)環(huán)境是來幫助程序設(shè)計者組織、編譯、調(diào)試程序的開發(fā)工具軟件。調(diào)試程序的開發(fā)工具軟件。程序?qū)崿F(xiàn)算法的設(shè)計。程序?qū)崿F(xiàn)算法的設(shè)計。 針對要實現(xiàn)特定功能的程序模塊,設(shè)計其實現(xiàn)所針對要實現(xiàn)特定功能的程序模塊,設(shè)計其實現(xiàn)所需的數(shù)據(jù)結(jié)構(gòu)和算法。需的數(shù)據(jù)結(jié)構(gòu)和算法。程序編碼實現(xiàn)。程序編碼實現(xiàn)。 2008 BUPT TSEG 北京郵電大學(xué)北

4、京郵電大學(xué) 通信軟件工程中心通信軟件工程中心6u軟件實現(xiàn)軟件實現(xiàn)u軟件測試基礎(chǔ)軟件測試基礎(chǔ)u軟件測試方法與技術(shù)軟件測試方法與技術(shù)u軟件測試過程軟件測試過程u面向?qū)ο蟮臏y試方法面向?qū)ο蟮臏y試方法u軟件維護(hù)軟件維護(hù) 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心711.2 11.2 軟件測試基礎(chǔ)軟件測試基礎(chǔ)1. 軟件測試概述軟件測試概述 (1) 軟件測試的定義軟件測試的定義(早期和狹義的定義早期和狹義的定義)軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行“程序程序”的過程?;虻倪^程?;蛘哒f,軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和者說,軟件測試是

5、根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計一批測試用例(即輸入數(shù)程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計一批測試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測試用例去運(yùn)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測試用例去運(yùn)行程序,以發(fā)現(xiàn)程序錯誤的過程行程序,以發(fā)現(xiàn)程序錯誤的過程。軟件測試在軟件生存期中橫跨兩個階段軟件測試在軟件生存期中橫跨兩個階段單元測試單元測試 (編碼者)(編碼者)各種綜合測試各種綜合測試 (專門的測試人員)(專門的測試人員) 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心811.2 11.2 軟件測試基礎(chǔ)軟件測試基礎(chǔ)(2) (2) 軟件測試

6、的目的軟件測試的目的測試是執(zhí)行測試是執(zhí)行程序的程序的過程,目的在于發(fā)現(xiàn)錯誤。過程,目的在于發(fā)現(xiàn)錯誤。一個好的測試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤。一個好的測試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤。一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。設(shè)計測試的目標(biāo)是想以最少的時間和人力系統(tǒng)設(shè)計測試的目標(biāo)是想以最少的時間和人力系統(tǒng)地找出軟件中潛在的各種錯誤和缺陷。地找出軟件中潛在的各種錯誤和缺陷。測試不能表明軟件中不存在錯誤,它只能說明測試不能表明軟件中不存在錯誤,它只能說明軟件中存在軟件中存在錯誤。錯誤。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通

7、信軟件工程中心通信軟件工程中心911.2 11.2 軟件測試基礎(chǔ)軟件測試基礎(chǔ)(3) 軟件測試的原則軟件測試的原則應(yīng)當(dāng)盡早地和不斷地進(jìn)行軟件測試。應(yīng)當(dāng)盡早地和不斷地進(jìn)行軟件測試。測試用例應(yīng)由測試輸入數(shù)據(jù)和與之對應(yīng)的預(yù)期輸出結(jié)測試用例應(yīng)由測試輸入數(shù)據(jù)和與之對應(yīng)的預(yù)期輸出結(jié)果這兩部分組成。果這兩部分組成。程序員應(yīng)避免測試自己的程序。程序員應(yīng)避免測試自己的程序。在設(shè)計測試用例時,應(yīng)當(dāng)包括合理的輸入條件和不合在設(shè)計測試用例時,應(yīng)當(dāng)包括合理的輸入條件和不合理的輸入條件。理的輸入條件。充分注意測試中的群集現(xiàn)象。充分注意測試中的群集現(xiàn)象。嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性。嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性。

8、應(yīng)當(dāng)對每一個測試結(jié)果做全面檢查。應(yīng)當(dāng)對每一個測試結(jié)果做全面檢查。妥善保存測試計劃,測試用例,出錯統(tǒng)計和最終分析妥善保存測試計劃,測試用例,出錯統(tǒng)計和最終分析報告,為維護(hù)提供方便。報告,為維護(hù)提供方便。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心1011.2 11.2 軟件測試基礎(chǔ)軟件測試基礎(chǔ)2. 軟件的可測試性軟件的可測試性軟件的可測試性就是一個計算機(jī)程序能夠被測軟件的可測試性就是一個計算機(jī)程序能夠被測試的容易程度。試的容易程度。在軟件開發(fā)過程中,很多環(huán)節(jié)都能夠影響軟件在軟件開發(fā)過程中,很多環(huán)節(jié)都能夠影響軟件的可測試性的可測試性,例如需求分析的描述

9、、設(shè)計架構(gòu)例如需求分析的描述、設(shè)計架構(gòu)、實現(xiàn)手段等、實現(xiàn)手段等如果設(shè)計人員和程序員樂于完成一些對測試過如果設(shè)計人員和程序員樂于完成一些對測試過程有幫助的工作,則可以極大提高軟件的可測程有幫助的工作,則可以極大提高軟件的可測試性試性 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心1111.2 11.2 軟件測試基礎(chǔ)軟件測試基礎(chǔ) 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心影響軟件可測試性因素影響軟件可測試性因素描述描述表現(xiàn)表現(xiàn)可可用性用性運(yùn)行的越好,被測試的效率越高運(yùn)行的越好,被測試的效率越高系統(tǒng)的錯誤很少系統(tǒng)

10、的錯誤很少沒有阻礙測試執(zhí)行的錯誤沒有阻礙測試執(zhí)行的錯誤產(chǎn)品在功能階段的演化(允許同時開發(fā)和測試)產(chǎn)品在功能階段的演化(允許同時開發(fā)和測試)可觀察性可觀察性所看見的就是所測試的所看見的就是所測試的每個測試有唯一的輸出每個測試有唯一的輸出 系統(tǒng)狀態(tài)和變量可見,或在運(yùn)行中可查詢系統(tǒng)狀態(tài)和變量可見,或在運(yùn)行中可查詢過去的系統(tǒng)狀態(tài)和變量可見,或在運(yùn)行中可查詢(事物日志)過去的系統(tǒng)狀態(tài)和變量可見,或在運(yùn)行中可查詢(事物日志)所有影響輸出的因素都可見所有影響輸出的因素都可見容易識別錯誤輸出容易識別錯誤輸出通過自測機(jī)制自動偵測內(nèi)部錯誤通過自測機(jī)制自動偵測內(nèi)部錯誤自動報告內(nèi)部錯誤自動報告內(nèi)部錯誤可獲取源代碼可獲

11、取源代碼可控制性可控制性對軟件的控制越好,測試越能被自動執(zhí)行與對軟件的控制越好,測試越能被自動執(zhí)行與優(yōu)化優(yōu)化所有可能的輸出都產(chǎn)生于某種輸入組合所有可能的輸出都產(chǎn)生于某種輸入組合通過某種輸入組合,所有的代碼都可能被執(zhí)行通過某種輸入組合,所有的代碼都可能被執(zhí)行測試工程師可直接控制軟件和硬件的狀態(tài)及變量測試工程師可直接控制軟件和硬件的狀態(tài)及變量輸入和輸出格式保持一致且有結(jié)構(gòu)輸入和輸出格式保持一致且有結(jié)構(gòu)能夠便利地對測試進(jìn)行說明、自動化和再生能夠便利地對測試進(jìn)行說明、自動化和再生可分解性可分解性通過控制測試范圍,能夠更快地分解問題,通過控制測試范圍,能夠更快地分解問題,執(zhí)行更靈巧的再測試執(zhí)行更靈巧的再

12、測試軟件系統(tǒng)由獨(dú)立模塊構(gòu)成軟件系統(tǒng)由獨(dú)立模塊構(gòu)成能夠獨(dú)立測試各軟件模塊能夠獨(dú)立測試各軟件模塊簡單性簡單性需要測試的內(nèi)容越少,測試的速度越快需要測試的內(nèi)容越少,測試的速度越快功能簡單性功能簡單性結(jié)構(gòu)簡單性結(jié)構(gòu)簡單性代碼簡單性代碼簡單性穩(wěn)定性穩(wěn)定性改變越小,對測試的破壞越小改變越小,對測試的破壞越小軟件的變化是不經(jīng)常的軟件的變化是不經(jīng)常的軟件的變化是可控制的軟件的變化是可控制的軟件的變化不影響已有的測試軟件的變化不影響已有的測試軟件失效后能得到良好的恢復(fù)軟件失效后能得到良好的恢復(fù)易理解性易理解性得到的信息越多,進(jìn)行的測試越靈巧得到的信息越多,進(jìn)行的測試越靈巧設(shè)計能夠被很好地理解設(shè)計能夠被很好地理解

13、內(nèi)部、外部和共享構(gòu)建之間的依賴性能夠被很好地理解內(nèi)部、外部和共享構(gòu)建之間的依賴性能夠被很好地理解設(shè)計的改變被通知設(shè)計的改變被通知可隨時獲取技術(shù)文檔可隨時獲取技術(shù)文檔技術(shù)文檔組織合理技術(shù)文檔組織合理技術(shù)文檔明確詳細(xì)技術(shù)文檔明確詳細(xì)技術(shù)文檔精確性穩(wěn)定技術(shù)文檔精確性穩(wěn)定1211.2 11.2 軟件測試基礎(chǔ)軟件測試基礎(chǔ)3. 軟件測試的對象軟件測試的對象(現(xiàn)代和廣義的測試定義現(xiàn)代和廣義的測試定義)軟件測試并不等于程序測試,軟件測試并不等于程序測試,現(xiàn)代軟件測試指現(xiàn)代軟件測試指為發(fā)現(xiàn)軟件中存在的錯誤,對軟件開發(fā)過程中為發(fā)現(xiàn)軟件中存在的錯誤,對軟件開發(fā)過程中形成的各項輸出進(jìn)行檢查的過程。形成的各項輸出進(jìn)行檢

14、查的過程。測試測試應(yīng)該貫穿于軟件開發(fā)的整個期間應(yīng)該貫穿于軟件開發(fā)的整個期間,需求分需求分析析規(guī)格說明規(guī)格說明、概要設(shè)計、概要設(shè)計說明說明、詳細(xì)設(shè)計、詳細(xì)設(shè)計說明、說明、單元代碼、集成的系統(tǒng)以及其他輸出文檔單元代碼、集成的系統(tǒng)以及其他輸出文檔,都,都應(yīng)該成為測試的對象。應(yīng)該成為測試的對象。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心1311.2 11.2 軟件測試基礎(chǔ)軟件測試基礎(chǔ)u廣義的軟件測試包含三類具體活動:廣義的軟件測試包含三類具體活動:測試:設(shè)計測試用例,運(yùn)行程序,執(zhí)行具體系統(tǒng)測試測試:設(shè)計測試用例,運(yùn)行程序,執(zhí)行具體系統(tǒng)測試的過程。的過程。

15、確認(rèn):評估待開發(fā)的軟件產(chǎn)品是否正確無誤、可行和確認(rèn):評估待開發(fā)的軟件產(chǎn)品是否正確無誤、可行和有價值,并確保待開發(fā)的軟件是正確的,與用戶期望有價值,并確保待開發(fā)的軟件是正確的,與用戶期望是完全符合的,是對軟件開發(fā)構(gòu)想的檢測,能夠回答是完全符合的,是對軟件開發(fā)構(gòu)想的檢測,能夠回答“是否構(gòu)造了正確的軟件是否構(gòu)造了正確的軟件”的問題。的問題。驗證:檢測軟件開發(fā)的每個階段、每個步驟結(jié)果是否驗證:檢測軟件開發(fā)的每個階段、每個步驟結(jié)果是否正確無誤,是否與軟件開發(fā)各階段的要求和期望的結(jié)正確無誤,是否與軟件開發(fā)各階段的要求和期望的結(jié)果相一致,并確保軟件會正確無誤地實現(xiàn)軟件的需求果相一致,并確保軟件會正確無誤地實

16、現(xiàn)軟件的需求,開發(fā)過程是沿正確的方向進(jìn)行的,能夠回答,開發(fā)過程是沿正確的方向進(jìn)行的,能夠回答“是否是否正確地構(gòu)造了軟件正確地構(gòu)造了軟件”的問題。的問題。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心1411.2 11.2 軟件測試基礎(chǔ)軟件測試基礎(chǔ) 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心用戶要求用戶要求用戶用戶:我要什么我要什么?運(yùn)行結(jié)果運(yùn)行結(jié)果計算機(jī)計算機(jī):程序運(yùn)行得程序運(yùn)行得到的結(jié)果到的結(jié)果源程序源程序程序員程序員:我要讓計算我要讓計算機(jī)什么做機(jī)什么做?設(shè)計說明書設(shè)計說明書設(shè)計員設(shè)計員:我要讓軟件我

17、要讓軟件做什么做什么?需求說明書需求說明書分析員分析員:我可以提我可以提供什么供什么?12345理解正確性理解正確性表達(dá)正確性表達(dá)正確性理解正確性理解正確性設(shè)計正確性設(shè)計正確性表達(dá)正確性表達(dá)正確性理解正確性理解正確性編碼正確性編碼正確性運(yùn)行正確性運(yùn)行正確性輸入正確性輸入正確性相符嗎相符嗎?軟件生存期各個階段之間需要保持的正確性軟件生存期各個階段之間需要保持的正確性1511.2 11.2 軟件測試基礎(chǔ)軟件測試基礎(chǔ)4. 軟件測試信息流軟件測試信息流測試過程需要三類輸入:測試過程需要三類輸入:軟件配置:包括軟件需求規(guī)格說明、軟件設(shè)計軟件配置:包括軟件需求規(guī)格說明、軟件設(shè)計規(guī)格說明、源代碼等。規(guī)格說明

18、、源代碼等。測試配置:包括測試計劃、測試用例、測試驅(qū)測試配置:包括測試計劃、測試用例、測試驅(qū)動程序等。動程序等。測試工具:測試工具為測試的實施提供某種服測試工具:測試工具為測試的實施提供某種服務(wù)。例如,測試數(shù)據(jù)自動生成程序、靜態(tài)分析務(wù)。例如,測試數(shù)據(jù)自動生成程序、靜態(tài)分析程序、動態(tài)分析程序、測試結(jié)果分析程序、以程序、動態(tài)分析程序、測試結(jié)果分析程序、以及驅(qū)動測試的工作臺等。及驅(qū)動測試的工作臺等。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心1611.2 11.2 軟件測試基礎(chǔ)軟件測試基礎(chǔ) 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件

19、工程中心通信軟件工程中心測試信息流測試信息流1711.2 11.2 軟件測試基礎(chǔ)軟件測試基礎(chǔ)5. 5. 軟件測試步驟軟件測試步驟單元測試單元測試集中對用源代碼實現(xiàn)的每一個程序單元進(jìn)行測試。集中對用源代碼實現(xiàn)的每一個程序單元進(jìn)行測試。集成測試集成測試根據(jù)設(shè)計規(guī)定的軟件體系結(jié)構(gòu),把已測試過的模塊組裝起來,在組裝根據(jù)設(shè)計規(guī)定的軟件體系結(jié)構(gòu),把已測試過的模塊組裝起來,在組裝過程中,檢查程序結(jié)構(gòu)組裝的正確性。過程中,檢查程序結(jié)構(gòu)組裝的正確性。確認(rèn)測試確認(rèn)測試檢查已實現(xiàn)的軟件是否滿足了需求規(guī)格說明中確定了的各種需求,以檢查已實現(xiàn)的軟件是否滿足了需求規(guī)格說明中確定了的各種需求,以及軟件配置是否完全、正確。及

20、軟件配置是否完全、正確。系統(tǒng)測試系統(tǒng)測試把已經(jīng)經(jīng)過確認(rèn)的軟件納入實際運(yùn)行環(huán)境中,與其它系統(tǒng)成份組合在把已經(jīng)經(jīng)過確認(rèn)的軟件納入實際運(yùn)行環(huán)境中,與其它系統(tǒng)成份組合在一起進(jìn)行測試。一起進(jìn)行測試。驗收驗收測試測試系統(tǒng)測試后可以正式投入試運(yùn)行,一段時間后系統(tǒng)各方面均已滿足需系統(tǒng)測試后可以正式投入試運(yùn)行,一段時間后系統(tǒng)各方面均已滿足需求,這時需對系統(tǒng)進(jìn)行驗收測試。驗收測試是一個形式意義上的工作求,這時需對系統(tǒng)進(jìn)行驗收測試。驗收測試是一個形式意義上的工作,選擇用戶最為關(guān)心的核心功能確認(rèn)即可。,選擇用戶最為關(guān)心的核心功能確認(rèn)即可。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟

21、件工程中心1811.2 11.2 軟件測試基礎(chǔ)軟件測試基礎(chǔ) 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心軟件測試的步驟軟件測試的步驟驗收驗收測試測試驗驗收收標(biāo)標(biāo)準(zhǔn)準(zhǔn)已驗收已驗收的軟件的軟件1911.2 11.2 軟件測試基礎(chǔ)軟件測試基礎(chǔ)6. 軟件測試流程軟件測試流程組建測試團(tuán)隊組建測試團(tuán)隊制定制定測試計劃測試計劃設(shè)計測試設(shè)計測試用例用例搭建測試環(huán)境搭建測試環(huán)境執(zhí)行執(zhí)行測試及結(jié)果記錄測試及結(jié)果記錄錯誤修改錯誤修改回歸測試回歸測試測試總結(jié)測試總結(jié) 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心2011.2 11.

22、2 軟件測試基礎(chǔ)軟件測試基礎(chǔ)7. 軟件測試與軟件開發(fā)各階段的關(guān)系軟件測試與軟件開發(fā)各階段的關(guān)系軟件開發(fā)過程是一個自頂向下,逐步細(xì)化的過程軟件開發(fā)過程是一個自頂向下,逐步細(xì)化的過程,而測試過程則是依相反的順序安排的自底向上,而測試過程則是依相反的順序安排的自底向上,逐步集成的過程。低一級測試為上一級測試準(zhǔn),逐步集成的過程。低一級測試為上一級測試準(zhǔn)備條件。備條件。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心21u軟件實現(xiàn)軟件實現(xiàn)u軟件測試基礎(chǔ)軟件測試基礎(chǔ)u軟件測試方法與技術(shù)軟件測試方法與技術(shù)u軟件測試過程軟件測試過程u面向?qū)ο蟮臏y試方法面向?qū)ο蟮臏y試方

23、法u軟件維護(hù)軟件維護(hù) 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心2211.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)1. 測試技術(shù)分類測試技術(shù)分類按照開發(fā)階段:單元測試、集成測試、確認(rèn)測試、系統(tǒng)測按照開發(fā)階段:單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試、驗收測試試、驗收測試按照測試對象:需求測試、設(shè)計測試、代碼測試、文檔測按照測試對象:需求測試、設(shè)計測試、代碼測試、文檔測試試按照測試實施組織方式:開發(fā)方測試、用戶測試、第三方按照測試實施組織方式:開發(fā)方測試、用戶測試、第三方測試測試按照測試用例設(shè)計技術(shù):白盒測試、黑盒測試按照測試用例設(shè)計技術(shù):白

24、盒測試、黑盒測試按照測試是否須運(yùn)行系統(tǒng):靜態(tài)測試、動態(tài)測試按照測試是否須運(yùn)行系統(tǒng):靜態(tài)測試、動態(tài)測試按照測試執(zhí)行的方式:手工測試、自動化測試、半自動化按照測試執(zhí)行的方式:手工測試、自動化測試、半自動化測試測試按照測試內(nèi)容的不同:功能測試、性能測試、安全性測試按照測試內(nèi)容的不同:功能測試、性能測試、安全性測試、易用性測試、兼容性測試、易用性測試、兼容性測試 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心2311.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)常用的測試分類和測試用例設(shè)計方法常用的測試分類和測試用例設(shè)計方法靜態(tài)測試靜態(tài)測試:基本特征是對

25、軟件進(jìn)行分析、檢查基本特征是對軟件進(jìn)行分析、檢查和審閱,不實際運(yùn)行被測試的軟件和審閱,不實際運(yùn)行被測試的軟件,通常可通??烧艺页龀?070%的邏輯設(shè)計的邏輯設(shè)計錯誤。錯誤。動態(tài)測試動態(tài)測試:指通過運(yùn)行軟件來檢驗軟件的動態(tài)指通過運(yùn)行軟件來檢驗軟件的動態(tài)行為和運(yùn)行結(jié)果的正確性行為和運(yùn)行結(jié)果的正確性。分為兩種方法:。分為兩種方法: 已知產(chǎn)品的功能需求規(guī)格說明,可以進(jìn)行測試證明已知產(chǎn)品的功能需求規(guī)格說明,可以進(jìn)行測試證明每個實現(xiàn)了的功能是否符合要求。每個實現(xiàn)了的功能是否符合要求。(黑盒測試黑盒測試) 已知產(chǎn)品的內(nèi)部工作過程,可以通過測試證明每種已知產(chǎn)品的內(nèi)部工作過程,可以通過測試證明每種內(nèi)部操作是否符

26、合設(shè)計規(guī)格的要求,所有內(nèi)部成分內(nèi)部操作是否符合設(shè)計規(guī)格的要求,所有內(nèi)部成分是否已經(jīng)過檢查。是否已經(jīng)過檢查。( 白盒測試白盒測試) 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心2411.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)(1) 黑盒測試黑盒測試黑盒測試又叫做功能測試、數(shù)據(jù)驅(qū)動測試或基于規(guī)格黑盒測試又叫做功能測試、數(shù)據(jù)驅(qū)動測試或基于規(guī)格說明的測試,指在不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特征的說明的測試,指在不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特征的情況下,根據(jù)軟件產(chǎn)品的功能設(shè)計規(guī)格說明,在計算情況下,根據(jù)軟件產(chǎn)品的功能設(shè)計規(guī)格說明,在計算機(jī)上進(jìn)行測試,以證實每

27、個實現(xiàn)了的功能是否符合要機(jī)上進(jìn)行測試,以證實每個實現(xiàn)了的功能是否符合要求。求。黑盒測試主要是為了發(fā)現(xiàn)以下幾類錯誤黑盒測試主要是為了發(fā)現(xiàn)以下幾類錯誤:功能錯誤或遺漏。功能錯誤或遺漏。輸入和輸出接口的正確性。輸入和輸出接口的正確性。數(shù)據(jù)結(jié)構(gòu)或外部信息訪問錯誤。數(shù)據(jù)結(jié)構(gòu)或外部信息訪問錯誤。性能要求滿足情況。性能要求滿足情況。初始化或終止性錯誤。初始化或終止性錯誤。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心2511.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)(2) 白盒測試白盒測試白盒測試又稱為結(jié)構(gòu)測試、邏輯驅(qū)動測試或基于程序白盒測試又稱為結(jié)構(gòu)測

28、試、邏輯驅(qū)動測試或基于程序的測試,指根據(jù)軟件產(chǎn)品的內(nèi)部工作過程,在計算機(jī)的測試,指根據(jù)軟件產(chǎn)品的內(nèi)部工作過程,在計算機(jī)上進(jìn)行測試,以證實每種內(nèi)部操作是否符合設(shè)計規(guī)格上進(jìn)行測試,以證實每種內(nèi)部操作是否符合設(shè)計規(guī)格要求,所有內(nèi)部成分是否已經(jīng)過檢查。要求,所有內(nèi)部成分是否已經(jīng)過檢查。白盒測試方法主要對程序模塊進(jìn)行如下檢查:白盒測試方法主要對程序模塊進(jìn)行如下檢查:程序模塊所有獨(dú)立執(zhí)行路徑至少測試一次。程序模塊所有獨(dú)立執(zhí)行路徑至少測試一次。所有邏輯判定分支至少測試一次。所有邏輯判定分支至少測試一次。循環(huán)邊界和運(yùn)行界限內(nèi)執(zhí)行情況。循環(huán)邊界和運(yùn)行界限內(nèi)執(zhí)行情況。程序內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。程序內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有

29、效性。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心2611.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)無論黑盒測試還是白盒測試,如果實行窮舉測試,由無論黑盒測試還是白盒測試,如果實行窮舉測試,由于工作量過大,實施起來是不現(xiàn)實的,需要精心地挑于工作量過大,實施起來是不現(xiàn)實的,需要精心地挑選少量的測試數(shù)據(jù),使得采用這些測試數(shù)據(jù)能夠達(dá)到選少量的測試數(shù)據(jù),使得采用這些測試數(shù)據(jù)能夠達(dá)到最佳的測試效果。最佳的測試效果。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心黑盒測試黑盒測試白盒測試白盒測試2711.3

30、11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)2. 白盒測試技術(shù)白盒測試技術(shù)(1) 邏輯覆蓋邏輯覆蓋邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的設(shè)計測試邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的設(shè)計測試用例的一種白盒測試技術(shù)。用例的一種白盒測試技術(shù)。邏輯覆蓋可分為:語句覆蓋、判定覆蓋、邏輯覆蓋可分為:語句覆蓋、判定覆蓋、條件覆蓋、條件覆蓋、判定條件覆蓋、條件組合覆蓋及路徑覆蓋。判定條件覆蓋、條件組合覆蓋及路徑覆蓋。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心2811.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù) 2008 BUPT TSEG 北京郵電大

31、學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心邏輯覆蓋參考例子邏輯覆蓋參考例子2911.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)語句覆蓋語句覆蓋(點(diǎn)覆蓋點(diǎn)覆蓋):設(shè)計若干個測試用例,運(yùn)行被測:設(shè)計若干個測試用例,運(yùn)行被測程序,使得每一可執(zhí)行語句至少執(zhí)行一次。程序,使得每一可執(zhí)行語句至少執(zhí)行一次。A=2,B=0,X=4,即達(dá)到了語句覆蓋,即達(dá)到了語句覆蓋判定覆蓋判定覆蓋(分支覆蓋分支覆蓋):設(shè)計若干個測試用例,運(yùn)行被:設(shè)計若干個測試用例,運(yùn)行被測程序,使得程序中每個判斷的取真分支和取假分支測程序,使得程序中每個判斷的取真分支和取假分支至少經(jīng)歷一次。至少經(jīng)歷一次。A=3,B=0 ,X=

32、3 可覆蓋可覆蓋a、c、d分支分支A=2,B=1 ,X=1 可覆蓋可覆蓋a、b、e分支分支條件覆蓋:設(shè)計若干個測試用例,運(yùn)行被測程序,使條件覆蓋:設(shè)計若干個測試用例,運(yùn)行被測程序,使得程序中每個判斷的每個條件的可能取值至少執(zhí)行一得程序中每個判斷的每個條件的可能取值至少執(zhí)行一次。次。A=1,B=0 ,X=3,滿足條件,滿足條件 T1(假假),T2 (真真),T3 (假假) , T4 (真真) ,可覆蓋,可覆蓋a、b、e分支分支A=2,B=1 ,X=1,滿足條件,滿足條件 T1 (真真) ,T2 (假假) ,T3 (真真) , T4 (假假) ,還是覆蓋,還是覆蓋a、b、e分支分支 2008 BU

33、PT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心3011.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)判定條件覆蓋:設(shè)計足夠的測試用例,使得判斷中每個判定條件覆蓋:設(shè)計足夠的測試用例,使得判斷中每個條件的所有可能取值至少執(zhí)行一次,同時每個判斷本身的條件的所有可能取值至少執(zhí)行一次,同時每個判斷本身的所有可能判斷結(jié)果至少執(zhí)行一次。所有可能判斷結(jié)果至少執(zhí)行一次。A=2,B=0 ,X=4,滿足條件,滿足條件 T1(真真),T2 (真真),T3 (真真) , T4 (真真) ,可覆蓋,可覆蓋a、c、e分支分支A=1,B=1 ,X=1,滿足條件,滿足條件 T1(假假),T2

34、 (假假),T3 (假假) , T4 (假假) ,覆蓋,覆蓋a、b、d分支分支多重條件覆蓋:設(shè)計足夠的測試用例,運(yùn)行被測程序,使多重條件覆蓋:設(shè)計足夠的測試用例,運(yùn)行被測程序,使得每個判斷的所有可能的條件取值組合至少執(zhí)行一次。得每個判斷的所有可能的條件取值組合至少執(zhí)行一次。A=2,B=0 ,X=4,滿足條件,滿足條件 T1(真真),T2 (真真),T3 (真真) , T4 (真真) ,覆蓋覆蓋a、c、e分支分支A=2,B=1 ,X=1,滿足條件,滿足條件 T1(真真),T2 (假假),T3 (真真) , T4 (假假) ,覆蓋覆蓋a、b、e分支分支A=1,B=0 ,X=2,滿足條件,滿足條件

35、T1(假假),T2 (真真),T3 (假假) , T4 (真真) ,覆蓋覆蓋a、b、d分支分支A=1,B=1 ,X=1,滿足條件,滿足條件 T1(假假),T2 (假假),T3 (假假) , T4 (假假) ,覆蓋覆蓋a、b、d分支分支 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心3111.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)路徑測試:設(shè)計足夠的測試用例,覆蓋程序中所有可路徑測試:設(shè)計足夠的測試用例,覆蓋程序中所有可能的路徑能的路徑, 這是最強(qiáng)的覆蓋準(zhǔn)則。這是最強(qiáng)的覆蓋準(zhǔn)則。A=2,B=0 ,X=4,滿足條件,滿足條件 T1(真真),T2

36、 (真真),T3 (真真) , T4 (真真) ,覆蓋,覆蓋a、c、e分支分支A=3,B=0 ,X=1,滿足條件,滿足條件 T1(真真),T2 (真真),T3 (假假) , T4 (假假) ,覆蓋,覆蓋a、c、d分支分支A=1,B=1 ,X=2,滿足條件,滿足條件 T1(假假),T2 (假假),T3 (假假) , T4 (真真) ,覆蓋,覆蓋a、b、e分支分支A=1,B=1 ,X=1,滿足條件,滿足條件 T1(假假),T2 (假假),T3 (假假) , T4 (假假) ,覆蓋,覆蓋a、b、d分支分支 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心321

37、1.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)(2) 基本路徑測試基本路徑測試真正做到完全路徑覆蓋是很困難的,必須把覆蓋路徑真正做到完全路徑覆蓋是很困難的,必須把覆蓋路徑數(shù)目壓縮到一定限度。如果把覆蓋的路徑數(shù)壓縮到一數(shù)目壓縮到一定限度。如果把覆蓋的路徑數(shù)壓縮到一定限度內(nèi),例如,程序中的循環(huán)體只執(zhí)行零次和一次定限度內(nèi),例如,程序中的循環(huán)體只執(zhí)行零次和一次,就稱為基本路徑測試。,就稱為基本路徑測試。設(shè)計出的測試用例要保證在測試中,程序的每一個可設(shè)計出的測試用例要保證在測試中,程序的每一個可執(zhí)行語句至少要執(zhí)行一次。執(zhí)行語句至少要執(zhí)行一次?;韭窂綔y試步驟基本路徑測試步驟: 導(dǎo)出程序流程圖的拓

38、撲結(jié)構(gòu)導(dǎo)出程序流程圖的拓?fù)浣Y(jié)構(gòu)-流圖流圖 (程序圖程序圖) 計算流圖計算流圖G的環(huán)路復(fù)雜度的環(huán)路復(fù)雜度V(G) 確定只包含獨(dú)立路徑的基本路徑集確定只包含獨(dú)立路徑的基本路徑集 設(shè)計測試用例設(shè)計測試用例 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心3311.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)程序的控制流圖程序的控制流圖控制流圖是描述程序控制流的一種圖示方法??刂屏鲌D是描述程序控制流的一種圖示方法?;究刂茦?gòu)造的圖形符號基本控制構(gòu)造的圖形符號如下所示:如下所示:邊和結(jié)點(diǎn)圈定的區(qū)域叫做區(qū)域,當(dāng)對區(qū)域計數(shù)邊和結(jié)點(diǎn)圈定的區(qū)域叫做區(qū)域,當(dāng)對區(qū)域計數(shù)

39、時,圖形外的區(qū)域也應(yīng)記為一個區(qū)域。時,圖形外的區(qū)域也應(yīng)記為一個區(qū)域。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心3411.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)如果判定中的條件表達(dá)式是復(fù)合條件時,即條件表如果判定中的條件表達(dá)式是復(fù)合條件時,即條件表達(dá)式是由一個或多個邏輯運(yùn)算符(達(dá)式是由一個或多個邏輯運(yùn)算符(OR,AND,NAND,NOR)連接的邏輯表達(dá)式,則需要改復(fù)合)連接的邏輯表達(dá)式,則需要改復(fù)合條件的判定為一系列只有單個條件的嵌套的判定。條件的判定為一系列只有單個條件的嵌套的判定。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電

40、大學(xué) 通信軟件工程中心通信軟件工程中心3511.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù) 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心(a) 程序流程圖程序流程圖(b) 控制流圖控制流圖3611.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)計算程序環(huán)路復(fù)雜性計算程序環(huán)路復(fù)雜性程序的環(huán)路復(fù)雜性給出了程序基本路徑集合中的獨(dú)立程序的環(huán)路復(fù)雜性給出了程序基本路徑集合中的獨(dú)立路徑條數(shù),這是確保程序中每個可執(zhí)行語句至少執(zhí)行路徑條數(shù),這是確保程序中每個可執(zhí)行語句至少執(zhí)行一次所必需的測試用例數(shù)目的上界。一次所必需的測試用例數(shù)目的上界。所謂獨(dú)立路徑,是

41、指包括一組以前沒有處理的語句或所謂獨(dú)立路徑,是指包括一組以前沒有處理的語句或條件的一條路徑。條件的一條路徑。只要設(shè)計出的測試用例能夠確保這些基本路徑的執(zhí)行只要設(shè)計出的測試用例能夠確保這些基本路徑的執(zhí)行,就可以使得程序中的每個可執(zhí)行語句至少執(zhí)行一次,就可以使得程序中的每個可執(zhí)行語句至少執(zhí)行一次,每個條件的取真和取假分支也能得到測試。,每個條件的取真和取假分支也能得到測試?;韭窂郊皇俏ㄒ坏?,對于給定的控制流圖,可以基本路徑集不是唯一的,對于給定的控制流圖,可以得到不同的基本路徑集。得到不同的基本路徑集。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心3

42、711.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)一組獨(dú)立的路徑是一組獨(dú)立的路徑是: path1:1 - 11 path2:1 - 2 - 3 - 4 - 5 - 10 - 1 - 11 path3:1 - 2 - 3 - 6 - 8 - 9 - 10 - 1 - 11 path4:1 - 2 - 3 - 6 - 7 - 9 - 10 - 1 - 11 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心(a) 程序流程圖程序流程圖(b) 控制流圖控制流圖3811.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)通常環(huán)路復(fù)雜性可用以下三種方法求得。

43、通常環(huán)路復(fù)雜性可用以下三種方法求得。 將環(huán)路復(fù)雜性定義為控制流圖中的區(qū)域數(shù)。將環(huán)路復(fù)雜性定義為控制流圖中的區(qū)域數(shù)。 設(shè)設(shè)E為控制流圖的邊數(shù),為控制流圖的邊數(shù),N為圖的結(jié)點(diǎn)數(shù),則定義為圖的結(jié)點(diǎn)數(shù),則定義環(huán)路復(fù)雜性為環(huán)路復(fù)雜性為 V(G)EN2。 若設(shè)若設(shè)P為控制流圖中的判定結(jié)點(diǎn)數(shù),則有為控制流圖中的判定結(jié)點(diǎn)數(shù),則有 V(G)P1。前面前面所示控制流圖有所示控制流圖有4個區(qū)域。其環(huán)路復(fù)雜性個區(qū)域。其環(huán)路復(fù)雜性為為4。 它是構(gòu)成基本路徑集的獨(dú)立路徑數(shù)的上它是構(gòu)成基本路徑集的獨(dú)立路徑數(shù)的上界??梢該?jù)此得到應(yīng)該設(shè)計的測試用例的數(shù)目界。可以據(jù)此得到應(yīng)該設(shè)計的測試用例的數(shù)目。 2008 BUPT TSEG

44、北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心3911.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)(3) 控制結(jié)構(gòu)測試控制結(jié)構(gòu)測試基本基本路徑路徑測試技術(shù)是測試技術(shù)是控制結(jié)構(gòu)測試技術(shù)控制結(jié)構(gòu)測試技術(shù)之一。盡之一。盡管基本路徑測試簡單高效,但是其并不充分管基本路徑測試簡單高效,但是其并不充分??刂平Y(jié)構(gòu)測試中的其它測試技術(shù)控制結(jié)構(gòu)測試中的其它測試技術(shù): 關(guān)于分支結(jié)構(gòu)路徑數(shù)的討論關(guān)于分支結(jié)構(gòu)路徑數(shù)的討論 條件測試的策略條件測試的策略 循環(huán)測試循環(huán)測試 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心4011.3 11.3 軟件測試方法與技術(shù)

45、軟件測試方法與技術(shù)3. 黑盒測試技術(shù)黑盒測試技術(shù) (1) 等價類劃分等價類劃分這一方法完全不考慮程序的內(nèi)部結(jié)構(gòu),只依據(jù)程序的這一方法完全不考慮程序的內(nèi)部結(jié)構(gòu),只依據(jù)程序的規(guī)格說明來設(shè)計測試用例規(guī)格說明來設(shè)計測試用例。黑盒測試中,用所有可以輸入的數(shù)據(jù)來測試程序是不黑盒測試中,用所有可以輸入的數(shù)據(jù)來測試程序是不可能的,只可能從全部可供輸入的數(shù)據(jù)中選擇一個子可能的,只可能從全部可供輸入的數(shù)據(jù)中選擇一個子集進(jìn)行測試。集進(jìn)行測試。因此,因此,該方法是把所有可能的輸入數(shù)據(jù)劃分為若干部該方法是把所有可能的輸入數(shù)據(jù)劃分為若干部分,從每一部分中選取少數(shù)有分,從每一部分中選取少數(shù)有代表性代表性的數(shù)據(jù)作為測試的數(shù)據(jù)

46、作為測試用例。用例。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心4111.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)劃分等價類劃分等價類所謂等價類是指某個輸入域的子集合,在該子所謂等價類是指某個輸入域的子集合,在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的。都是等效的。等價類的劃分有兩種不同的情況:等價類的劃分有兩種不同的情況: 有效等價類:是指對于程序規(guī)格說明來說,是合有效等價類:是指對于程序規(guī)格說明來說,是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合。利用它,理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合。利用

47、它,可以檢驗程序是否實現(xiàn)了規(guī)格說明預(yù)先規(guī)定的功可以檢驗程序是否實現(xiàn)了規(guī)格說明預(yù)先規(guī)定的功能和性能。能和性能。 無效等價類:是指對于程序規(guī)格說明來說,是不無效等價類:是指對于程序規(guī)格說明來說,是不合理的,無意義的輸入數(shù)據(jù)構(gòu)成的集合。利用它合理的,無意義的輸入數(shù)據(jù)構(gòu)成的集合。利用它,可以檢查程序中功能和性能的實現(xiàn)是否有不符,可以檢查程序中功能和性能的實現(xiàn)是否有不符合規(guī)格說明要求的地方。合規(guī)格說明要求的地方。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心4211.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)劃分等價類的原則劃分等價類的原則: 按區(qū)間劃

48、分按區(qū)間劃分 按數(shù)值集合劃分按數(shù)值集合劃分 輸入條件是一個布爾量的劃分輸入條件是一個布爾量的劃分 按數(shù)值劃分按數(shù)值劃分 按限制條件或規(guī)則劃分按限制條件或規(guī)則劃分 如果已劃分的等價類中各元素在程序中的處理方如果已劃分的等價類中各元素在程序中的處理方式不同,則應(yīng)將此等價類進(jìn)一步劃分成更小的等式不同,則應(yīng)將此等價類進(jìn)一步劃分成更小的等價類價類 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心4311.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)采用等價類劃分方法設(shè)計采用等價類劃分方法設(shè)計測試用例測試用例的的步驟步驟劃分等價類,包括有效等價類與無效等價類劃

49、分等價類,包括有效等價類與無效等價類對所有有效等價類和無效等價類進(jìn)行順序編號對所有有效等價類和無效等價類進(jìn)行順序編號設(shè)計測試用例,盡可能多地覆蓋尚未被覆蓋的有設(shè)計測試用例,盡可能多地覆蓋尚未被覆蓋的有效等價類,重復(fù)這一步驟,直到全部有效等價類效等價類,重復(fù)這一步驟,直到全部有效等價類均被覆蓋到為止均被覆蓋到為止設(shè)計測試用例,每次只覆蓋一個無效等價類,重設(shè)計測試用例,每次只覆蓋一個無效等價類,重復(fù)這一步驟,直到全部無效等價類均被覆蓋到為復(fù)這一步驟,直到全部無效等價類均被覆蓋到為止止 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心4411.3 11.3 軟

50、件測試方法與技術(shù)軟件測試方法與技術(shù)確立測試用例確立測試用例在確立了等價類之后,建立等價類表,列出所有在確立了等價類之后,建立等價類表,列出所有劃分出的等價類劃分出的等價類再從劃分出的等價類中按以下原則選擇測試用例再從劃分出的等價類中按以下原則選擇測試用例 形成等價類表,每一等價類規(guī)定一個唯一的編號形成等價類表,每一等價類規(guī)定一個唯一的編號 設(shè)計一個測試用例,使其盡可能多地覆蓋尚未覆設(shè)計一個測試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價類,重復(fù)這一步驟,直到所有有效蓋的有效等價類,重復(fù)這一步驟,直到所有有效等價類均被測試用例所覆蓋等價類均被測試用例所覆蓋 設(shè)計一新測試用例,使其只覆蓋一個無效等價

51、類設(shè)計一新測試用例,使其只覆蓋一個無效等價類,重復(fù)這一步驟直到所有無效等價類均被覆蓋,重復(fù)這一步驟直到所有無效等價類均被覆蓋 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心4511.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)(2) 邊界值分析邊界值分析人們從長期的測試工作經(jīng)驗得知,大量的錯誤是發(fā)生人們從長期的測試工作經(jīng)驗得知,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部。因此針對各種邊界情況設(shè)計測試用例,可以查出部。因此針對各種邊界情況設(shè)計測試用例,可以查出更多的錯誤。更多的錯誤

52、。這里所說的邊界是指,相當(dāng)于輸入等價類和輸出等價這里所說的邊界是指,相當(dāng)于輸入等價類和輸出等價類而言,稍高于其邊界值及稍低于其邊界值的一些特類而言,稍高于其邊界值及稍低于其邊界值的一些特定情況。定情況。邊界值分析方法是最有效的黑盒測試方法,但當(dāng)邊界邊界值分析方法是最有效的黑盒測試方法,但當(dāng)邊界情況很復(fù)雜的時候,要找出適當(dāng)?shù)臏y試用例還需針對情況很復(fù)雜的時候,要找出適當(dāng)?shù)臏y試用例還需針對問題的輸入域、輸出域邊界,耐心細(xì)致地逐個考慮。問題的輸入域、輸出域邊界,耐心細(xì)致地逐個考慮。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心4611.3 11.3 軟件測試

53、方法與技術(shù)軟件測試方法與技術(shù)邊界值分析法選取測試用例的原則邊界值分析法選取測試用例的原則如果輸入條件規(guī)定了值的范圍,則應(yīng)選取剛達(dá)到這個范圍的如果輸入條件規(guī)定了值的范圍,則應(yīng)選取剛達(dá)到這個范圍的邊界值,以及剛剛超過這個范圍的邊界值作為測試輸入數(shù)據(jù)邊界值,以及剛剛超過這個范圍的邊界值作為測試輸入數(shù)據(jù)如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù)、最小個數(shù)、如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù)、最小個數(shù)、比最大個數(shù)多比最大個數(shù)多1 1、比最小個數(shù)少、比最小個數(shù)少1 1的數(shù)作為測試用例。的數(shù)作為測試用例。如果輸出結(jié)果限定在某個范圍內(nèi),則應(yīng)選取測試用例,使輸如果輸出結(jié)果限定在某個范圍內(nèi),則應(yīng)選取測試用例,

54、使輸出結(jié)果剛剛達(dá)到這個范圍的邊界值,或剛剛超過這個邊界值出結(jié)果剛剛達(dá)到這個范圍的邊界值,或剛剛超過這個邊界值如果輸出結(jié)果規(guī)定了個數(shù),則選用使輸出結(jié)果為最大個數(shù)、如果輸出結(jié)果規(guī)定了個數(shù),則選用使輸出結(jié)果為最大個數(shù)、最小個數(shù)、比最大個數(shù)多最小個數(shù)、比最大個數(shù)多1 1、比最小個數(shù)少、比最小個數(shù)少1 1的數(shù)作為測試的數(shù)作為測試用例用例如果輸入與輸出是有序集合,則應(yīng)選取集合的第一個元素和如果輸入與輸出是有序集合,則應(yīng)選取集合的第一個元素和最后一個元素作為測試用例最后一個元素作為測試用例如果程序中使用了一個內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個內(nèi)部如果程序中使用了一個內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界的

55、值作為測試用例數(shù)據(jù)結(jié)構(gòu)的邊界的值作為測試用例分析規(guī)格說明書,找到其他可能的邊界條件進(jìn)行測試分析規(guī)格說明書,找到其他可能的邊界條件進(jìn)行測試 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心4711.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)(3)錯誤推測法錯誤推測法錯誤推測法指的是人們依靠經(jīng)驗和直覺推測程序錯誤推測法指的是人們依靠經(jīng)驗和直覺推測程序中可能存在的各種錯誤,從而有針對性地編寫檢中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的例子的測試方法。查這些錯誤的例子的測試方法。錯誤推測法的基本想法是:列舉出程序中所有可錯誤推測法的基本想法是

56、:列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)它能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)它們選擇測試用例。們選擇測試用例。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心4811.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)(4)因果圖因果圖如果在測試時必須考慮輸入條件的各種組合,可能的如果在測試時必須考慮輸入條件的各種組合,可能的組合數(shù)將是天文數(shù)字。因此必須考慮使用一種適合于組合數(shù)將是天文數(shù)字。因此必須考慮使用一種適合于描述對于多種條件的組合,相應(yīng)產(chǎn)生多個動作的形式描述對于多種條件的組合,相應(yīng)產(chǎn)生多個動作的形式來考慮設(shè)計測試用例,

57、這就需要利用因果圖來考慮設(shè)計測試用例,這就需要利用因果圖。因果圖方法最終生成的就是因果圖方法最終生成的就是判定表判定表。它適合于檢查程。它適合于檢查程序輸入條件的各種組合情況。序輸入條件的各種組合情況。 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心4911.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)利用因果圖生成測試用例的基本步驟利用因果圖生成測試用例的基本步驟 分析軟件規(guī)格說明描述中,哪些是原因(即輸入分析軟件規(guī)格說明描述中,哪些是原因(即輸入條件或輸入條件的等價類),哪些是結(jié)果(即輸條件或輸入條件的等價類),哪些是結(jié)果(即輸出條件),并給

58、每個原因和結(jié)果賦予一個標(biāo)識符出條件),并給每個原因和結(jié)果賦予一個標(biāo)識符 分析軟件規(guī)格說明描述中的語義,找出原因與結(jié)分析軟件規(guī)格說明描述中的語義,找出原因與結(jié)果之間,原因與原因之間對應(yīng)的關(guān)系,根據(jù)這些果之間,原因與原因之間對應(yīng)的關(guān)系,根據(jù)這些關(guān)系,畫出因果圖關(guān)系,畫出因果圖 由于語法或環(huán)境限制,有些原因與原因之間,原由于語法或環(huán)境限制,有些原因與原因之間,原因與結(jié)果之間的組合情況不可能出現(xiàn)。為表明這因與結(jié)果之間的組合情況不可能出現(xiàn)。為表明這些特殊情況,在因果圖上用一些記號標(biāo)明約束或些特殊情況,在因果圖上用一些記號標(biāo)明約束或限制條件限制條件 把因果圖轉(zhuǎn)換成判定表把因果圖轉(zhuǎn)換成判定表 把判定表的每一

59、列拿出來作為依據(jù),設(shè)計測試用把判定表的每一列拿出來作為依據(jù),設(shè)計測試用例例 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心5011.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù) 2008 BUPT TSEG 北京郵電大學(xué)北京郵電大學(xué) 通信軟件工程中心通信軟件工程中心因果圖因果圖由因由因果圖果圖得到得到的判的判定表定表由因由因果圖果圖得到得到的判的判定表定表5111.3 11.3 軟件測試方法與技術(shù)軟件測試方法與技術(shù)4. 測試方法選擇的綜合策略測試方法選擇的綜合策略在任何情況下都必須使用邊界值分析方法。經(jīng)在任何情況下都必須使用邊界值分析方法。經(jīng)驗表

60、明用這種方法設(shè)計出測試用例發(fā)現(xiàn)程序錯驗表明用這種方法設(shè)計出測試用例發(fā)現(xiàn)程序錯誤的能力最強(qiáng)誤的能力最強(qiáng)必要時用等價類劃分方法補(bǔ)充一些測試用例必要時用等價類劃分方法補(bǔ)充一些測試用例用錯誤推測法再追加一些測試用例用錯誤推測法再追加一些測試用例對照程序邏輯,檢查已設(shè)計出的測試用例的邏對照程序邏輯,檢查已設(shè)計出的測試用例的邏輯覆蓋程度。如果沒有達(dá)到要求的覆蓋標(biāo)準(zhǔn),輯覆蓋程度。如果沒有達(dá)到要求的覆蓋標(biāo)準(zhǔn),應(yīng)當(dāng)再補(bǔ)充足夠的測試用例應(yīng)當(dāng)再補(bǔ)充足夠的測試用例如果程序的功能說明中含有輸入條件的組合情如果程序的功能說明中含有輸入條件的組合情況,則一開始就可選用因果圖法況,則一開始就可選用因果圖法 2008 BUPT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論