




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
軟件質量與測試沈陽師范大學軟件學院1課程概述學習前的要求掌握軟件工程基本概念掌握軟件開發(fā)方法和軟件開發(fā)語言了解Web程序開發(fā)
沈陽師范大學軟件學院2課程概述參考書目《軟件測試》PaulC.Jorgensen,韓柯等譯,2002,機械工業(yè)出版社《軟件測試方法和技術》朱少民,2011,清華大學出版社《高級軟件測試技術》杜慶峰,2011,清華大學出版社《實用軟件測試教程》溫艷冬,2011,清華大學出版社沈陽師范大學軟件學院3防不勝防的軟件錯誤例1:1963年,美國,飛往火星的火箭爆炸,損失$10million原因:FORTRAN循環(huán)DO5I=1,3誤寫為DO5I=1.3例2:1996年,美國,飛往哥倫比亞城市Cali的客機失事,163人中僅4人生還
原因:關于目的地坐標的、由一個字符構成的計算機命令的錯誤輸入,兩相距132英里的城市坐標在南美航空表中代碼相同例3:1996年,ESA的火箭處女航失敗,升空后僅飛行40秒就偏離了其預定軌道,該火箭被遠程控制所毀并失去她攜帶的4個衛(wèi)星,損失達5億美元
4沈陽師范大學軟件學院防不勝防的軟件錯誤原因:慣性參考系方面的問題未經討論和解決例4:1994-1995年,迪斯尼的獅子王,第一個面向兒童的多媒體光盤游戲,投訴電話被打爆.原因:未對市場上的各種PC機型進行正確測試,軟件在大眾使用的常見系統(tǒng)中難以運行例5:1994年,英特爾奔騰浮點除法軟件缺陷,導致為自己的行為道歉并花費4億多美元更換壞芯片.原因:芯片發(fā)布前已發(fā)現問題,但管理層忽略了;軟件缺陷被發(fā)現時,英特爾試圖掩飾該問題的嚴重性;受到壓力時,英特爾承諾更換芯片但要求用戶證明自己受到軟件缺陷的影響.沈陽師范大學軟件學院5防不勝防的軟件錯誤例6:1999年,美國航天局火星基地登陸飛船在試圖登陸火星表面時失蹤.原因:為省錢而簡化確定何時關閉推進器的裝置,導致飛船著陸時誤更改一個數據位,兩個測試小組的獨立工作做的很好,但從未走在一起例7:1991年,美國愛國者導彈防御系統(tǒng)在幾次對抗導彈戰(zhàn)役中失利,多哈戰(zhàn)誤擊斃28名美軍士兵.原因:一個很小的系統(tǒng)時鐘錯誤積累,可能拖延14小時并造成跟蹤系統(tǒng)失去準確度,多哈戰(zhàn)中系統(tǒng)拖延了100多個小時沈陽師范大學軟件學院6本章內容1.1什么是軟件測試1.2軟件測試基礎1.3軟件測試原則和困境沈陽師范大學軟件學院7本節(jié)內容1.1什么是軟件測試1.1.1軟件測試的發(fā)展1.1.2軟件測試的術語1.1.3IEEE對軟件測試的定義沈陽師范大學軟件學院81.1.1軟件測試的發(fā)展1.1.1軟件測試的發(fā)展早期——70年代:存在測試;無軟件測試理論和方法;目的證明軟件是可運行的;70年代:開始出現測試理論和測試方法;1979年Myers《TheArtofSoftwareTesting》;軟件測試目的:finderrorsinsoftware;一個好的測試:finderrorsthatnotbeenfound;80年代:軟件行業(yè)進入飛速發(fā)展時期,軟件趨向復雜化、大型化,人們把“質量”融入到了軟件測試里,形成了全新的軟件測試與質量保證21世紀初:軟件測試深入到了軟件開發(fā)的整個生命周期里,并且更側重于面向對象軟件測試、測試驅動開發(fā)、極限開發(fā)測試等新的領域沈陽師范大學軟件學院91.1.2軟件測試的術語術語和定義錯誤(error)缺陷(fault)失效(failure)事故(incident)沈陽師范大學軟件學院101.1.2軟件測試的術語術語和定義錯誤(error)缺陷(fault)失效(failure)事故(incident)沈陽師范大學軟件學院111.1.2軟件測試的術語錯誤(error)是軟件本身的錯誤,由程序員在編程過程中造成的(somethingwronginsoftwareitself)應用到測試過程時,有兩種不同的使用方式:指一個實際測量值與理論預期值之間的分歧指一些人的行為引起的軟件中的某種失效或缺陷沈陽師范大學軟件學院121.1.2軟件測試的術語術語和定義錯誤(error)缺陷(fault)失效(failure)事故(incident)沈陽師范大學軟件學院131.1.2軟件測試的術語缺陷(fault)
是錯誤的結果,是錯誤的表現,是導致系統(tǒng)失敗的條件。系統(tǒng)出錯的基本原因是缺陷。(observableinsoftwarebehavior)沈陽師范大學軟件學院141.1.2軟件測試的術語缺陷(fault)
微小的(Minor)一般的
(Major)
嚴重的(Critical)致命的(Fatal)
沈陽師范大學軟件學院151.1.2軟件測試的術語術語和定義錯誤(error)缺陷(fault)失效(failure)事故(incident)沈陽師范大學軟件學院161.1.2軟件測試的術語失效(failure)
指不能按軟件規(guī)格說明的要求執(zhí)行一個軟件片段。缺陷執(zhí)行時會發(fā)生失效,與需求規(guī)格說明有關,但不是所有的缺陷都會導致失效。(somethingwronginsoftwarebehavior,deviatesfromrequirements)表現:只出現在可執(zhí)行的表現中,通常是源代碼這種定義只與過錯缺陷有關沈陽師范大學軟件學院171.1.2軟件測試的術語如果在系統(tǒng)中有一個錯誤,則失效必然出現;如果失效出現了,則系統(tǒng)中必然有一個缺陷;如果系統(tǒng)中有一個缺陷,系統(tǒng)有可能出現失效,但并非一定出現失效。沈陽師范大學軟件學院181.1.2軟件測試的術語術語和定義錯誤(error)缺陷(fault)失效(failure)事故(incident)沈陽師范大學軟件學院191.1.2軟件測試的術語事故(incident)
出現失效時,可能會也可能不會呈現出來。事故說明出現了與失效類似的情況,警告用戶注意所出現的失效。沈陽師范大學軟件學院20IncidentFailureFaultError1.1.2軟件測試的術語IEEE對軟件測試的定義
使用人工和自動手段來運行或測試某個系統(tǒng)的過程,其目的在于檢驗其是否滿足規(guī)定的需要或是弄清楚預期結果與實際結果之間的差別。沈陽師范大學軟件學院21本節(jié)內容1.2軟件測試基礎
1.2.1軟件測試主要內容 1.2.2軟件測試過程模型 1.2.3軟件測試分類沈陽師范大學軟件學院221.2.1軟件測試主要內容1.2.1軟件測試主要內容
軟件工程與軟件測試軟件質量與度量沈陽師范大學軟件學院23軟件工程與軟件測試軟件測試是軟件開發(fā)過程的一個階段軟件開發(fā)模型影響軟件測試軟件測試不只是程序測試軟件測試應貫穿于軟件定義與開發(fā)的整個生命周期源程序的測試中找到的程序錯誤不一定都是程序編寫過程中造成的軟件測試受軟件開發(fā)各種因素的影響軟件測試本身必須工程化沈陽師范大學軟件學院24軟件工程與軟件測試軟件測試在軟件工程中的作用是軟件開發(fā)過程中不可缺少的一環(huán)將占據主要的開發(fā)時間和經費發(fā)現和彌補開發(fā)中的錯誤和缺陷保證軟件質量的手段證明軟件是可用的沈陽師范大學軟件學院25軟件工程與軟件測試軟件工程對軟件測試的約束軟件測試的依據來源于開發(fā)過程軟件測試的結果必須反饋給開發(fā)過程軟件測試的時間、經費、人員受到約束沈陽師范大學軟件學院26軟件工程與軟件測試軟件工程模型中的軟件測試軟件測試方法模型隨著軟件工程模型發(fā)展而變化不同模型中,軟件測試地位和作用不一樣軟件測試的作用:找到軟件bug;保證軟件質量;指導軟件開發(fā);沈陽師范大學軟件學院27軟件工程與軟件測試瀑布模型沈陽師范大學軟件學院28軟件工程與軟件測試螺旋模型沈陽師范大學軟件學院29軟件工程與軟件測試軟件錯誤或缺陷的來源產品說明書:沒有說明書、說明書不全面、經常修改、開發(fā)小組的溝通不夠。設計方案:片面性、易變性、溝通不夠。代碼錯誤:往往也是由軟件復雜性、說明文檔不足、進度壓力等造成測試錯誤:測試本身帶來的錯誤沈陽師范大學軟件學院30軟件工程與軟件測試軟件開發(fā)團隊成員項目經理產品設計人員構架師:定義代碼和數據結構的總體內部設計、數據通信等,編寫高級白盒測試計劃,設計驗收測試等領域事務專家或軟件分析師:理解客戶的真正需要,用設計人員能理解的術語定義客戶需求用戶界面程序員:創(chuàng)建用戶界面主任程序員:編寫內部設計規(guī)格說明產品營銷經理沈陽師范大學軟件學院31軟件工程與軟件測試軟件開發(fā)團隊成員(續(xù))文檔編寫人員測試人員特定項目會包括其他團隊成員美工可靠性分析師安全性分析師硬件工程師律師。。。技術支持代表沈陽師范大學軟件學院32軟件工程與軟件測試軟件測試何時可以停止?軟件系統(tǒng)經單元、集成、系統(tǒng)測試,分別達到單元、集成、系統(tǒng)測試停止標準軟件系統(tǒng)通過驗收測試,并已得出驗收測試結論軟件項目需暫停以進行調整時,測試應隨之暫停,并備份暫停點數據軟件項目在其開發(fā)生命周期內出現重大估算,進度偏差,需暫?;蚪K止時,測試應隨之暫停或終止,并備份暫?;蚪K止點數據沈陽師范大學軟件學院33軟件工程與軟件測試軟件測試需要工程化軟件測試是一項復雜的工作軟件測試的成本、效率和可靠性問題軟件測試必須從藝術向工程轉變軟件測試工作必須是可控的軟件測試的結果必須是可信的沈陽師范大學軟件學院34軟件工程與軟件測試軟件測試的一般過程沈陽師范大學軟件學院35TestCaseGenerationTestCaseSoftwaretobetestedOutput軟件質量與度量軟件質量評價軟件需求是衡量軟件質量的基礎,不符合需求的軟件就不具備質量。設計的軟件應在功能、性能等方面都符合要求,并能可靠地運行。軟件結構良好,易讀、易于理解,并易于修改、維護。軟件系統(tǒng)具有友好的用戶界面,便于用戶使用。軟件生存周期中各階段文檔齊全、規(guī)范,便于配置、管理。沈陽師范大學軟件學院36軟件質量與度量質量度量模型ISO/IEC9126-1991標準規(guī)定的軟件質量度量模型。它由3層組成,其中第1層稱為質量特性,第2層稱為質量子特性,第3層稱為度量。沈陽師范大學軟件學院37軟件質量與度量沈陽師范大學軟件學院381.2.2軟件測試過程模型V模型
V模型是最具有代表意義的測試模型,反映出了測試活動與分析設計活動的關系。V模型指出,單元和集成測試應檢測程序的執(zhí)行是否滿足軟件設計的要求;系統(tǒng)測試應檢測系統(tǒng)功能、性能的質量特性是否達到系統(tǒng)要求的指標;驗收測試確定軟件的實現是否滿足用戶需要或合同的要求。沈陽師范大學軟件學院391.2.2軟件測試過程模型沈陽師范大學軟件學院401.2.2軟件測試過程模型W模型
W模型由兩個V字型模型組成,分別代表測試與開發(fā)過程。W模型強調:測試伴隨著整個軟件開發(fā)周期,而且測試的對象不僅僅是程序,需求、設計等同樣要測試,也就是說,測試與開發(fā)是同步進行的。沈陽師范大學軟件學院411.2.2軟件測試過程模型沈陽師范大學軟件學院421.2.2軟件測試過程模型H模型
H模型將測試活動完全獨立出來,形成了一個完全獨立的流程,將測試準備活動和測試執(zhí)行活動清晰地體現出來。H模型揭示了軟件測試是一個獨立的流程,貫穿產品整個生命周期,與其他流程并發(fā)地進行。沈陽師范大學軟件學院431.2.2軟件測試過程模型沈陽師范大學軟件學院441.2.3軟件測試過程分類按測試方式分類靜態(tài)測試動態(tài)測試按測試方法分類白盒測試黑盒測試按測試過程分類單元測試集成測試系統(tǒng)測試驗收測試沈陽師范大學軟件學院451.2.3軟件測試過程分類按測試目的分類功能測試健壯性測試接口測試性能測試壓力測試用戶界面測試安全測試可靠性測試安裝/反安裝測試文檔測試恢復測試兼容性測試沈陽師范大學軟件學院46本節(jié)內容1.3軟件測試原則和困境
1.3.1軟件測試原則 1.3.2軟件測試困境
沈陽師范大學軟件學院471.3.1軟件測試原則軟件測試的衡量標準多:能找到盡可能多的、以至于所有的錯誤快:能盡可能早地發(fā)現最嚴重的錯誤好:找到的錯誤是關鍵的、用戶最關心的;找到錯誤后能重現找到的錯誤,并為其修正提供盡可能多的信息。?。耗苡米钌俚臅r間、人力和資源發(fā)現錯誤;測試的過程和數據可重用沈陽師范大學軟件學院481.3.1軟件測試原則軟件測試原則測試應基于用戶需求測試設計是關鍵測試時間和資源是有限的測試到所有情況是不可能的避免冗余的測試測試用例應設計良好應盡早開始測試并不斷地進行測試盡早制定測試計劃測試從模塊級開始測試貫穿于軟件開發(fā)的各個階段沈陽師范大學軟件學院491.3.1軟件測試原則軟件測試原則心理素質最重要開發(fā)人員我不會犯錯任何人都可能犯錯這種錯誤不能算作錯誤質量是由用戶來評價的發(fā)現我的錯誤是對我工作的否定是對我的工作的幫助測試人員我責任心不夠,反正測試是不可能發(fā)現所有錯誤的職業(yè)教育+激勵措施沒有創(chuàng)造性、枯燥總結經驗,培養(yǎng)敏銳度,提升個人價值和權威技術比開發(fā)人員差,自信心不足代表用戶,決定成功的是用戶滿意沈陽師范大學軟件學院501.3.1軟件測試原則軟件測試原則測試前必須明確預期的輸出結果可能的情況下,應避免測試自己的軟件發(fā)現不了思路錯誤發(fā)現不了環(huán)境錯誤心理因素導致測試可能不夠徹底和全面應充分注意測試中的群集現象Pareto原則:測試發(fā)現的錯誤中的80%很可能集中于20%的程序模塊中編碼規(guī)范、需求理解、技術能力、內部耦合性都會導致這種“蟲子窩“現象心經驗表明,測試后程序中殘存的錯誤數目與該程序中已發(fā)現的錯誤數目成正比沈陽師范大學軟件學院511.3.1軟件測試原則軟件測試原則測試設計決定了測試的有效性和效率,測試工具只能提高測試效率,而非萬能注意保留測試設計,并注意測試設計的可重用性和說明文檔測試活動要有組織、有計劃、有選擇窮舉測試是不可能的不充分的測試是不負責任,過度的測試是浪費資源計劃的活動提高效率不要放棄隨機測試的方法軟件測試員在開發(fā)小組中不受歡沈陽師范大學軟件學院521.3.2軟件測試困境哲學上的困境測試不能證明程序的正確,只能證明程序的錯誤;測試是NP-hard問題技術上的困境測試用例生成;測試的代價和軟件開發(fā)的沖突;測試自動化;沈陽師范大學軟件學院53
第二章軟件測試技術沈陽師范大學軟件學院54本章內容白盒測試技術黑盒測試技術沈陽師范大學軟件學院55本節(jié)內容2.2黑盒測試技術2.2.1邊界值分析法2.2.2等價類分析法2.2.3因果圖分析法2.2.4決策表分析法沈陽師范大學軟件學院562.2.1邊界值分析法黑盒測試概述任何程序都可看作是將從輸入定義域取值映射到輸出值域的函數,不考慮程序內部的邏輯結構和特性,只根據軟件的規(guī)格需求說明書,觀察程序的入口和出口,是否符合功能說明;對于一些外購軟件、參數化軟件包,因無法得到源程序,只能用黑盒測試。沈陽師范大學軟件學院57輸入輸出2.2.1邊界值分析法邊界值概念從根本上講,任何程序都可看作是一個函數,它從一個集合(函數的定義域,即程序的輸入)的值映射到另一個集合(函數的值域,即程序的輸出)的值上。
沈陽師范大學軟件學院58Output=F(Input)DomainRangeF輸入定義域測試應把需求規(guī)格說明中對輸入和對輸出的要求區(qū)別開來并加以分解2.2.1邊界值分析法邊界值產生的原因從長期的測試工作經驗知,由于在軟件設計和程序編寫中,常對規(guī)格說明中的輸入或輸出域邊界不注意,導致大量錯誤發(fā)生在輸入或輸出范圍的邊界上,而非輸入或輸出范圍的內部。設計測試用例時,對邊界附近的處理必須給予足夠重視,為檢驗邊界附件的處理專門設計測試用例??扇〉昧己玫臏y試效果?;舅枷耄哼x擇輸入或輸出變量的極值、略低于或略高于極值設計測試用例。沈陽師范大學軟件學院592.2.1邊界值分析法邊界選擇的原則輸入條件規(guī)定了取值范圍,則以該范圍作為邊界輸入條件規(guī)定了值的個數,則以之為邊界;針對規(guī)格說明的每個輸出條件,使用前面的原則(1)和(2);如果規(guī)格說明給出的輸入或輸出域是有序集合(如有序表、順序文件等),則選取集合中特定次序的元素作為邊界,如第一個、最后一個元素等;如果程序中使用了一個內部數據結構,則應選擇該結構的邊界上的值,如數組、鏈表等;分析規(guī)格說明,找出其它可能邊界條件。
60沈陽師范大學軟件學院2.2.1邊界值分析法常見的邊界值對16-bit的整數而言32767和-32768是邊界屏幕上光標在最左上、最右下位置報表的第一行和最后一行數組元素的第一個和最后一個循環(huán)的第0次、第1次和倒數第2次、最后一次沈陽師范大學軟件學院612.2.1邊界值分析法例題測試計算平方根的函數
——輸入:實數
——輸出:實數
——規(guī)格說明:當輸入一個0或比0大的數的時候,返回其正平方根;當輸入一個小于0的數時,顯示錯誤信息“平方根非法-輸入值小于0”并返回0;庫函數Print-Line可以用來輸出錯誤信息。沈陽師范大學軟件學院622.2.1邊界值分析法解題可以考慮作出如下劃分:輸入(i)<0和(ii)>=0輸出(a)>=0和(b)Error測試用例有兩個:輸入4,輸出2。對應于(ii)和(a)。輸入-10,輸出錯誤提示。對應于(i)和(b)。沈陽師范大學軟件學院632.2.1邊界值分析法邊界值分析:劃分(ii)的邊界為0和最大正實數;劃分(i)的邊界為最小負實數和0;由此得到以下測試用例:輸入{最小負實數}輸入{絕對值很小的負數}輸入0
輸入{絕對值很小的正數}
輸入{最大正實數}沈陽師范大學軟件學院642.2.1邊界值分析法邊界值分析:通常字符情況下,軟件測試包含的邊界檢驗有幾種類型:數字位置、質量、大小、速度、方位、尺寸、空間等相應地,以上類型的邊界值應該在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最長、空/滿等情況下。沈陽師范大學軟件學院652.2.1邊界值分析法邊界值分析:
在多數情況下,邊界值條件是基于應用程序的功能設計而需要考慮的因素,可以從軟件的規(guī)格說明或常識中得到,也是最終用戶可以很容易發(fā)現問題的。然而,在測試用例設計過程中,某些邊界值條件是不需要呈現給用戶的,或者說用戶是很難注意到的,但同時確實屬于檢驗范疇內的邊界條件,稱為內部邊界值條件或子邊界值條件。沈陽師范大學軟件學院662.2.1邊界值分析法內部邊界值條件主要有下面幾種:數值的邊界值檢驗字符的邊界值檢驗其它邊界值檢驗沈陽師范大學軟件學院672.2.1邊界值分析法數值的邊界值檢驗:計算機是基于二進制進行工作的,因此,軟件的任何數值運算都有一定的范圍限制。沈陽師范大學軟件學院682.2.1邊界值分析法字符的邊界值檢驗:在字符的編碼方式中,ASCII和Unicode是比較常見的編碼方式,下面表中列出了部分的ASCII碼對應表。沈陽師范大學軟件學院692.2.1邊界值分析法沈陽師范大學軟件學院70字符ASCII值字符ASCII值Null0B66Space32Z90/47[91048‘96149a97957b98:58y121@64z122A65{1232.2.1邊界值分析法其它邊界值檢驗:
包括默認值/空值/空格/未輸入值/零、無效數據/不正確數據和干擾數據等。在實際的測試用例設計中,需要將基本的軟件設計要求和程序定義的要求結合起來,即結合基本邊界值條件和子邊界值條件來設計有效的測試用例。沈陽師范大學軟件學院712.2.1邊界值分析法邊界值測試方法:故障往往出現在輸入變量的邊界值附近。利用輸入變量的最小值(min) 略大于最小值(min+)、 輸入值域內的任意值(nom)、 略小于最大值(max-)和 最大值(max)來設計測試用例。沈陽師范大學軟件學院722.2.1邊界值分析法邊界值測試方法:沈陽師范大學軟件學院73邊界值分析測試用例2.2.1邊界值分析法邊界值測試方法:
邊界值分析法是基于可靠性理論中稱為“單故障”的假設,即有兩個或兩個以上故障同時出現而導致軟件失效的情況很少,也就是說,軟件失效基本上是由單故障引起的。因此,在邊界值分析法中獲取測試用例的方法是:每次保留程序中一個變量,讓其余的變量取正常值,被保留的變量依次取min、min+、nom、max-和max。
對程序中的每個變量重復(1)。沈陽師范大學軟件學院742.2.1邊界值分析法例題:有二元函數f(x,y),其中x∈[1,12],y∈[1,31]。則采用邊界值分析法設計的測試用例是:
{<1,15>,<2,15>,<11,15>,<12,15>,<6,15>,<6,1>,<6,2>,<6,30>,<6,31>}推論:對于一個含有n個變量的程序,采用邊界值分析法測試程序會產生4n+1個測試用例。沈陽師范大學軟件學院752.2.1邊界值分析法練習:有函數f(x,y,z),其中x∈[1900,2100],y∈[1,12],z∈[1,31]的。請寫出該函數采用邊界值分析法設計的測試用例。沈陽師范大學軟件學院762.2.1邊界值分析法解答:
<2000,6,1>,<2000,6,2>,<2000,6,30>,<2000,6,31>;<2000,1,15>,<2000,2,15>,<2000,11,15>,<2000,12,15>,
<1900,6,15>,<1901,6,15>,<2099,6,15>,<2100,6,15>,<2000,6,15>沈陽師范大學軟件學院772.2.1邊界值分析法健壯性測試:
健壯性測試是作為邊界值分析的一個簡單的擴充,它除了對變量的5個邊界值分析取值外,還需要增加一個略大于最大值(max+)以及略小于最小值(min-)的取值,檢查超過極限值時系統(tǒng)的情況。因此,對于有n個變量的函數采用健壯性測試需要6n+1個測試用例。沈陽師范大學軟件學院782.2.1邊界值分析法健壯性測試:
沈陽師范大學軟件學院79健壯性邊界值測試用例2.2.2等價類分析法等價類產生的原因:基本思想:把程序的輸入域劃分成若干部分,然后從每個部分中選取少數代表性數據當作測試用例,每一類的代表性數據在測試中的作用等價于這一類中的其它值。
沈陽師范大學軟件學院80劃分1234選擇代表元素輸入域互不相交的子集子集的并是整個集合完備性無冗余2.2.2等價類分析法等價類定義
由于不可能用所有可以輸入的數據來測試程序,而只能從全部可供輸入的數據中選擇一個自己進行測試。如何選擇適當的子集,使其盡可能多地發(fā)現錯誤,解決的辦法之一就是等價類。沈陽師范大學軟件學院812.2.2等價類分析法劃分
等價類劃分法是一種典型的、重要的黑盒測試方法,它將程序所有可能的輸入數據(有效的和無效的)劃分成若干個等價類。然后從每個部分中選取具有代表性的數據當做測試用例進行合理的分類,測試用例由有效等價類和無效等價類的代表組成,從而保證測試用例具有完整性和代表性。沈陽師范大學軟件學院822.2.2等價類分析法等價類劃分的步驟通過分析需求規(guī)格說明,劃分等價類,列出等價類表設計測試用例沈陽師范大學軟件學院832.2.2等價類分析法有效等價類/無效等價類有效等價類:對于程序的規(guī)格說明而言,是合理的、有意義的輸入數據構成的集合用于檢驗程序是否實現了規(guī)格說明預先規(guī)定的性能和性能無效等價類:對于程序的規(guī)格說明而言,是不合理的、無意義的輸入數據構成的集合用于檢查程序中功能和性能的實現是否不符合規(guī)格說明要求沈陽師范大學軟件學院842.2.2等價類分析法例題
在程序的規(guī)格說明中,對輸入條件有一句話:“……項數可以從1到999……”有效等價類是“1≤項數≤999”兩個無效等價類是“項數<1”或“項數>999”。在數軸上表示成:沈陽師范大學軟件學院851999x有效等價類無效等價類無效等價類2.2.2等價類分析法測試用例的設計為每個等價類規(guī)定一個唯一的編號;設計一個新的測試用例,使之盡可能多地覆蓋尚未被覆蓋的有效等價類,重復這一步直至所有的有效等價類都被覆蓋為止;設計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重復這一步直至所有的無效等價類都被覆蓋為止。沈陽師范大學軟件學院862.2.2等價類分析法例題
某報表處理系統(tǒng)要求用戶輸入處理報表的日期,日期限制在2001年1月至2005年12月,即系統(tǒng)只能對該段期間內的報表進行處理,如日期不在此范圍內,則顯示輸入錯誤信息。系統(tǒng)日期規(guī)定由年、月的6位數字字符組成,前四位代表年,后兩位代表月。如何用等價類劃分法設計測試用例,來測試程序的日期檢查功能?沈陽師范大學軟件學院872.2.2等價類分析法解答第一步:等價類劃分
“報表日期”輸入條件的等價類表沈陽師范大學軟件學院882.2.2等價類分析法解答第二步:為有效等價類設計測試用例對表中編號為1,2,3的3個有效等價類用一個測試用例覆蓋:沈陽師范大學軟件學院892.2.2等價類分析法解答第三步:為每一個無效等價類設計至少一個測試用例沈陽師范大學軟件學院902.2.2等價類分析法習題一
某程序規(guī)定:“輸入三個整數作為三邊的邊長構成三角形。當此三角形為一般三角形、等腰三角形及等邊三角形時,分別做計算...”。試用等價類劃分方法為該程序的構成三角形部分進行測試用例設計。沈陽師范大學軟件學院91習題二某城市的電話號碼由三部分組成。這三部分的名稱和內容分別是地區(qū)碼:空白或三位數字;前綴:非’0’或’1’開頭的三位數;后綴:四位數字。假定被調試的程序能接受一切符合上述規(guī)定的電話號碼,拒絕所有不符合規(guī)定的號碼,試用等價分類法來設計它的調試用例。沈陽師范大學軟件學院922.2.2等價類分析法習題使用等價類劃分方法必須仔細分析和推敲題目所給出的要求。本題的輸人條件要求的關鍵之處有:
1)整數;
2)三個數;
3)非零數;
4)正數;輸出條件要求的關鍵之處有:5)應滿足兩邊長之和大于第三邊邊長;
6)等腰;
7)等邊;其中,3)、4)和5)并沒有在題目上明顯給出,但這些條件是必要的。
沈陽師范大學軟件學院932.2.2等價類分析法解答以下分兩步進行:(1)列出等價類表(表中號碼為等價類編號)(2)列出覆蓋上述等價類的測試用例
沈陽師范大學軟件學院942.2.2等價類分析法解答列出等價類表
沈陽師范大學軟件學院95有效等價類無效等價類輸入參數個數3(1)>3(2);<3(3)輸入參數類型整數(4)非整數(5)輸入參數范圍>0(6)<=0(7)是否構成三角形兩邊之和大于第三邊(8)兩邊之和小于或等于第三邊(9)三角形類型等腰三角形(10)等邊三角形(11)三邊不等三角形(12)2.2.2等價類分析法解答設計測試用例覆蓋等價類
沈陽師范大學軟件學院96序號輸入參數覆蓋等價類12,3,4(1),(4),(6),(8),(12)23,3,4(1),(4),(6),(8),(10)33,3,3(1),(4),(6),(8),(11)42,3,4,5(2)52,3(3)62,3.5,4(5)76,0,6(7)85,1,6(9)2.2.3因果圖分析法因果法(Cause/EffectGraphing)簡介因果圖法產生的背景:等價類劃分法和邊界值分析方法都是著重考慮輸入條件,但沒有考慮輸入條件的各種組合、輸入條件之間的相互制約關系。這樣雖然各種輸入條件可能出錯的情況已經測試到了,但多個輸入條件組合起來可能出錯的情況卻被忽視了。
沈陽師范大學軟件學院972.2.3因果圖分析法因果法(Cause/EffectGraphing)簡介如果在測試時必須考慮輸入條件的各種組合,則可能的組合數目將是天文數字因此必須考慮采用一種適合于描述多種條件的組合、相應產生多個動作的形式來進行測試用例的設計,這就需要利用因果圖(邏輯模型)。沈陽師范大學軟件學院982.2.3因果圖分析法因果法(Cause/EffectGraphing)簡介思想:一些程序的功能可以用判定表的形式來表示并根據輸入條件的組合情況規(guī)定相應的操作為判定表中的每一列設計一個測試用例,測試程序在輸入條件的某種組合下的輸出是否正確
沈陽師范大學軟件學院992.2.3因果圖分析法因果法(Cause/EffectGraphing)簡介定義:是一種利用圖解法分析輸入的各種組合情況,從而設計測試用例的方法,它適合于檢查程序輸入條件的各種組合情況。因果圖法也是一種黑盒測試技術,但是不如等價類、邊界值那樣常用因果圖法比較適合輸入條件較多的情況,測試所有的輸入條件的排列組合
沈陽師范大學軟件學院1002.2.3因果圖分析法案例獎金計算軟件:該軟件可以計算某公司的年終獎,該公司員工分為普通員工和管理人員;員工表現分為普通、優(yōu)秀和特殊貢獻(普通、優(yōu)秀員工都可以有特殊貢獻,不同組合所得工資是不同的)根據員工的分類和表現,將獎金分為1類獎金,2類獎金,
沈陽師范大學軟件學院1012.2.3因果圖分析法案例獎金計算軟件:使用該軟件時,輸入員工的種類和表現,就會輸出相應的獎金類別。請為該軟件設計測試用例這道題概括比較籠統(tǒng),不涉及具體細節(jié),只是一個總體的框架。
沈陽師范大學軟件學院1022.2.3因果圖分析法案例找到所有的輸入條件(原因)和輸出條件(結果),并為其編號:輸入條件員工類別:普通員工A1、管理人員A2員工表現:普通B1、優(yōu)秀B2、特殊貢獻B3輸出條件獎金類別:1類獎金C1、2類獎金C2
沈陽師范大學軟件學院1032.2.3因果圖分析法案例
分析輸入條件之間的關系,根據需求我們知道,A1和A2是互斥的(一個人不可能既是普通員工又是管理人員),B1和B2是互斥的(一個人不可能既表現普通又表現優(yōu)秀),B1和B3,B2和B3可以同時滿足。由此分析,我們可以列出所有的輸入條件排列組合:
沈陽師范大學軟件學院1042.2.3因果圖分析法案例普通員工A1+B1C1A1+B2C2A1+B1+B3C3A1+B2+B3C4管理員工A2+B1
C5A2+B2C6A2+B1+B3C7A2+B2+B3C8
沈陽師范大學軟件學院1052.2.3因果圖分析法因果圖的基本符號:簡單邏輯符號,直線連接左右節(jié)點通常情況下,左部的圓中寫原因,右部的圓中寫結果兩個圓中間以直線連接,連接線上再加符號表示因與果的不同關系ci表示原因;ei表示結果各結點表示狀態(tài),可取值“0”或“1”?!?”表示某狀態(tài)不出現,“1”表示某狀態(tài)出現,有以下四種邏輯關系
沈陽師范大學軟件學院1062.2.3因果圖分析法因果圖的基本符號:
沈陽師范大學軟件學院1072.2.3因果圖分析法原因與原因之間,結果與結果之間可能存在的約束條件:
沈陽師范大學軟件學院108a,b,c原因至少有一個必須成立a,b原因中必須且僅有一個成立當a出現,b也必須出現當a為1時,b必須為0,當a為0時,b的值不定a,b原因不會同時成立,最多有一個成立2.2.3因果圖分析法因果圖法最終生成的是判定表。利用因果圖生成測試用例的基本步驟如下:
(1)分析軟件規(guī)格說明中哪些是原因(即輸入條件或輸入條件的等價類),哪些是結果(即輸出條件),并給每個原因和結果賦予一個標識符。(2)分析軟件規(guī)格說明中的語義,找出原因與結果之間、原因與原因之間對應的關系,根據這些關系畫出因果圖。沈陽師范大學軟件學院1092.2.3因果圖分析法
(3)由于語法或環(huán)境的限制,有些原因與原因之間、原因與結果之間的組合情況不可能出現。為表明這些特殊情況,在因果圖上用一些記號表明約束或限制條件。(4)把因果圖轉換為決策表。(5)根據決策表中的每一列設計測試用例。沈陽師范大學軟件學院1102.2.3因果圖分析法使用因果圖法的優(yōu)點:
(1)考慮到了輸入情況的各種組合以及各個輸入情況之間的相互制約關系。
(2)能夠幫助測試人員按照一定的步驟,高效率的開發(fā)測試用例。
(3)因果圖法是將自然語言規(guī)格說明轉化成形式語言規(guī)格說明的一種嚴格的方法,可以指出規(guī)格說明存在的不完整性和二義性。沈陽師范大學軟件學院1112.2.3因果圖分析法因果圖法應用
例子:某軟件規(guī)格說明要求:第一個字符必須是#或*第二個字符必須是一個數字,在此情況下進行文件的修改如果第一個字符不是#或*,則給出信息N如果第二個字符不是數字,則給出信息M沈陽師范大學軟件學院1122.2.3因果圖分析法例題分析:原因:c1—第一個字符是#c2—第一個字符是*c3—第二個字符是一個數字結果:e1—給出信息Ne2—修改文件e3—給出信息M沈陽師范大學軟件學院1132.2.3因果圖分析法沈陽師范大學軟件學院114例題分析:
因果圖表示2.2.3因果圖分析法沈陽師范大學軟件學院115例題分析:
因果圖表示2.2.3因果圖分析法沈陽師范大學軟件學院116例題分析:
根據因果圖建立判定表2.2.3因果圖分析法沈陽師范大學軟件學院117練習:如圖所示,一個網絡登錄對話框用于向服務器進行登錄操作2.2.3因果圖分析法沈陽師范大學軟件學院118說明:Username只能包含字母和數字Password可以包含任何字符兩者都不能為空如果兩者為空或不合法輸入,不執(zhí)行登錄并提示輸入錯誤信息如果兩者都不合法,則只提示Username的錯誤信息如果兩者輸入都合法,執(zhí)行登錄操作,并顯示從服務器可能返回的3種提示信息之一Username不存在Password錯誤登錄成功2.2.3因果圖分析法沈陽師范大學軟件學院119假設我們已經對登錄對話框里限制了用戶名和密碼的最大長度,測試時可以不考慮超長字符串的情況.試為用戶名和密碼的各種組合設計測試用例.2.2.3因果圖分析法沈陽師范大學軟件學院120分析找出原因輸入的用戶名為空;輸入的用戶名包含非字母非數字字符;輸入的用戶名在服務器上存在;輸入的密碼為空;輸入錯誤的密碼;輸入正確的密碼.2.2.3因果圖分析法沈陽師范大學軟件學院121分析找出可能的結果不執(zhí)行登錄并提示用戶名不能為空;不執(zhí)行登錄并提示用戶名不能包含非字母非數字的非法字符;不執(zhí)行登錄并提示密碼不能為空;執(zhí)行登錄并提示用戶名在服務器上不存在;執(zhí)行登錄并提示密碼錯誤;執(zhí)行登錄并提示登錄成功.2.2.3因果圖分析法沈陽師范大學軟件學院122分析2.2.3因果圖分析法沈陽師范大學軟件學院123進一步分析由畫出的因果圖,我們看到輸入間有約束關系C1,C2,C3之間是異的約束關系C4,C5,C6之間是唯一的約束關系統(tǒng)計最后幾種組合?轉化為判定表2.2.3因果圖分析法沈陽師范大學軟件學院124進一步分析2.2.3因果圖分析法沈陽師范大學軟件學院125進一步分析2.2.4決策表分析法沈陽師范大學軟件學院126因果圖法太麻煩,而且全冗余決策表是功能性測試方法中最嚴格的。決策表的完備性保證一種完備的測試2.2.4決策表分析法沈陽師范大學軟件學院127因果圖法太麻煩,而且全冗余12345678問題你覺得疲倦嗎?YYYYNNNN你對內容感興趣嗎?YYNNYYNN書中的內容使你糊涂?YNYNYNYN建議請回到本章開頭重讀××繼續(xù)讀下去××跳到下一章去讀××停止閱讀,請休息××ConditionStub:列出問題的所有條件ConditionEntry:針對左列條件取值,給出真假值ActionStub:列出問題規(guī)定可能采取的行動ActionEntry:在條件組合下應采取的行動規(guī)則2.2.4決策表分析法沈陽師范大學軟件學院128決策表的化簡12345678問題你覺得疲倦嗎?YYYYNNNN你對內容感興趣嗎?YYNNYYNN書中的內容使你糊涂嗎?YNYNYNYN建議請回到本章開頭重讀××繼續(xù)讀下去××跳到下一章去讀××停止閱讀,請休息××YN-×NN-×不關心條目不關心條目對完整決策樹的識別有微妙影響。2.2.4決策表分析法沈陽師范大學軟件學院129決策表的化簡有限條目決策表——所有條件都是二叉條件條件的順序沒有要求若有n個條件,必須有(2n)條規(guī)則,每條規(guī)則對應一個測試用例。若存在不關心項,則規(guī)則中每出現一個不關心項,規(guī)則數乘1次2。通過增加行動,可顯示何時規(guī)則在邏輯上不可能滿足通過條件選擇,可大大擴展決策表的規(guī)模擴展條目決策表——條件可以有多個值若條件引用了等價類,則“—”的實際含義為:“必須失敗”2.2.4決策表分析法沈陽師范大學軟件學院130決策表組成:條件樁—列出問題的所有條件條件項—針對條件樁給出的條件列出所有可能的取值動作樁—列出問題規(guī)定的可能采取的操作動作項—指出在條件項的各組取值情況下應采取的動作規(guī)則:任何一個條件組合的特定取值及其相應要執(zhí)行的操作稱為規(guī)則2.2.4決策表分析法沈陽師范大學軟件學院131構造決策表2.2.4決策表分析法沈陽師范大學軟件學院132構造決策表(1)列出所有的條件樁和動作樁。
(2)確定規(guī)則的個數。
有n個條件的決策表有2n個規(guī)則(每個條件取真、假值)。
(3)填入條件項。
(4)填入動作項,得到初始決策表。
(5)簡化決策表,合并相似規(guī)則。2.2.4決策表分析法沈陽師范大學軟件學院133決策表應用實例對功率大于100馬力的機器、維修記錄不全或已經運行10年以上的機器,應給予優(yōu)先的維修處理.2.2.4決策表分析法沈陽師范大學軟件學院134決策表應用實例分析這里隱含的條件是什么?機器功率大小維修記錄運行時間對應的可能動作是什么?優(yōu)先維修正常維修.——條件樁——動作樁2.2.4決策表分析法沈陽師范大學軟件學院135決策表應用實例列出條件項每個條件的值分別取“是(1)”和“否(0)”組合條件項的值填上動作項根據組合條件項的值,填寫對應的動作項形成初步判定表.2.2.4決策表分析法沈陽師范大學軟件學院136決策表應用實例2.2.4決策表分析法沈陽師范大學軟件學院137化簡后決策表2.2.4決策表分析法沈陽師范大學軟件學院138化簡后決策表2.2.4決策表分析法沈陽師范大學軟件學院139練習三角形問題輸出的等價類R1={<a,b,c>|有三條邊a,b,c的等邊三角形}R2={<a,b,c>|有三條邊a,b,c的等腰三角形}R3={<a,b,c>|有三條邊a,b,c的不等邊三角形}R4={<a,b,c>|三條邊a,b,c不構成三角形}能構成三角形?三角形類型?2.2.4決策表分析法沈陽師范大學軟件學院140練習三角形問題的決策表C1:a,b,c構成三角形?NYYYYYYYYC2:a=b嗎?-YYYYNNNNC3:a=c嗎?-YYNNYYNNC4:b=c嗎?-YNYNYNYNA1:非三角形×A2:不等邊三角形×A3:等腰三角形×××A4:等邊三角形×A5:不可能×××通過增加行動,顯示何時規(guī)則在邏輯上不可能滿足通過條件選擇,擴展決策表的規(guī)模輸入條件的等價類D1={<a,b,c>|a>=b+c}D2={<a,b,c>|b>=a+c}D3={<a,b,c>|c>=a+b}2.2.4決策表分析法沈陽師范大學軟件學院141練習改進的三角形問題的決策表C1:a<b+c?NYYYYYYYYYYC2:b<a+c?-YYYYYYYYYYC3:c<a+b?-NYYYYYYYYYC4:a=b嗎?---YYYYNNNNC5:a=c嗎?---YYNNYYNNC6:b=c嗎?---YNYNYNYNA1:非三角形×××A2:不等邊三角形×A3:等腰三角形×××A4:等邊三角形×A5:不可能×××不關心條目對完整決策樹的識別有微妙影響。2.2.4決策表分析法沈陽師范大學軟件學院142練習改進的三角形問題的決策表對于有限條目決策表:若有n個條件,須有(2n)條規(guī)則。若存在不關心項,則規(guī)則中每出現一個不關心項,規(guī)則數乘1次2。C1:a<b+c?NYYYYYYYYYYC2:b<a+c?-NYYYYYYYYYC3:c<a+b?--NYYYYYYYYC4:a=b嗎?---YYYYNNNNC5:a=c嗎?---YYNNYYNNC6:b=c嗎?---YNYNYNYN規(guī)則條數統(tǒng)計A1:非三角形×××A2:不等邊三角形×A3:等腰三角形×××A4:等邊三角形×A5:不可能×××規(guī)則總數:64個規(guī)則條數統(tǒng)計32168111111112.2.4決策表分析法沈陽師范大學軟件學院143練習改進的三角形問題的測試用例用例IDabc預期輸出1412非三角形2142非三角形3124非三角形4555等邊三角形5???不可能6???不可能7232等腰三角形8???不可能9322等腰三角形10223等腰三角形11345不等邊三角形
第三章單元測試沈陽師范大學軟件學院144軟件工程系孟磊netmenglei@126.com本章內容單元測試計劃單元測試設計單元測試實現單元測試執(zhí)行沈陽師范大學軟件學院145本節(jié)內容3.1單元測試計劃3.1.1單元測試概述3.1.2單元測試環(huán)境構成3.1.3單元測試的重要性3.1.4單元測試計劃內容沈陽師范大學軟件學院1463.1.1單元測試概述
3.1.1單元測試概述單元測試就是對已實現的軟件最小單元進行測試,以保證構成軟件系統(tǒng)的各個單元的質量單元測試活動中,強調被測試對象的獨立性單元測試應從各個層次來對單元內部算法、外部功能實現等進行檢驗,包括對程序代碼的評審和通過運行單元程序來驗證其功能特性等內容。沈陽師范大學軟件學院1473.1.1單元測試概述
3.1.1單元測試概述沈陽師范大學軟件學院148單元測試流程圖3.1.2單元測試環(huán)境構成3.1.2單元測試環(huán)境構成
對于每一個輸入,應該有預期的正確結果。在單元測試時,如果一個模塊不是獨立的程序,需要輔助測試模塊,有兩種輔助模塊:驅動模塊(Driver):所測模塊的主程序。它接收測試數據,把這些數據傳遞給所測試模塊,最后再輸出測試結果。當被測試模塊能完成一定功能時,也可以不要驅動模塊。樁模塊(Stub):用來代替所測模塊調用的子模塊。沈陽師范大學軟件學院1493.1.2單元測試環(huán)境構成3.1.2單元測試環(huán)境構成沈陽師范大學軟件學院150單元測試環(huán)境3.1.3單元測試的重要性3.1.3單元測試的重要性時間方面:測試效果:測試成本:產品質量:
沈陽師范大學軟件學院1513.1.4單元測試計劃內容3.1.4單元測試計劃內容前言產品描述測試概述控制和協(xié)調資源需求和依賴條件范例
沈陽師范大學軟件學院1523.1.4單元測試計劃內容實訓一:首先編寫用戶注冊和登錄代碼模塊,然后編寫單元測試計劃
沈陽師范大學軟件學院153本節(jié)內容3.2單元測試設計3.2.1自頂向下單元測試3.2.2自底向上單元測試3.2.3孤立的單元測試沈陽師范大學軟件學院1543.2.1自頂向下單元測試3.2.1自頂向下單元測試以單元組件的層次及調用關系為依據,從最頂層開始,把被頂層調用的單元做成樁模塊對第二層單元組件進行測試,如果第二層單元組件又被其上層調用,以上層已測試的單元代碼為依據開發(fā)驅動模塊來測試第二層單元組件。同時,如果有被第二層單元組件調用的下一層單元組件,則還需依據其下一層單元組件開發(fā)樁,樁的數量可以有多個以此類推,直到全部單元組件測試結束
沈陽師范大學軟件學院1553.2.2自底向上單元測試3.2.2自底向上單元測試以單元組件的層次及調用關系為依據,先對組件調用圖上的最底層組件進行測試,模擬調用該組件的模塊為驅動模塊。對上一層單元組件進行單元測試,開發(fā)調用本層單元組件的驅動器,同時,要開發(fā)被本層單元組件調用的已經完成單元測試的下層單元組件的樁。驅動器的開發(fā)依據調用被測單元組件的代碼,樁的開發(fā)依據被本層單元組件調用的已經完成單元測試下層單元組件代碼。以此類推,直到全部單元組件測試結束
沈陽師范大學軟件學院1563.2.3孤立的單元測試3.2.3孤立的單元測試無需考慮每個單元組件與其他組件之間的關系,分別為每個組件單獨設計樁模塊和驅動模塊,逐一完成所有單元組件的測試
沈陽師范大學軟件學院157本節(jié)內容3.3單元測試實現3.3.1模塊接口測試3.3.2數據結構測試3.3.3路徑測試3.3.4錯誤處理測試3.3.5邊界測試沈陽師范大學軟件學院1583.3.1模塊接口測試3.3.1模塊接口測試
模塊接口:測試模塊的數據流。如果數據不能正確地輸入和輸出,就談不上進行其他測試。模塊接口測試是單元測試的基礎。只有在數據能正確流入、流出模塊的前提下,其他測試才有意義。
沈陽師范大學軟件學院1593.3.2數據結構測試3.3.2數據結構測試局部數據結構測試:模塊的局部數據結構是最常見的錯誤來源,應設計測試用例以檢查以下各種錯誤:檢查不正確或不一致的數據類型說明;使用尚未賦值或尚未初始化的變量;錯誤的初始值或錯誤的默認值;變量名拼寫錯誤或書寫錯誤;不一致的數據類型。沈陽師范大學軟件學院1603.3.3路徑測試3.3.3路徑測試
對基本執(zhí)行路徑和循環(huán)進行測試會發(fā)現大量的錯誤。根據白盒測試和黑盒測試用例設計方法設計測試用例。設計測試用例查找由于錯誤的計算、不正確的比較或不正常的控制流而導致的錯誤。沈陽師范大學軟件學院1613.3.4錯誤處理測試3.3.4錯誤處理測試比較完善的模塊設計要求能預見出錯的條件,并設置適當的出錯處理對策,以便在程序出錯時,能對出錯程序重新做安排,保證其邏輯上的正確性。這種出錯處理也是模塊功能的一部分。沈陽師范大學軟件學院1623.3.5邊界測試3.3.5邊界測試邊界測試:邊界上出現錯誤上常見的。設計測試用例檢查:在n次循環(huán)的第0次、1次、n次是否有錯誤;運算或判斷中取最大最小值時是否有錯誤;數據流、控制流中剛好等于、大于、小于確定的比較值時是否出現錯誤。沈陽師范大學軟件學院163本節(jié)內容3.4單元測試執(zhí)行3.4.1單元測試用例規(guī)格3.4.2單元測試用例設計3.4.3單元測試報告沈陽師范大學軟件學院1643.4.1單元測試用例規(guī)格3.4.1單元測試用例規(guī)格
測試用例是為特定的目的而設計的一組測試輸入、執(zhí)行條件和預期的結果。測試用例是執(zhí)行的最小實體。簡單地說,測試用例就是設計一個場景,使軟件程序在這種場景下,必須能夠正常運行并且達到程序所設計的執(zhí)行結果。主要特征:最有可能抓住錯誤的;不是重復的、多余的;一組相似測試用例中最有效的;既不是太簡單,也不是太復雜。沈陽師范大學軟件學院1653.4.2單元測試用例設計3.4.2單元測試用例設計單元測試用例模板:范例沈陽師范大學軟件學院166用例ID用例名稱設計人員日期測試目的測試級別參考信息測試環(huán)境前提條件測試步驟預期結果3.4.2單元測試用例設計3.4.2單元測試用例設計單元測試用例設計一般步驟:測試需求分析業(yè)務流程分析測試用例設計測試用例評審測試用例更新完善沈陽師范大學軟件學院1673.4.2單元測試用例設計3.4.2
實訓二仿照范例編寫登錄及注冊模塊單元測試用例沈陽師范大學軟件學院1683.4.3單元測試報告3.4.3單元測試報告單元測試報告一般包括如下內容:編寫目的軟件單元描述單元結構單元控制/時序流圖測試過程測試結果質量評估沈陽師范大學軟件學院1693.4.3單元測試報告3.4.3實訓三編寫登錄模塊測試報告沈陽師范大學軟件學院170
第五章系統(tǒng)測試沈陽師范大學軟件學院171本章內容系統(tǒng)測試計劃系統(tǒng)測試方法系統(tǒng)測試設計系統(tǒng)測試執(zhí)行沈陽師范大學軟件學院172本節(jié)內容5.1系統(tǒng)測試計劃5.1.1系統(tǒng)測試計劃概述5.1.2測試計劃內容5.1.3如何做好測試計劃沈陽師范大學軟件學院1735.1.1系統(tǒng)測試計劃概述測試計劃概述軟件測試是有計劃、有組織和有系統(tǒng)的軟件質量保證活動,而不是隨意地、松散地、雜亂地實施過程。為了規(guī)范軟件測試內容、方法和過程,在對軟件進行測試之前,必須創(chuàng)建測試計劃?!禔NSI/IEEE軟件測試文檔標準829-1983》將測試計劃定義為:“一個敘述了預定的測試活動的范圍、途徑、資源及進度安排的文檔。它確認了測試項、被測特征、測試任務、人員安排,以及任何偶發(fā)事件的風險。”沈陽師范大學軟件學院1745.1.1系統(tǒng)測試計劃概述制定測試計劃原則制定測試計劃也是有原則的,主要包含以下幾個方面:(1)制定測試計劃應盡早開始。越早進行測試計劃,就可以從最根本的地方去了解我們所要測試的對象及內容,為我們完善測試計劃是很有好處的。(2)保持測試計劃的靈活性。測試計劃不是固定的,在測試進行過程中會有一定的變動,測試計劃的靈活性為我們持續(xù)測試具有很好的支持。(3)保持測試計劃簡潔和易讀。測試計劃做出來后應該能夠讓測試人員明了自己的任務和計劃。(4)盡量爭取多渠道評審測試計劃。通過不同的人來發(fā)現測試計劃中的不足及缺陷,可以很好的改進測試計劃的質量。(5)計算測試計劃的投入。投入到測試中的項目經費是一定的,我們制定測試計劃時一定要注意測試計劃的費用情況。要量力而行。沈陽師范大學軟件學院1755.1.2系統(tǒng)測試計劃概述測試計劃內容根據IEEE829-1998軟件測試文檔編制標準的建議,測試計劃包含了16個大綱要項。測試計劃標識符介紹測試項需要測試的功能方法(策略)不需要測試的功能測試項通過/失敗的標準測試中斷和恢復的規(guī)定測試完成所提交的材料沈陽師范大學軟件學院1765.1.2系統(tǒng)測試計劃概述測試計劃內容測試任務環(huán)境需求職責人員安排與培訓需求進度表潛在的問題和風險審批沈陽師范大學軟件學院1775.1.3如何做好測試計劃如何做好測試計劃了解了測試計劃的基本內容之后,我們應該想想該如何做好測試計劃呢?除了上述講的制定原則外,我們還應該注意什么呢?1.明確測試的目標,增強測試計劃的實用性2.堅持“5W1H”規(guī)則3.采用評審和更新機制,保證測試計劃滿足實際需求4.分別創(chuàng)建測試計劃與測試詳細規(guī)格、測試用例5.變更控制沈陽師范大學軟件學院1785.1.3如何做好測試計劃實訓一:根據需求規(guī)格說明書編寫測試計劃沈陽師范大學軟件學院179本節(jié)內容5.2系統(tǒng)測試方法5.2.1性能測試5.2.2壓力測試5.2.3容量測試5.2.4健壯性測試5.2.5安全性測試5.2.6可靠性測試5.2.7恢復性測試5.2.8兼容性測試5.2.9安裝測試5.2.10可用性測試沈陽師范大學軟件學院1805.2.1性能測試基本概念一般來講,性能是一種表明軟件系統(tǒng)或構件對于及時性要求的符合程度的指標;其次,性能是軟件產品的一種特性,可以用為度量。性能的及時性通常用系統(tǒng)對請求做出響應所需要的時間來衡量。響應時間定義:對計算機系統(tǒng)的查詢或請求開始到一個響應結束所使用的時間。對某個系統(tǒng)或應用的用戶來講,響應時間就是用戶必須等待服務所花的時間。響應時間越短,用戶就越滿意沈陽師范大學軟件學院1815.2.1性能測試基本概念性能測試主要檢驗軟件是否達到需求規(guī)格說明書中規(guī)定的各類性能指標,并滿足一些性能相關的約束和限制條件。性能測試包括以下幾個方面:評估系統(tǒng)的能力。測試中得到的負荷和響應時間等數據可以被用于驗證所計劃的模型的能力,并幫助做出決策。識別系統(tǒng)中的弱點。受控的負荷可以被增加到一個極端的水平并突破它,從而修復系統(tǒng)的瓶頸或薄弱的地方。系統(tǒng)調優(yōu)。重復運行測試,驗證調整系統(tǒng)的活動得到了預期的結果,從而改進性能,檢測軟件中的問題。沈陽師范大學軟件學院1825.2.1性能測試性能測試方法性能測試的基準大體有以下幾方面:響應時間
從應用系統(tǒng)發(fā)出請求開始,到客戶端接收到最后一個字節(jié)數據為止所消耗的時間。合理的響應時間取決于實際的用戶需求。并發(fā)用戶數
一般是指同一時間段內訪問系統(tǒng)的用戶數量。沈陽師范大學軟件學院1835.2.1性能測試性能測試方法吞吐量
指單位時間內系統(tǒng)處理的客戶請求數量。性能計數器
描述服務器或操作系統(tǒng)性能的一些數據指標,比如Windows系統(tǒng)資源管理器。沈陽師范大學軟件學院1845.2.1性能測試性能測試執(zhí)行1)計劃階段定義目標并設置期望值收集系統(tǒng)和測試要求定義工作負載選擇要收集的性能度量值標出要運行的測試并決定什么時候運行它們決定工具選項和生成負載編寫測試計劃,設計用戶場景并創(chuàng)建測試腳本沈陽師范大學軟件學院1855.2.1性能測試性能測試執(zhí)行2)測試階段做準備工作(如建立測試服務器或布置其他設備)運行測試收集數據3)分析階段分析結果改變系統(tǒng)以優(yōu)化性能設計新的測試沈陽師范大學軟件學院1865.2.2壓力測試基本概念壓力測試是指摸擬巨大的工作負荷,以查看系統(tǒng)在峰值使用情況下是否可以正常運行。壓力測試是通過逐步增加系統(tǒng)負載來測試系統(tǒng)性能的變化,并最終確定在什么負載條件下系統(tǒng)性能處于失效狀態(tài),以此來獲得系統(tǒng)性能提供的最大服務級別的測試。沈陽師范大學軟件學院1875.2.2壓力測試壓力測試方法有如下特點1)壓力測試是檢查系統(tǒng)處于壓力情況下的能力表現。比如,通過增加并發(fā)用戶的數量,檢測系統(tǒng)的服務能力和水平;通過增加文件記錄數來檢測數據處理的能力和水平等。2)壓力測試一般通過模擬方法進行。壓力測試是一種極端情況下的測試,所以為了捕獲極端狀態(tài)下的系統(tǒng)表現,往往采用模擬方法進行。通常在系統(tǒng)對內存和CPU的利用率上進行模擬,以獲得測量結果。
沈陽師范大學軟件學院1885.2.2壓力測試壓力測試方法有如下特點
如將壓力的基準設定為:內存使用率達到75%以上、CPU使用率達到75%以上,并在此觀測系統(tǒng)響應時間、系統(tǒng)有無錯誤產生。除了對內存和CPU的使用率進行設定外,數據庫的連接數量、數據庫服務器的CPU利用率也都可以作為壓力測試的依據。
3)壓力測試一般用于測試系統(tǒng)的穩(wěn)定性。如果一個系統(tǒng)能夠在壓力環(huán)境下穩(wěn)定運行一段時間,那么該系統(tǒng)在普通的運行環(huán)境下就應該可以達到令人滿意的穩(wěn)定程度。在壓力測試中,通常會考慮系統(tǒng)在壓力下是否會出現錯誤等方面的問題。
沈陽師范大學軟件學院1895.2.2壓力測試壓力測試方法
壓力測試應該盡可能逼真地模擬系統(tǒng)環(huán)境。對于實時系統(tǒng),測試者應該以正常和超常的速度輸入要處理的事務,從而進行壓力測試。批處理的壓力測試可以利用大批量的事務進行,被測事務中應該包括錯誤條件。壓力測試中使用的事務可以通過如下3種途徑獲得:測試數據生成器由測試小組創(chuàng)建的測試事務原來在系統(tǒng)環(huán)境中處理過的事務
沈陽師范大學軟件學院1905.2.2壓力測試壓力測試與性能測試的聯(lián)系與區(qū)別
壓力測試是用來保證產品發(fā)布后系統(tǒng)能否滿足用戶需求,關注的重點是系統(tǒng)整體;而性能測試可以發(fā)生在各個測試階段,即使是在單元層,一個單獨模塊的性能也可以進行評估。壓力測試是通過確定一個系統(tǒng)的瓶頸,來獲得系統(tǒng)能提供的最大服務級別的測試。性能測試是檢測系統(tǒng)在一定負荷下的表現,是正常能力的表現;而壓力測試是極端情況下系統(tǒng)能力的表現。
沈陽師范大學軟件學院1915.2.2壓力測試壓力測試可以采用以下的測試手段:
1)重復測試:重復測試就是一遍又一遍地執(zhí)行某個操作或功能,比如重復調用一個Web服務。壓力測試的一項任務就是確定在極端情況下一個操作能否正常執(zhí)行,并且能否持續(xù)不斷地在每次執(zhí)行時都正常。這對于推斷一個產品是否適用于某種生產情況至關重要,客戶通常會重復使用產品。重復測試往往與其它測試手段一并使用。
沈陽師范大學軟件學院1925.2.2壓力測試壓力測試可以采用以下的測試手段:
2)并發(fā)測試:并發(fā)是同時執(zhí)行多個操作的行為,即在同一時間執(zhí)行多個測試線程。例如,在同一個服務器上同時調用許多Web服務。并發(fā)測試原則上不一定適用于所有產品(比如無狀態(tài)服務),但多數軟件都具有某個并發(fā)行為或多線程行為元素,這一點只能通過執(zhí)行多個代碼測試用例才能得到測試結果。
沈陽師范大學軟件學院1935.2.2壓力測試壓力測試可以采用以下的測試手段:3)量級增加:并發(fā)是同時執(zhí)行多個操作的行為,即在同一時間執(zhí)行多個測試線程。例如,在同一個服務器上同時調用許多Web服務。并發(fā)測試原則上不一定適用于所有產品(比如無狀態(tài)服務),但多數軟件都具有某個并發(fā)行為或多線程行為元素,這一點只能通過執(zhí)行多個代碼測試用例才能得到測試結果。4)隨機變化:該手段是指對上述測試手段進行隨機組合,以便獲得最佳的測試效果。
沈陽師范大學軟件學院1945.2.2壓力測試壓力測試可以采用以下的測試手段:
例如使用重復時,在重新啟動或重新連接服務之前,可以改變重復操作間的時間間隔、重復的次數,或者也可以改變被重復的Web服務的順序;使用并發(fā)時,可以改變一起執(zhí)行的Web服務、同一時間運行的Web服務數目,也可以改變關于是運行許多不同的服務還是運行許多同樣的實例的決定。量級測試時,每次重復測試時都可以更改應用程序中出現的變量(例如發(fā)送各種大小的消息或數字輸入值)。如果測試完全隨機的話,因為很難一致地重現壓力下的錯誤,所以一些系統(tǒng)使用基于一個固定隨機種子的隨機變化。這樣,用同一個種子,重現錯誤的機會就會更大。
沈陽師范大學軟件學院1955.2.2壓力測試壓力測試執(zhí)行可以設計壓力測試用例來測試應用系統(tǒng)的整體或部分能力。壓力測試用例選取可以從以下幾個方面考慮:輸入待處理事務來檢查是否有足夠的磁盤空間;創(chuàng)造極端的網絡負載;制造系統(tǒng)溢出條件;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江特殊教育職業(yè)學院《防火防爆工程學》2023-2024學年第一學期期末試卷
- 四川希望汽車職業(yè)學院《食品冷凍工藝學》2023-2024學年第二學期期末試卷
- 山西省太原市小店區(qū)第一中學2025屆高三第二次校模擬考試生物試題含解析
- 湛江市年模擬數學試題(三)
- 2025茶葉采購銷售合同范本
- 2025年求RP農行合同制柜員筆試
- 2025房屋租賃合同范本示例
- 2025年解除合同申請書
- 《2025企業(yè)信用借款合同》
- 2025物流配送車輛承包合同
- 2025山東能源集團中級人才庫選拔高頻重點提升(共500題)附帶答案詳解
- 2024年司法考試完整真題及答案
- 雷雨-劇本原文-高中語文雷雨劇本原文
- 2016-2023年南通師范高等專科學校高職單招(英語/數學/語文)筆試歷年考點試題甄選合集含答案解析
- 全國煉油廠一覽
- 電信云網工程師-云網融合(客戶IT上云)備考試題庫(集團網大版)
- 如愿二聲部合唱簡譜文檔
- X射線光電子能譜-avantage課件
- GJB9001C-2017質量管理體系檢查內容的內部審核檢查表【含檢查內容】
- 面試人員測評打分表
- GA∕T 1729-2020 保安防衛(wèi)棍-行業(yè)標準
評論
0/150
提交評論