計算機測試的讀書報告_第1頁
計算機測試的讀書報告_第2頁
計算機測試的讀書報告_第3頁
計算機測試的讀書報告_第4頁
計算機測試的讀書報告_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

計算機測試的讀書報告《計算機測試技術》讀書報告學院:班級:姓名:學號:從1946年賓夕法尼亞大學第一臺通用電子計算機ENIAC問世以來,計算機的發展已經走過了七十多年,在這七十年間,人類實現并見證了計算機科學的飛速發展,從最開始建立在晶體管基礎上的計算機,到現在的超大規模集成電路所組成的計算機;但是,隨著計算機硬件的快速發展,計算機軟件也亟需更加穩定,有一個更好的評價。一、計算機軟件測試的基礎1986年IEEE提出使用人工或者自動手段來運行或者測試某個系統的過程,其目的在于檢驗它是否滿足規定的需求或者弄清預期結果與實際結果之間的差異。在計算機軟件開發的過程中,也要經歷孕育、誕生、成長、成熟、衰亡等階段,一般稱為軟件生存周期。把整個軟件生存周期劃分為若干階段,使得每個階段有明確的任務,使規模大,結構復雜和管理復雜的軟件開發變的容易控制和管理。通常,軟件生存周期包括:(1) 問題定義。要求系統分析員與用戶進行交流,弄清“用戶需要計算機解決什么問題”然后提出關于“系統目標與范圍的說明”,提交用戶審查和確認。(2) 可行性研究。一方面在于把待開發的系統的目標以明確的語言描述出來,另一方面從經濟、技術、法律等多方面進行可行性分析。(3) 需求分析。弄清用戶對軟件系統的全部需求,編寫需求規格說明書和初步的用戶手冊,提交評審。(4) 開發階段。開發階段由三個階段組成:設計、實現、測試。(5)維護。二、軟件測試的常用方法黑盒測試和白盒測試都是軟件測試的重要方法,是軟件生命周期中一項非常重要且復雜的工作,測試的目的是盡可能發現并改正軟件中的錯誤,提高軟件的可靠性。1、 白盒測試通過程序的進行測試而不使用用戶界面。這種類型的測試需要從代碼句法發現內部代碼在算法,溢出,路徑,條件等等中的缺點或者錯誤,進而加以修正,如圖1所示。(1) 邏輯錯誤和不正確假設與一條程序路徑被執行可能性成反比。當我們設計和實現主流之外的功能、條件和控制時,錯誤往往開始出現在我們的中。日常處理往往能被很好的理解,而“特殊情況”的處理則難于發現。(2) 我們經常相信某個邏輯路徑不可能被執行,而事實上,它可能在正常的情況下被執行。程序的邏輯流有時候是違反直覺的,這意味著我們關于控制流和數據流的一些無意識的假設可能導致設計錯誤,只有路經測試才能發現這些錯誤。(3) 筆誤是隨機的。有可能產生的筆誤,很多將被語法檢查機制發現,但是還有一些在測試開始后才會被發現。圖1白盒分析法2、 白盒測試的常用技術(1)靜態分析技術。靜態結構分析是指測試者通過使用測試工具分析程序源代碼的系統結構、數據結構、數據結構、內部控制邏輯等內部結構,生成函數調用關系圖、模塊控制流圖、內部文件調用關系圖等各種圖形和圖表,清晰得標識整個軟件的組成結構,通過分析這些圖表,檢查軟件是否存在缺陷或錯誤。以函數調用的靜態分析為例,主要分析一下內容:檢查函數的調用關系是否正確;是否存在孤立的函數沒有被調用;明確函數被調用的頻繁度,對調用頻繁的函數可以重點檢查。(2) 動態分析技術。動態測試是在程序運行狀態下的測試,通過輸入設計好的數據,根據程序運行計算輸出結果,并跟實際輸出結果進行比較,進而發現程序錯誤。在現代軟件開發過程中,尤其是嵌入式軟件開發,動態測試幾乎成為一個必須進行的強制性測試。在程序的運行過程中,通過動態測試,測試人員可以判斷程序的基本模塊、執行過程、子系統以及整體系統的運行結果是否存在缺陷。與靜態測試相比,動態測試有這些特點:需要程序運行;如果靜態測試是預防的話,那么動態測試就是治療;動態測試的性價比比靜態測試低很多;動態測試獲得的覆蓋效率低;動態測試需要運行的用例多,運行時間長;動態測試只能發現運行出現的錯誤;動態文件幾乎都需要在生成可執行文件后進行。(3) 測試數據生成(4)測試覆蓋率:語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆蓋、路徑覆蓋。3、 黑盒測試白盒測試在測試的早期進行,黑盒測試主要用于后期。黑盒測試不是白盒測試的替代品,而是用于輔助白盒測試發現類型的錯誤,如圖2所示。黑盒測試可以回答以下問題:如何測試功能的有效性?何種類型的輸入會產生好的系統是否對特定的輸入值尤其敏感?如何分割數據類的邊界?系統能夠承受何種數據率和數據量?特定類型的數據組合會對系統產生何種影響?圖2黑盒測試4、 黑盒測試的常用技術常用的黑盒測試方法有:等價類劃分法;邊界值分析法;因果圖法;場景法;正交實驗設計法;判定表驅動分析法;錯誤推測法;功能圖分析法。(1)等價類劃分法等價類分為有效等價類和無效等價類,其中,有效等價類是指對于程序的規格說明來說是合理的,有意義的輸入數據構成的集合;而無效等價類是指對于程序的規格說明來說是不合理的,沒有意義的輸入數據構成的集合。確定等價類的原則是:在輸入條件規定了取值范圍或值的個數的情況下,則可以確定一個有效等價類和兩個無效等價類,比如若規定的輸入范圍是1<x<10的所有數,則有效的是1~10內的任意數,而無效的是一8?0.9999和10.00001?+8;在輸入條件規定了輸入值的集合或者規定了“必須如何”的條件的情況下,則可以確立一個有效等價類和一個無效等價類;在輸入條件是一個布爾量的情況下,可以確定一個有效的等價類和一個無效的等價類;在規定了輸入數據的一組值(假定n個),并且程序要對每一個輸入值分別處理的情況下,可以確立n個有效等價類和一個無效等價類;在規定了輸入數據必須遵守的規則的情況下,可以確立一個有效等價類(符合規則)和若干個無效等價類(從不同角度違反規則);在確知已劃分的等價類中各元素在程序處理中的方式不同的情況下,則應再將改等價類進一步的劃分為更小的等價類。(2)邊界值分析法根據經驗法則,大量的錯誤是發生在輸入或輸出范圍的邊界上的,而不是發生在輸入輸出范圍的內部。因此針對各種邊界情況涉及測試用例,可以查出更多的錯誤。而使用邊界值的分析方法涉及測試用例,首先應確定邊界情況。通常輸入和輸出等價類的邊界,應當選取正好等于,剛剛大于或者剛剛小于邊界的值作為測試數據,而不是選取等價類中的典型值或任意值作為測試數據。邊界值選擇的原則:如果輸入條件規定了值的范圍,則應取剛達到這個范圍的邊界的值,以及剛剛超越這個范圍的邊界的值作為測試輸入數據。如果輸入條件規定了值的個數,則用最大個數,最小個數,比最小個數小一,和比最大個數大一的數作為測試數據。將前面兩個原則應用于輸出條件,即涉及測試用例使輸出值達到邊界值及其左右的值。如果程序的規格說明給出的輸入域或輸出域是有序集合,則應選取集合的第一個元素和最后一個元素作為測試用例。如果程序中使用了一個內部數據結構,則應當選擇這個內部數據結構的邊界上的值作為測試用例數據;分析規格說明,找出其他可能的邊界條件。(3)因果圖法因果圖是一種利用圖解法分析輸入的各種組合情況,從而設計測試用例的方法,它適合于檢查程序輸入條件的各種組合情況,如圖3所示。利用因果圖生成測試用例的基本步驟有:分析軟件規格說明描述中哪些是原因(輸入,包括前提條件,操作過程),哪些是結果(輸出),并給每個原因和結果賦予一個標識符;分析軟件規格說明描述的語義,找出原因和結果之間,原因和原因之間的關系,根據這些關系,畫出因果圖;在因果圖上用一些記號表明約束或限制條件;把因果圖轉換為判定表;把判定表的每一列拿出來作為依據,設計測試用例。圖3因果圖的基本符號和約束符號場景法場景法一般包含基本流和備用流,從一個流程開始,通過描述經過的路徑來確定的過程,經過遍歷所有的基本流和備用流來完成整個場景。其中,基本流就是正常的,正確場景;備選流一般指中斷操作的場景,如圖4所示兩種場景的關系。圖4兩種場景的關系正交實驗設計法使用正交試驗設計法首先要知道正交表,正交表是研究多因素多水平的一種設計方法,它是格局正交性從全面試驗中挑選出部分有代表性的點進行試驗,這些有代表性的點具備了“均勻分散,齊整可比”的特點,正交試驗設計是一種基于正交表的、高效率、快速、經濟的試驗設計方法。正交表由三個成分構成,Runs:正交表的行數,即實驗的次數;Factors:正交表的列數,即因素數;Levels:水平數,任何單個因素能夠取得的值的最大個數。判定表驅動分析法判定表是分析和表達多邏輯條件下執行不同操作的情況的工具。判定表由以下部分構成:條件樁(ConditionStub):列出了問題的所有條件。通常認為列出的條件的次序無關緊要;動作樁(ActionStub):列出了問題規定可能采取的操作。這些操作的排列順序沒有約束;條件項(ConditionEntry):列出針對它左列條件的取值在所有可能情況下的真假值;動作項(ActionEntry):列出在條件項的各種取值情況下應該采取的動作。錯誤推測法錯誤推測法是基于經驗和直覺推測程序中所有可能存在的各種錯誤,從而有針對性的設計測試用例的方法。錯誤推測方法的基本思想:列舉出程序中所有可能有的錯誤和容易發生錯誤的特殊情況,根據它們選擇測試用例。3、灰盒測試(Gray-BoxTesting)灰盒測試更像是白盒測試和黑盒測試的混合測試,現階段對灰盒測試沒有更明確的定義,但更多的時候,我們的測試做的就是灰盒測試,即既會做黑盒測試乂會做白盒測試。三、計算機軟件測試過程1、單元測試在單元測試時,測試者需要依據和源程序清單,了解該模塊的 I/O條件和模塊的,主要采用白盒測試的測試用例,輔之以黑盒測試的測試用例,使之對任何合理的輸入和不合理的輸入,都能鑒別和響應。模塊接口測試在單元測試的開始,應對通過被測模塊的數據流進行測試。測試項目包括:調用本模塊的輸入參數是否正確;本模塊調用子模塊時輸入給子模塊的參數是否正確;全局量的定義在各模塊中是否一致;在做內外存交換時要考慮:文件屬性是否正確;OPEN與CLOSE語句是否正確;緩沖區容量與記錄長度是否匹配;在進行讀寫操作之前是否打開了文件;在結束文件處理時是否關閉了文件;正文書寫/輸入錯誤,I/O錯誤是否檢查并做了處理。局部測試不正確或不一致的數據類型說明;使用尚未賦值或尚未初始化的變量;錯誤的初始值或錯誤的缺省值;變量名拼寫錯或書寫錯;不一致的數據類型;全局數據對模塊的影響;路徑測試選擇適當的測試用例,對模塊中重要的執行路徑進行測試;應當設計測試用例查找由于錯誤的計算、不正確的比較或不正常的控制流而導致的錯誤;對基本執行路徑和循環進行測試可以發現大量的路徑錯誤;錯誤處理測試出錯的描述是否難以理解出錯的描述是否能夠對錯誤定位顯示的錯誤與實際的錯誤是否相符對錯誤條件的處理正確與否在對錯誤進行處理之前,錯誤條件是否已經引起系統的干預等邊界測試注意數據流、控制流中剛好等于、大于或小于確定的比較值時出錯的可能性。對這些地方要仔細地選擇測試用例,認真加以測試;如果對模塊運行時間有要求的話,還要專門進行關鍵路徑測試,以確定最壞情況下和平均意義下影響模塊運行時間的因素;2、集成測試(IntegratedTesting)通常,在單元測試的基礎上,需要將所有模塊按照設計要求組裝成為系統。把模塊集成成為系統的方式有兩種:一次性集成方式和增殖式集成方式(1)一次性集成方式(bigbang)它是一種非增殖式組裝方式。也叫做整體拼裝。使用這種方式,首先對每個模塊分別進行模塊測試,然后再把所有模塊組裝在一起進行測試,最終得到要求的軟件系統。(2)增殖式集成方式這種集成方式乂稱漸增式集成,首先對一個個模塊進行模塊測試,然后將這些模塊逐步組裝成較大的系統。在集成的過程中邊連接邊測試,以發現連接過程中產生的問題,通過增殖逐步組裝成為要求的軟件系統。自頂向下的增殖方式自底向上的增殖方式混合增殖式測試3、 確認測試(ValidationTesting)確認測試乂稱有效性測試。任務是驗證軟件的功能和性能及其它特性是否與用戶的要求一致。對軟件的功能和性能要求在軟件需求規格中已經明確規定。它包含的信息就是軟件確認測試的基礎。進行有效性測試(黑盒測試)軟件配置復查4、 驗收測試(AcceptanceTesting)在通過了系統的有效性測試及軟件配置審查之后,就應開始系統的驗收測試。驗收測試是以用戶為主的測試。軟件開發人員和QA(質量保證)人員也應參加。由用戶參加設計測試用例,使用生產中的實際數據進行測試。在測試過程中,除了考慮軟件的功能和性能外,還應對軟件的可移植性、、可維護性、錯誤的恢復功能等進行確認。5、系統測試(SystemTesting)系統測試,是將通過確認測試的軟件,作為整個基于的一個元素,與計算機硬件、外設、某些支持軟件、數據和人員等其它系統元素結合在一起,在實際運行環境下,對計算機系統進行一系列的組裝測試和確認測試。系統測試的目的在于通過與系統的需求定義作

溫馨提示

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

評論

0/150

提交評論