軟件測試畢業論文_第1頁
軟件測試畢業論文_第2頁
軟件測試畢業論文_第3頁
軟件測試畢業論文_第4頁
軟件測試畢業論文_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、摘 要完成時間:2013年4月從軟件產業的發展初期到目前的大型軟件開發過程,軟件測試已成為其中一個不可分割的部分。隨著軟件規模的日益增大,軟件測試問題也日益突出,現代社會對軟件的依賴越來越強,高可信軟件測試有著廣泛的需求,基于缺陷模式的軟件測試技術作為高可信軟件的重要保證,可以大大降低軟件的缺陷密度,提高軟件的可信性。本文從測試的基本概念入手,深入剖析軟件測試相關理論關鍵詞:軟件測試; 軟件測試的分類; 軟件測試方法; 測試用例;測試工具; 目 錄1軟件測試的發展史72軟件測試的基礎理論72.1軟件測試的定義72.2軟件測試的描述82.3軟件測試的目的82.4軟件測試的原則83軟件測試的內容8

2、3.1驗證(verification)83.2確認(validation)94軟件測試的分類94.1角度分類94.2階段細分95軟件測試流程105.1軟件測試活動106軟件測試用例方法106.1測試用例設計的基本原則106.2設計測試用例應注意哪些問題106.3測試用例的作用116.4測試用例設計方法11等價類劃分11劃分等價類11邊界值14定義14與等價劃分的區別14錯誤推測法16定義16因果圖16定義16判定表18定義18判定表的建立步驟187 軟件測試工具187.1功能測試工具187.2性能測試工具187.3測試管理工具197.4其他測試工具198參考文獻199致 謝201軟件測試的發展

3、史l 20世紀60年代(軟件工程建立前),為表明程序正確而進行測試。l 1972年在北卡羅來納大學舉行了首屆軟件測試正式會議。l 1975年John Good Enough和Susan Gerhart在IEEE上發表了測試數據選擇的原理的文章,軟件測試被確定為一種研究方向。l 1979年,Glenford Myers的軟件測試藝術,對測試做了定義:測試是為發現錯誤而執行的一個程序或者系統的過程。l 20世紀80年代早期,“質量”的號角開始吹響。軟件測試定義發生了改變,測試不單純是一個發現錯誤的過程,而且包含軟件質量評價的內容。制定了各類標準。l 1983年,Bill Hetzel在軟件測試完全

4、指南中指出:測試是以評價一個程序或者系統屬性為目標的任何一種活動,測試是對軟件質量的度量。l 20世紀90年代,測試工具盛行起來。l 1996年提出的測試能力成熟度TCMM(Testing Capability Maturity Model)、測試支持度TSM(Testability Support Model)、測試成熟度TMM(Testing Maturity Model)。l 到了2002年,Rick和Stefan在系統的軟件測試一書中對軟件測試做了進一步定義:測試是為了度量和提高被測軟件的質量,對測試軟件進行工程設計、實施和維護的整個生命過程。2軟件測試的基礎理論2.1軟件測試的定義軟

5、件測試使用人工或者自動手段來運行或測試某個系統的過程,其目的在于檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別。l 測試并不僅僅是為了找出錯誤.通過分析錯誤產生的原因和錯誤的發生趨勢,可以幫助項目管理者發現當前軟件開發過程中的缺陷,以便及時改進;l 這種分析也能幫助測試人員設計出有針對性的測試方法,改善測試的效率和有效性;l 沒有發現錯誤的測試也是有價值的,完整的測試是評定軟件質量的一種方法。2.2軟件測試的描述測試是軟件開發過程的重要組成部分, 是用來確認一個程序的品質或性能是否符合開發之前所提出的一些要求。軟件測試的目的, 第一是確認軟件的質量, 其一方面是確認軟件做了你所期望

6、的事情(Do the right thing), 另一方面是確認軟件以正確的方式來做了這個事件(Do it right);第二是提供信息, 比如提供給開發人員或程序經理的反饋信息, 為風險評估所準備的信息;第三軟件測試不僅是在測試軟件產品的本身, 而且還包括軟件開發的過程。如果一個軟件產品開發完成之后發現了很多問題, 這說明此軟件開發過程很可能是有缺陷的。2.3軟件測試的目的l 測試是為了發現程序中的錯誤而執行程序的過程;l 測試是確保最終用戶的產品符合用戶的需求;l 成功的測試是發現了至今為止尚未發現的錯誤的測試;2.4軟件測試的原則l 盡早地進行軟件測試,并把軟件測試貫穿整個軟件生命周期l

7、 軟件測試應追溯l 測試應由第三方來構造l 窮舉測試時不可能,要遵循good-enough原則l 必須確定預期輸出結果l 必須徹底檢查每個測試結果l 充分注意測試中的群集現象l 其他值得注意到規律和經驗3軟件測試的內容3.1驗證(verification)驗證(verification)是保證軟件正確地實現了一些特定功能的一系列活動, 即保證軟件做了你所期望的事情。(Do the right thing) l 確定軟件生存周期中的一個給定階段的產品是否達到前階段確立的需求的過程;l 程序正確性的形式證明, 即采用形式理論證明程序符號設計規約規定的過程;l 評市、審查、測試、檢查、審計等各類活動

8、, 或對某些項處理、服務或文件等是否和規定的需求相一致進行判斷和提出報告。3.2確認(validation)確認(validation)是一系列的活動和過程, 目的是想證實在一個給定的外部環境中軟件的邏輯正確性。即保證軟件以正確的方式來做了這個事件(Do it right)l 靜態確認, 不在計算機上實際執行程序, 通過人工或程序分析來證明軟件的正確性;l 動態確認, 通過執行程序做分析, 測試程序的動態行為, 以證實軟件是否存在問題。 4軟件測試的分類4.1角度分類Ø 從是否關心軟件內部結構和具體實現的角度劃分(按測試分類)l 白盒測試l 黑盒測試l 灰盒測試Ø 從是否執

9、行程序的角度l 靜態測試l 動態測試4.2階段細分Ø 從軟件開發的過程按階段劃分有l 單元測試l 集成測試l 確認測試l 系統測試l 驗收測試l 回歸測試l Alpha測試l Beta測試5軟件測試流程5.1軟件測試活動制定測試計劃測試設計開發實施軟件測試評 審版本發布新版本測試準備階段未通過評審軟件測試活動包括:制定測試計劃、測試設計開發和開發、執行測試、評估測試6軟件測試用例方法6.1測試用例設計的基本原則l 用成熟測試用例設計方法來指導設計;l 測試用例的正確性;l 測試用例的代表性;l 測試結果的可判定性;l 測試結果的可再現性;l 足夠詳細、準確和清晰的步驟;6.2設計測試

10、用例應注意哪些問題l 不要把測試用例設計等同于測試輸入數據的設計;l 不要強調測試用例設計得越詳細越好;l 不要追求測試用例設計“一步到位”;l 不要將多個測試用例混在一個用例中;l 不要讓沒有測試經驗的人員設計測試用例;6.3測試用例的作用l 有效性:有效地節省時間和資源,提高測試效率;l 避免測試的盲目性,使得軟件測試的實施重點突出、目的明確;l 可維護性,降低工作強度,縮短項目周期;l 可復用性,使得測試過程事半功倍;l 可評估性:程序代碼質量的量化標準應該用測試用例的通過率和測試數目來進行評估;l 可管理性,測試用例是測試人員在測試過程中的重要參考依據,便于對測試工作進行有效的管理;6

11、.4測試用例設計方法等價類劃分劃分等價類等價類是指某個輸入域的子集合。在該子集合中,各個輸入數據對于揭露程序中的錯誤都是等效的,并合理地假定:測試某等價類的代表值就等于對這一類其它值的測試,因此,可以把全部輸入數據合理劃分為若干等價類,在每一個等價類中取一個數據作為測試的輸入條件就可以用少量代表性的測試數據取得較好的測試結果。等價類劃分可有兩種不同的情況:有效等價類和無效等價類。  1)有效等價類  是指對于程序的規格說明來說是合理的、有意義的輸入數據構成的集合。利用有效等價類可檢驗程序是否實現了規格說明中所規定的功能和性能。  2)無效等價類 

12、; 與有效等價類的定義恰巧相反。無效等價類指對程序的規格說明是不合理的或無意義的輸入數據所構成的集合。對于具體的問題,無效等價類至少應有一個,也可能有多個。舉例說明:某程序規定:"輸入三個整數 a 、 b 、 c 分別作為三邊的邊長構成三角形。通過程序判定所構成的三角形的類型,當此三角形為一般三角形、等腰三角形及等邊三角形時,分別作計算 "。用等價類劃分方法為該程序進行測試用例設計。分析題目中給出和隱含的對輸入條件的要求:   (1)整數    (2)三個數    (3)非零數 

13、60; (4)正數     (5)兩邊之和大于第三邊     (6)等腰     (7)等邊    如果 a 、 b 、 c 滿足條件( 1 ) ( 4 ),則輸出下列四種情況之一:   1)如果不滿足條件(5),則程序輸出為 " 非三角形 " 。   2)如果三條邊相等即滿足條件(7),則程序輸出為 " 等邊三角形 " 。   3)如果只有兩條邊相等、即滿足條件(6

14、),則程序輸出為 " 等腰三角形 " 。   4)如果三條邊都不相等,則程序輸出為 " 一般三角形 " 。    列出等價類表并編號輸入條件輸入三個整數有效等價類型號碼無效等價類號碼整數1 a為非整數一邊為 b為非整數非整數 c為非整數兩邊為 a,b為非整數非整數 b,c為非整數 a,c為非整數三邊a,b,c均為非整數12131415161718三個數2 只給a只給一邊 只給b 只給c 只給ab只給一邊 只給b,c 只給ac給出三個以上19202122232425非零數3 a為0一邊為零 b為0 c為0 a,b為0

15、只給一邊 b,c為0 a,c為0三邊a,b,c均為026272829303132正數4 a<0一邊<0 b<0 a<0 a<0且b<0二邊<0 a<0且c<0 b<0且c<0三邊均<0:a<0且b<0且c<033343536373839輸出條件構成一般三角形a+b>cb+c>aa+c>b567 a+b<ca+b=cb+c<a b+c=aa+c<b a+c=b404142434445構成等腰三角形a=bb=c 且兩邊之和大于第三邊a=c 8910構成等邊三角形a=b=c1

16、1覆蓋有效等價類的測試用例:    a      b      c         覆蓋等價類號碼    3      4      5         (1)-(7)&

17、#160;   4      4      5         (1)-(7),(8)    4      5      5          (1)-(7),(9)&#

18、160;       5      4      5         (1)-(7),(10)    4      4      4        &

19、#160;(1)-(7),(11)  覆蓋無效等價類的測試用例:abc覆蓋等價類號碼abc覆蓋等價類號碼2.545120052934.55133003034.55.514040313.54.55150003234.55.516-345333.544.5173-45344.54.55.51834-535319-3-4536420-34-5375213-4-5383422-3-4-5394523315403524325413452531142045263214330527142443402834145邊界值定義邊界值分析法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。通常邊界值分析

20、法是作為對等價類劃分法的補充,這種情況下,其測試用例來自等價類的邊界與等價劃分的區別l 邊界值分析不是從某等價類中隨便挑一個作為代表,而是使這個等價類的每個邊界都要作為測試條件。l 邊界值分析不僅考慮輸入條件,還要考慮輸出空間產生的測試情況。舉例說明:現有一個學生標準化考試批閱試卷,產生成績報告的程序。其規格說明如下:程序的輸入文件由一些有80個字符的記錄組成,如右圖所示,所有記錄分為3組:標題:這一組只有一個記錄,其內容為輸出成績報告的名字。  試卷各題標準答案記錄:每個記錄均在第80個字符處標以數字"2"。該組的第一個記錄的第1至第3個字符為題目編號(取值為1

21、一999)。第10至第59個字符給出第1至第50題的答案(每個合法字符表示一個答案)。該組的第2,第3個記錄相應為第51至第100,第101至第150,題的答案。  每個學生的答卷描述:該組中每個記錄的第80個字符均為數字"3"。每個學生的答卷在若干個記錄中給出。如甲的首記錄第1至第9字符給出學生姓名及學號,第10至第59字符列出的是甲所做的第1至第50題的答案。若試題數超過50,則第2,第3紀錄分別給出他的第51至第100,第101至第150題的解答。然后是學生乙的答卷記錄。  學生人數不超過200,試題數不超過999。   程序的輸出有4個

22、報告:    a)按學號排列的成績單,列出每個學生的成績、名次。    b)按學生成績排序的成績單。    c)平均分數及標準偏差的報告。    d)試題分析報告。按試題號排序,列出各題學生答對的百分比。   解答:分別考慮輸入條件和輸出條件,以及邊界條件。給出下表所示的輸入條件及相應的測試用例。輸入條件測試用例輸入文件空輸入文件標題沒有標題標題只有一個字符標題有80個字符試題數試題數為1試題數為50試題數為51試題數為100試題數為0試題數含有非數字字符標準答案記

23、錄沒有標準答案記錄,有標題標注答案記錄多于一個標注答案記錄少一個學生人數0個學生1個學生200個學生201個學生學生答題某學生只有一個回答記錄,但有兩個標準答案記錄該學生是文件中的第一個學生該學生是文件中的最后一個學生(記錄數出錯的學生)學生答題某學生有兩個回答記錄,但只有一個標準答案記錄該學生是文件中的第一個學生(記錄數出錯的學生)該學生是文件中的最后一個學生學生成績所有學生的成績都相等每個學生的成績都不相等部分學生的成績相同(檢查是否能按成績正確排名次)有個學生0分有個學生100分輸出條件及相應的測試用例表。輸出條件測試用例輸出報告a、b有個學生的學號最小(檢查按序號是否正常)有個學生的學

24、號最大(檢查按序號排序是否正確)適當的學生人數,使產生的報告剛好滿一頁(檢查打印頁數)學生人數比剛才多出1人(檢查打印換頁)輸出報告c平均成績100平均成績0標準偏差為最大值(有一半的0分,其他100分)標準偏差為0(所欲成績相等)輸出報告d所有學生都答對了第一題所有學生都答錯了第一題所有學生都答對了最后一題所有學生都答錯了最后一題選擇適當的試題數,是第四個報告剛好打滿一頁試題數比剛才多1,使報告打滿一頁后,剛好剩下一題未打錯誤推測法定義基于經驗和直覺推測程序中所有可能存在的各種錯誤, 從而有針對性的設計測試用例的方法。因果圖定義是一種利用圖解法分析輸入的各種組合情況,從而設計測試用例的方法,

25、它適合于檢查程序輸入條件的各種組合情況。舉例說明:某軟件規格說明書包含這樣的要求:第一列字符必須是A或B,第二列字符必須是一個數字,在此情況下進行文件的修改,但如果第一列字符不正確,則給出信息L;如果第二列字符不是數字,則給出信息M。解答:1) 根據題意,原因和結果如下:       原因:          1第一列字符是A;         

26、2第一列字符是B;          3第二列字符是一數字。       結果:          21修改文件;          22 給出信息L;          23給出

27、信息M。2) 其對應的因果圖如下:11為中間節點;考慮到原因1和原因2不可能同時為1,因此在因果圖上施加E約束。E123112221233)根據因果圖建立判定表。12345678條件(愿意)111110000動作(結果)21100110031010101011111100220000112110100023010101測試用例A3AMB5BNC2DYA8A?B4B!X6P;   表中8種情況的左面兩列情況中,原因和原因同時為1,這是不可能出現的,故應排除這兩種情況。表的最下一欄給出了6種情況的測試用例,這是我們所需要的數據。 判定表定義判定表是分析和表達多邏輯條件下執行不同操作的情況的工具判定表的建立步驟l 確定規則的個數.假如有n個條件。每個條件有兩個取值(0,1),故有2n種規則。l 列出所有的條件樁和動作樁。l 填入條件項。l 填入動作項。等到初始判定表。l 簡化.合并相似規則(相同動作)。7 軟件測試工具7.1功能測試工具Mercury Interactive WinrunnerMercury Interactive QuickTest ProfessionalIBM

溫馨提示

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

評論

0/150

提交評論