測試準(zhǔn)備-測試計劃-測試需求-測試用例-測試執(zhí)行-測試缺陷管理-測試報告總結(jié)
需求分析需求分析(Requirment Analyzing)應(yīng)該說是軟件測試的一個重要環(huán)節(jié)奴拦,測試開發(fā)人員對這一環(huán)節(jié)的理解程度如何將直接影響到接下來有關(guān)測試工作的開展媒鼓。可能有些人認(rèn)為測試需求分析無關(guān)緊要错妖,這種想法是很不對的绿鸣。需求分析不但重要,而且至關(guān)重要暂氯!一般而言潮模,需求分析包括軟件功能需求分析、測試環(huán)境需求分析痴施、測試資源需求分析等擎厢。其中最基本的是軟件功能需求分析,測一款軟件首先要知道軟件能實現(xiàn)哪些功能以及是怎樣實現(xiàn)的辣吃。比如一款Smartphone包括VoIP动遭、Wi-Fi以及Bluetooth等功能。那我們就應(yīng)該知道軟件是怎樣來實現(xiàn)這些功能的神得,為了實現(xiàn)這些功能需要哪些測試設(shè)備以及如何搭建相應(yīng)測試環(huán)境等厘惦,否則測試就無從談起!既然談了需求分析哩簿,那么我們根據(jù)什么來分析呢宵蕉?總不能憑空設(shè)想吧】睿總得說來国裳,做測試需求分析的依據(jù)有軟件需求文檔形入、軟件規(guī)格書以及開發(fā)人員的設(shè)計文檔等全跨,相信管理一些規(guī)范的公司在軟件開發(fā)過程中都有這些文檔。測試計劃? 測試計劃(Test Plan)一般由測試負(fù)責(zé)人來編寫亿遂。
? 測試計劃的依據(jù)主要是項目開發(fā)計劃和測試需求分析結(jié)果而制定浓若。測試計劃一般包括以下一些方面:
1. 測試背景a.? ? ? 軟件項目介紹渺杉;b.? ? ? 項目涉及人員(如軟硬件項目負(fù)責(zé)人等)介紹以及相應(yīng)聯(lián)系方式等。
2. 測試依據(jù)a.? ? ? 軟件需求文檔挪钓;b.? ? ? 軟件規(guī)格書是越;c.? ? ? 軟件設(shè)計文檔;d.? ? ? 其他碌上,如參考產(chǎn)品等倚评。
3. 測試資源a.? ? ? 測試設(shè)備需求;b.? ? ? 測試人員需求馏予;c.? ? ? 測試環(huán)境需求天梧;d.? ? ? 其他。
4. 測試策略a.? ? ? 采取測試方法霞丧;b.? ? ? 搭建哪些測試環(huán)境呢岗;c.? ? ? 采取哪些測試工具以測試管理工具;d.? ? ? 對測試人員進(jìn)行培訓(xùn)等蛹尝。
5. 測試日程a.? ? ? 測試需求分析后豫;b.? ? ? 測試用例編寫;c.? ? ? 測試實施突那,根據(jù)項目計劃挫酿,測試分成哪些測試階段(如單元測試、集成測試愕难、系統(tǒng)測試階段饭豹,α、β測試階段等)务漩,每個階段的工作重點以及投入資源等拄衰。
6. 其他。測試計劃還要包括測試計劃編寫的日期饵骨、作者等信息翘悉,計劃越詳細(xì)越好了。計劃趕不上變化居触,一份計劃做的再好妖混,當(dāng)實際實施的時候就會發(fā)現(xiàn)往往很難按照原有計劃開展。如在軟件開發(fā)過程中資源匱乏轮洋、人員流動等都會對測試造成一定的影響制市。所以,這些就要求測試負(fù)責(zé)人能夠從宏觀上來調(diào)控了弊予。在變化面前能夠做到應(yīng)對自如祥楣、處亂不驚那是最好不過了。
測試設(shè)計測試設(shè)計主要包括測試用例編寫和測試場景設(shè)計兩方面。一份好的測試用例對測試有很好的指導(dǎo)作用误褪,能夠發(fā)現(xiàn)很多軟件問題责鳍。關(guān)于測試用例編寫,請參見前面寫的《也談測試用例》一文兽间,里面有詳細(xì)闡述历葛。測試場景設(shè)計主要也就是測試環(huán)境問題了。測試環(huán)境搭建不同軟件產(chǎn)品對測試環(huán)境有著不同的要求嘀略。如C/S及B/S架構(gòu)相關(guān)的軟件產(chǎn)品恤溶,那么對不同操作系統(tǒng),如Windows系列帜羊、unix宏娄、linux甚至蘋果OS等,這些測試環(huán)境都是必須的逮壁。而對于一些嵌入式軟件孵坚,如手機(jī)軟件,如果我們想測試一下有關(guān)功能模塊的耗電情況窥淆,手機(jī)待機(jī)時間等卖宠,那么我們可能就需要搭建相應(yīng)的電流測試環(huán)境了。當(dāng)然測試中對于如手機(jī)網(wǎng)絡(luò)等環(huán)境都有所要求忧饭。測試環(huán)境很重要扛伍,符合要求的測試環(huán)境能夠幫助我們準(zhǔn)確的測出軟件問題,并且做出正確的判斷词裤。為了測試一款軟件刺洒,我們可能根據(jù)不同的需求點要使用很多不同的測試環(huán)境。有些測試環(huán)境我們是可以搭建的吼砂,有些環(huán)境我們無法搭建或者搭建成本很高逆航。不管如何,我們的目標(biāo)是測試軟件問題渔肩,保證軟件質(zhì)量因俐。測試環(huán)境問題,還是根據(jù)具體產(chǎn)品以及開發(fā)者的實際情況而采取最經(jīng)濟(jì)的方式吧周偎。
測試執(zhí)行? 測試執(zhí)行過程又可以分為以下階段:單元測試→集成測試→系統(tǒng)測試→出廠測試抹剩,其中每個階段還有回歸測試等。從測試的角度而言蓉坎,測試執(zhí)行包括一個量和度的問題澳眷。也就是測試范圍和測試程度的問題。 比如一個版本需要測試哪些方面蛉艾?每個方面要測試到什么程度钳踊?從管理的角度而言衷敌,在有限的時間內(nèi),在人員有限甚至短缺的情況下箍土,要考慮如何分工逢享,如何合理地利用資源來開展測試罐监。當(dāng)然還要考慮以下問題:1. 當(dāng)測試人員測試的執(zhí)行不到位吴藻、敷衍了事時該如何解決?2. 測試效率問題弓柱,怎樣提高測試效率沟堡?3. 根據(jù)版本的不同特點是只做驗證測試還是采取冒煙測試亦或是系統(tǒng)全面測試?4. 當(dāng)測試過程中遇到一些偶然性隨機(jī)問題該怎樣處理矢空?5. 當(dāng)版本中出現(xiàn)很多新問題時該怎樣對待航罗?測試停止標(biāo)準(zhǔn)?
二測試?yán)碚?
個人認(rèn)為不管是手工測試屁药,自動化測試粥血,亦或是性能測試,測試?yán)碚撌潜夭豢缮僖獙W(xué)習(xí)掌握的知識酿箭。我主要負(fù)責(zé)的是自動化測試腳本這一塊复亏,對測試?yán)碚摰倪\用不是很多,時間久了缭嫡,還真怕記不得了缔御,所以下面就先復(fù)習(xí)一下測試的理論知識:
軟件測試人員的目標(biāo):找出軟件缺陷,盡可能的早一些妇蛀,并確保其得以修復(fù)耕突。
軟件缺陷的定義:軟件未達(dá)到產(chǎn)品說明書標(biāo)明的功能;
軟件出現(xiàn)了產(chǎn)品說明書指明不會出現(xiàn)的錯誤评架;
軟件功能超出產(chǎn)品說明書指明范圍眷茁;
軟件未達(dá)到產(chǎn)品說明書雖未指出但應(yīng)到達(dá)的目標(biāo);
軟件測試人員認(rèn)為軟件難以理解纵诞、不易使用蔼卡、運行速度緩慢,或者最終用戶認(rèn)為不好挣磨。
軟件測試分類:
1.按結(jié)構(gòu)與內(nèi)部實現(xiàn):
黑盒測試:關(guān)心的是輸入與輸出雇逞。
白盒測試:可以訪問程序代碼,并且通過檢查代碼來協(xié)助測試茁裙,測試員根據(jù)代碼檢查結(jié)果判斷什么樣的數(shù)據(jù)輸入可能導(dǎo)致bug的產(chǎn)生塘砸,并根據(jù)此調(diào)整測試程序。
灰盒測試:介于白盒測試與黑盒測試之間晤锥。
2.按是否執(zhí)行程序分:
靜態(tài)測試:測試不運行的部分——知識檢查與審閱掉蔬。
動態(tài)測試:運行與使用廊宪。
3.按過程分:
A.單元測試:集中對用源代碼實現(xiàn)的每一個程序單元進(jìn)行測試,檢查各個程序模塊是否正確地實現(xiàn)了規(guī)定的功能女轿。
B.集成測試:把已測試過的模塊組裝起來箭启,主要對與設(shè)計相關(guān)的軟件體系結(jié)構(gòu)的構(gòu)造進(jìn)行測試
C.確認(rèn)測試:檢查已實現(xiàn)的軟件是否滿足了需求規(guī)格說明中確定了的各種需求,以及軟件配置是否完全蛉迹、正確
D.系統(tǒng)測試:把已經(jīng)經(jīng)過確認(rèn)的軟件納入實際運行環(huán)境中傅寡,與其它系統(tǒng)成份組合在一起進(jìn)行測試
E.驗收測試:用戶對軟件產(chǎn)品投入實際應(yīng)用以前進(jìn)行的最后一次質(zhì)量檢驗活
4.按測試類型分:
A.功能測試
B.性能測試
C.安全測試
D.易用性測試
E.兼容性測試
測試方法:
靜態(tài)測試:需求評審、設(shè)計評審北救、代碼走查荐操、代碼檢查、
黑盒測試:等價劃分珍策、邊界值托启、因果圖。
白盒測試:語句覆蓋攘宙、分支覆蓋屯耸、判定覆蓋、路徑覆蓋蹭劈。
Bug的生命周期:
bug的生命周期:new->open->fixed->closed
new:找到新的bug
open:將bug提交給開發(fā)
fixed:開發(fā)修復(fù)提交的bug疗绣,
closed:開發(fā)修復(fù)后,測試人員需要驗bug链方,確認(rèn)修復(fù)如否持痰。如果沒有修復(fù)的重新提交bug,這是bug的狀態(tài)就變成renew祟蚀。
Bug的描述:
1.主題:用一句話簡明扼要的描述出軟件遇到的問題
2.環(huán)境:這個主要是描述自己操作軟件的環(huán)境:比如什么語言的系統(tǒng)工窍,多少位,什么版本前酿,安裝的測試軟件是什么版本等等患雏。
3.重現(xiàn)步驟:描述bug的重現(xiàn)步驟,在這個描述中藥條理清晰罢维,不要添加自己的主觀意見淹仑,語句中不要出現(xiàn)人稱,最好每句話以動詞開頭肺孵,比如:打開什么匀借,點擊什么等等,每一步都要簡明清晰平窘。
4.實際結(jié)果:描述自己看到的實際結(jié)果的時候吓肋,要客觀真實的描述
5.期望結(jié)果:描述期望得到的結(jié)果。
6.附加信息:這個可以根據(jù)實際情況瑰艘,比如在win7上這個bug發(fā)生是鬼,但是在xp上不發(fā)生肤舞;在64位上發(fā)生,在32位不發(fā)生等等均蜜。添加這些信息的目的李剖,有助于開發(fā)快速的找到bug并盡早的解決。
白盒測試與黑盒測試
白盒測試方法按照程序內(nèi)部的結(jié)構(gòu)測試程序囤耳,檢驗程序中的每條通路是否都能按預(yù)定要求正確工作篙顺,而不顧它的功能。
白盒測試的主要方法有邏輯覆蓋紫皇、基本路徑測試等
邏輯覆蓋包括:
1慰安、語句覆蓋
2腋寨、判斷覆蓋
3聪铺、條件覆蓋
4、判斷/條件覆蓋
5萄窜、條件組合覆蓋
6铃剔、路徑覆蓋
黑盒測試并不涉及程序的內(nèi)部結(jié)構(gòu)和內(nèi)容特性,主要根據(jù)規(guī)格說明查刻,只依靠被測試程序的輸入和輸出之間關(guān)系或程序的功能來設(shè)計測試用例键兜。
黑盒測試主要包括邊界值分析法、等價類劃分法穗泵、因果圖法普气、決策表法等。