第二章 靜態(tài)測試_第1頁
第二章 靜態(tài)測試_第2頁
第二章 靜態(tài)測試_第3頁
第二章 靜態(tài)測試_第4頁
第二章 靜態(tài)測試_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

第二章靜態(tài)測試1本章要點討論與靜態(tài)測試相關(guān)的內(nèi)容,包括評審評審的定義和分類同行評審的分類評審工作流程對規(guī)格說明書的測試源代碼評審靜態(tài)分析及其工具軟件測試方法和應(yīng)用》

2-2靜態(tài)測試

定義

通過檢查和評審軟件而不是運行軟件對軟件進行測試的方法

對象各種與軟件相關(guān)的有必要進行測試的產(chǎn)物,例如各類文檔、源代碼等方法評審對軟件元素或項目狀態(tài)進行評估的活動,用以確定與預(yù)期結(jié)果之間的偏差和相應(yīng)的改進意見通常由人來執(zhí)行靜態(tài)分析被測程序進行特性分析的一些方法的總稱

通常需要工具輔助軟件測試方法和應(yīng)用》

2-3缺陷發(fā)現(xiàn)越早修復(fù)成本越低軟件測試方法和應(yīng)用》

2-4評審除了在項目早期發(fā)現(xiàn)缺陷和降低項目失敗風(fēng)險外,項目中需要進行評審的其它原因包括分享知識培訓(xùn)團隊成員為管理層決策提供依據(jù)為過程改進提供信息評審分類培訓(xùn)評審預(yù)備評審?fù)性u審狀態(tài)評審軟件測試方法和應(yīng)用》

2-5同行評審(PeerReview)由開發(fā)軟件產(chǎn)品作者以外的其他人檢查工作產(chǎn)品,以發(fā)現(xiàn)缺陷并尋找改進的機會方法:評審參與者主要采用一行一行仔細閱讀被評審對象的形式發(fā)現(xiàn)被測對象中的缺陷一般設(shè)在里程碑點附近,即當(dāng)工作產(chǎn)品到達了一個完成的里程碑并即將進入下一個開發(fā)階段時同行評審軟件測試方法和應(yīng)用》

2-6V模型的評審時間點需求|需求規(guī)格說明書評審概要設(shè)計|概要設(shè)計說明書詳細設(shè)計|詳細設(shè)計說明書編碼|源代碼單元測試集成測試系統(tǒng)測試系統(tǒng)測試文檔集成測試文檔單元測試文檔評審評審評審評審評審走讀,靜態(tài)分析軟件測試方法和應(yīng)用》

2-7同行評審的類型審查小組評審走讀桌面評審臨時評審這些同行評審類型的區(qū)別在于正式程度審查是最正式,然后是小組評審、走讀、桌面評審,臨時評審最隨意同行評審越正式,發(fā)現(xiàn)的缺陷越多,但評審越正式,花費成本越高被評審對象越重要或者風(fēng)險越高,采用的評審方式越正式

同行評審的類型軟件測試方法和應(yīng)用》

2-8審查說明IBM的工程師MichaelFagan于20世紀70年代提出,也叫正式評審,是一種包括非作者等專家在內(nèi)的針對特定對象,如需求規(guī)格書、設(shè)計文檔和源代碼進行檢查以發(fā)現(xiàn)缺陷的過程審查是一種有結(jié)構(gòu)有規(guī)則的評審方法。Fagan的審查流程包括:計劃、介紹會議、準(zhǔn)備、會議、返工、跟蹤、因果分析,每個階段定義參與審查的角色相應(yīng)的輸入、輸出軟件測試方法和應(yīng)用》

2-9審查流程軟件測試方法和應(yīng)用》

2-10審查中的角色作者被評審對象的創(chuàng)建者,提供被評審對象及其相關(guān)信息評審組長

組織評審會議,確保審查活動能夠正確地進行審查專家發(fā)現(xiàn)被評審對象中的問題讀者在會議上講解被評審對象,使評審專家把精力集中在被評審對象本身而不是作者記錄員記錄會議階段有價值的信息軟件測試方法和應(yīng)用》

2-11計劃參與者:作者和評審組長在這個階段,需要開展如下工作選擇評審組長確定審查對象確定審查專家確定總體會議、會議次數(shù)和相應(yīng)的時間表準(zhǔn)備和分發(fā)審查工作包,審查包中包括被審查對象的初始可交付產(chǎn)品、相關(guān)參考文檔、缺陷檢查表、指導(dǎo)書、錯誤記錄模版和其它材料審查工作流程軟件測試方法和應(yīng)用》

2-12總體會議本階段可選,主要目標(biāo)是讓審查專家熟悉被審查對象,包括對象特征、上下文、背景等參與者:所有需要參加審查的人員準(zhǔn)備參與者:審查專家這是審查最重要的階段。在這個階段,審查專家獨立工作、逐行閱讀被審查對象,將任何發(fā)現(xiàn)問題、疑問記錄在審查意見單中評審組長根據(jù)各個審查專家提交的意見決定是否按時或者推遲召開審查會議審查工作流程軟件測試方法和應(yīng)用》

2-13會議參與者:作者、評審組長、審查專家、讀者、記錄員在會議階段讀者分段逐個閱讀審查對象,審查專家聽取講解并考慮是否有新的問題提出。評審組長組織對所有審查意見單上的問題列表進行確認,作者確認是否是問題,記錄員在問題列表上記錄答復(fù)和在會上發(fā)現(xiàn)的新缺陷。在會議結(jié)束前,所有人投票,給出對工作產(chǎn)品的審查結(jié)論。審查工作流程軟件測試方法和應(yīng)用》

2-14返工參與者:作者在此階段,作者修改會議中確認的問題,輸出修改后的交付產(chǎn)品跟蹤參與者:評審組長/質(zhì)量工程師/指定的審查專家檢查修改后的交付件,如果通過,則輸出可基線的交付物因果分析參與者:質(zhì)量工程師在這個階段,開展如下工作:分析缺陷原因度量審查效率和效果審查工作流程軟件測試方法和應(yīng)用》

2-15審查規(guī)則為了更好地發(fā)揮審查的作用,在審查中有一組需要遵守的原則作者不能擔(dān)當(dāng)評審組長、讀者或記錄員等角色,要保持開放的思想,接受別人的意見,避免爭論評審組長不要同時擔(dān)任記錄員控制審查小組規(guī)模:3~7個審查專家為好審查專家要努力發(fā)現(xiàn)被審查對象中的問題,審查過程中始終保持對問題的敏感性審查期間要努力發(fā)現(xiàn)問題不要試圖去解決問題會議限制在兩個小時之內(nèi)在會議上,審查團隊要保持一個適當(dāng)?shù)膶彶樗俣?,每小時150~200行代碼或3~4頁文檔軟件測試方法和應(yīng)用》

2-16小組評審小組評審類似于審查,是一種“輕型審查”,同樣可以可采用審查的指導(dǎo)方針和流程,只是沒有審查正式也沒有審查嚴格,會議期間讀者的角色由評審組長代替小組評審方法發(fā)現(xiàn)問題的數(shù)量是審查的2/3軟件測試方法和應(yīng)用》

2-17走讀和同級桌查走讀產(chǎn)品的作者一組同事說明該產(chǎn)品,希望獲得他們的意見以滿足自己的需要。走查是一種非正式的評審,其過程由作者主持,沒有標(biāo)準(zhǔn)的流程可循發(fā)現(xiàn)的缺陷數(shù)量比審查少一半過程同級桌查一對一評審,是指只有除作者以外只有一位評審專家對工作產(chǎn)品進行檢查

軟件測試方法和應(yīng)用》

2-18臨時評審臨時評審請團隊內(nèi)其他同事幫忙,在短時間內(nèi)解決一些問題舉例假設(shè)這樣一個場景:Susan是一個程序員,她正在檢查自己的代碼。John,Susan的同事,是另外一個程序員:

Susan:”Hi,John,能幫個忙嗎?”

John:”當(dāng)然,我現(xiàn)在剛好有空”

Susan:”我的程序有點問題,但我不找不到問題在哪里”

John:”O(jiān)key!讓我看看!”…幾分鐘后

,”O(jiān)h,問題可能在這兒,你看,這里有變量用錯誤,這個“i”好像沒定義過,你是不是想用“j”?

Susan:”O(jiān)h,yeah!沒錯!非常感謝!”軟件測試方法和應(yīng)用》

2-19軟件評審指導(dǎo)書內(nèi)容目的范圍評審角色及職責(zé)過程準(zhǔn)則目標(biāo)進入標(biāo)準(zhǔn)活動退出標(biāo)準(zhǔn)度量相關(guān)資料過程監(jiān)控軟件測試方法和應(yīng)用》

2-20檢查軟件的規(guī)格說明書一般采用逐行閱讀說明書以發(fā)現(xiàn)缺陷的方式,規(guī)格說明書的測試應(yīng)該在說明書整體或者部分完成后立即開展原因盡早發(fā)現(xiàn)缺陷使說明書具有更好的可測試性軟件測試人員可以更加熟悉系統(tǒng)應(yīng)用具體方法靜態(tài)黑盒測試:由于考慮到規(guī)格說明書的重要性,很多軟件項目選擇審查作為評審規(guī)格說明書的方式在進行規(guī)格說明書審查時可以采用如下技術(shù):對說明書進行概要評審對說明書進行詳細評審測試規(guī)格說明書軟件測試方法和應(yīng)用》

2-21目標(biāo)發(fā)現(xiàn)特定的缺陷,比如大的原理性問題,遺漏或過度復(fù)雜的描述等可以使用如下技術(shù)假設(shè)作為用戶:質(zhì)量就是滿足用戶要求研究現(xiàn)有標(biāo)準(zhǔn)和基線評審和測試類似軟件系統(tǒng)規(guī)格說明書的概要評審(1)軟件測試方法和應(yīng)用》

2-22假設(shè)作為用戶從用戶的角度檢查規(guī)格書,可以問自己如下問題,如果我是軟件的客戶:我需要什么樣的功能?我需要的所有功能是否都包含在規(guī)格書中了?是否存在與現(xiàn)有系統(tǒng)沖突的功能?功能是否易于使用?性能如何?功能的安全情況如何?等等如果能從一些熟悉軟件目標(biāo)應(yīng)用領(lǐng)域的人處獲得支持,對評審過程將是非常有幫助的規(guī)格說明書的概要評審(2)軟件測試方法和應(yīng)用》

2-23研究現(xiàn)有標(biāo)準(zhǔn)和基線當(dāng)對規(guī)格書進行概要評審的時候,測試人員應(yīng)該參考現(xiàn)有的標(biāo)準(zhǔn)和基線:組織標(biāo)準(zhǔn)、術(shù)語和慣例:軟件應(yīng)該使用終端用戶的通用術(shù)語和慣例工業(yè)標(biāo)準(zhǔn):在某些工業(yè)領(lǐng)域,例如通訊、金融,有很多應(yīng)用軟件必須遵守的協(xié)議政府標(biāo)準(zhǔn)安全標(biāo)準(zhǔn)等等測試人員應(yīng)該把相關(guān)標(biāo)準(zhǔn)作為規(guī)格說明書評審的一部分評審規(guī)格說明書的同時,測試人員應(yīng)該驗證系統(tǒng)參考了正確的標(biāo)準(zhǔn)并且沒有遺漏規(guī)格說明書的概要評審(3)軟件測試方法和應(yīng)用》

2-24評審和測試類似軟件沒有什么比經(jīng)驗更好的東西了,從類似軟件中可以得大量有用的信息,這些參考軟件可能是:正在開發(fā)系統(tǒng)的早期版本組織內(nèi)的類似軟件競爭對手產(chǎn)品分析類似軟件的時候,應(yīng)密切關(guān)注如下問題并考慮這些是否會影響被測試系統(tǒng):特性是否有增刪?代碼變更比例如何?軟件的復(fù)雜度是否有區(qū)別?可測試性如何?性能、安全性和其他一些非功能特性如何?最后,不要忘了你可以從公共出版物和網(wǎng)上找到有價值的信息規(guī)格說明書的概要評審(4)軟件測試方法和應(yīng)用》

2-25一個好的規(guī)格說明書具有如下屬性完整性:是否忘記或遺漏了什么內(nèi)容?是否徹底?是否包含了該說明書所必須包含的所有信息?精確性:建議的提案是否正確?是否定義了合適的目標(biāo)?是否有什么錯誤?準(zhǔn)確性、明確而清晰:描述是否清晰明確,是否有歧義?是否易于閱讀和理解?一致性:特性描述內(nèi)部和特性之間是否相互矛盾相關(guān)性:細分特性是否必須?是否需要去除不必要的信息?特性是否可以跟蹤到一個原始用戶需求可行性:項目計劃和預(yù)算都是明確的,在給定的人力、工具和資源條件下,特性能否實現(xiàn)?規(guī)格說明書的詳細評審(1)軟件測試方法和應(yīng)用》

2-26一個好的規(guī)格說明書具有如下屬性代碼無關(guān):規(guī)格書的目標(biāo)是定義產(chǎn)品需求而不是軟件設(shè)計,架構(gòu)和代碼可測試的:特性是否可測試?是否提供了讓測試人員得以驗證功能的足夠信息檢查規(guī)格說明書的同時,時刻關(guān)注評審的文字和圖片是否具有這樣的屬性規(guī)格說明書的詳細評審(2)軟件測試方法和應(yīng)用》

2-27問題詞語列表評審規(guī)格說明書的時候應(yīng)密切關(guān)注下面的一些詞匯以及這些詞匯的上下文含義是否清晰,這些常常會帶來缺陷:總是、每個、所有、沒有一個、從來不:這些詞表示肯定和確定的含義,必須確認該用這些詞語,或找出不該使用的理由當(dāng)然、所以、明顯地、無疑、顯然:這些詞有勸說人接受的意思,規(guī)格書中盡量避免一些、有時、經(jīng)常、通常、大部分、主要的、等等、類似、好、快、便宜、高效、小和穩(wěn)定:這些詞可測試性差,必須進一步定義以給出確切的含義描述有把握的、處理過的、拒絕的、跳過的、去掉的:這些詞可能隱藏一些本該詳細說明的功能性需求如果..那么:這些描述依賴于其他因素,不可取規(guī)格說明書的詳細評審(3)軟件測試方法和應(yīng)用》

2-28在代碼全部或部分完成后,應(yīng)立即進行逐行代碼評審以發(fā)現(xiàn)缺陷原因發(fā)現(xiàn)缺陷越早越好使得程序更具可測試性軟件測試人員可以更加熟悉系統(tǒng)方法靜態(tài)白盒測試:很多軟件項目團隊選擇審查作為評審核心代碼的方式,采用走讀和同級桌查作為一般代碼的評審方式團隊采用如下原則進行代碼評審效果更好評審人員有程序開發(fā)語言的專業(yè)知識有程序基線和標(biāo)準(zhǔn)供參考代碼檢查軟件測試方法和應(yīng)用》

2-29編碼規(guī)范編碼規(guī)范是代碼編寫過程中必須遵循的規(guī)則,包含了程序開發(fā)的最佳實踐、在編寫代碼時重復(fù)這些最佳實踐有助于生產(chǎn)高質(zhì)量的軟件。代碼檢查表代碼檢查表是對應(yīng)于編碼規(guī)范中的各個標(biāo)準(zhǔn)與規(guī)范開發(fā)的檢查項,包含容易出錯和以往在工作中遇到的典型錯誤,可以認為是在進行代碼評審時用到的測試用例。在進行代碼評審時,評審專家會關(guān)注被評審代碼是否符合檢查表規(guī)范,如果不符合則很可能存在缺陷。編碼規(guī)范和代碼檢查表軟件測試方法和應(yīng)用》

2-30請注意不同的編碼語言和項目團隊可能采用不同的標(biāo)準(zhǔn)和基線,適合項目的就是最好的編碼規(guī)范和檢查表應(yīng)該在一個項目完成后被檢驗和更新編碼規(guī)范和代碼檢查表軟件測試方法和應(yīng)用》

2-31靜態(tài)分析定義靜態(tài)分析是對被測程序進行特性分析的一些方法的總稱,一般借助工具進行可提供的功能包括:發(fā)現(xiàn)代碼中的缺陷,包括用錯的局部變量和全程變量不匹配的參數(shù)不適當(dāng)?shù)难h(huán)嵌套和分支嵌套不適當(dāng)?shù)奶幚眄樞驘o終止的死循環(huán)未定義的變量不允許的遞歸調(diào)用并不存在的子程序遺漏了標(biāo)號或代碼不恰當(dāng)?shù)倪B接等軟件測試方法和應(yīng)用》

2-32靜態(tài)分析可提供的功能找到潛伏著缺陷的根源。未使用的變量不會執(zhí)行到的代碼未引用過的標(biāo)號可疑的計算潛在的死循環(huán)等提供間接涉及程序缺陷的信息:每一類型語句出現(xiàn)的次數(shù)、所用變量和常量的交叉引用表、標(biāo)識符的使用方式、過程的調(diào)用層次、違背編碼規(guī)則等為進一步查錯作準(zhǔn)備。軟件測試方法和應(yīng)用》

2-33靜態(tài)分析工具說明靜態(tài)分析工具是一類實現(xiàn)靜態(tài)分析方法的軟件工具,通過對代碼進行掃描并對其進行詞法和語法分析,構(gòu)造與代碼結(jié)構(gòu)特征相關(guān)的抽象模型以達到對代碼進行某些方面分析的目的。分類按照功能,例如代碼審查一致性檢查交叉索引接口分析輸入輸出規(guī)格說明分析數(shù)據(jù)流分析錯誤檢查類型分析單元分析軟件測試方法和應(yīng)用》

2-34靜態(tài)分析工具基于數(shù)據(jù)流分析方法的靜態(tài)分析工具,可提供的缺陷信息:語法錯誤信息;各種類型源語句出現(xiàn)的次數(shù);標(biāo)識符使用的交叉索引;標(biāo)識符在每個語句中使用的各種情況,如數(shù)據(jù)源點、數(shù)據(jù)終點、調(diào)用參數(shù)、啞參數(shù)和下標(biāo)等;每個程序所調(diào)用的子程序和函數(shù);未經(jīng)初始化的變量;未曾使用過的變量;任何輸入數(shù)據(jù)都執(zhí)行不

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論