軟件測(cè)試課件_第1頁(yè)
軟件測(cè)試課件_第2頁(yè)
軟件測(cè)試課件_第3頁(yè)
軟件測(cè)試課件_第4頁(yè)
軟件測(cè)試課件_第5頁(yè)
已閱讀5頁(yè),還剩326頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件測(cè)試概述1.1.1軟件可靠性問題因軟件設(shè)計(jì)故障與因計(jì)算機(jī)硬件設(shè)計(jì)故障而引發(fā)的系統(tǒng)失效的比例大約是:10:1運(yùn)行軟件的駐留故障密度(每千行代碼的故障數(shù)目):

——要求很高的關(guān)鍵財(cái)務(wù)或財(cái)產(chǎn)軟件為:每千行代碼1~10個(gè)故障

——關(guān)鍵的生命軟件為:每千行代碼0.01~1個(gè)故障IEEE將軟件可靠性定義為:系統(tǒng)在特定環(huán)境下,在給定的時(shí)間內(nèi)無故障運(yùn)行的概率。軟件可靠性是對(duì)軟件在設(shè)計(jì)、開發(fā)以及所預(yù)定的環(huán)境下具有能力的置信度的一個(gè)度量,是衡量軟件質(zhì)量的主要參數(shù)之一。而軟件測(cè)試則是保證軟件質(zhì)量、提高軟件可靠性的最重要手段。

1.1.2軟件缺陷與故障1、軟件缺陷和軟件故障案例案例1美國(guó)迪斯尼公司的獅子王游戲軟件bug兼容性問題案例2美國(guó)航天局火星登陸事故系統(tǒng)測(cè)試銜接問題

案例3跨世紀(jì)“千年蟲”問題案例4愛國(guó)者導(dǎo)彈防御系統(tǒng)炸死自家人系統(tǒng)時(shí)鐘誤差積累

案例5Windows2000中文輸入法漏洞案例6金山詞霸bug

上述所有實(shí)例中的軟件問題在軟件工程或軟件測(cè)試中都被稱為軟件缺陷或軟件故障。

軟件缺陷與故障(續(xù))2、軟件缺陷的定義(1)軟件未達(dá)到產(chǎn)品說明書中已經(jīng)標(biāo)明的功能;(2)軟件出現(xiàn)了產(chǎn)品說明書中指明不會(huì)出現(xiàn)的錯(cuò)誤;(3)軟件未達(dá)到產(chǎn)品說明書中雖未指出但應(yīng)當(dāng)達(dá)到的目標(biāo);

(4)軟件功能超出了產(chǎn)品說明書中指明的范圍;(5)軟件測(cè)試人員認(rèn)為軟件難以理解、不易使用,或者最終用戶認(rèn)為該軟件使用效果不良。舉例:計(jì)算器內(nèi)的嵌入式軟件軟件缺陷與故障(續(xù))3、軟件缺陷的特征“看不到”——軟件的特殊性決定了缺陷不易看到“看到但是抓不到”

——發(fā)現(xiàn)了缺陷,但不易找到問題發(fā)生的原因所在1.1.3軟件缺陷產(chǎn)生的原因圖1-1軟件缺陷產(chǎn)生的原因分布其他10%軟件產(chǎn)品說明書(需求)56%編寫代碼7%設(shè)計(jì)27%Return1.2軟件測(cè)試基礎(chǔ)理論1.2.1軟件測(cè)試的定義1.2.2軟件測(cè)試的基本理論1.2.3軟件測(cè)試和缺陷修復(fù)的代價(jià)1.2.4軟件測(cè)試技術(shù)概要Return1.2.1軟件測(cè)試的定義1、軟件測(cè)試的定義軟件測(cè)試就是在軟件投入運(yùn)行前,對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說明和編碼實(shí)現(xiàn)的最終審查,它是軟件質(zhì)量保證的關(guān)鍵步驟。通常對(duì)軟件測(cè)試的定義有兩種描述:定義1:軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。定義2:軟件測(cè)試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)的一批測(cè)試用例,并利用這些測(cè)試用例運(yùn)行程序以及發(fā)現(xiàn)錯(cuò)誤的過程,即執(zhí)行測(cè)試步驟。軟件測(cè)試的定義(續(xù))測(cè)試:所謂測(cè)試的含義,首先是一項(xiàng)活動(dòng),在這項(xiàng)活動(dòng)中某個(gè)系統(tǒng)或組成的部分將在特定的條件下運(yùn)行,結(jié)果將被觀察和記錄,并對(duì)系統(tǒng)或組成部分進(jìn)行評(píng)價(jià)。測(cè)試活動(dòng)有兩種結(jié)果:找出缺陷和故障,或顯示軟件執(zhí)行正確。測(cè)試是一個(gè)或多個(gè)測(cè)試用例的集合。測(cè)試用例:所謂測(cè)試用例是為特定的目的而設(shè)計(jì)的一組測(cè)試輸入、執(zhí)行條件和預(yù)期的結(jié)果;測(cè)試用例是執(zhí)行測(cè)試的最小實(shí)體。測(cè)試步驟:測(cè)試步驟詳細(xì)規(guī)定了如何設(shè)置、執(zhí)行、評(píng)估特定的測(cè)試用例。軟件測(cè)試的定義(續(xù))2、軟件測(cè)試的基本問題軟件生命周期:一個(gè)軟件生命周期包括制定計(jì)劃、需求分析定義、軟件設(shè)計(jì)、程序編碼、軟件測(cè)試、軟件運(yùn)行、軟件維護(hù)、軟件停用等8個(gè)階段。軟件測(cè)試的對(duì)象:

——軟件測(cè)試不等于程序測(cè)試。

——軟件測(cè)試貫串于軟件定義和開發(fā)的整個(gè)過程。

——軟件開發(fā)過程中所產(chǎn)生的需求規(guī)格說明、概要設(shè)計(jì)規(guī)格說明、詳細(xì)設(shè)計(jì)規(guī)格說明以及源程序都是軟件測(cè)試的對(duì)象。軟件測(cè)試的定義(續(xù))2、軟件測(cè)試的基本問題(續(xù))軟件測(cè)試在軟件生命周期中橫跨兩個(gè)階段:第一個(gè)階段:?jiǎn)卧獪y(cè)試階段,即在每個(gè)模塊編寫出以后所做的必要測(cè)試。第二個(gè)階段:綜合測(cè)試階段,即在完成單元測(cè)試后進(jìn)行的測(cè)試,如集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試。軟件測(cè)試涉及的關(guān)鍵問題包括四個(gè)方面:(1)測(cè)試由誰來執(zhí)行。(2)測(cè)試什么。(3)什么時(shí)候進(jìn)行測(cè)試。(4)怎樣進(jìn)行測(cè)試。1.2.2軟件測(cè)試的基本理論1、軟件測(cè)試的目的(1)測(cè)試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯(cuò)誤;不能證明程序的正確性,除非僅處理有限種情況。(2)檢查系統(tǒng)是否滿足需求也是測(cè)試的期望目標(biāo)。(3)一個(gè)好的測(cè)試用例在于發(fā)現(xiàn)了還未曾發(fā)現(xiàn)的錯(cuò)誤;一次成功的測(cè)試則是發(fā)現(xiàn)了錯(cuò)誤的測(cè)試。注意:測(cè)試無法說明錯(cuò)誤不存在,只能說明軟件錯(cuò)誤已出現(xiàn)。軟件測(cè)試的基本理論(續(xù))2、軟件測(cè)試的原則(1)盡早地和及時(shí)地測(cè)試;(2)測(cè)試用例應(yīng)當(dāng)由測(cè)試數(shù)據(jù)和與之對(duì)應(yīng)的預(yù)期結(jié)果這兩部分組成;(3)在程序提交測(cè)試后,應(yīng)當(dāng)由專門的測(cè)試人員進(jìn)行測(cè)試;(4)測(cè)試用例應(yīng)包括合理的輸入條件和不合理的輸入條件;(5)嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性;(6)充分注意測(cè)試當(dāng)中的群體現(xiàn)象;(7)應(yīng)對(duì)每一個(gè)測(cè)試結(jié)果做全面的檢查;(8)保存測(cè)試計(jì)劃、測(cè)試用例、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)工作提供充分的資料。軟件測(cè)試的基本理論(續(xù))3、軟件測(cè)試的分類軟件測(cè)試按照不同的劃分方法,有不同的分類:按照軟件測(cè)試用例的設(shè)計(jì)方法而論,軟件測(cè)試可以分為白盒測(cè)試法和黑盒測(cè)試法。按照軟件測(cè)試的策略和過程來分類,軟件測(cè)試可分為單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)證測(cè)試和確認(rèn)測(cè)試。軟件測(cè)試的基本理論(續(xù))4、測(cè)試信息流程測(cè)試信息流程如圖1-2所示。測(cè)試過程中需要三類輸入:軟件配置、測(cè)試配置和測(cè)試工具。軟件配置測(cè)試配置測(cè)試工具測(cè)試結(jié)果分析改正錯(cuò)誤可靠性分析回歸測(cè)試錯(cuò)誤測(cè)試結(jié)果修正的軟件測(cè)試結(jié)果預(yù)測(cè)的可靠性預(yù)期結(jié)果圖1-2測(cè)試信息流程軟件測(cè)試的基本理論(續(xù))5、軟件測(cè)試的周期性軟件測(cè)試的周期性是“測(cè)試->改錯(cuò)->再測(cè)試->再改錯(cuò)”這樣一個(gè)循環(huán)過程,如下圖1-3所示。測(cè)試周期開發(fā)/改錯(cuò)改錯(cuò)測(cè)試周期改錯(cuò)串行方式開發(fā)者:…...開發(fā)者:并行方式測(cè)試者:開發(fā)/改錯(cuò)開發(fā)/改錯(cuò)最終回歸測(cè)試回歸測(cè)試1測(cè)試周期1……功能凍結(jié)代碼凍結(jié)測(cè)試周期2圖1-3軟件測(cè)試的周期性軟件測(cè)試的基本理論(續(xù))6、測(cè)試停止的依據(jù)(標(biāo)準(zhǔn))第一類標(biāo)準(zhǔn):測(cè)試超過了預(yù)定時(shí)間,則停止測(cè)試。第二類標(biāo)準(zhǔn):執(zhí)行了所有的測(cè)試用例,但并沒有發(fā)現(xiàn)故障,則停止測(cè)試。

第三類標(biāo)準(zhǔn):使用特定的測(cè)試用例設(shè)計(jì)方案作為判斷測(cè)試停止的基礎(chǔ)。

第四類標(biāo)準(zhǔn):正面指出停止測(cè)試的具體要求,即停止測(cè)試的標(biāo)準(zhǔn)可定義為查出某一預(yù)訂數(shù)目的故障。

第五類標(biāo)準(zhǔn):根據(jù)單位時(shí)間內(nèi)查出故障的數(shù)量決定是否停止測(cè)試。

1.2.3軟件測(cè)試和缺陷修復(fù)的代價(jià)軟件在從需求、設(shè)計(jì)、編碼、測(cè)試一直到交付用戶公開使用后的過程中,都有可能產(chǎn)生和發(fā)現(xiàn)缺陷。隨著整個(gè)開發(fā)過程的時(shí)間推移,更正缺陷或修復(fù)問題的費(fèi)用呈幾何級(jí)數(shù)增長(zhǎng)。

圖1-4軟件缺陷在不同階段發(fā)現(xiàn)時(shí)修復(fù)的費(fèi)用示意圖020406080100編制說明書設(shè)計(jì)階段編寫代碼測(cè)試發(fā)布1.2.4軟件測(cè)試技術(shù)概要軟件測(cè)試的策略:就是測(cè)試將按照什么樣的思路和方式進(jìn)行。通常,軟件測(cè)試要經(jīng)過單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試、系統(tǒng)測(cè)試以及驗(yàn)收測(cè)試。軟件測(cè)試技術(shù):(1)白盒測(cè)試和黑盒測(cè)試(2)靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試(3)傳統(tǒng)測(cè)試方法和面向?qū)ο鬁y(cè)試的方法(4)特定環(huán)境及應(yīng)用的測(cè)試軟件測(cè)試技術(shù)概要(續(xù))軟件測(cè)試技術(shù)的發(fā)展趨勢(shì):(1)軟件驗(yàn)證技術(shù)(2)靜態(tài)測(cè)試分析技術(shù)(3)測(cè)試數(shù)據(jù)的選擇——主要對(duì)測(cè)試用例進(jìn)行選擇

通常從下面幾個(gè)方面評(píng)價(jià)測(cè)試用例的質(zhì)量:檢測(cè)軟件缺陷的有效性、測(cè)試用例的可重用性、測(cè)試用例的經(jīng)濟(jì)性、測(cè)試用例的可維護(hù)性(4)集成化測(cè)試——研究如何實(shí)現(xiàn)軟件測(cè)試的自動(dòng)化過程以及相關(guān)的一系列內(nèi)容。Return1.3軟件開發(fā)過程1.3.1軟件產(chǎn)品的組成1.3.2軟件開發(fā)項(xiàng)目組1.3.3軟件開發(fā)模式Return1.3.1軟件產(chǎn)品的組成1、軟件產(chǎn)品需要各種開發(fā)投入

圖1-5獲得軟件產(chǎn)品的工作示意圖產(chǎn)品說明書、產(chǎn)品審查、設(shè)計(jì)文檔、進(jìn)度計(jì)劃、上一版本信息反饋、商業(yè)競(jìng)爭(zhēng)對(duì)手的同類軟件產(chǎn)品情況、客戶調(diào)查、易用性數(shù)據(jù)、觀察與感受說明書開發(fā)過程軟件產(chǎn)品的組成(續(xù))2、客戶需求客戶需求包括對(duì)客戶調(diào)查所收集的詳細(xì)信息、以前軟件的使用情況及存在的問題、競(jìng)爭(zhēng)對(duì)手的軟件產(chǎn)品信息等等。通過分析客戶需求,可以確定將要開發(fā)的軟件產(chǎn)品應(yīng)該具有哪些功能。3、產(chǎn)品說明產(chǎn)品說明書的作用就是對(duì)客戶需求信息進(jìn)行綜合描述,并包括用戶沒有提出、但軟件產(chǎn)品本身必須要實(shí)現(xiàn)的要求,從而針對(duì)產(chǎn)品進(jìn)行定義并確定其功能。軟件產(chǎn)品的組成(續(xù))4、設(shè)計(jì)文檔構(gòu)架。即產(chǎn)生描述軟件整體設(shè)計(jì)的文檔,包括軟件所有主要部分的描述以及相互間的交互方式。數(shù)據(jù)流示意圖。表示數(shù)據(jù)在程序中如何流動(dòng)的正規(guī)示意圖。通常由圓圈和線條組成,所以也稱為泡泡圖。狀態(tài)變化示意圖。將軟件分解為基本狀態(tài)或者條件的另一種正規(guī)示意圖,表示不同狀態(tài)之間的變化的方式。流程圖。用圖形描述程序邏輯的最常用方式之一。根據(jù)詳細(xì)的流程圖編寫程序代碼簡(jiǎn)單方便。注釋代碼。代碼注釋是便于維護(hù)代碼的程序員掌握代碼的內(nèi)容和執(zhí)行方式。軟件產(chǎn)品的組成(續(xù))5、測(cè)試文檔一般測(cè)試文檔所包含的內(nèi)容:測(cè)試計(jì)劃。描述用于驗(yàn)證軟件是否符合產(chǎn)品說明書和客戶需求的整體方案。測(cè)試用例。依據(jù)測(cè)試的項(xiàng)目,并描述驗(yàn)證軟件的詳細(xì)步驟。軟件測(cè)試報(bào)告。描述依據(jù)測(cè)試用例找出的問題,通常提交測(cè)試報(bào)告。歸納、統(tǒng)計(jì)和總結(jié)。采用圖表、表格和報(bào)告等形式來描述整個(gè)測(cè)試過程。

軟件產(chǎn)品的組成(續(xù))6、開發(fā)進(jìn)度表軟件項(xiàng)目的開發(fā)進(jìn)度通常使用Gantt圖表來進(jìn)行描述。7、軟件產(chǎn)品組成部分(1)程序代碼(2)幫助文件(3)用戶手冊(cè)(4)樣本和示例(5)標(biāo)簽(6)產(chǎn)品支持信息(7)圖表和標(biāo)志(8)錯(cuò)誤信息(9)廣告與宣傳材料(10)軟件的安裝(11)軟件說明文件(12)測(cè)試錯(cuò)誤提示信息

1.3.2軟件開發(fā)項(xiàng)目組項(xiàng)目管理經(jīng)理:全程負(fù)責(zé)整個(gè)軟件項(xiàng)目的開發(fā)。

系統(tǒng)設(shè)計(jì)師:設(shè)計(jì)整個(gè)系統(tǒng)構(gòu)架或軟件構(gòu)思。

程序員:負(fù)責(zé)設(shè)計(jì)、編寫程序,并修改軟件中的缺陷。

軟件測(cè)試員/測(cè)試師:負(fù)責(zé)找出并報(bào)告軟件產(chǎn)品的問題,與開發(fā)組密切合作,進(jìn)行測(cè)試并報(bào)告發(fā)現(xiàn)的問題。

技術(shù)制作、用戶助手、用戶培訓(xùn)員、手冊(cè)編寫和文件檔案專員:負(fù)責(zé)編寫軟件產(chǎn)品附帶的文件和聯(lián)機(jī)文檔。結(jié)構(gòu)管理和制作人員:負(fù)責(zé)將程序員編寫的全部文檔資料合并成一個(gè)軟件包。1.3.3軟件開發(fā)模式1、大棒開發(fā)法源于能量爆發(fā)創(chuàng)造宇宙,萬物都由能量和物質(zhì)積聚而成的理論,但如果不是遵循某種正確的排列和組合,形成的將不是預(yù)先期望的事物。大棒模式與上述理論一樣:一大堆能量(這里指開發(fā)軟件所需的人力和物力)放在一起,巨大的能量進(jìn)行釋放,通常的結(jié)果可能是產(chǎn)生了優(yōu)秀的軟件產(chǎn)品或成為一堆“廢品”(不成功的軟件)。優(yōu)點(diǎn):思路簡(jiǎn)單,通??赡苁情_發(fā)者的“突發(fā)奇想”缺點(diǎn):開發(fā)過程是非工程化的,隨意性大關(guān)于測(cè)試:有的較簡(jiǎn)單,有的則非常困難軟件開發(fā)模式(續(xù))2、邊寫邊改法采用邊寫邊改法的軟件開發(fā)通常只是有了比較粗略的想法就開始進(jìn)行簡(jiǎn)單的設(shè)計(jì)、然后進(jìn)行較長(zhǎng)的反復(fù)編寫、測(cè)試與修復(fù)這樣一個(gè)循環(huán)的過程。在認(rèn)為無法更精細(xì)的描述軟件產(chǎn)品要求時(shí),就發(fā)布產(chǎn)品。優(yōu)點(diǎn):能夠較為迅速的展現(xiàn)成果,適合需要快速制作而且用完就扔的小項(xiàng)目,如示范程序、演示程序等。缺點(diǎn):其編碼和測(cè)試可能將是長(zhǎng)期的循環(huán)往復(fù)的過程。軟件開發(fā)模式(續(xù))產(chǎn)品說明書代碼編制、測(cè)試、修復(fù)

最終產(chǎn)品圖1-6邊寫邊改開發(fā)模式軟件開發(fā)模式(續(xù))3、瀑布法瀑布模式是將軟件生命周期的各項(xiàng)活動(dòng),規(guī)定為按照固定順序相連的若干個(gè)階段性工作,形如瀑布流水,最終得到軟件產(chǎn)品。

優(yōu)點(diǎn):易于理解;調(diào)研開發(fā)的階段性;強(qiáng)調(diào)早期計(jì)劃及需求調(diào)查;確定何時(shí)能夠交付產(chǎn)品及何時(shí)進(jìn)行評(píng)審與測(cè)試。缺點(diǎn):需求調(diào)查分析只進(jìn)行一次,不能適應(yīng)需求變化;順序的開發(fā)流程,使得開發(fā)中的經(jīng)驗(yàn)教訓(xùn)不能反饋到該項(xiàng)目的開發(fā)中去;不能反映出軟件開發(fā)過程的反復(fù)與迭代性;沒有包含任何類型的風(fēng)險(xiǎn)評(píng)估;開發(fā)中出現(xiàn)的問題直到開發(fā)后期才能夠顯露,因此失去及早糾正的機(jī)會(huì)。軟件開發(fā)模式(續(xù))問題定義分析研究需求分析軟件設(shè)計(jì)編碼測(cè)試維護(hù)定義階段開發(fā)階段維護(hù)階段圖1-7瀑布開發(fā)模式軟件開發(fā)模式(續(xù))4、快速原型法

根據(jù)客戶需求在較短的時(shí)間內(nèi)解決用戶最迫切解決的問題,完成可演示的產(chǎn)品。這個(gè)產(chǎn)品只實(shí)現(xiàn)最重要功能,在得到用戶的更加明確的需求之后,原型將丟棄。需求分析原型開發(fā)原型評(píng)價(jià)最終設(shè)計(jì)系統(tǒng)實(shí)現(xiàn)用戶反饋圖1-8快速原型開發(fā)模式軟件開發(fā)模式(續(xù))5、螺旋模式法螺旋模式是瀑布模式與邊寫邊改演化模式相結(jié)合,并加入風(fēng)險(xiǎn)評(píng)估所建立的軟件開發(fā)模式。

主要思想是在開始時(shí)不必詳細(xì)定義所有細(xì)節(jié),而是從小開始,定義重要功能,盡量實(shí)現(xiàn),接受客戶反饋,進(jìn)入下一階段,并重復(fù)上述過程,直到獲得最終產(chǎn)品。

每一螺旋(開發(fā)階段)包括5個(gè)步驟:①確定目標(biāo),選擇方案和限制條件。②對(duì)方案風(fēng)險(xiǎn)進(jìn)行評(píng)估,并能解決風(fēng)險(xiǎn)。③進(jìn)行本階段的開發(fā)和測(cè)試。④計(jì)劃下一階段。⑤確定進(jìn)入下階段的方法。優(yōu)點(diǎn):嚴(yán)格的全過程風(fēng)險(xiǎn)管理;強(qiáng)調(diào)各開發(fā)階段的質(zhì)量;提供機(jī)會(huì)評(píng)估項(xiàng)目是否有價(jià)值繼續(xù)下去。軟件開發(fā)模式(續(xù))圖1-9螺旋開發(fā)模式詳細(xì)設(shè)計(jì)風(fēng)險(xiǎn)分析評(píng)估方案累計(jì)成本提交線制定計(jì)劃原型1原型2原型3可運(yùn)行原型風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析需求計(jì)劃開發(fā)計(jì)劃集成與測(cè)試軟件需求軟件產(chǎn)品設(shè)計(jì)需求確定設(shè)計(jì)確定實(shí)現(xiàn)編碼單元測(cè)試集成測(cè)試驗(yàn)收測(cè)試1.4軟件開發(fā)與軟件測(cè)試的關(guān)系1、測(cè)試與開發(fā)各階段的關(guān)系Return圖1-10

軟件測(cè)試與軟件開發(fā)過程的關(guān)系需求分析說明書詳細(xì)設(shè)計(jì)說明書源程序代碼單元測(cè)試集成測(cè)試確認(rèn)測(cè)試概要設(shè)計(jì)說明書軟件開發(fā)與軟件測(cè)試的關(guān)系(續(xù))測(cè)試在開發(fā)階段的作用:項(xiàng)目規(guī)劃階段:負(fù)責(zé)從單元測(cè)試到系統(tǒng)測(cè)試的整個(gè)測(cè)試階段的監(jiān)控。需求分析階段:確定測(cè)試需求分析、系統(tǒng)測(cè)試計(jì)劃的制定,評(píng)審后成為管理項(xiàng)目。詳細(xì)設(shè)計(jì)和概要設(shè)計(jì)階段:確保集成測(cè)試計(jì)劃和單元測(cè)試計(jì)劃完成。編碼階段:由開發(fā)人員進(jìn)行自己負(fù)責(zé)部分的測(cè)試代碼。在項(xiàng)目較大時(shí),由專人進(jìn)行編碼階段的測(cè)試任務(wù)。測(cè)試階段(單元、集成、系統(tǒng)測(cè)試):依據(jù)測(cè)試代碼進(jìn)行測(cè)試,并提交相應(yīng)的測(cè)試狀態(tài)報(bào)告和測(cè)試結(jié)束報(bào)告。軟件開發(fā)與軟件測(cè)試的關(guān)系(續(xù))圖1-11軟件測(cè)試與軟件開發(fā)的并行性需求分析需求評(píng)審概要設(shè)計(jì)詳細(xì)設(shè)計(jì)概要設(shè)計(jì)評(píng)審單元測(cè)試編碼設(shè)計(jì)走查編碼走查各子模塊有效性測(cè)試集成測(cè)試測(cè)試計(jì)劃測(cè)試過程測(cè)試評(píng)審…………**項(xiàng)目階段任務(wù)的里程碑********2、測(cè)試與開發(fā)的并行性軟件開發(fā)與軟件測(cè)試的關(guān)系(續(xù))圖1-12完整的開發(fā)流程項(xiàng)目規(guī)劃項(xiàng)目需求分析項(xiàng)目概要分析項(xiàng)目詳細(xì)分析代碼編寫測(cè)試代碼編寫測(cè)試需求分析系統(tǒng)測(cè)試計(jì)劃集成測(cè)試計(jì)劃單元測(cè)試計(jì)劃產(chǎn)品發(fā)布系統(tǒng)測(cè)試集成測(cè)試單元測(cè)試3、完整的軟件開發(fā)流程1.5軟件測(cè)試過程1.5.1制定測(cè)試計(jì)劃1.5.2測(cè)試執(zhí)行過程Return1.5.1制定測(cè)試計(jì)劃1、制定計(jì)劃本階段的主要工作內(nèi)容

——對(duì)需求規(guī)格說明書的仔細(xì)研究

——將要測(cè)試的產(chǎn)品分解成可獨(dú)立測(cè)試的單元

——為每個(gè)測(cè)試單元確定采用的測(cè)試技術(shù)

——為測(cè)試的下一個(gè)階段及其活動(dòng)制定計(jì)劃制定計(jì)劃包括:(1)概要測(cè)試計(jì)劃(2)詳細(xì)測(cè)試計(jì)劃制定測(cè)試計(jì)劃(續(xù))2、測(cè)試大綱(用例)

測(cè)試大綱是軟件測(cè)試的依據(jù),包括測(cè)試項(xiàng)目、測(cè)試步驟、測(cè)試完成的標(biāo)準(zhǔn)。測(cè)試大綱的本質(zhì)

——從測(cè)試的角度對(duì)被測(cè)對(duì)象的功能和各種特性的細(xì)化和展開。測(cè)試大綱的好處

——保證測(cè)試功能不被遺漏,也不被重復(fù)測(cè)試

——合理安排測(cè)試人員——使得軟件測(cè)試不依賴于個(gè)人制定測(cè)試計(jì)劃(續(xù))3、軟件測(cè)試報(bào)告軟件測(cè)試報(bào)告是軟件測(cè)試過程中最重要的文檔,它的內(nèi)容包括:記錄問題發(fā)生的環(huán)境——如:各種資源的配置情況記錄問題的再現(xiàn)步驟記錄問題性質(zhì)的說明記錄問題的處理進(jìn)程——問題處理進(jìn)程從一定角度上反映測(cè)試的進(jìn)程和被測(cè)軟件的質(zhì)量狀況以及改善過程。1.5.2測(cè)試執(zhí)行過程1、測(cè)試執(zhí)行過程的三個(gè)階段(1)初測(cè)期——測(cè)試主要功能和關(guān)鍵的執(zhí)行路徑,排除主要障礙。(2)細(xì)測(cè)期——依據(jù)測(cè)試計(jì)劃和測(cè)試大綱、測(cè)試用例,逐一測(cè)試大大小小的功能、方方面面的特性、性能、用戶界面、兼容性、可用性等等;預(yù)期可發(fā)現(xiàn)大量不同性質(zhì)、不同嚴(yán)重程度的錯(cuò)誤和問題。(3)回歸測(cè)試期——系統(tǒng)已達(dá)到穩(wěn)定,在一輪測(cè)試中發(fā)現(xiàn)的錯(cuò)誤已十分有限;復(fù)查已知錯(cuò)誤的糾正情況,確認(rèn)未引發(fā)任何新的錯(cuò)誤時(shí),終結(jié)回歸測(cè)試。測(cè)試執(zhí)行過程(續(xù))圖1-13三個(gè)測(cè)試期階段圖示初測(cè)期功能凍結(jié)代碼凍結(jié)回歸測(cè)試期細(xì)測(cè)期02040608010012014016012345678910111213141516171819出錯(cuò)數(shù)時(shí)間測(cè)試執(zhí)行過程(續(xù))2、集成測(cè)試過程中的兩個(gè)重要里程碑在集成測(cè)試過程中的兩個(gè)重要的里程碑是功能凍結(jié)和代碼凍結(jié)的確定。這兩個(gè)里程碑界定出回歸測(cè)試期的起止界限。功能凍結(jié)(Function/FeatureFreeze)——經(jīng)過測(cè)試,符合設(shè)計(jì)要求,確認(rèn)系統(tǒng)功能和其他特性均不再做任何改變。代碼凍結(jié)(CodeFreeze)——理論上,在無錯(cuò)誤時(shí)凍結(jié)程序代碼,但實(shí)際上,代碼凍結(jié)只標(biāo)志系統(tǒng)的當(dāng)前版本的質(zhì)量已達(dá)到預(yù)期的要求,凍結(jié)程序的源代碼,不再對(duì)其做任何修改。這個(gè)里程碑是設(shè)置在軟件通過最終回歸測(cè)試之后。1.6軟件質(zhì)量保證概要1.6.1軟件質(zhì)量管理1.6.2軟件能力成熟度模型1.6.3ISO9000標(biāo)準(zhǔn)簡(jiǎn)介Return1.6.1軟件質(zhì)量管理1、質(zhì)量與質(zhì)量管理的概念質(zhì)量:是“反映實(shí)體滿足明確和隱含需要的能力和特性綜合”。因此,質(zhì)量是一種需要,“是一組固有特性滿足要求的程度”。質(zhì)量管理:質(zhì)量管理是指以組織為質(zhì)量中心、企業(yè)全員參與為基礎(chǔ),為追求客戶滿意和組織所有受益者滿意而建立和形成的一整套質(zhì)量方針、目標(biāo)和體系。質(zhì)量管理通過質(zhì)量策劃設(shè)定組織的質(zhì)量目標(biāo),并規(guī)定必要的過程和相關(guān)資源;通過質(zhì)量控制監(jiān)視內(nèi)部質(zhì)量過程,排除質(zhì)量控制過程中可能存在的缺陷隱患;通過質(zhì)量改進(jìn)提高內(nèi)部的質(zhì)量管理能力,改善組織內(nèi)部的質(zhì)量過程;通過質(zhì)量保證提供足夠的信任證據(jù),表明組織有能力滿足客戶的質(zhì)量要求。軟件質(zhì)量管理(續(xù))質(zhì)量管理體系:它是質(zhì)量管理的運(yùn)作實(shí)體,由組織結(jié)構(gòu)、程序、過程、資源4個(gè)基本部分組成。質(zhì)量策劃:它是“確定質(zhì)量以及采用質(zhì)量管理體系要素和要求的活動(dòng)”,包括產(chǎn)品策劃、質(zhì)量管理體系管理和運(yùn)作策劃、編制質(zhì)量計(jì)劃。質(zhì)量控制:為達(dá)到質(zhì)量要求所采取的作業(yè)技術(shù)和活動(dòng)。質(zhì)量控制的對(duì)象是過程。

質(zhì)量保證:是為了提供足夠的信任證據(jù),證明組織有關(guān)的各類實(shí)體有能力滿足質(zhì)量要求所實(shí)施并在必要時(shí)進(jìn)行證實(shí)的有計(jì)劃、有系統(tǒng)的活動(dòng)。質(zhì)量改進(jìn):是為了向組織的所有受益者提供更多的收益所采用的提高質(zhì)量過程和效率的各種措施。軟件質(zhì)量管理(續(xù))質(zhì)量管理的發(fā)展階段(1)產(chǎn)品質(zhì)量檢驗(yàn)階段:這個(gè)時(shí)期特征是對(duì)產(chǎn)品的質(zhì)量進(jìn)行檢驗(yàn)。產(chǎn)品質(zhì)量的檢驗(yàn)只是一種事后的檢查,不能預(yù)防不合格品的產(chǎn)生。(2)統(tǒng)計(jì)質(zhì)量管理階段:它是運(yùn)用概率論和數(shù)理統(tǒng)計(jì)的原理,提出控制生產(chǎn)過程,預(yù)防不合格產(chǎn)品的思想和方法。即通過小部分樣品測(cè)試,推測(cè)和控制全體產(chǎn)品或工藝過程的質(zhì)量狀況。

(3)全面質(zhì)量管理階段:從以質(zhì)量管理專業(yè)人員為核心進(jìn)行質(zhì)量管理,發(fā)展到管理者推動(dòng)、組織各部門的人員都來進(jìn)行學(xué)習(xí)和實(shí)行質(zhì)量管理。

軟件質(zhì)量管理(續(xù))從質(zhì)量管理理論的發(fā)展歷史可以看出:

——質(zhì)量管理從單純的對(duì)產(chǎn)品質(zhì)量進(jìn)行檢驗(yàn)發(fā)展到對(duì)產(chǎn)品形成過程進(jìn)行控制

——控制方法從靜態(tài)發(fā)展到動(dòng)態(tài)的、持續(xù)的過程改進(jìn)質(zhì)量管理理論發(fā)展到今天:

——其核心思想已表現(xiàn)為對(duì)過程的策劃、控制和過程能力的持續(xù)改進(jìn)

軟件質(zhì)量管理(續(xù))2、軟件質(zhì)量管理內(nèi)容軟件質(zhì)量:是軟件產(chǎn)品的特性可以滿足用戶的功能、性能需求的能力。軟件的質(zhì)量管理:是軟件組織在軟件產(chǎn)品生產(chǎn)中的質(zhì)量策劃、質(zhì)量控制、質(zhì)量保證和質(zhì)量改進(jìn)等等與質(zhì)量有關(guān)的相互協(xié)調(diào)的活動(dòng)。軟件質(zhì)量管理的內(nèi)容包括:(1)軟件質(zhì)量策劃(2)軟件組織的質(zhì)量過程(3)軟件質(zhì)量控制與質(zhì)量保證(4)軟件質(zhì)量的度量和驗(yàn)證(5)軟件質(zhì)量改進(jìn)1.6.2軟件能力成熟度模型軟件能力成熟度模型(CMM,CapabilityMaturityModel):

——是軟件行業(yè)標(biāo)準(zhǔn)模型,用來定義和評(píng)價(jià)軟件企業(yè)開發(fā)過程的成熟度,提供如何做才能夠提高軟件質(zhì)量的指導(dǎo)。CMM的基本原理:

——CMM將軟件組織的過程能力成熟度分為5個(gè)級(jí)別,每一個(gè)級(jí)別定義一組過程能力目標(biāo),并描述要達(dá)到這些目標(biāo)應(yīng)該采取的各種實(shí)踐活動(dòng)。CMM的主要作用:——提供了一個(gè)軟件過程改進(jìn)的框架。根據(jù)CMM模型,軟件開發(fā)者(機(jī)構(gòu)或組織)能夠大幅度的提高按計(jì)劃、高效率、低成本的提交有質(zhì)量保證的軟件產(chǎn)品的能力。軟件能力成熟度模型(續(xù))1、CMM的基本過程概念過程:為達(dá)到目的而執(zhí)行的所有步驟的系列。軟件過程:開發(fā)和維護(hù)軟件及其相關(guān)產(chǎn)品的一組活動(dòng)、方法、實(shí)踐和改革。軟件過程結(jié)構(gòu):對(duì)組織標(biāo)準(zhǔn)軟件過程的一種高級(jí)別描述,它描述組織標(biāo)準(zhǔn)軟件過程內(nèi)部的過程元素之間的順序、接口、內(nèi)部依賴等關(guān)系,以及與外部過程之間的接口和依賴關(guān)系。軟件過程元素:用于描述軟件過程的基本元素,每一個(gè)過程元素包含一組定義的、有限的、封閉的相關(guān)任務(wù)。軟件過程定義:CMM中過程定義的基本概念是定義組織的標(biāo)準(zhǔn)軟件過程。軟件能力成熟度模型(續(xù))2、CMM的5個(gè)分級(jí)標(biāo)準(zhǔn)優(yōu)化級(jí)(5)已管理級(jí)(4)已定義級(jí)(3)可重復(fù)級(jí)(2)初始級(jí)(1)標(biāo)準(zhǔn)一致的過程不斷改進(jìn)過程可預(yù)測(cè)的過程有紀(jì)律的過程圖1-14軟件過程成熟度的5個(gè)等級(jí)軟件能力成熟度模型(續(xù))CMM的分級(jí)結(jié)構(gòu)和其主要特征:初始級(jí):其特點(diǎn)是軟件過程無秩序,有時(shí)甚至是混亂的??芍貜?fù)級(jí):已建立了基本的項(xiàng)目管理過程,可用于對(duì)成本、進(jìn)度和功能特性進(jìn)行跟蹤。已定義級(jí):用于管理的、工程的軟件過程均已實(shí)現(xiàn)文檔化、標(biāo)準(zhǔn)化,并形成了整個(gè)軟件組織的標(biāo)準(zhǔn)軟件過程。管理級(jí):軟件過程和產(chǎn)品質(zhì)量有詳細(xì)的度量標(biāo)準(zhǔn),軟件過程和產(chǎn)品質(zhì)量得到了定量的認(rèn)證和控制。優(yōu)化級(jí):通過對(duì)來自過程、新概念和新技術(shù)等方面各種有用信息的定量分析,能夠不斷地、持續(xù)性地對(duì)過程進(jìn)行改進(jìn)。軟件能力成熟度模型(續(xù))除第一級(jí)外,CMM的每一級(jí)是按照完全相同的內(nèi)部結(jié)構(gòu)構(gòu)成的。成熟度等級(jí)為頂層,不同的成熟度等級(jí)反映了軟件組織的軟件過程能力和該組織可能實(shí)現(xiàn)預(yù)期的程度。在每個(gè)成熟度級(jí)別中(第1級(jí)除外),包含了實(shí)現(xiàn)這一級(jí)目標(biāo)的若干關(guān)鍵過程域(KPA)。每一級(jí)的每個(gè)關(guān)鍵過程域進(jìn)一步包含若干關(guān)鍵實(shí)踐(KeyPractice,KP)。無論哪一個(gè)KPA,其實(shí)踐都統(tǒng)一按5個(gè)公共特性進(jìn)行組織,即每一個(gè)KPA都包含5類KP,使整個(gè)軟件過程改進(jìn)工作自上而下形成一種有規(guī)律的步驟。軟件能力成熟度模型(續(xù))關(guān)鍵過程域:是指一系列相互關(guān)聯(lián)的操作活動(dòng),這些活動(dòng)反映了一個(gè)軟件組織改進(jìn)軟件過程時(shí)必須集中力量改進(jìn)的幾個(gè)方面。目標(biāo):是指某個(gè)關(guān)鍵過程域中的關(guān)鍵實(shí)踐,它表示每一個(gè)關(guān)鍵過程域的范圍、邊界和意圖。公共特性:為了完成關(guān)鍵過程域中的實(shí)踐活動(dòng),CMM將其活動(dòng)分為具有公共特性的5個(gè)部分,包括執(zhí)行約定、執(zhí)行能力、實(shí)施活動(dòng)、度量和分析以及驗(yàn)收實(shí)施。這些部分的特性有效地指定了一個(gè)關(guān)鍵區(qū)域的實(shí)現(xiàn)范圍、結(jié)構(gòu)要求和實(shí)施內(nèi)容。關(guān)鍵實(shí)踐:關(guān)鍵實(shí)踐就是一些主要實(shí)踐活動(dòng)。每個(gè)關(guān)鍵過程域最終由關(guān)鍵實(shí)踐所組成,通過實(shí)現(xiàn)這些關(guān)鍵實(shí)踐來達(dá)到關(guān)鍵過程域的目標(biāo)。1.6.3ISO9000標(biāo)準(zhǔn)簡(jiǎn)介ISO9000標(biāo)準(zhǔn)——是為制造行業(yè)制定的質(zhì)量管理和質(zhì)量評(píng)判的一系列標(biāo)準(zhǔn)

——定義了一套基本達(dá)標(biāo)的做法,有助于企業(yè)能夠一致地交付符合客戶質(zhì)量要求的產(chǎn)品(或服務(wù))ISO9000標(biāo)準(zhǔn)的目標(biāo)——在于開發(fā)過程,而不是產(chǎn)品——關(guān)心的是進(jìn)行工作的組織方式,而不是工作成果ISO9000只決定過程的要求是什么,而不管如何達(dá)到。即:ISO9000指出要做什么,但不指出怎樣做。ISO9000標(biāo)準(zhǔn)簡(jiǎn)介(續(xù))1、ISO9000標(biāo)準(zhǔn)的構(gòu)成2000版的ISO9000系列標(biāo)準(zhǔn)主要由下列標(biāo)準(zhǔn)構(gòu)成:ISO9000:2000《質(zhì)量管理體系:基礎(chǔ)和術(shù)語(yǔ)》ISO9000:2000《質(zhì)量管理體系:要求》ISO9000:2000《質(zhì)量管理體系:業(yè)績(jī)改進(jìn)指南》2、ISO9000標(biāo)準(zhǔn)的要求3、ISO9000質(zhì)量管理的原則1.7軟件測(cè)試職業(yè)1.7.1對(duì)軟件測(cè)試的誤解1.7.2軟件測(cè)試職業(yè)和職位1.7.3軟件測(cè)試職業(yè)素質(zhì)1.7.4軟件測(cè)試人才的現(xiàn)狀Return1.7.1對(duì)軟件測(cè)試的誤解如果發(fā)布的軟件有質(zhì)量問題,那是軟件測(cè)試人員的錯(cuò)。軟件測(cè)試技術(shù)要求不高,至少比編程容易多了。軟件測(cè)試隨便找一個(gè)能力差的人就能做。有時(shí)間就多測(cè)試一些,來不及就少測(cè)試一些。軟件測(cè)試是測(cè)試人員的事,與開發(fā)人員無關(guān)。設(shè)計(jì)-實(shí)現(xiàn)-測(cè)試,軟件測(cè)試事開發(fā)后期的一個(gè)階段。1.7.2軟件測(cè)試職業(yè)和職位軟件測(cè)試員

軟件測(cè)試工程師/程序分析員

高級(jí)軟件測(cè)試工程師/程序分析員軟件測(cè)試組負(fù)責(zé)人

軟件測(cè)試/編程負(fù)責(zé)人

軟件測(cè)試/質(zhì)量保證/項(xiàng)目經(jīng)理

1.7.3軟件測(cè)試職業(yè)素質(zhì)軟件測(cè)試員的目標(biāo):

——發(fā)現(xiàn)潛在的軟件缺陷軟件測(cè)試員應(yīng)具備的素質(zhì):①具有探索精神②具有創(chuàng)造性③堅(jiān)持不懈精神④故障排除專家⑤判斷準(zhǔn)確⑥追求完美⑦溝通能力1.7.4軟件測(cè)試人才的現(xiàn)狀1、軟件測(cè)試人員的合理比例在軟件產(chǎn)業(yè)發(fā)達(dá)的國(guó)家:軟件測(cè)試在人員配備和資金投入方面占據(jù)相當(dāng)?shù)谋戎?。微軟為打造Windows2000,1700多個(gè)開發(fā)人員,以及3200個(gè)測(cè)試人員,開發(fā)和測(cè)試人員之比約為三比五。HP公司的測(cè)試人員和開發(fā)人員的比例為一比一,這是很多先進(jìn)軟件企業(yè)通常的人員配比。在國(guó)內(nèi):企業(yè)往往忽視軟件測(cè)試,很多企業(yè)都沒有軟件測(cè)試部門,甚至不設(shè)置軟件測(cè)試的崗位,造成產(chǎn)品質(zhì)量得不到保證。測(cè)試人員大都不到開發(fā)人員的5%,隨著產(chǎn)業(yè)和企業(yè)的發(fā)展,企業(yè)必然需要大量的測(cè)試人員。軟件測(cè)試人才的現(xiàn)狀(續(xù))2、軟件測(cè)試人才緊缺軟件測(cè)試人才需求快速增長(zhǎng),體現(xiàn)在:(1)中國(guó)軟件產(chǎn)業(yè)正在快速增長(zhǎng),需要大量軟件相關(guān)人才;(2)軟件企業(yè)的發(fā)展要求測(cè)試人才達(dá)到一個(gè)合適的比例。近一兩年軟件企業(yè)開始認(rèn)識(shí)到軟件測(cè)試對(duì)于提高軟件質(zhì)量的重要性,開始重視軟件測(cè)試,但由于歷史的原因,找不到合適的軟件測(cè)試人員。軟件測(cè)試人才的現(xiàn)狀(續(xù))3、三個(gè)招聘案慧谷-博為峰軟件測(cè)試工作室曾經(jīng)接受企業(yè)委托,招聘二十名軟件測(cè)試工程師,結(jié)果收到的簡(jiǎn)歷不到十份,合格的只有三份,最后錄用的只有一人;而招聘一名程序員就會(huì)收到六十多份簡(jiǎn)歷。上海一位軟件企業(yè)的副總裁說,他們?cè)衅?名基于Unix操作系統(tǒng)的測(cè)試工程師,但是半年多招不到合適的人。微軟亞洲工程院院長(zhǎng)張宏江博士最近告訴媒體:“過去兩三個(gè)月,我最主要的精力都花在雇人上。遺憾的是,1萬多名應(yīng)聘者中,居然找不到足夠合適的人。”

微軟最緊缺的人才包括軟件測(cè)試人員、軟件項(xiàng)目管理員、軟件架構(gòu)師,1萬多名應(yīng)聘者中最后合格的只有50多人。作業(yè)布置P36習(xí)題與思考第2題、第3題、第4題

軟件測(cè)試策略與過程2.1軟件測(cè)試的復(fù)雜性分析1、無法對(duì)程序進(jìn)行完全測(cè)試(1)測(cè)試所需要的輸入量太大(2)測(cè)試的輸出結(jié)果太多(3)軟件實(shí)現(xiàn)的途徑太多(4)軟件規(guī)格說明沒有一個(gè)客觀標(biāo)準(zhǔn)2、測(cè)試無法顯示潛在的軟件缺陷和故障

——通過軟件測(cè)試只能報(bào)告軟件已被發(fā)現(xiàn)的缺陷和故障,無法報(bào)告隱藏的軟件故障。3、存在的故障現(xiàn)象與發(fā)現(xiàn)的故障數(shù)量成正比

——結(jié)論:應(yīng)當(dāng)對(duì)故障集中的程序段進(jìn)行重點(diǎn)測(cè)試Return軟件測(cè)試的復(fù)雜性分析(續(xù))

4、不能修復(fù)所有的軟件故障——原因:沒有足夠的進(jìn)行修復(fù);修復(fù)的風(fēng)險(xiǎn)較大;不值得修復(fù);可不算做故障的一些缺陷;“殺蟲劑現(xiàn)象”。

——結(jié)論:關(guān)鍵是要進(jìn)行正確的判斷、合理的取舍,根據(jù)風(fēng)險(xiǎn)分析決定哪些故障必須修復(fù),哪些故障可以不修復(fù)。

5、軟件測(cè)試的代價(jià)

——工作原則:就是如何將無邊無際的可能性減小到一個(gè)可以控制的范圍,以及如何針對(duì)軟件風(fēng)險(xiǎn)做出恰當(dāng)選擇,去粗存精,找到最佳的測(cè)試量,使得測(cè)試工作量不多也不少,既能達(dá)到測(cè)試的目的,又能較為經(jīng)濟(jì)。

軟件測(cè)試的復(fù)雜性分析(續(xù))軟件缺陷故障數(shù)量測(cè)試工作量測(cè)試中測(cè)試后測(cè)試費(fèi)用遺漏缺陷數(shù)目?jī)?yōu)化測(cè)試量圖2-1測(cè)試工作量和軟件缺陷數(shù)量之間的關(guān)系2.2軟件測(cè)試方法與策略2.2.1靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試2.2.2黑盒測(cè)試與白盒測(cè)試2.2.3軟件測(cè)試過程Return軟件測(cè)試策略什么是軟件測(cè)試策略?——是為軟件工程過程定義的一個(gè)軟件測(cè)試的模板,也就是把特定的測(cè)試用例方法放置進(jìn)去的一系列步驟。軟件測(cè)試策略包含的特征:(1)測(cè)試從模塊層開始,然后擴(kuò)大延伸到整個(gè)基于計(jì)算機(jī)的系統(tǒng)集合中。(2)不同的測(cè)試技術(shù)適用于不同的時(shí)間點(diǎn)。(3)測(cè)試是由軟件的開發(fā)人員和(對(duì)于大型系統(tǒng)而言)獨(dú)立的測(cè)試組來管理的。(4)測(cè)試和調(diào)試是不同的活動(dòng),但是調(diào)試必須能夠適應(yīng)任何的測(cè)試策略。軟件測(cè)試充分性準(zhǔn)則對(duì)任何軟件都存在有限的充分測(cè)試集合。如果一個(gè)軟件系統(tǒng)在一個(gè)測(cè)試數(shù)據(jù)集合上的測(cè)試是充分的,那么再多測(cè)試一些數(shù)據(jù)也應(yīng)該是充分的。這一特性稱為單調(diào)性。即使對(duì)軟件所有成分都進(jìn)行了充分的測(cè)試,也并不表明整個(gè)軟件的測(cè)試已經(jīng)充分了。這一特性稱為非復(fù)合性。即使對(duì)軟件系統(tǒng)整體的測(cè)試是充分的,也并不意味軟件系統(tǒng)中各個(gè)成分都已經(jīng)充分地得到了測(cè)試。這個(gè)特性稱為非分解性。軟件測(cè)試的充分性應(yīng)該與軟件的需求和軟件的實(shí)現(xiàn)都相關(guān)。軟件越復(fù)雜,需要的測(cè)試數(shù)據(jù)就越多。這一特性稱為復(fù)雜性。測(cè)試得越多,進(jìn)一步測(cè)試所能得到的充分性增長(zhǎng)就越少。這一特性稱為回報(bào)遞減率。2.2.1靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試1、靜態(tài)測(cè)試靜態(tài)測(cè)試不實(shí)際運(yùn)行軟件,主要是對(duì)軟件的編程格式、結(jié)構(gòu)等方面進(jìn)行評(píng)估。靜態(tài)測(cè)試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量等。它可以由人工進(jìn)行,也可以借助軟件工具自動(dòng)進(jìn)行。靜態(tài)測(cè)試方法也可利用計(jì)算機(jī)作為對(duì)被測(cè)程序進(jìn)行特性分析的工具,但與人工測(cè)試方式有著根本區(qū)別。另一方面,因它并不真正運(yùn)行被測(cè)程序,只進(jìn)行特性分析,這又與動(dòng)態(tài)方法不同。所以,靜態(tài)方法常常稱為“分析”,靜態(tài)測(cè)試是對(duì)被測(cè)程序進(jìn)行特性分析方法的總稱。靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))

代碼檢查代碼檢查包括代碼走查、桌面檢查、代碼審查等,主要檢查代碼和設(shè)計(jì)的一致性,代碼對(duì)標(biāo)準(zhǔn)的遵循、可讀性,代碼的邏輯表達(dá)的正確性,代碼結(jié)構(gòu)的合理性等方面。代碼檢查的具體內(nèi)容:變量檢查、命名和類型審查、程序邏輯審查、程序語(yǔ)法檢查和程序結(jié)構(gòu)檢查等。代碼檢查的優(yōu)點(diǎn):在實(shí)際使用中,代碼檢查比動(dòng)態(tài)測(cè)試更有效率,能快速找到缺陷,發(fā)現(xiàn)30%~70%的邏輯設(shè)計(jì)和編碼缺陷;代碼檢查看到的是問題本身而非征兆。代碼檢查的缺點(diǎn):非常耗費(fèi)時(shí)間,而且代碼檢查需要知識(shí)和經(jīng)驗(yàn)的積累。靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))

靜態(tài)結(jié)構(gòu)分析靜態(tài)結(jié)構(gòu)分析主要是以圖形的方式表現(xiàn)程序的內(nèi)部結(jié)構(gòu)。例如函數(shù)調(diào)用關(guān)系圖、函數(shù)內(nèi)部控制流圖。其中:

——函數(shù)調(diào)用關(guān)系圖以直觀的圖形方式描述一個(gè)應(yīng)用程序中各個(gè)函數(shù)的調(diào)用和被調(diào)用關(guān)系;——控制流圖顯示一個(gè)函數(shù)的邏輯結(jié)構(gòu),由許多節(jié)點(diǎn)組成,一個(gè)節(jié)點(diǎn)代表一條語(yǔ)句或數(shù)條語(yǔ)句,連接結(jié)點(diǎn)的叫邊,邊表示節(jié)點(diǎn)間的控制流向。靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))

代碼質(zhì)量度量軟件質(zhì)量包括六個(gè)方面:功能性、可靠性、易用性、效率、可維護(hù)性和可移植性。軟件的質(zhì)量是軟件屬性的各種標(biāo)準(zhǔn)度量的組合。針對(duì)軟件的可維護(hù)性,目前業(yè)界主要存在三種度量參數(shù):Line復(fù)雜度、Halstead復(fù)雜度和McCabe復(fù)雜度。其中Line復(fù)雜度以代碼的行數(shù)作為計(jì)算的基準(zhǔn)。Halstead以程序中使用到的運(yùn)算符與運(yùn)算元數(shù)量作為計(jì)數(shù)目標(biāo)(直接測(cè)量指標(biāo)),然后可以據(jù)以計(jì)算出程序容量、工作量等。McCabe復(fù)雜度一般稱為圈復(fù)雜度,它將軟件的流程圖轉(zhuǎn)化為有向圖,然后以圖論來衡量軟件的質(zhì)量。靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))靜態(tài)測(cè)試階段的任務(wù):(1)檢查算法的邏輯正確性。(2)檢查模塊接口的正確性。(3)檢查輸入?yún)?shù)是否有合法性檢查。(4)檢查調(diào)用其他模塊的接口是否正確。(5)檢查是否設(shè)置了適當(dāng)?shù)某鲥e(cuò)處理。(6)檢查表達(dá)式、語(yǔ)句是否正確,是否含有二義性。(7)檢查常量或全局變量使用是否正確。(8)檢查標(biāo)識(shí)符的使用是否規(guī)范、一致。(9)檢查程序風(fēng)格的一致性、規(guī)范性。(10)檢查代碼是否可以優(yōu)化,算法效率是否最高。(11)檢查代碼注釋是否完整,是否正確反映了代碼的功能。靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))靜態(tài)測(cè)試可以完成以下工作:(1)發(fā)現(xiàn)下列程序的錯(cuò)誤:錯(cuò)用局部變量和全局變量;未定義的變量、不匹配的參數(shù);不適當(dāng)?shù)难h(huán)嵌套或分支嵌套、死循環(huán)、不允許的遞歸;調(diào)用不存在的子程序,遺漏標(biāo)號(hào)或代碼。(2)找出以下問題的根源:從未使用過的變量;不會(huì)執(zhí)行到的代碼、從未使用過的標(biāo)號(hào);潛在的死循環(huán)。(3)提供程序缺陷的間接信息:所用變量和常量的交叉應(yīng)用表;是否違背編碼規(guī)則;標(biāo)識(shí)符的使用方法和過程的調(diào)用層次。(4)為進(jìn)一步查找做好準(zhǔn)備。(5)選擇測(cè)試用例。(6)進(jìn)行符號(hào)測(cè)試。靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))2、動(dòng)態(tài)測(cè)試動(dòng)態(tài)方法的主要特征是:——計(jì)算機(jī)必須真正運(yùn)行被測(cè)試的程序,通過輸入測(cè)試用例,對(duì)其運(yùn)行情況即輸入與輸出的對(duì)應(yīng)關(guān)系進(jìn)行分析,以達(dá)到檢測(cè)的目的。動(dòng)態(tài)測(cè)試包括:(1)功能確認(rèn)與接口測(cè)試(2)覆蓋率分析(3)性能分析(4)內(nèi)存分析2.2.2黑盒測(cè)試和白盒測(cè)試若測(cè)試規(guī)劃是基于產(chǎn)品的功能,目的是檢查程序各個(gè)功能是否能夠?qū)崿F(xiàn),并檢查其中的功能錯(cuò)誤,則這種測(cè)試方法稱為黑盒測(cè)試(Black-boxTesting)方法。

——黑盒測(cè)試又稱為功能測(cè)試、數(shù)據(jù)驅(qū)動(dòng)測(cè)試和基于規(guī)格說明的測(cè)試。它是一種從用戶觀點(diǎn)出發(fā)的測(cè)試,一般被用來確認(rèn)軟件功能的正確性和可操作性。若測(cè)試規(guī)劃基于產(chǎn)品的內(nèi)部結(jié)構(gòu)進(jìn)行測(cè)試,檢查內(nèi)部操作是否按規(guī)定執(zhí)行,軟件各個(gè)部分功能是否得到充分使用,則這種測(cè)試方法稱為白盒測(cè)試(White-boxTesting)方法?!缀袦y(cè)試又稱為結(jié)構(gòu)測(cè)試、邏輯驅(qū)動(dòng)測(cè)試或基于程序的測(cè)試,一般用來分析程序的內(nèi)部結(jié)構(gòu)。

黑盒測(cè)試和白盒測(cè)試(續(xù))白盒測(cè)試黑盒測(cè)試兩種測(cè)試方法從完全不同的角度出發(fā),反映了測(cè)試思路的兩方面情況,適用于不同的測(cè)試階段。黑盒測(cè)試和白盒測(cè)試(續(xù))1、黑盒測(cè)試黑盒測(cè)試的基本觀點(diǎn)是:任何程序都可以看作是從輸入定義域映射到輸出值域的函數(shù)過程,被測(cè)程序被認(rèn)為是一個(gè)打不開的黑盒子,黑盒中的內(nèi)容(實(shí)現(xiàn)過程)完全不知道,只明確要做到什么。黑盒測(cè)試主要根據(jù)規(guī)格說明書設(shè)計(jì)測(cè)試用例,并不涉及程序內(nèi)部構(gòu)造和內(nèi)部特性,只依靠被測(cè)程序輸入和輸出之間的關(guān)系或程序的功能設(shè)計(jì)測(cè)試用例。黑盒測(cè)試的特點(diǎn):(1)黑盒測(cè)試與軟件的具體實(shí)現(xiàn)過程無關(guān),在軟件實(shí)現(xiàn)的過程發(fā)生變化時(shí),測(cè)試用例仍然可以使用。(2)黑盒測(cè)試用例的設(shè)計(jì)可以和軟件實(shí)現(xiàn)同時(shí)進(jìn)行,這樣能夠壓縮總的開發(fā)時(shí)間。黑盒測(cè)試和白盒測(cè)試(續(xù))輸入輸出黑盒測(cè)試是在程序接口進(jìn)行測(cè)試,它只是檢查程序功能是否按照規(guī)格說明書的規(guī)定正常使用。也被稱為用戶測(cè)試。黑盒測(cè)試和白盒測(cè)試(續(xù))黑盒測(cè)試主要是為了發(fā)現(xiàn)以下幾類錯(cuò)誤:是否有不正確或遺漏了的功能?在接口上,輸入能否正確地接受?能否輸出正確的結(jié)果?是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息訪問錯(cuò)誤?性能上是否能夠滿足要求?是否有初始化或終止性錯(cuò)誤?黑盒測(cè)試的難點(diǎn):在哪個(gè)層次上進(jìn)行測(cè)試?黑盒測(cè)試的具體技術(shù)方法:邊界值分析法等價(jià)類劃分法因果圖法決策表法黑盒測(cè)試和白盒測(cè)試(續(xù))2、白盒測(cè)試白盒測(cè)試將被測(cè)程序看作一個(gè)打開的盒子,測(cè)試者能夠看到被測(cè)源程序,可以分析被測(cè)程序的內(nèi)部結(jié)構(gòu),此時(shí)測(cè)試的焦點(diǎn)集中在根據(jù)其內(nèi)部結(jié)構(gòu)設(shè)計(jì)測(cè)試用例。白盒測(cè)試要求是對(duì)某些程序的結(jié)構(gòu)特性做到一定程度的覆蓋,或者說這種測(cè)試是“基于覆蓋率的測(cè)試”。通常的程序結(jié)構(gòu)覆蓋有:語(yǔ)句覆蓋判定覆蓋條件覆蓋判定/條件覆蓋路徑覆蓋黑盒測(cè)試和白盒測(cè)試(續(xù))白盒測(cè)試需要完全了解程序結(jié)構(gòu)和處理過程,它按照程序內(nèi)部邏輯測(cè)試程序,檢驗(yàn)程序中每條通路是否按預(yù)定要求正確工作。也被稱為程序員測(cè)試。應(yīng)用程序黑盒測(cè)試和白盒測(cè)試(續(xù))?X=2

y=2xY=4X=2Y=4未知等式與已知等式黑盒白盒3、黑盒測(cè)試法和白盒測(cè)試法的比較黑盒測(cè)試和白盒測(cè)試(續(xù))黑盒測(cè)試:

——以用戶的觀點(diǎn),從輸入數(shù)據(jù)與輸出數(shù)據(jù)的對(duì)應(yīng)關(guān)系,即根據(jù)程序外部特性進(jìn)行測(cè)試,而不考慮內(nèi)部結(jié)構(gòu)及工作情況。

——黑盒測(cè)試技術(shù)注重于軟件的信息域(范圍),通過劃分程序的輸入和輸出域來確定測(cè)試用例。

——若外部特性本身存在問題或規(guī)格說明的規(guī)定有誤,則應(yīng)用黑盒測(cè)試方法是不能發(fā)現(xiàn)問題的。白盒測(cè)試:

——只根據(jù)程序的內(nèi)部結(jié)構(gòu)進(jìn)行測(cè)試。

——測(cè)試用例的設(shè)計(jì)要保證測(cè)試時(shí)程序的所有語(yǔ)句至少執(zhí)行一次,而且要檢查所有的邏輯條件。

——如果程序的結(jié)構(gòu)本身有問題,比如說程序邏輯有錯(cuò)誤或者有遺漏,那也是無法發(fā)現(xiàn)的。黑盒測(cè)試和白盒測(cè)試(續(xù))項(xiàng)目黑盒測(cè)試法白盒測(cè)試法規(guī)劃方面功能的測(cè)試結(jié)構(gòu)的測(cè)試優(yōu)點(diǎn)方面能確保從用戶的角度出發(fā)進(jìn)行測(cè)試能對(duì)程序內(nèi)部的特定部位進(jìn)行覆蓋測(cè)試缺點(diǎn)方面無法測(cè)試程序內(nèi)部特定部位;當(dāng)規(guī)格說明有誤,則不能發(fā)現(xiàn)問題無法檢查程序的外部特性;無法對(duì)未實(shí)現(xiàn)規(guī)格說明的程序內(nèi)部欠缺部分進(jìn)行測(cè)試應(yīng)用范圍邊界分析法等價(jià)類劃分法決策表測(cè)試語(yǔ)句覆蓋,判定覆蓋,條件覆蓋,判定/條件覆蓋,路徑覆蓋,循環(huán)覆蓋,模塊接口測(cè)試2.2.3軟件測(cè)試過程單元測(cè)試單元測(cè)試單元測(cè)試集成測(cè)試集成測(cè)試確認(rèn)測(cè)試系統(tǒng)測(cè)試*這三個(gè)測(cè)試可能交叉與前后互換被測(cè)模塊被測(cè)模塊被測(cè)模塊設(shè)計(jì)信息單元軟件需求其它元素用戶信息其它元素*…*驗(yàn)收測(cè)試*交付用戶…圖2-2軟件測(cè)試的過程流程軟件測(cè)試過程(續(xù))單元測(cè)試:針對(duì)每個(gè)單元的測(cè)試,

以確保每個(gè)模塊能正常工作為目標(biāo)。集成測(cè)試:對(duì)已測(cè)試過的模塊進(jìn)行組裝,進(jìn)行集成測(cè)試。目的在于檢驗(yàn)與軟件設(shè)計(jì)相關(guān)的程序結(jié)構(gòu)問題。確認(rèn)(有效性)測(cè)試:是檢驗(yàn)所開發(fā)的軟件能否滿足所有功能和性能需求的最后手段。系統(tǒng)測(cè)試:檢驗(yàn)軟件產(chǎn)品能否與系統(tǒng)的其他部分(比如,硬件、數(shù)據(jù)庫(kù)及操作人員)協(xié)調(diào)工作。驗(yàn)收(用戶)測(cè)試:檢驗(yàn)軟件產(chǎn)品質(zhì)量的最后一道工序。主要突出用戶的作用,同時(shí)軟件開發(fā)人員也應(yīng)有一定程度的參與。一個(gè)實(shí)用軟件測(cè)試過程一種簡(jiǎn)單實(shí)用的軟件測(cè)試過程模型POCERM。測(cè)試過程中必需的基本測(cè)試活動(dòng)及其產(chǎn)生的結(jié)果:擬定軟件測(cè)試計(jì)劃(Plans)編制軟件測(cè)試大綱(Outlines)設(shè)計(jì)和生成測(cè)試用例(testCasegeneration)實(shí)施測(cè)試(Execution)生成軟件測(cè)試報(bào)告(softwaretestingReports)軟件問題報(bào)告SPR(SoftwareProblemReport)測(cè)試結(jié)果報(bào)告(testresultReports)一個(gè)實(shí)用軟件測(cè)試過程(續(xù))基本特性:(1)計(jì)劃性:任務(wù)人員設(shè)備時(shí)間相關(guān)...(2)平行性:開發(fā)編碼||測(cè)試再測(cè)試(3)完整性:計(jì)劃+大綱+用例+SPRs+...(4)重用性:測(cè)試再測(cè)試回歸測(cè)試升級(jí)多平臺(tái)…(5)可重復(fù)性:SPRs用例大綱再現(xiàn)Bugs(6)周期性:testcycles,regression,update(7)可管理性:wellstructuredandorganizedQEgroup+wellplannedandpreparedtask測(cè)試階段測(cè)試過程的三個(gè)主要的測(cè)試活動(dòng)(計(jì)劃、準(zhǔn)備和實(shí)施)可被分成五個(gè)階段:Theplanningandcontrolphase-計(jì)劃和控制階段Thepreparationphase-準(zhǔn)備階段Thespecificationphase-規(guī)范階段Theexecutionphase-實(shí)施執(zhí)行階段Thecompletionphase-完成(收尾)階段測(cè)試的五個(gè)階段Plan&ControlCSEPP&CPreparationSpecificationExecutionCompletion計(jì)劃與控制階段它是整個(gè)測(cè)試過程中最重要的階段,為實(shí)現(xiàn)可管理且高質(zhì)量的測(cè)試過程提供基礎(chǔ)。本階段的主要工作內(nèi)容:(1)擬定測(cè)試計(jì)劃(2)論證那些使開發(fā)過程難于管理和控制的因素(3)明確軟件產(chǎn)品的最重要部分(風(fēng)險(xiǎn)評(píng)估)準(zhǔn)備階段開始本階段的前提條件:—完成測(cè)試計(jì)劃的擬定?!枨笠?guī)格說明書(第一版)的確定。本階段的主要工作內(nèi)容:—對(duì)需求規(guī)格說明書的仔細(xì)研究?!獙⒁獪y(cè)試的產(chǎn)品分解成可獨(dú)立測(cè)試的單元?!獮槊總€(gè)測(cè)試單元確定采用的測(cè)試技術(shù)。—為測(cè)試的下一個(gè)階段及其活動(dòng)制定計(jì)劃。規(guī)范階段本階段的主要工作內(nèi)容:—編寫測(cè)試大綱/測(cè)試用例,測(cè)試腳本—搭建測(cè)試環(huán)境(測(cè)試數(shù)據(jù)庫(kù),軟件環(huán)境,硬件環(huán)境)測(cè)試用例描述的內(nèi)容:—輸入—執(zhí)行過程—預(yù)期輸出實(shí)施執(zhí)行階段根據(jù)測(cè)試大綱/測(cè)試用例/測(cè)試腳本進(jìn)行測(cè)試(1)根據(jù)測(cè)試大綱/測(cè)試用例進(jìn)行測(cè)試,找出預(yù)期的測(cè)試結(jié)果和實(shí)際測(cè)試結(jié)果之間的差異(2)填寫軟件問題報(bào)告(3)確定造成這些差異的原因:產(chǎn)品有缺陷?規(guī)格說明書有缺陷?測(cè)試環(huán)境和測(cè)試下屬部件有缺陷?測(cè)試用例設(shè)計(jì)不合理?測(cè)試報(bào)告——與管理層進(jìn)行溝通的方式已測(cè)試部分占產(chǎn)品多大的百分比?還有什么工作要做?找到了多少個(gè)問題或不足?測(cè)試的發(fā)展趨勢(shì)如何?測(cè)試可以結(jié)束了嗎?完成階段本階段的主要工作內(nèi)容:—選擇和保留測(cè)試大綱、測(cè)試用例、測(cè)試結(jié)果、測(cè)試工具?!峤蛔罱K報(bào)告。收尾工作的意義和重要性:—產(chǎn)品如果升級(jí)或功能變更,或維護(hù),只要對(duì)保留下來的相關(guān)測(cè)試數(shù)只要作相應(yīng)調(diào)整,就能夠進(jìn)行新的測(cè)試。2.3單元測(cè)試2.3.1單元測(cè)試的主要任務(wù)2.3.2單元測(cè)試的執(zhí)行過程Return2.3.1單元測(cè)試的主要任務(wù)單元測(cè)試針對(duì)每個(gè)程序的模塊,主要測(cè)試5個(gè)方面的問題:——模塊接口、局部數(shù)據(jù)結(jié)構(gòu)、邊界條件、獨(dú)立的路徑和錯(cuò)誤處理。模塊模塊接口局部數(shù)據(jù)結(jié)構(gòu)路徑測(cè)試出錯(cuò)處理邊界條件單元測(cè)試的主要任務(wù)(續(xù))模塊接口這是對(duì)模塊接口進(jìn)行的測(cè)試,檢查進(jìn)出程序單元的數(shù)據(jù)流是否正確。模塊接口測(cè)試必須在任何其它測(cè)試之前進(jìn)行。模塊接口測(cè)試至少需要如下的測(cè)試項(xiàng)目:(1)調(diào)用所測(cè)模塊時(shí)的輸入?yún)?shù)與模塊的形式參數(shù)在個(gè)數(shù)、屬性、順序上是否匹配;(2)所測(cè)模塊調(diào)用子模塊時(shí),它輸入給子模塊的參數(shù)與子模塊中的形式參數(shù)在個(gè)數(shù)、屬性、順序上是否匹配;(3)是否修改了只做輸入用的形式參數(shù);(4)調(diào)用標(biāo)準(zhǔn)函數(shù)的參數(shù)在個(gè)數(shù)、屬性、順序上是否正確;(5)全局變量的定義在各模塊中是否一致。單元測(cè)試的主要任務(wù)(續(xù))局部數(shù)據(jù)結(jié)構(gòu)在模塊工作過程中,必須測(cè)試模塊內(nèi)部的數(shù)據(jù)能否保持完整性,包括內(nèi)部數(shù)據(jù)的內(nèi)容、形式及相互關(guān)系不發(fā)生錯(cuò)誤。對(duì)于局部數(shù)據(jù)結(jié)構(gòu),應(yīng)該在單元測(cè)試中注意發(fā)現(xiàn)以下幾類錯(cuò)誤:(1)不正確的或不一致的類型說明。(2)錯(cuò)誤的初始化或默認(rèn)值。(3)錯(cuò)誤的變量名,如拼寫錯(cuò)誤或書寫錯(cuò)誤。(4)下溢、上溢或者地址錯(cuò)誤。單元測(cè)試的主要任務(wù)(續(xù))路徑測(cè)試在單元測(cè)試中,最主要的測(cè)試是針對(duì)路徑的測(cè)試。測(cè)試用例必須能夠發(fā)現(xiàn)由于計(jì)算錯(cuò)誤、不正確的判定或不正常的控制流而產(chǎn)生的錯(cuò)誤。常見的錯(cuò)誤有:誤解的或不正確的算術(shù)優(yōu)先級(jí);混合模式的運(yùn)算;錯(cuò)誤的初始化;精確度不夠精確;表達(dá)式的不正確符號(hào)表示。針對(duì)判定和條件覆蓋,測(cè)試用例還要能夠發(fā)現(xiàn)如下錯(cuò)誤:不同數(shù)據(jù)類型的比較;不正確的邏輯操作或優(yōu)先級(jí);應(yīng)當(dāng)相等的地方由于精確度的錯(cuò)誤而不能相等;不正確的判定或不正確的變量;不正確的或不存在的循環(huán)終止;當(dāng)遇到分支循環(huán)時(shí)不能退出;不適當(dāng)?shù)匦薷难h(huán)變量。單元測(cè)試的主要任務(wù)(續(xù))邊界條件邊界測(cè)試是單元測(cè)試的最后一步,必須采用邊界值分析方法來設(shè)計(jì)測(cè)試用例,認(rèn)真仔細(xì)地測(cè)試為限制數(shù)據(jù)處理而設(shè)置的邊界處,看模塊是否能夠正常工作。一些可能與邊界有關(guān)的數(shù)據(jù)類型如數(shù)值、字符、位置、數(shù)量、尺寸等,還要注意這些邊界的首個(gè)、最后一個(gè)、最大值、最小值、最長(zhǎng)、最短、最高、最低等特征。在邊界條件測(cè)試中,應(yīng)設(shè)計(jì)測(cè)試用例檢查以下情況:(1)在n次循環(huán)的第0次、1次、n次是否有錯(cuò)誤。(2)運(yùn)算或判斷中取最大值、最小值時(shí)是否有錯(cuò)誤。(3)數(shù)據(jù)流、控制流中剛好等于、大于、小于確定的比較值是否出現(xiàn)錯(cuò)誤。單元測(cè)試的主要任務(wù)(續(xù))出錯(cuò)處理測(cè)試出錯(cuò)處理的重點(diǎn)是模塊在工作中發(fā)生了錯(cuò)誤,其中的出錯(cuò)處理設(shè)施是否有效。檢驗(yàn)程序中的出錯(cuò)處理可能面對(duì)的情況有:(1)對(duì)運(yùn)行發(fā)生的錯(cuò)誤描述難以理解。(2)所報(bào)告的錯(cuò)誤與實(shí)際遇到的錯(cuò)誤不一致。(3)出錯(cuò)后,在錯(cuò)誤處理之前就引起系統(tǒng)的干預(yù)。(4)例外條件的處理不正確。(5)提供的錯(cuò)誤信息不足,以至于無法找到錯(cuò)誤的原因。2.3.2單元測(cè)試的執(zhí)行過程何時(shí)進(jìn)行單元測(cè)試?單元測(cè)試常常是和代碼編寫工作同時(shí)進(jìn)行的,在完成了程序編寫、復(fù)查和語(yǔ)法正確性驗(yàn)證后,就應(yīng)進(jìn)行單元測(cè)試用例設(shè)計(jì)。在單元測(cè)試時(shí),如果模塊不是獨(dú)立的程序,需要設(shè)置一些輔助測(cè)試模塊。輔助測(cè)試模塊有兩種:(1)驅(qū)動(dòng)模塊(Drive)用來模擬被測(cè)試模塊的上一級(jí)模塊,相當(dāng)于被測(cè)模塊的主程序。它接收數(shù)據(jù),將相關(guān)數(shù)據(jù)傳送給被測(cè)模塊,啟動(dòng)被測(cè)模塊,并打印出相應(yīng)的結(jié)果。(2)樁模塊(Stub)用來模擬被測(cè)模塊工作過程中所調(diào)用的模塊。它們一般只進(jìn)行很少的數(shù)據(jù)處理。驅(qū)動(dòng)模塊和樁模塊都是額外的開銷,雖然在單元測(cè)試中必須編寫,但并不需要作為最終的產(chǎn)品提供給用戶。單元測(cè)試的執(zhí)行過程(續(xù))被測(cè)模塊、驅(qū)動(dòng)模塊和樁模塊共同構(gòu)成了一個(gè)如下圖所示的單元測(cè)試的測(cè)試環(huán)境:測(cè)試用例被測(cè)模塊驅(qū)動(dòng)模塊測(cè)試結(jié)果樁模塊1樁模塊2樁模塊3樁模塊n樁模塊…2.4集成測(cè)試2.4.1非增量式測(cè)試2.4.2增量式測(cè)試2.4.3不同集成測(cè)試方法的比較2.4.4回歸測(cè)試Return2.4.1非增量式測(cè)試非增量式測(cè)試是采用一步到位的方法來構(gòu)造測(cè)試:

——對(duì)所有模塊進(jìn)行個(gè)別的單元測(cè)試后,按照程序結(jié)構(gòu)圖將各模塊連接起來,把連接后的程序當(dāng)作一個(gè)整體進(jìn)行測(cè)試。

實(shí)例采用非增量式測(cè)試方法進(jìn)行集成測(cè)試非增量式測(cè)試的缺點(diǎn):

——當(dāng)一次集成的模塊較多時(shí),非增量式測(cè)試容易出現(xiàn)混亂,因?yàn)闇y(cè)試時(shí)可能發(fā)現(xiàn)了許多故障,為每一個(gè)故障定位和糾正非常困難,并且在修正一個(gè)故障的同時(shí),可能又引入了新的故障,新舊故障混雜,很難判定出錯(cuò)的具體原因和位置。非增量式測(cè)試(續(xù))AS3S4S5d2Cd4Ed5Fd1Bs1d3s2DABCDEFABCDEF(1)程序結(jié)構(gòu)圖(3)集成測(cè)試示意圖(2)單元測(cè)試示意圖2.4.2增量式測(cè)試增量式測(cè)試的集成是逐步實(shí)現(xiàn)的:——逐次將未曾集成測(cè)試的模塊和已經(jīng)集成測(cè)試的模塊(或子系統(tǒng))結(jié)合成程序包,再將這些模塊集成為較大系統(tǒng),在集成的過程中邊連接邊測(cè)試,以發(fā)現(xiàn)連接過程中產(chǎn)生的問題。按照不同的實(shí)施次序,增量式集成測(cè)試又可以分為三種不同的方法:(1)自頂向下增量式測(cè)試(2)自底向上增量式測(cè)試(3)混合增量式測(cè)試自頂向下增量式測(cè)試自頂向下增量式測(cè)試表示逐步集成和逐步測(cè)試是按照結(jié)構(gòu)圖自上而下進(jìn)行的,即模塊集成的順序是首先集成主控模塊(主程序),然后依照控制層次結(jié)構(gòu)向下進(jìn)行集成。從屬于主控模塊的按深度優(yōu)先方式(縱向)或者廣度優(yōu)先方式(橫向)集成到結(jié)構(gòu)中去。深度優(yōu)先方式的集成:——首先集成在結(jié)構(gòu)中的一個(gè)主控路徑下的所有模塊,主控路徑的選擇是任意的。

廣度優(yōu)先方式的集成:——首先沿著水平方向,把每一層中所有直接隸屬于上一層的模塊集成起來,直到底層。自頂向下增量式測(cè)試(續(xù))集成測(cè)試的整個(gè)過程由3個(gè)步驟完成:(1)主控模塊作為測(cè)試驅(qū)動(dòng)器。(2)根據(jù)集成的方式(深度或廣度),下層的樁模塊一次一次地被替換為真正的模塊。(3)在每個(gè)模塊被集成時(shí),都必須進(jìn)行單元測(cè)試。重復(fù)第2步,直到整個(gè)系統(tǒng)被測(cè)試完成。

實(shí)例按照廣度優(yōu)先方式進(jìn)行集成測(cè)試實(shí)例按照深度優(yōu)先方式進(jìn)行集成測(cè)試自頂向下增量式測(cè)試(續(xù))ABCDEFAS1S2S3ABCDS4S5ABCDEF(1)(2)(3)廣度優(yōu)先方式自頂向下增量式測(cè)試(續(xù))ABCDEFAS1S2S3ABS2S3EABCS3E(1)(2)(3)深度優(yōu)先方式(4)自底向上增量式測(cè)試自底向上增量式測(cè)試表示逐步集成和逐步測(cè)試的工作是按結(jié)構(gòu)圖自下而上進(jìn)行的,即從程序模塊結(jié)構(gòu)的最底層模塊開始集成和測(cè)試。由于是從最底層開始集成,對(duì)于一個(gè)給定層次的模塊,它的子模塊(包括子模塊的所有下屬模塊)已經(jīng)集成并測(cè)試完成,所以不再需要使用樁模塊進(jìn)行輔助測(cè)試。在模塊的測(cè)試過程中需要從子模塊得到的信息可以直接運(yùn)行子模塊得到。實(shí)例采用自底向上增量式測(cè)試方法進(jìn)行集成測(cè)試自底向上增量式測(cè)試(續(xù))ABCDEFd2Cd1Ed3Fd4BEd5FDABCDEF混合增量式測(cè)試混合增量式測(cè)試是把自頂向下測(cè)試和自底向上測(cè)試這兩種方式結(jié)合起來進(jìn)行集成和測(cè)試。這樣可以兼具兩者的優(yōu)點(diǎn),而摒棄其缺點(diǎn)。常見的兩種混合增量式測(cè)試方式:(1)衍變的自頂向下的增量式測(cè)試:基本思想是強(qiáng)化對(duì)輸入/輸出模塊和引入新算法模塊的測(cè)試,并自底向上集成為功能相對(duì)完整且相對(duì)獨(dú)立的子系統(tǒng),然后由主模塊開始自頂向下進(jìn)行增量式測(cè)試。(2)自底向上-自頂向下的增量式測(cè)試:首先對(duì)含讀操作的子系統(tǒng)自底向上直至根節(jié)點(diǎn)模塊進(jìn)行集成和測(cè)試,然后對(duì)含寫操作的子系統(tǒng)做自頂向下的集成與測(cè)試。2.4.3不同集成測(cè)試方法的比較1、非增量式測(cè)試與增量式測(cè)試的比較非增量式測(cè)試的方法是先分散測(cè)試,然后集中起來再一次完成集成測(cè)試。假如在模塊的接口處存在錯(cuò)誤,只會(huì)在最后的集成測(cè)試時(shí)一下子暴露出來。增量式測(cè)試是逐步集成和逐步測(cè)試的方法,把可能出現(xiàn)的差錯(cuò)分散暴露出來,便于找出問題和修改。而且一些模塊在逐步集成的測(cè)試中,得到了較多次的考驗(yàn),因此,可能會(huì)取得較好的測(cè)試效果。

結(jié)論:增量式測(cè)試要比非增量式測(cè)試具有一定的優(yōu)越性。不同集成測(cè)試方法的比較(續(xù))2、自頂向下與自底向上增量式測(cè)試的比較自頂向下增量式測(cè)試:——主要優(yōu)點(diǎn)在于它可以自然的做到逐步求精,一開始就能讓測(cè)試者看到系統(tǒng)的框架?!饕秉c(diǎn)是需要提供樁模塊,并且在輸入/輸出模塊接入系統(tǒng)以前,在樁模塊中表示測(cè)試數(shù)據(jù)有一定困難。自底向上增量式測(cè)試:——優(yōu)點(diǎn)在于,由于驅(qū)動(dòng)模塊模擬了所有調(diào)用參數(shù),即使數(shù)據(jù)流并未構(gòu)成有向的非環(huán)狀圖,生成測(cè)試數(shù)據(jù)也無困難。

——主要缺點(diǎn)在于,直到最后一個(gè)模塊被加進(jìn)去之后才能看到整個(gè)程序(系統(tǒng))的框架。2.4.4回歸測(cè)試什么是回歸測(cè)試?——在集成測(cè)試策略的環(huán)境中,回歸測(cè)試是對(duì)某些已經(jīng)進(jìn)行過的測(cè)試的某些子集再重新進(jìn)行一遍,以保證上述改變不會(huì)傳播無法預(yù)料的副作用或引發(fā)新的問題?!诟鼜V的環(huán)境里,回歸測(cè)試就是用來保證(由于測(cè)試或其他原因的)改動(dòng)不會(huì)帶來不可預(yù)料的行為或另外的錯(cuò)誤?;貧w測(cè)試可以通過重新執(zhí)行所有的測(cè)試用例的一個(gè)子集人工地進(jìn)行,也可以使用自動(dòng)化的捕獲回放工具來進(jìn)行?;貧w測(cè)試集包括三種不同類型的測(cè)試用例:(1)能夠測(cè)試軟件的所有功能的代表性測(cè)試用例(2)專門針對(duì)可能會(huì)被修改而影響軟件功能的附加測(cè)試(3)針對(duì)修改過的軟件成分的測(cè)試2.5確認(rèn)測(cè)試1、確認(rèn)測(cè)試的準(zhǔn)則確認(rèn)測(cè)試也稱為合格性測(cè)試,是檢驗(yàn)所開發(fā)的軟件是否能按用戶提出的要求進(jìn)行。軟件確認(rèn)要通過一系列證明軟件功能和要求一致的黑盒測(cè)試來完成。經(jīng)過確認(rèn)測(cè)試,應(yīng)該為已開發(fā)的軟件給出結(jié)論性評(píng)價(jià):(1)經(jīng)過檢驗(yàn)的軟件的功能、性能及其他要求均已滿足需求規(guī)格說明書的規(guī)定,則可被認(rèn)為是合格的軟件。(2)經(jīng)過檢驗(yàn)發(fā)現(xiàn)與需求說明書有相當(dāng)?shù)钠x,得到一個(gè)各項(xiàng)缺陷清單。Return確認(rèn)測(cè)試(續(xù))2、配置審查的內(nèi)容確認(rèn)測(cè)試過程的重要環(huán)節(jié)就是配置審查工作。其目的在于確保已開發(fā)軟件的所有文件資料均已編寫齊全,并得到分類編目,足以支持運(yùn)行以后的軟件維護(hù)工作。配置審查的文件資料包括用戶所需的以下資料:(1)用戶手冊(cè)(2)操作手冊(cè)(3)設(shè)計(jì)資料——如:設(shè)計(jì)說明書、源程序以及測(cè)試資料(測(cè)試說明書、測(cè)試報(bào)告)等2.6系統(tǒng)測(cè)試為什么要進(jìn)行系統(tǒng)測(cè)試?

——由于軟件只是計(jì)算機(jī)系統(tǒng)中的一個(gè)組成部分,軟件開發(fā)完成之后,最終還要和系統(tǒng)中的硬件系統(tǒng)、某些支持軟件、數(shù)據(jù)信息等其他部分配套運(yùn)行。因此,在投入運(yùn)行前要完成系統(tǒng)測(cè)試,以保證各組成部分不僅能單獨(dú)的得到檢驗(yàn),而且在系統(tǒng)各部分協(xié)調(diào)工作的環(huán)境下也能正常工作。盡管每一個(gè)檢驗(yàn)有特定的目標(biāo),然而所有的檢測(cè)工作都要驗(yàn)證系統(tǒng)中每個(gè)部分均已得到正確的集成,并能完成指定的功能。嚴(yán)格的說,系統(tǒng)測(cè)試超出了軟件工程范圍。通常這項(xiàng)工作并不由系統(tǒng)開發(fā)人員或系統(tǒng)開發(fā)組織來承擔(dān),而是由軟件用戶或軟件開發(fā)機(jī)構(gòu)委托獨(dú)立測(cè)試機(jī)構(gòu)來完成。

Return恢復(fù)測(cè)試恢復(fù)測(cè)試是通過各種手段,強(qiáng)制性地使軟件出錯(cuò),使其不能正常工作,進(jìn)而檢驗(yàn)系統(tǒng)的恢復(fù)能力。恢復(fù)測(cè)試包含的內(nèi)容:

——如果系統(tǒng)恢復(fù)是自動(dòng)的(由系統(tǒng)自身完成),則應(yīng)該檢驗(yàn):重新初始化、檢驗(yàn)點(diǎn)設(shè)置機(jī)構(gòu)、數(shù)據(jù)恢復(fù)以及重新啟動(dòng)是否正確。

——如果這一恢復(fù)需要人為干預(yù),則應(yīng)考慮平均修復(fù)時(shí)間是否在限定的、可以接受的范圍之內(nèi)。安全測(cè)試安全測(cè)試的目的在于驗(yàn)證安裝在系統(tǒng)內(nèi)的保護(hù)機(jī)制能否在實(shí)際中保護(hù)系統(tǒng)且不受非法入侵,不受各種非法干擾。在安全測(cè)試中,測(cè)試者扮演著試圖攻擊系統(tǒng)的個(gè)人角色:—嘗試去通過外部的手段來獲取系統(tǒng)的密碼—使用可以瓦解任何防守的客戶軟件來攻擊系統(tǒng)—把系統(tǒng)“癱瘓”,使得其他用戶無法訪問—有目的地引發(fā)系統(tǒng)錯(cuò)誤,期望在恢復(fù)過程中侵入系統(tǒng)—通過瀏覽非保密的數(shù)據(jù),從中找到進(jìn)入系統(tǒng)的鑰匙系統(tǒng)的安全測(cè)試要設(shè)置一些測(cè)試用例試圖突破系統(tǒng)的安全保密措施,檢驗(yàn)系統(tǒng)是否有安全保密的漏洞。強(qiáng)度測(cè)試從本質(zhì)上來說,強(qiáng)度測(cè)試(也稱壓力測(cè)試-StreeTesting)的目的是要檢測(cè)非正常的情形,測(cè)試是想要破壞程序。強(qiáng)度測(cè)試需要在反常規(guī)數(shù)據(jù)量、頻率或資源的方式下運(yùn)行系統(tǒng),以檢驗(yàn)系統(tǒng)能力的最高實(shí)際限度。舉例:—如果正常的中斷頻率為每秒5次,強(qiáng)度測(cè)試設(shè)計(jì)為每秒50次中斷。—把輸入數(shù)據(jù)的量提高一個(gè)數(shù)量級(jí)來測(cè)試輸入功能會(huì)如何響應(yīng)?!裟诚到y(tǒng)正常運(yùn)行可支持200個(gè)終端并行工作,強(qiáng)度測(cè)試則檢驗(yàn)1000個(gè)終端并行工作的情況?!\(yùn)行大量的消耗內(nèi)存或其他系統(tǒng)資源的測(cè)試實(shí)例。性能測(cè)試性能測(cè)試用來測(cè)試軟件在系統(tǒng)集成中的運(yùn)行性能,特別是針對(duì)實(shí)時(shí)系統(tǒng)和嵌入式系統(tǒng),僅提供符合功能需求但不符合性能需求的軟件是不能被接受的。性能測(cè)試可以在測(cè)試過程的任意階段進(jìn)行,但只有當(dāng)整個(gè)系統(tǒng)的所有成分都集成在一起后,才能檢查一個(gè)系統(tǒng)的真正性能。性能測(cè)試常常和強(qiáng)度(壓力)測(cè)試結(jié)合起來進(jìn)行,而且常常需要硬件和軟件測(cè)試設(shè)備,這就是說,常常有必要在一種苛刻的環(huán)境中衡量資源的使用(比如,處理器周期)。正確性測(cè)試正確性測(cè)試檢查軟件的功能是否符合規(guī)格說明。正確性測(cè)試的方法:

——枚舉法,即構(gòu)造一些合理輸入,檢查是否得到期望的輸出。測(cè)試時(shí)應(yīng)盡量設(shè)法減少枚舉的次數(shù),關(guān)鍵在于尋找等價(jià)區(qū)間,因?yàn)樵诘葍r(jià)區(qū)間中,只需用任意值測(cè)試一次即可?!吔缰禍y(cè)試,即采用定義域或者等價(jià)區(qū)間的邊界值進(jìn)行測(cè)試。因?yàn)槌绦蛟O(shè)計(jì)容易疏忽邊界情況,程序也容易在邊界值處出錯(cuò)。

可靠性測(cè)試可靠性測(cè)試是從驗(yàn)證的角度出發(fā),檢驗(yàn)系統(tǒng)的可靠性是否達(dá)到預(yù)期的目標(biāo),同時(shí)給出當(dāng)前系統(tǒng)可能的可靠性增長(zhǎng)情況。對(duì)可靠性性測(cè)試來說,最關(guān)鍵的測(cè)試數(shù)據(jù)包括失效間隔時(shí)間,失效修復(fù)時(shí)間,失效數(shù)量,失效級(jí)別等。根據(jù)獲得的測(cè)試數(shù)據(jù),應(yīng)用可靠性模型,可以得到系統(tǒng)的失效率及可靠性增長(zhǎng)趨勢(shì)??煽啃灾笜?biāo)有時(shí)很難測(cè)試,通常采用平均無故障時(shí)間或系統(tǒng)投入運(yùn)行后出現(xiàn)的故障不能大于多少數(shù)量這些指標(biāo)來對(duì)可靠性進(jìn)行評(píng)估。兼容性測(cè)試軟件兼容性測(cè)試是檢測(cè)各軟件之間能否正確地交互和共享信息,其目標(biāo)是保證軟件按照用戶期望的方式進(jìn)行交互,使用其它軟件檢查軟件操作的過程。兼容性的測(cè)試通常需要解決以下問題:(1)新開發(fā)的軟件需要與哪種操作系統(tǒng)、Web瀏覽器和應(yīng)用軟件保持兼容,如果要測(cè)試的軟件是一個(gè)平臺(tái),那么要求應(yīng)用程序能在其上運(yùn)行。(2)應(yīng)該遵守哪種定義軟件之間交互的標(biāo)準(zhǔn)或者規(guī)范。(3)軟件使用何種數(shù)據(jù)與其它平臺(tái)、與新的軟件進(jìn)行交互和共享信息。兼容性測(cè)試(續(xù))軟件兼容的實(shí)例:從Web頁(yè)面剪切文字,然后在文字處理程序中打開的文檔中粘貼。從電子表格程序保存賬目數(shù)據(jù),然后在另一個(gè)完全不同的電子表格程序中讀入這些數(shù)據(jù)。使圖形處理軟件在同一操作系統(tǒng)下的不同版本正常工作。使文字處理程序從聯(lián)系人管理程序中讀取姓名和地址,打印個(gè)性化的邀請(qǐng)函和信封。升級(jí)到新的數(shù)據(jù)庫(kù)程序,讀入現(xiàn)存所有數(shù)據(jù)庫(kù),并能夠像老版本一樣對(duì)其中的數(shù)據(jù)進(jìn)行處理。兼容性測(cè)試(續(xù))兼容性通常有4種——向前兼容與向后兼容、不同版本間的兼容、標(biāo)準(zhǔn)和規(guī)范、數(shù)據(jù)共享兼容(1)向前兼容和向后兼容向前兼容是指可以使用軟件的未來版本,向后兼容是指可以使用軟件的以前版本。并非所有的軟件都要求向前兼容和向后兼容,這是軟件設(shè)計(jì)者需要決定的產(chǎn)品特性。使用文本文件可以對(duì)向前兼容和向后兼容作一個(gè)簡(jiǎn)單的演示:在Windows98上用Notepad創(chuàng)建的文本文件,它可以向后兼容MS-DOS1.0后的所有版本,它還可以向前兼容Windows2000甚至以后的版本。兼容性測(cè)試(續(xù))在Windows98上運(yùn)行的NotepadMYDATE.TXT在MS-DOS1.0上運(yùn)行的Edit.exe在Windows3.1上運(yùn)行的Notepad在Windows95上運(yùn)行的Notepad向后兼容在Windows2000上運(yùn)行的WordPad在未來操作系統(tǒng)上運(yùn)行的未知軟件向前兼容兼容性測(cè)試(續(xù))

(2)不同版本間的兼容不同版本間的兼容是指要實(shí)現(xiàn)測(cè)試平臺(tái)和應(yīng)用軟件多個(gè)版本之間能夠正常工作。舉例:現(xiàn)在要測(cè)試一個(gè)流行的操作系統(tǒng)的新版本,當(dāng)前操作系統(tǒng)上可能有數(shù)幾十上百萬現(xiàn)有程序,則新操作系統(tǒng)的目標(biāo)是與它們百分之百兼容。因?yàn)椴豢赡茉谝粋€(gè)操作系統(tǒng)上測(cè)試所有的軟件程序,因此需要決定哪些是最重要的、必須進(jìn)行的。對(duì)于測(cè)試新應(yīng)用軟件也一樣,需要決定在哪個(gè)平臺(tái)版本上測(cè)試,以及和什么應(yīng)用程序一起測(cè)試。兼容性測(cè)試(續(xù))

(3)標(biāo)準(zhǔn)和規(guī)范適用于軟件平臺(tái)的標(biāo)準(zhǔn)和規(guī)范有兩個(gè)級(jí)別——高級(jí)標(biāo)準(zhǔn)和低級(jí)標(biāo)準(zhǔn)。高級(jí)標(biāo)準(zhǔn)是產(chǎn)品應(yīng)當(dāng)普遍遵守的,例如軟件能在何種操作系統(tǒng)上運(yùn)行?是互聯(lián)網(wǎng)上的程序嗎?它運(yùn)行于何種瀏覽器?每一項(xiàng)問題都關(guān)系到平臺(tái),假若應(yīng)用程序聲明與某個(gè)平臺(tái)兼容,就必須最受關(guān)于該平臺(tái)的標(biāo)準(zhǔn)和規(guī)范。低級(jí)標(biāo)準(zhǔn)是對(duì)產(chǎn)品開發(fā)細(xì)節(jié)的描述,從某種意義上說,低級(jí)標(biāo)準(zhǔn)比高級(jí)標(biāo)準(zhǔn)更加重要。兼容性測(cè)試(續(xù))

溫馨提示

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

評(píng)論

0/150

提交評(píng)論