靜態(tài)測(cè)試技術(shù)_第1頁(yè)
靜態(tài)測(cè)試技術(shù)_第2頁(yè)
靜態(tài)測(cè)試技術(shù)_第3頁(yè)
靜態(tài)測(cè)試技術(shù)_第4頁(yè)
靜態(tài)測(cè)試技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩73頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

靜態(tài)測(cè)試技術(shù)第一頁(yè),共七十八頁(yè),2022年,8月28日軟件測(cè)試方法和技術(shù)董瑞志/~nature_dongEmail:聯(lián)系電話:第二頁(yè),共七十八頁(yè),2022年,8月28日內(nèi)容提要靜態(tài)測(cè)試技術(shù)桌面檢查代碼審查代碼走查技術(shù)評(píng)審靜態(tài)測(cè)試的內(nèi)容需求定義的靜態(tài)測(cè)試設(shè)計(jì)文檔的靜態(tài)測(cè)試源代碼的靜態(tài)測(cè)試第三頁(yè),共七十八頁(yè),2022年,8月28日靜態(tài)測(cè)試的定義不執(zhí)行程序代碼而尋找代碼中可能存在的錯(cuò)誤或評(píng)估程序代碼的過(guò)程。 靜態(tài)測(cè)試可以手工進(jìn)行,也可以借助軟件工具自動(dòng)進(jìn)行。北京測(cè)試空間是注冊(cè)于北京市海淀區(qū)高新技術(shù)園的軟件企業(yè),目前主要業(yè)務(wù)范圍包括軟件測(cè)試管理工具研發(fā)、軟件測(cè)試項(xiàng)目外包和軟件測(cè)試專業(yè)技術(shù)人才培養(yǎng)及派遣。北京測(cè)試空間地址:北京市海淀區(qū)學(xué)院路40號(hào)大唐電信測(cè)試空間樓聯(lián)系電話:010-623032236230326062303230第四頁(yè),共七十八頁(yè),2022年,8月28日靜態(tài)測(cè)試的特點(diǎn)靜態(tài)測(cè)試不必動(dòng)態(tài)的執(zhí)行程序,也就是不必進(jìn)行測(cè)試用例設(shè)計(jì)和結(jié)果判讀等工作;靜態(tài)測(cè)試可以由人手工方式進(jìn)行,充分發(fā)揮人的優(yōu)勢(shì),行之有效。解鈴還須系鈴人,由于人的思維及交流障礙而造成的邏輯錯(cuò)誤,有人通過(guò)邏輯思維去解決,是一種非常有效的方法;特別是在充分利用人思維互補(bǔ)的情形,檢驗(yàn)出錯(cuò)誤的水平非常高。靜態(tài)測(cè)試實(shí)施不需要特別條件,容易開(kāi)展第五頁(yè),共七十八頁(yè),2022年,8月28日靜態(tài)測(cè)試的內(nèi)容主要由人工進(jìn)行代碼審查(CodeInspection)

代碼走查(Walkthrough)

桌面檢查技術(shù)審查主要由軟件工具自動(dòng)進(jìn)行的靜態(tài)分析廣義的理解,還包括軟件需求分析和設(shè)計(jì)階段的技術(shù)評(píng)審第六頁(yè),共七十八頁(yè),2022年,8月28日代碼審查和代碼走查由若干程序員與測(cè)試員組成一個(gè)小組,集體閱讀并討論程序,或者用“腦”執(zhí)行并檢查程序的過(guò)程分兩步完成預(yù)先作一定的準(zhǔn)備工作然后舉行會(huì)議進(jìn)行討論會(huì)議的主題是發(fā)現(xiàn)錯(cuò)誤而不是糾正錯(cuò)誤第七頁(yè),共七十八頁(yè),2022年,8月28日桌面檢查程序員閱讀自己所編的程序缺點(diǎn):第一,由于心理上的原因,容易對(duì)自己的程序的偏愛(ài),沒(méi)有發(fā)現(xiàn)錯(cuò)誤的欲望(這和已經(jīng)知道了程序錯(cuò)了讀程序找錯(cuò)誤所在極為不同)第二,由于人的思維定勢(shì),有些習(xí)慣性的錯(cuò)誤自己不易發(fā)現(xiàn)第三,如果根本對(duì)功能理解錯(cuò)了,自己不易糾正所以這種方法效率不高,可作為個(gè)人自我檢查程序中明顯的疏漏或筆誤第八頁(yè),共七十八頁(yè),2022年,8月28日代碼審查與代碼走查的優(yōu)點(diǎn)不僅比桌面檢查優(yōu)越得多,而且與動(dòng)態(tài)測(cè)試的方法相比也有很多優(yōu)點(diǎn)第一,使用這種方法測(cè)試,一旦發(fā)現(xiàn)錯(cuò)誤,就知道錯(cuò)誤的性質(zhì)和位置,因而調(diào)試所花費(fèi)的代價(jià)低第二,使用這種方法一次能揭示一批錯(cuò)誤,而不是一次只揭示一個(gè)錯(cuò)誤又,如果使用動(dòng)態(tài)測(cè)試,通常僅揭示錯(cuò)誤的征兆。 程序不終止運(yùn)行,而對(duì)錯(cuò)誤的性質(zhì)和位置還得逐個(gè)查找。第九頁(yè),共七十八頁(yè),2022年,8月28日代碼審查與代碼走查的效果經(jīng)驗(yàn)表明,使用這種方法能夠優(yōu)先的發(fā)現(xiàn)30~70%的邏輯設(shè)計(jì)和編碼錯(cuò)誤IBM使用代碼審查方法表明,錯(cuò)誤的檢測(cè)效率高達(dá)全部查出錯(cuò)誤的80%Myers的研究發(fā)現(xiàn)代碼審查和代碼走查平均查出全部錯(cuò)誤的70%第十頁(yè),共七十八頁(yè),2022年,8月28日代碼審查、代碼走查與動(dòng)態(tài)測(cè)試相互補(bǔ)充研究表明使用代碼審查和代碼走查發(fā)現(xiàn)某類錯(cuò)誤比用動(dòng)態(tài)測(cè)試更有效,而對(duì)另一類錯(cuò)誤情況正好相反由此可見(jiàn)代碼審查和代碼走查方法與動(dòng)態(tài)測(cè)試結(jié)合,測(cè)試效果更佳。第十一頁(yè),共七十八頁(yè),2022年,8月28日代碼審查的測(cè)試內(nèi)容檢查代碼和設(shè)計(jì)的一致性檢查代碼對(duì)標(biāo)準(zhǔn)的遵循、可讀性檢查代碼的邏輯表達(dá)的正確性檢查代碼結(jié)構(gòu)的合理性第十二頁(yè),共七十八頁(yè),2022年,8月28日代碼審查的組成和方式代碼審查由一組程序和錯(cuò)誤檢查技術(shù)組成以代碼審查組方式組織第十三頁(yè),共七十八頁(yè),2022年,8月28日代碼審查組通常由四人組成,其中一人為組長(zhǎng)組長(zhǎng)是關(guān)鍵,最好是一個(gè)稱職的程序員,但不是被測(cè)試程序的編寫(xiě)者,也不需要對(duì)所檢查的程序很熟悉,但需要較強(qiáng)的組織協(xié)調(diào)和語(yǔ)言能力組長(zhǎng)的職責(zé)包括分配資料、安排計(jì)劃、主持開(kāi)會(huì)、記錄并保存被發(fā)現(xiàn)的錯(cuò)誤其余成員包括資深程序員、程序編寫(xiě)者與專職測(cè)試人員根據(jù)測(cè)試的組織方式(如內(nèi)部測(cè)試和獨(dú)立測(cè)試)不同,代碼審查小組組成可以調(diào)節(jié),但組長(zhǎng)角色不能變動(dòng)第十四頁(yè),共七十八頁(yè),2022年,8月28日代碼審查的步驟準(zhǔn)備程序閱讀審查會(huì)議跟蹤及報(bào)告第十五頁(yè),共七十八頁(yè),2022年,8月28日準(zhǔn)備組長(zhǎng)提前把程序目錄表和設(shè)計(jì)說(shuō)明書(shū)等材料分配給小組成員小組成員熟悉這些材料由被測(cè)程序的設(shè)計(jì)和編碼人員向?qū)彶榻M詳細(xì)說(shuō)明所準(zhǔn)備的材料,特別是代碼的主要功能與功能間的關(guān)系第十六頁(yè),共七十八頁(yè),2022年,8月28日程序閱讀審查組人員仔細(xì)閱讀代碼和相關(guān)材料對(duì)照代碼審查單標(biāo)出明顯缺陷及錯(cuò)誤第十七頁(yè),共七十八頁(yè),2022年,8月28日審查會(huì)議審查會(huì)由組長(zhǎng)主持首先由程序員逐句闡明程序的邏輯,在此過(guò)程中可由程序員或其他小組成員提出問(wèn)題,追蹤錯(cuò)誤是否存在經(jīng)驗(yàn)證明在上述闡述過(guò)程中,有很多錯(cuò)誤由講述程序者而不是其他小組成員發(fā)現(xiàn)大聲地朗讀程序給聽(tīng)眾,這樣簡(jiǎn)單的工作是有效的錯(cuò)誤檢測(cè)技術(shù)然后利用代碼審查單來(lái)分析討論組長(zhǎng)負(fù)責(zé)討論沿著建設(shè)性的方向前進(jìn),而其他人則集中注意力發(fā)現(xiàn)錯(cuò)誤,但不去糾正錯(cuò)誤第十八頁(yè),共七十八頁(yè),2022年,8月28日跟蹤和報(bào)告會(huì)后把發(fā)現(xiàn)的錯(cuò)誤登記造表并交給程序開(kāi)發(fā)人員如果發(fā)現(xiàn)錯(cuò)誤較多或發(fā)現(xiàn)重大錯(cuò)誤,那么在改正之后,組長(zhǎng)要再次組織審查會(huì)議為了改進(jìn)以后的審查工作,對(duì)錯(cuò)誤登記表也要分析,歸類和精煉第十九頁(yè),共七十八頁(yè),2022年,8月28日以第三方測(cè)試的方式進(jìn)行代碼審查應(yīng)就發(fā)現(xiàn)的缺陷及錯(cuò)誤與軟件開(kāi)發(fā)人員討論避免由于理解不一致產(chǎn)生問(wèn)題,形成共同認(rèn)可的審查結(jié)果第二十頁(yè),共七十八頁(yè),2022年,8月28日審查會(huì)議的時(shí)間大約以1.5~2小時(shí)為宜審查會(huì)需要高度集中注意力,時(shí)間太長(zhǎng)反而容易使效率降低每次會(huì)議可能處理一個(gè)或幾個(gè)模塊第二十一頁(yè),共七十八頁(yè),2022年,8月28日代碼審查單代碼審查單是代碼審查過(guò)程所用的主要技術(shù)通常是把程序設(shè)計(jì)及編碼中可能發(fā)生的各種錯(cuò)誤進(jìn)行分類,對(duì)每一類列舉出盡可能多的典型錯(cuò)誤,然后制成表格其它測(cè)試中發(fā)現(xiàn)的錯(cuò)誤也要及時(shí)歸入代碼審查單,形成某一類型軟件針對(duì)性的代碼審查單,以供審查時(shí)使用第二十二頁(yè),共七十八頁(yè),2022年,8月28日的代碼審查單(部分)數(shù)據(jù)引用錯(cuò)誤是否引用了未賦值或者未初始化的變量?所有的數(shù)組引用,其下標(biāo)值是否都在各自的相應(yīng)維數(shù)定義界內(nèi)?所有的數(shù)組引用,每一個(gè)下表是否是整數(shù)值?所有引用的指針或變量當(dāng)前是否已經(jīng)分配儲(chǔ)存了?(即是否存在“懸掛引用”的問(wèn)題)在檢索操作或下標(biāo)引用數(shù)組時(shí),是否存在“差1”的錯(cuò)誤?Tobecontinue……第二十三頁(yè),共七十八頁(yè),2022年,8月28日的代碼審查單(部分)數(shù)據(jù)說(shuō)明錯(cuò)誤所有變量是否都顯示地說(shuō)明了?是否每個(gè)變量都賦予正常的長(zhǎng)度、類型和存儲(chǔ)分類?變量的初始化和它的存儲(chǔ)類型是否有矛盾?Tobecontinue……第二十四頁(yè),共七十八頁(yè),2022年,8月28日的代碼審查單(部分)計(jì)算錯(cuò)誤是否使用過(guò)非一致的數(shù)據(jù)類型的變量進(jìn)行運(yùn)算?是否存在混合運(yùn)算?賦值語(yǔ)句的目標(biāo)變量是否比其右邊的表達(dá)式小第二十五頁(yè),共七十八頁(yè),2022年,8月28日代碼審查單的其他內(nèi)容還可以包括編程風(fēng)格、標(biāo)準(zhǔn)、規(guī)范的符合性方面的內(nèi)容在代碼審查單的錯(cuò)誤登記表中,應(yīng)寫(xiě)明所查出的錯(cuò)誤的類型、錯(cuò)誤類別、錯(cuò)誤的嚴(yán)重程度、錯(cuò)誤的位置、錯(cuò)誤的原因等信息。第二十六頁(yè),共七十八頁(yè),2022年,8月28日閱讀的方法要仔細(xì)閱讀需求設(shè)計(jì)等文檔,特別是了解軟件的整體物理意義、應(yīng)用背景以及在大系統(tǒng)中的地位對(duì)大型軟件而言,這些信息會(huì)在閱讀程序時(shí)有效地幫助讀者從一定的高度審視,而不是停留在逐行掃描代碼有些錯(cuò)誤要有整體觀才能發(fā)現(xiàn)第二十七頁(yè),共七十八頁(yè),2022年,8月28日閱讀結(jié)構(gòu)化代碼的兩種方法追蹤通過(guò)每個(gè)子程序的主要邏輯行,主要邏輯行全部跟蹤完,然后開(kāi)始跟蹤第二條路徑相當(dāng)于深度優(yōu)先遍歷。按排列順序追蹤代碼,從主要行開(kāi)始,然后檢查較低層的程序段 相當(dāng)于廣度優(yōu)先遍歷第二十八頁(yè),共七十八頁(yè),2022年,8月28日兩種閱讀方法的綜合使用這兩種方式的差別在于何時(shí)進(jìn)入下層模塊,選擇那種方式要視具體程序特點(diǎn)而定廣度優(yōu)先遍歷有助于很快地了解程序的全貌深度優(yōu)先適于詳細(xì)查閱功能處理步驟應(yīng)綜合使用上述兩種方法,在頭一兩遍閱讀時(shí),采用廣度優(yōu)先,然后用深度優(yōu)先第二十九頁(yè),共七十八頁(yè),2022年,8月28日程序閱讀的次數(shù)Beizer提出至少要讀程序4次,分別針對(duì)印刷錯(cuò)誤、數(shù)據(jù)結(jié)構(gòu)、控制流和處理4次閱讀要比讀一次能更快、更容易、更可靠的完成任務(wù)第三十頁(yè),共七十八頁(yè),2022年,8月28日代碼審查的輔助工具匯編或編譯器生成的交叉引用表(變量、標(biāo)號(hào)、子程序)逆向工程工具(例如從源代碼生成流程圖)帶有快速查找的編輯器第三十一頁(yè),共七十八頁(yè),2022年,8月28日代碼走查代碼走查與代碼審查相似,它也是由一組程序和錯(cuò)誤檢查技術(shù)組成,只是程序和錯(cuò)誤檢查技術(shù)不完全相同。第三十二頁(yè),共七十八頁(yè),2022年,8月28日代碼走查組代碼走查以小組方式進(jìn)行代碼走查組包括組長(zhǎng),類似代碼審查組長(zhǎng)秘書(shū),負(fù)責(zé)記錄發(fā)現(xiàn)的錯(cuò)誤,要有一定水平測(cè)試人員,應(yīng)是具有經(jīng)驗(yàn)的程序設(shè)計(jì)人員,或精通程序設(shè)計(jì)語(yǔ)言的人員,或從未介入被測(cè)試程序的設(shè)計(jì)工作的技術(shù)人員(這樣的人沒(méi)有被已有的設(shè)計(jì)框?。瑳](méi)有約束,比較容易發(fā)現(xiàn)問(wèn)題。第三十三頁(yè),共七十八頁(yè),2022年,8月28日代碼走查的過(guò)程與代碼審查過(guò)程相似先把材料交給每個(gè)小組人員,讓他們認(rèn)真研究程序,然后再召開(kāi)代碼走查會(huì)議。第三十四頁(yè),共七十八頁(yè),2022年,8月28日代碼走查會(huì)議的內(nèi)容與代碼審查不同,不是讀程序和使用代碼審查單,而是由被指定的作為測(cè)試員的小組成員提供若干測(cè)試用例(程序的輸入數(shù)據(jù)和期望的輸出結(jié)果),讓參加會(huì)的成員當(dāng)計(jì)算機(jī),在會(huì)議上對(duì)每個(gè)測(cè)試用例用頭腦來(lái)執(zhí)行程序,也就是用測(cè)試用例沿程序邏輯走一遍,并由測(cè)試人員講述程序執(zhí)行過(guò)程,在紙上或黑板上監(jiān)視程序狀態(tài)(變量的值)每次開(kāi)會(huì)時(shí)間以1-2小時(shí)為宜,但不允許中斷如果發(fā)現(xiàn)問(wèn)題由秘書(shū)記下來(lái),中間不討論任何糾錯(cuò)問(wèn)題,主要是發(fā)現(xiàn)錯(cuò)誤第三十五頁(yè),共七十八頁(yè),2022年,8月28日測(cè)試用例在代碼走查中的作用代碼走查中,測(cè)試用例并不是關(guān)鍵,也并不是僅想驗(yàn)證這幾個(gè)測(cè)試用例運(yùn)行是否正確,人腦畢竟比計(jì)算機(jī)慢太多這里測(cè)試用例是作為懷疑程序邏輯與計(jì)算錯(cuò)誤的啟發(fā)點(diǎn),在隨測(cè)試實(shí)例游歷程序邏輯時(shí),在懷疑程序的過(guò)程中發(fā)現(xiàn)錯(cuò)誤這樣,比幾個(gè)測(cè)試用例本身直接發(fā)現(xiàn)的錯(cuò)誤要多得多第三十六頁(yè),共七十八頁(yè),2022年,8月28日代碼走查中的缺點(diǎn)代碼走查使用測(cè)試用例啟發(fā)檢測(cè)錯(cuò)誤,人們注意力會(huì)相對(duì)集中在隨測(cè)試用例游歷的程序邏輯路徑上,不如代碼審查檢查的范圍廣,錯(cuò)誤覆蓋面全。第三十七頁(yè),共七十八頁(yè),2022年,8月28日技術(shù)評(píng)審綜合運(yùn)用走查和審查技術(shù),逐頁(yè)、逐節(jié)地檢查軟件開(kāi)發(fā)前期需求分析和設(shè)計(jì)的文檔,對(duì)軟件的需求,設(shè)計(jì)結(jié)構(gòu)等方面提出問(wèn)題評(píng)審也被當(dāng)作一種管理工具,經(jīng)過(guò)評(píng)審不僅可以提高各階段軟件產(chǎn)品的質(zhì)量,還可以收集到一些有關(guān)該軟件產(chǎn)品質(zhì)量的數(shù)據(jù)技術(shù)評(píng)審屬于廣義的測(cè)試范疇,也是一種質(zhì)量保證手段軟件開(kāi)發(fā)過(guò)程中每個(gè)階段的評(píng)審都必須十分正規(guī)的,嚴(yán)格的加以定義,并根據(jù)規(guī)程實(shí)施。第三十八頁(yè),共七十八頁(yè),2022年,8月28日靜態(tài)測(cè)試的內(nèi)容針對(duì)不同的軟件中間產(chǎn)品,靜態(tài)測(cè)試的內(nèi)容也不盡相同;對(duì)不同的文檔進(jìn)行靜態(tài)測(cè)試的內(nèi)容可以體現(xiàn)在對(duì)特定文檔的測(cè)試對(duì)照條例中。下面以軟件開(kāi)發(fā)過(guò)程中的幾個(gè)有代表性的主要文檔和代碼,列舉靜態(tài)測(cè)試的對(duì)照條例,以說(shuō)明靜態(tài)測(cè)試的內(nèi)容:第三十九頁(yè),共七十八頁(yè),2022年,8月28日需求定義的靜態(tài)測(cè)試對(duì)照條例對(duì)需求定義的測(cè)試著重于測(cè)試對(duì)用戶需求的描述和解釋是否完整、準(zhǔn)確;下面是根據(jù)有關(guān)標(biāo)準(zhǔn)整理而成的對(duì)需求定義進(jìn)行靜態(tài)測(cè)試的對(duì)照條例。我們把這些條例按照所測(cè)試的軟件質(zhì)量因素分成10組:Tobecontinue……第四十頁(yè),共七十八頁(yè),2022年,8月28日需求定義的靜態(tài)測(cè)試對(duì)照條例兼容性 界面需求是否使軟硬件系統(tǒng)具有兼容性?第四十一頁(yè),共七十八頁(yè),2022年,8月28日需求定義的靜態(tài)測(cè)試對(duì)照條例完備性需求定義是否包含了有關(guān)文件(指質(zhì)量手冊(cè)、質(zhì)量計(jì)劃以及其它有關(guān)文件)中所規(guī)定的需求定義所應(yīng)該包含的所有內(nèi)容?需求定義是否包含了有關(guān)功能、性能、限制、目標(biāo)、質(zhì)量等方面的所有需求?功能性需求是否覆蓋了所有非正常情況的處理?是否對(duì)各種操作模式(如正常、非正常、有干擾等等)下的環(huán)境條件都作了規(guī)定?是否對(duì)所有功能與時(shí)間有關(guān)的方面都作了考慮?是否識(shí)別出了所有與時(shí)間因素有關(guān)的功能?它們的時(shí)間準(zhǔn)則是否都說(shuō)明了?時(shí)間準(zhǔn)則的最大、最小執(zhí)行時(shí)間是否都定義了?是否識(shí)別并定義了在將來(lái)可能會(huì)變化的需求?第四十二頁(yè),共七十八頁(yè),2022年,8月28日需求定義的靜態(tài)測(cè)試對(duì)照條例完備性(續(xù))是否定義了系統(tǒng)所有的輸入?是否標(biāo)識(shí)清楚了系統(tǒng)輸入的來(lái)源?是否識(shí)別出了系統(tǒng)的輸出?是否說(shuō)明了系統(tǒng)輸入、輸出的類型?是否說(shuō)明了系統(tǒng)輸入、輸出的值域、單位、格式等等?是否說(shuō)明了如何進(jìn)行系統(tǒng)輸入的合法性檢查?是否定義了系統(tǒng)輸入、輸出的精度?是否定義了系統(tǒng)性能的各個(gè)方面?在不同負(fù)載情況下,系統(tǒng)的生產(chǎn)率如何?在不同的情況下,系統(tǒng)的響應(yīng)時(shí)間如何?系統(tǒng)對(duì)軟件、硬件或電源故障必須作什么樣的反應(yīng)?是否充分地定義了關(guān)于人機(jī)界面的需求?第四十三頁(yè),共七十八頁(yè),2022年,8月28日需求定義的靜態(tài)測(cè)試對(duì)照條例一致性各個(gè)需求之間是否一致?是否有沖突和矛盾?所規(guī)定的模型、算法和數(shù)值方法是否相容?是否使用了標(biāo)準(zhǔn)的術(shù)語(yǔ)和定義形式?需求是否與其軟硬件操作環(huán)境相容?是否說(shuō)明了軟件對(duì)其系統(tǒng)和環(huán)境的影響?是否說(shuō)明了環(huán)境對(duì)軟件的影響?第四十四頁(yè),共七十八頁(yè),2022年,8月28日需求定義的靜態(tài)測(cè)試對(duì)照條例正確性需求定義是否滿足標(biāo)準(zhǔn)的要求?算法和規(guī)則是否有科技文獻(xiàn)或其它文獻(xiàn)作為基礎(chǔ)?有哪些證據(jù)說(shuō)明用戶提供的規(guī)則或規(guī)定是正確的?是否定義了對(duì)在錯(cuò)誤、危險(xiǎn)分析中所識(shí)別出的各種故障模式和錯(cuò)誤類型所需的反應(yīng)?是否參照了有關(guān)的標(biāo)準(zhǔn)?是否對(duì)每一個(gè)需求都給出了理由?理由是否充分?對(duì)設(shè)計(jì)和實(shí)現(xiàn)的限制是否都有論證?第四十五頁(yè),共七十八頁(yè),2022年,8月28日需求定義的靜態(tài)測(cè)試對(duì)照條例可行性需求定義是否使軟件的設(shè)計(jì)、實(shí)現(xiàn)、操作和維護(hù)都可行?所規(guī)定的模型、數(shù)值方法和算法是否對(duì)待解問(wèn)題合適?是否能夠在相應(yīng)的限制條件下實(shí)現(xiàn)?是否能夠達(dá)到關(guān)于質(zhì)量的要求?第四十六頁(yè),共七十八頁(yè),2022年,8月28日需求定義的靜態(tài)測(cè)試對(duì)照條例易修改性對(duì)需求定義的描述是否易于修改(例如,是否采用良好的結(jié)構(gòu)和交叉引用表等等)?是否有冗余的信息?是否一個(gè)需求被定義多次?第四十七頁(yè),共七十八頁(yè),2022年,8月28日需求定義的靜態(tài)測(cè)試對(duì)照條例健壯性是否有容錯(cuò)的需求?第四十八頁(yè),共七十八頁(yè),2022年,8月28日需求定義的靜態(tài)測(cè)試對(duì)照條例易追溯性是否可從上一階段的文檔查找到需求定義中的相應(yīng)內(nèi)容?需求定義是否明確的表明前階段中提出的有關(guān)需求和設(shè)計(jì)限制都已經(jīng)被覆蓋了?(例如,使用覆蓋矩陣或交叉引用表)?需求定義是否便于向后繼續(xù)開(kāi)發(fā)階段查找信息?第四十九頁(yè),共七十八頁(yè),2022年,8月28日需求定義的靜態(tài)測(cè)試對(duì)照條例易理解性是否每一個(gè)需求都只有一種解釋?功能性需求是不是以模塊方式描述的,是否明確的標(biāo)識(shí)出了其功能?是否有術(shù)語(yǔ)定義一覽表?是否使用了形式化或半形式化的語(yǔ)言?語(yǔ)言是否有歧義性?需求定義中是否只包含了必要的實(shí)現(xiàn)細(xì)節(jié)而不包含不必要的實(shí)現(xiàn)細(xì)節(jié)?是否過(guò)分細(xì)致了?需求定義是否足夠清楚和明確使其能夠作為開(kāi)發(fā)設(shè)計(jì)規(guī)約和功能性測(cè)試數(shù)據(jù)的基礎(chǔ)?需求定義的描述是否將對(duì)程序的需求和所提供的其它信息分離開(kāi)來(lái)了?第五十頁(yè),共七十八頁(yè),2022年,8月28日需求定義的靜態(tài)測(cè)試對(duì)照條例易測(cè)試性和可驗(yàn)證性需求是否可以驗(yàn)證?(即是否可以檢驗(yàn)軟件是否滿足了需求?)是否對(duì)每一個(gè)需求都指定了驗(yàn)證過(guò)程?數(shù)學(xué)函數(shù)的定義是否使用了精確定義的語(yǔ)法和語(yǔ)義符號(hào)?第五十一頁(yè),共七十八頁(yè),2022年,8月28日設(shè)計(jì)文檔的靜態(tài)測(cè)試對(duì)照條例對(duì)設(shè)計(jì)文檔的靜態(tài)測(cè)試著重于分析設(shè)計(jì)是否與需求定義一致,所采用的數(shù)值方法和算法是否適用于待解問(wèn)題,程序的設(shè)計(jì)中對(duì)程序的劃分是否與待解問(wèn)題相適應(yīng),需求是否都被滿足了等等。第五十二頁(yè),共七十八頁(yè),2022年,8月28日設(shè)計(jì)文檔的靜態(tài)測(cè)試對(duì)照條例--完備性軟件設(shè)計(jì)規(guī)約是否包含了有關(guān)文件(指質(zhì)量手冊(cè)、質(zhì)量計(jì)劃及其它有關(guān)文件)中所規(guī)定的所有內(nèi)容?是否有充分的數(shù)據(jù)(如邏輯結(jié)構(gòu)圖、算法、存儲(chǔ)分配圖等)來(lái)保證設(shè)計(jì)的完整性?算法、公式等是否充分、準(zhǔn)確、完善?是否在設(shè)計(jì)中明確地說(shuō)明了產(chǎn)品的開(kāi)發(fā)中所需要的軟件、硬件和測(cè)試所需要的軟硬件?對(duì)于每一個(gè)程序界面,設(shè)計(jì)是否都實(shí)現(xiàn)了所要求的行為?Tobecontinue……第五十三頁(yè),共七十八頁(yè),2022年,8月28日設(shè)計(jì)文檔的靜態(tài)測(cè)試對(duì)照條例--完備性是否標(biāo)識(shí)出了程序的每一個(gè)輸入、輸出和數(shù)據(jù)庫(kù)成分?其描述是否詳細(xì)到了可以編碼的程度了?是否說(shuō)明了程序的操作環(huán)境?是否包含了所有的處理步驟?是否給出了每一個(gè)決策點(diǎn)的所有出口轉(zhuǎn)向?設(shè)計(jì)是否考慮到了所有可能的情況和條件?設(shè)計(jì)是否指明了在出現(xiàn)異常情況和不正當(dāng)輸入的情況下的行為?設(shè)計(jì)是否參照了有關(guān)的設(shè)計(jì)標(biāo)準(zhǔn)?第五十四頁(yè),共七十八頁(yè),2022年,8月28日設(shè)計(jì)文檔的靜態(tài)測(cè)試對(duì)照條例—一致性在設(shè)計(jì)文檔中,是否始終使用標(biāo)準(zhǔn)的術(shù)語(yǔ)和定義?文檔的風(fēng)格和詳細(xì)程度是否前后始終一致?界面之間是否相容?設(shè)計(jì)是否包含內(nèi)在矛盾?模型、算法和數(shù)值方法之間是否在數(shù)學(xué)上是相容的?輸入/輸出的格式是否一致?類似的功能和相關(guān)的功能的設(shè)計(jì)是否一致?計(jì)算中的輸入、輸出和數(shù)據(jù)庫(kù)成分的計(jì)量單位和計(jì)算精度是否一致?邏輯表達(dá)式是否一致?第五十五頁(yè),共七十八頁(yè),2022年,8月28日設(shè)計(jì)文檔的靜態(tài)測(cè)試對(duì)照條例—正確性設(shè)計(jì)文檔是否滿足有關(guān)標(biāo)準(zhǔn)的要求?設(shè)計(jì)是否只完成需求定義中要求的功能?若包含額外的功能,則這些功能的必要性是否經(jīng)過(guò)論證?測(cè)試文檔是否準(zhǔn)確?設(shè)計(jì)邏輯是否正確?即,程序是否會(huì)完成所需的功能?設(shè)計(jì)是否與所描述的操作環(huán)境相一致?界面的設(shè)計(jì)是否與文檔所描述的界面部分一致?對(duì)于設(shè)計(jì)者不能選擇的輸入輸出和數(shù)據(jù)庫(kù)成分的數(shù)據(jù)格式、內(nèi)容和數(shù)據(jù)率,設(shè)計(jì)是否正確地給予了安排?第五十六頁(yè),共七十八頁(yè),2022年,8月28日設(shè)計(jì)文檔的靜態(tài)測(cè)試對(duì)照條例—可行性所設(shè)計(jì)的模型、算法和數(shù)值方法對(duì)于應(yīng)用領(lǐng)域來(lái)說(shuō)是否可以接受?設(shè)計(jì)能否在所規(guī)定的限制條件下和開(kāi)發(fā)代價(jià)下實(shí)現(xiàn)?在可用的資源條件下,所設(shè)計(jì)的功能能實(shí)現(xiàn)嗎?第五十七頁(yè),共七十八頁(yè),2022年,8月28日設(shè)計(jì)文檔的靜態(tài)測(cè)試對(duì)照條例—易修改性設(shè)計(jì)是否使用了信息隱藏技術(shù)?模塊的組織使對(duì)一條需求的改變只影響較少的模塊對(duì)于可能改變的數(shù)據(jù)與函數(shù)的結(jié)構(gòu)的設(shè)計(jì)使它門(mén)的界面對(duì)于單個(gè)函數(shù)的改變不敏感將數(shù)據(jù)結(jié)構(gòu)的取接、數(shù)據(jù)庫(kù)的取接和I/O的取接從應(yīng)用程序中分離開(kāi)來(lái),并使用專門(mén)的程序來(lái)完成之,不使用全局可取接的數(shù)據(jù)功能分解成一系列子程序,使每一個(gè)子程序都具有最大限度的內(nèi)部緊密聯(lián)系和最低限度的互相依賴高內(nèi)聚、低耦合每一個(gè)子程序都只有一個(gè)功能嗎?第五十八頁(yè),共七十八頁(yè),2022年,8月28日設(shè)計(jì)文檔的靜態(tài)測(cè)試對(duì)照條例—模塊性是否采用了模塊化的機(jī)制?設(shè)計(jì)是否使軟件系統(tǒng)由一系列相對(duì)來(lái)說(shuō)較小的、以層次結(jié)構(gòu)相互聯(lián)系的子程序組成?是否每一個(gè)子程序都只完成一個(gè)特定的功能?設(shè)計(jì)是否使用了特殊的規(guī)則來(lái)限制子程序的大?。康谖迨彭?yè),共七十八頁(yè),2022年,8月28日設(shè)計(jì)文檔的靜態(tài)測(cè)試對(duì)照條例—可預(yù)測(cè)性設(shè)計(jì)是否包含了子程序來(lái)提供在已經(jīng)標(biāo)識(shí)出的出錯(cuò)情況下所需的反應(yīng)?所設(shè)計(jì)的計(jì)算機(jī)資源調(diào)度方式是否是確定的和可預(yù)測(cè)的,而不是動(dòng)態(tài)的?設(shè)計(jì)是否使用了盡量少的中斷和事件驅(qū)動(dòng),對(duì)使用這樣的功能是否進(jìn)行了論證?是否設(shè)計(jì)了在程序的運(yùn)行過(guò)程中進(jìn)行正確性檢查來(lái)發(fā)現(xiàn)運(yùn)行時(shí)刻的錯(cuò)誤和違反運(yùn)行許可的情況?第六十頁(yè),共七十八頁(yè),2022年,8月28日設(shè)計(jì)文檔的靜態(tài)測(cè)試對(duì)照條例—結(jié)構(gòu)化設(shè)計(jì)是否使用了層次式的邏輯控制結(jié)構(gòu)?第六十一頁(yè),共七十八頁(yè),2022年,8月28日設(shè)計(jì)文檔的靜態(tài)測(cè)試對(duì)照條例—易追溯性設(shè)計(jì)文檔中是否包含設(shè)計(jì)與需求定義中的需求、設(shè)計(jì)限制等內(nèi)容的對(duì)應(yīng)關(guān)系?設(shè)計(jì)是否標(biāo)識(shí)出了設(shè)計(jì)中所包含的需求定義之外的功能?是否對(duì)所有函數(shù)都進(jìn)行了適當(dāng)?shù)臉?biāo)識(shí)使代碼能夠唯一地引用該標(biāo)識(shí)?設(shè)計(jì)規(guī)約是否包含修改歷史記錄,并使所有的對(duì)設(shè)計(jì)的修改和修改理由都記錄在內(nèi)并賦以編號(hào)了?設(shè)計(jì)規(guī)約是否包含了設(shè)計(jì)備案文檔并記錄了與設(shè)計(jì)有關(guān)的決策?第六十二頁(yè),共七十八頁(yè),2022年,8月28日設(shè)計(jì)文檔的靜態(tài)測(cè)試對(duì)照條例—易理解性設(shè)計(jì)是否避免了不必要的成分和表達(dá)形式?設(shè)計(jì)文檔是否不致造成歧義性解釋?第六十三頁(yè),共七十八頁(yè),2022年,8月28日設(shè)計(jì)文檔的靜態(tài)測(cè)試對(duì)照條例—可驗(yàn)證性/易測(cè)試性設(shè)計(jì)中對(duì)每一個(gè)函數(shù)的描述是否都使用了良好的術(shù)語(yǔ)和符號(hào)?是否可以驗(yàn)證它與需求定義相一致?是否定量地說(shuō)明了使用條件、限制等內(nèi)容?是否可以由此產(chǎn)生測(cè)試數(shù)據(jù)?第六十四頁(yè),共七十八頁(yè),2022年,8月28日源代碼的靜態(tài)測(cè)試對(duì)源代碼的靜態(tài)測(cè)試著重于分析實(shí)現(xiàn)是否正確、完備。第六十五頁(yè),共七十八頁(yè),2022年,8月28日源代碼的靜態(tài)測(cè)試對(duì)照條例—完備性代碼是否完全、準(zhǔn)確地實(shí)現(xiàn)了設(shè)計(jì)規(guī)約中所規(guī)定的內(nèi)容?代碼是否滿足設(shè)計(jì)要求?代碼是否創(chuàng)建了所需的數(shù)據(jù)庫(kù)或其它初始化數(shù)據(jù)?是否有未引用的或未定義的變量、常量或數(shù)據(jù)類型?第六十六頁(yè),共七十八頁(yè),2022年,8月28日源代碼的靜態(tài)測(cè)試對(duì)照條例—一致性代碼在邏輯上與設(shè)計(jì)規(guī)約一致嗎?是否自始至終使用了相同的格式、調(diào)用約定、結(jié)構(gòu)等等?第六十七頁(yè),共七十八頁(yè),2022年,8月28日源代碼的靜態(tài)測(cè)試對(duì)照條例—正確性代碼是否符合標(biāo)準(zhǔn)?變量的定義和使用都正確嗎?注釋是否正確?子程序調(diào)用的參數(shù)個(gè)數(shù)正確嗎?

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論