軟件測試入門
,單擊此處編輯母版標(biāo)題樣式,*,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),測試入門,軟件測試目的,測試是一個(gè)為了尋找錯(cuò)誤而運(yùn)行程序的過程,一個(gè)好的測試用例是只可能找到迄今為止尚未發(fā)現(xiàn)錯(cuò)誤的用例,一個(gè)成功的測試是揭示了迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測試,軟件測試方法分類,黑盒,測試,白盒,測試,兩種測試方法從不同的角度出發(fā),,反映了軟件的不同側(cè)面,也適用于,不同的開發(fā)環(huán)境。,軟件測試方法:白盒測試,白盒,測試又稱結(jié)構(gòu)測試、邏輯驅(qū)動(dòng)測試或基于程序本身的測試,也可稱為測試員測試,主要應(yīng)用于結(jié)構(gòu)化開發(fā)環(huán)境。,應(yīng)用程序,軟件測試方法:黑盒測試,黑盒,測試又稱功能測試、數(shù)據(jù)驅(qū)動(dòng)測試或基于規(guī)格說明的測試,也可被稱為用戶測試,主要應(yīng)用于快速應(yīng)用開發(fā)(,RAD,),環(huán)境。,RAD,:,Rapid Application Development,RAD,為軟件測試帶來新的挑戰(zhàn),軟件結(jié)構(gòu)越來越復(fù)雜,團(tuán)隊(duì)規(guī)模越來越大,開發(fā)成本與風(fēng)險(xiǎn)越來越高,用戶對應(yīng)用程序的質(zhì)量要求越來越嚴(yán)格,軟件測試生命周期,軟件測試的階段組成,測試計(jì)劃,測試設(shè)計(jì),測試開發(fā),測試執(zhí)行,測試評(píng)估,測試計(jì)劃的目標(biāo),收集并組織測試計(jì)劃信息,將軟件細(xì)化為可檢驗(yàn)的測試需求,建立測試計(jì)劃,測試計(jì)劃:定義測試需求,用戶需求,測試需求,定義,根據(jù)用戶需求定義并完善測試需求,以作為整個(gè)測試的標(biāo)準(zhǔn),測試計(jì)劃:考慮測試內(nèi)容,系統(tǒng)功能,用戶界面,系統(tǒng)性能,加載測試,強(qiáng)化測試,容量測試,配置測試,安裝測試,測試設(shè)計(jì)的目標(biāo),定義自動(dòng)測試過程,選擇適當(dāng)?shù)臏y試用例,組織測試過程信息,并傳遞給測試開發(fā)人員,測試設(shè)計(jì),定義,用戶需求,測試需求,選擇,決定,測試過程,測試用例,測試開發(fā)目標(biāo),建立可重用的自動(dòng)測試,維護(hù)測試對于測試需求的可跟蹤性,測試開發(fā)技術(shù):編程,優(yōu)勢:,具有較大的靈活性,缺點(diǎn):,編程過程復(fù)雜,測試開發(fā)技術(shù):錄制,優(yōu)勢:,操作簡單、快捷,缺點(diǎn):,靈活性較差,測試開發(fā)技術(shù),錄 制,腳本,腳本生成自動(dòng)化,并可根據(jù)需要修改,自動(dòng)生成,測試執(zhí)行的目標(biāo),執(zhí)行測試,檢查測試結(jié)果,研究并組織測試結(jié)果以便評(píng)估,維護(hù)缺陷記錄,測試執(zhí)行的步驟:單元,測試執(zhí)行的步驟:模塊,測試執(zhí)行的步驟:集成,測試執(zhí)行的步驟:系統(tǒng)聯(lián)調(diào),測試執(zhí)行的步驟:驗(yàn)收測試,系統(tǒng)聯(lián)調(diào)成功后,系統(tǒng)便可以進(jìn)入試運(yùn)行階段。,經(jīng)過相對時(shí)間的系統(tǒng)試運(yùn)行后,如果系統(tǒng)運(yùn)行正常。便可進(jìn)行用戶驗(yàn)收測試階段,。,測試執(zhí)行的步驟:維護(hù),測試評(píng)估的目標(biāo),提交量化的測試覆蓋域及缺陷跟蹤報(bào)告,評(píng)估軟件質(zhì)量,測試評(píng)估的內(nèi)容:覆蓋域,哪些測試需求經(jīng)過了測試,哪些需求通過了測試,我們的工作進(jìn)度及效率如何,測試評(píng)估的內(nèi)容:缺陷,我們發(fā)現(xiàn)了哪些缺陷,我們解決了哪些缺陷,遺留缺陷對軟件有何影響,測試評(píng)估:綜合評(píng)價(jià),測試模式,我們一般把發(fā)現(xiàn)的錯(cuò)誤,(Bug)/,缺陷,(Defect),按嚴(yán)重性分為,4,類:,1.,嚴(yán)重:,系統(tǒng)崩潰或掛起等導(dǎo)致系統(tǒng)不能繼續(xù)運(yùn)行;,2.,主要:,使系統(tǒng)不穩(wěn)定、或破壞數(shù)據(jù)、或產(chǎn)生錯(cuò)誤結(jié)果,而且是常規(guī)操作中經(jīng)常發(fā)生或非常規(guī)操作中不可避免的主要問題;,3.,次要:,系統(tǒng)性能或響應(yīng)時(shí)間變慢、產(chǎn)生錯(cuò)誤的中間結(jié)果但不影響最終結(jié)果等影響有限的問題,如:顯示不正確但輸出正確;,4.,輕微:,界面拼寫錯(cuò)誤或用戶使用不方便等小問題或需要完善的問題;,錯(cuò)誤分級(jí)嚴(yán)重性,錯(cuò)誤分級(jí)優(yōu)先級(jí),我們也把發(fā)現(xiàn)的錯(cuò)誤按優(yōu)先級(jí)分為三種:,1.,高:立即修改;,2.,中:必須修改,但不一定馬上修改;,3.,低:允許不修改;,一般來說是越影響用戶接受或使用該產(chǎn)品的錯(cuò)誤優(yōu)先級(jí)越高。,常見問題,下面將列出一些問題,他們具有一些特征:,顯而易見的,開發(fā)時(shí)容易被忽略,容易避免,容易修改,但是對于測試人員或用戶來說可能卻是非常頭痛和不方便的,形象類問題,這類問題一般是表面上的,技術(shù)含量不高,但是給予用戶的感覺往往是軟件不夠?qū)I(yè),1.,不符合用戶操作習(xí)慣。如,快捷鍵定義不科學(xué)(不易理解、與系統(tǒng)快捷鍵沖突等)、不實(shí)用,(,鍵位分布不合理、按鍵太多,甚至沒有快捷鍵等,),;,2.,風(fēng)格的統(tǒng)一性;對于同一個(gè)系統(tǒng),同一系統(tǒng)環(huán)境下的應(yīng)用程序出現(xiàn)不同的界面風(fēng)格和操作風(fēng)格,對用戶來說是一大考驗(yàn),對開發(fā)者來說是專業(yè)性和正規(guī)性的表現(xiàn)。,3.,界面中英文混雜,經(jīng)常彈出莫名其妙的信息,甚至還拼錯(cuò)單詞;,4.,提示、標(biāo)題等不夠?qū)I(yè),或各處描述不一致;,形象類問題(續(xù)),5.,界面元素的位置:缺省認(rèn)為用戶使用某種分辨率,導(dǎo)致在其他分辨率下顯示不正常;,6.,說明書或幫助的排版格式不專業(yè):中英文搭配不對、標(biāo)點(diǎn)符號(hào)全角半角部分、沒有排版禁則,7.,程序名,/,路徑名不規(guī)則(比如為程序員的名字等);,8.,沒有安裝程序、或安裝程序不完善,(,丟掉一些必要的模塊或文件,),;,9.,界面元素參差不齊,文字不能完全顯示,,TAB,鍵順序與使用順序不一致等;,可用性問題,用戶比開發(fā)或測試人員在接觸界面上要花費(fèi)更多時(shí)間。錯(cuò)誤和低效的用戶界面的影響會(huì)變得越來越大,最終甚至?xí)谏w了產(chǎn)品有用的方面。,下面是一些用戶界面錯(cuò)誤的例子:,1.,輸入無合法性檢查和值域檢查,允許用戶輸入錯(cuò)誤的數(shù)據(jù)類型(有時(shí)只需要選擇合適的輸入控件即可,比如日期用專門的日期輸入控件),并導(dǎo)致不可逆料的后果;,2.,界面中的信息不能及時(shí)更新,不能正確反映數(shù)據(jù)狀態(tài),甚至對用戶產(chǎn)生錯(cuò)誤的誤導(dǎo)(如:記錄個(gè)數(shù)、參數(shù)設(shè)置對話框中的缺省值等);,可用性問題(續(xù)),下面是一些低效的用戶界面的例子:,1.,表達(dá)不清或過于模糊的信息提示;,2.,要求用戶輸入多余的、本來系統(tǒng)可以自己得到的數(shù)據(jù)(如:安裝后用戶要手動(dòng)修改某些配置文件);,3.,為了達(dá)到某個(gè)設(shè)置或?qū)υ捒?,用戶必須做許多冗余操作(如對話框嵌套層次太多);,4.,不能記憶用戶的設(shè)置或操作習(xí)慣(如用戶每次進(jìn)入都需要重新操作一次初始環(huán)境);,5.,使用不完善的功能且不給用戶以恰當(dāng)?shù)奶崾荆?6.,不經(jīng)用戶確認(rèn)就對系統(tǒng)或數(shù)據(jù)進(jìn)行重大修改;,穩(wěn)定性問題,往往是在設(shè)計(jì)時(shí)考慮不周而造成的一些問題。,1.,不可重現(xiàn)的死機(jī),或不斷申請但不完全釋放資源,系統(tǒng)性能越來越低;,2.,主系統(tǒng)和子系統(tǒng)使用同樣的臨界資源而互相不知道(如:使用同樣的類名或臨時(shí)文件名、使用同樣的數(shù)據(jù)庫字段名或登錄帳號(hào));,3.,不能重現(xiàn)的錯(cuò)誤(如不檢查異常情況,(,如內(nèi)存申請不成功、網(wǎng)絡(luò)突然中斷或長時(shí)間沒有響應(yīng),),導(dǎo)致錯(cuò)誤等);,其他問題,1.,文檔匱乏:文檔不標(biāo)準(zhǔn);無新功能使用方法;無版本改動(dòng)說明。我們不僅要認(rèn)為沒有說明文檔的產(chǎn)品不是是一個(gè)完整的產(chǎn)品,也要認(rèn)為沒有說明或沒有正確說明的功能是一個(gè)沒有完全實(shí)現(xiàn)的功能,因?yàn)橛脩魺o法用得起來。,2.,運(yùn)行時(shí)不檢查內(nèi)存、數(shù)據(jù)庫或硬盤空間等;,3.,假設(shè)用戶環(huán)境(硬件,/,網(wǎng)絡(luò)環(huán)境、軟件環(huán)境等、配置等);,4.,安裝困難,或根本無法安裝等;,5.,提供的應(yīng)用程序帶有病毒;,6.,程序不經(jīng)調(diào)試,或提供,Debug,版本給測試組或測試用戶;,7.,用戶現(xiàn)場開發(fā)和修改,沒有修改記錄和保存版本;,其他問題(續(xù)),8.,錯(cuò)誤反復(fù)出現(xiàn),改動(dòng)得不徹底、或版本管理出現(xiàn)混亂;,9.,改動(dòng)時(shí)不小心,導(dǎo)致錯(cuò)誤越改越多;,10.,版本中部分內(nèi)容和接口倒退;,11.,狀態(tài)沒有正確變更(有些選項(xiàng)永遠(yuǎn)是灰的,有些選項(xiàng)、菜單項(xiàng)在該灰時(shí)還不灰);,12.,資源沒有和代碼分離,不同語言版本間不能平滑轉(zhuǎn)換;,13.,模塊(子系統(tǒng))間接口不一致;,期望項(xiàng)目組關(guān)注的一些問題,1.,修改,Bug,時(shí)考慮得不夠;,2.,將問題留給測試人員去發(fā)現(xiàn)的心態(tài)(不仔細(xì)測試、不小心修改、修改不徹底);,3.,更多地從用戶使用的角度考慮設(shè)計(jì)、編碼與測試;,4.,程序可重用性問題(很多不同的功能寫在一個(gè)應(yīng)用程序內(nèi));,5.,開發(fā)過程中人員變動(dòng);,6.,項(xiàng)目負(fù)責(zé)人對于,BUG,的跟蹤;,