軟件測(cè)試與改錯(cuò)-掌握有效測(cè)試的方法與技術(shù)課件_第1頁(yè)
軟件測(cè)試與改錯(cuò)-掌握有效測(cè)試的方法與技術(shù)課件_第2頁(yè)
軟件測(cè)試與改錯(cuò)-掌握有效測(cè)試的方法與技術(shù)課件_第3頁(yè)
軟件測(cè)試與改錯(cuò)-掌握有效測(cè)試的方法與技術(shù)課件_第4頁(yè)
軟件測(cè)試與改錯(cuò)-掌握有效測(cè)試的方法與技術(shù)課件_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

軟件測(cè)試與改錯(cuò)——掌握有效測(cè)試的方法與技術(shù)王曉輝maconi@126.co

spm060701@126.com

華北電力大學(xué)計(jì)算機(jī)系軟件測(cè)試與改錯(cuò)華北電力大學(xué)計(jì)算機(jī)系目錄1.測(cè)試的常識(shí)與道理2.測(cè)試的分類(lèi)與比較3.測(cè)試人員的組織4.企業(yè)的測(cè)試策略5.測(cè)試規(guī)范6.軟件產(chǎn)品的主要測(cè)試內(nèi)容及技術(shù)7.改錯(cuò)的方法8.小結(jié)世上不存在沒(méi)有缺陷的軟件目錄1.測(cè)試的常識(shí)與道理世上不存在沒(méi)有缺陷的軟件1.測(cè)試的常識(shí)與道理1.1你真的懂測(cè)試嗎

編程大師說(shuō):沒(méi)有錯(cuò)誤的程序世間難求。(《編程之道》)你在學(xué)校里學(xué)過(guò)測(cè)試嗎?(讀到博士可能也不懂測(cè)試)你所在的企業(yè)重視測(cè)試嗎?(小公司程序員的技能更加全面)臨時(shí)抱佛腳行嗎?你以為有文檔模板就會(huì)測(cè)試了嗎?

如果不懂得有效地進(jìn)行測(cè)試,你不僅得不到功勞,也沒(méi)人欣賞你的苦勞,你擁有最多的將只是疲勞。

職業(yè)軟件工程師應(yīng)當(dāng)掌握需求開(kāi)發(fā)、系統(tǒng)設(shè)計(jì)、編程、測(cè)試、維護(hù)所有技能。1.測(cè)試的常識(shí)與道理1.1你真的懂測(cè)試嗎1.2測(cè)試的目的是什么測(cè)試的目的是為了發(fā)現(xiàn)盡可能多的缺陷,不是為了說(shuō)明軟件中沒(méi)有缺陷。

推論:成功的測(cè)試在于發(fā)現(xiàn)了迄今尚未發(fā)現(xiàn)的缺陷。所以測(cè)試人員的職責(zé)是設(shè)計(jì)這樣的測(cè)試用例,它能有效地揭示潛伏在軟件里的缺陷。千萬(wàn)不要將“測(cè)試”與“演示”混為一談。例如科研鑒定會(huì)。如果產(chǎn)品通過(guò)了嚴(yán)格的測(cè)試,大家不要不吭氣,應(yīng)當(dāng)好好地宣傳一把。1.2測(cè)試的目的是什么1.測(cè)試的常識(shí)與道理1.3一些常識(shí)和經(jīng)驗(yàn)之談測(cè)試能提高軟件的質(zhì)量,但是提高質(zhì)量不能依賴(lài)測(cè)試。

測(cè)試只能證明缺陷存在,不能證明缺陷不存在?!皬氐椎販y(cè)試”難以成為現(xiàn)實(shí),要考慮時(shí)間、費(fèi)用等限制,不允許無(wú)休止地測(cè)試。我們應(yīng)當(dāng)祈禱:軟件的缺陷在產(chǎn)品被淘汰之前一直沒(méi)有機(jī)會(huì)發(fā)作。測(cè)試的主要困難是不知道如何進(jìn)行有效地測(cè)試,也不知道什么時(shí)候可以放心地結(jié)束測(cè)試。每個(gè)開(kāi)發(fā)人員應(yīng)當(dāng)測(cè)試自己的程序(份內(nèi)之事),但是不能作為該程序已經(jīng)通過(guò)測(cè)試的依據(jù)(所以項(xiàng)目需要獨(dú)立測(cè)試人員)。80-20原則:80%的缺陷聚集在20%的模塊中,經(jīng)常出錯(cuò)的模塊改錯(cuò)后還會(huì)經(jīng)常出錯(cuò)測(cè)試應(yīng)當(dāng)循序漸進(jìn),不要企圖一次性干完,注意“欲速則不達(dá)”。1.測(cè)試的常識(shí)與道理1.3一些常識(shí)和經(jīng)驗(yàn)之談2.測(cè)試的分類(lèi)與比較2.1測(cè)試方式白盒測(cè)試:關(guān)心軟件內(nèi)部設(shè)計(jì)和程序?qū)崿F(xiàn),主要測(cè)試依據(jù)是設(shè)計(jì)文檔黑盒測(cè)試:不關(guān)心軟件內(nèi)部,只關(guān)心輸入輸出,主要測(cè)試依據(jù)是需求文檔2.2測(cè)試階段單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試。是“從小到大”、“由內(nèi)至外”、“循序漸進(jìn)”的測(cè)試過(guò)程,體現(xiàn)了“分而治之”的思想。

單元測(cè)試的粒度最小,一般由開(kāi)發(fā)小組采用白盒方式來(lái)測(cè)試,主要測(cè)試單元是否符合“設(shè)計(jì)”。

集成測(cè)試界于單元測(cè)試和系統(tǒng)測(cè)試之間,起到“橋梁作用”,一般由開(kāi)發(fā)小組采用白盒加黑盒的方式來(lái)測(cè)試,既要驗(yàn)證“設(shè)計(jì)”又要驗(yàn)證“需求”。

系統(tǒng)測(cè)試的粒度最大,一般由獨(dú)立測(cè)試小組采用黑盒方式來(lái)測(cè)試,主要測(cè)試系統(tǒng)是否符合“需求規(guī)格說(shuō)明書(shū)”。

驗(yàn)收測(cè)試與系統(tǒng)測(cè)試非常相似,主要區(qū)別是測(cè)試人員不同,驗(yàn)收測(cè)試由用戶(hù)執(zhí)行。

2.測(cè)試的分類(lèi)與比較2.1測(cè)試方式2.測(cè)試的分類(lèi)與比較2.3開(kāi)發(fā)與測(cè)試的V型關(guān)系如果軟件開(kāi)發(fā)過(guò)程采用嚴(yán)格的瀑布模型,那么開(kāi)發(fā)與測(cè)試有“V”型的對(duì)應(yīng)關(guān)系。需求開(kāi)發(fā)

高層設(shè)計(jì)詳細(xì)設(shè)計(jì)編程單元測(cè)試集成測(cè)試系統(tǒng)測(cè)試驗(yàn)收測(cè)試2.測(cè)試的分類(lèi)與比較2.3開(kāi)發(fā)與測(cè)試的V型關(guān)系需求開(kāi)2.測(cè)試的分類(lèi)與比較2.4測(cè)試內(nèi)容接口與路徑測(cè)試。

功能測(cè)試、健壯性測(cè)試、性能測(cè)試、用戶(hù)界面測(cè)試、安全性測(cè)試、壓力測(cè)試、可靠性測(cè)試、安裝/反安裝測(cè)試…測(cè)試階段

主要依據(jù)

測(cè)試人員、測(cè)試方式

主要測(cè)試內(nèi)容

單元測(cè)試系統(tǒng)設(shè)計(jì)文檔由開(kāi)發(fā)小組執(zhí)行白盒測(cè)試

接口測(cè)試、路徑測(cè)試

集成測(cè)試系統(tǒng)設(shè)計(jì)文檔需求文檔由開(kāi)發(fā)小組執(zhí)行白盒測(cè)試和黑盒測(cè)試

接口測(cè)試、路徑測(cè)試功能測(cè)試、性能測(cè)試

系統(tǒng)測(cè)試需求文檔由獨(dú)立測(cè)試小組執(zhí)行黑盒測(cè)試

功能測(cè)試、健壯性測(cè)試、性能測(cè)試、用戶(hù)界面測(cè)試、安全性測(cè)試、壓力測(cè)試、可靠性測(cè)試、安裝/反安裝測(cè)試

驗(yàn)收測(cè)試需求文檔由用戶(hù)執(zhí)行黑盒測(cè)試

2.測(cè)試的分類(lèi)與比較2.4測(cè)試內(nèi)容測(cè)試階段主要依據(jù)測(cè)2.測(cè)試的分類(lèi)與比較2.5問(wèn)題問(wèn)題1:有了“黑盒”測(cè)試為什么還要“白盒”測(cè)試?黑盒測(cè)試只能觀察軟件的外部表現(xiàn),即使軟件的輸入輸出都是正確的,卻并不能說(shuō)明軟件就是正確的。因?yàn)槌绦蛴锌赡苡缅e(cuò)誤的運(yùn)算方式得出正確的結(jié)果,例如“負(fù)負(fù)得正,錯(cuò)錯(cuò)得對(duì)”,只有白盒測(cè)試才能發(fā)現(xiàn)真正的原因。(舉一個(gè)學(xué)生作業(yè)的例子)白盒測(cè)試能發(fā)現(xiàn)程序里的隱患,象內(nèi)存泄漏、誤差累計(jì)問(wèn)題。在這方面,黑盒測(cè)試存在嚴(yán)重的不足。

問(wèn)題2:由于單元測(cè)試要寫(xiě)測(cè)試驅(qū)動(dòng)程序,非常麻煩,能否等到整個(gè)系統(tǒng)全部開(kāi)發(fā)完后,再集中精力進(jìn)行一次性地單元測(cè)試呢?如果這樣做,在開(kāi)發(fā)過(guò)程中,缺陷會(huì)越積越多并且分布得更廣、隱藏得更深,反而導(dǎo)致測(cè)試與改錯(cuò)的代價(jià)大大增加。最糟糕的是無(wú)法估計(jì)測(cè)試與改錯(cuò)的工作量,使進(jìn)度失去控制。因此為圖眼前省事而省略單元測(cè)試或者“偷工減料”,是“得不償失”的做法。2.測(cè)試的分類(lèi)與比較2.5問(wèn)題問(wèn)題3:如果每個(gè)單元都通過(guò)了測(cè)試,把它們集成一起難道會(huì)有什么不妥嗎?集成測(cè)試是否多此一舉?要把N個(gè)單元集成一起肯定靠接口耦合,這時(shí)可能會(huì)產(chǎn)生在單元測(cè)試中無(wú)法發(fā)現(xiàn)的問(wèn)題。例如:數(shù)據(jù)通過(guò)不同的接口時(shí)可能出錯(cuò);幾個(gè)函數(shù)關(guān)聯(lián)在一起時(shí)可能達(dá)不到預(yù)期的功能;在某個(gè)單元里可以接受的誤差可能在集成后被擴(kuò)大到無(wú)法接受的程度。所以集成測(cè)試是必要的,不是多此一舉。問(wèn)題4:在集成測(cè)試的時(shí)候,已經(jīng)對(duì)一些子系統(tǒng)進(jìn)行了功能測(cè)試、性能測(cè)試等等,那么在系統(tǒng)測(cè)試時(shí)能否跳過(guò)相同內(nèi)容的測(cè)試?不能!因?yàn)榧蓽y(cè)試是在仿真環(huán)境中開(kāi)展的,那不是真正的目標(biāo)系統(tǒng)。再者,單元測(cè)試和集成測(cè)試通常由開(kāi)發(fā)小組執(zhí)行。根據(jù)測(cè)試心理學(xué)的分析,開(kāi)發(fā)人員測(cè)試自己的工作成果雖然是必要的,但不能作為成果已經(jīng)通過(guò)測(cè)試的依據(jù)。問(wèn)題3:如果每個(gè)單元都通過(guò)了測(cè)試,把它們集成一起難道會(huì)有什么2.測(cè)試的分類(lèi)與比較2.5問(wèn)題問(wèn)題5:既然系統(tǒng)測(cè)試與驗(yàn)收測(cè)試的內(nèi)容幾乎是相同的,為什么還要驗(yàn)收測(cè)試?首先是“信任”問(wèn)題。對(duì)于合同項(xiàng)目而言,如果測(cè)試小組是開(kāi)發(fā)方的人員,客戶(hù)怎么能夠輕易相信“別人”呢?所以當(dāng)項(xiàng)目進(jìn)行系統(tǒng)測(cè)試之后,客戶(hù)再進(jìn)行驗(yàn)收測(cè)試是情理之中的事。否則,那是客戶(hù)失職。不論是合同項(xiàng)目還是非合同項(xiàng)目,軟件的最終用戶(hù)各色各樣(如受教育程度不同、使用習(xí)慣不同等等)。測(cè)試小組至多能夠模仿小部分用戶(hù)的行為,但并不具有普遍的代表性。

問(wèn)題6:能否將系統(tǒng)測(cè)試和驗(yàn)收測(cè)試“合二為一”?系統(tǒng)測(cè)試不是一會(huì)兒就能做完的,比較長(zhǎng)時(shí)間的用戶(hù)測(cè)試很難組織。用戶(hù)還有自己的事情要做,他們?yōu)槭裁匆獮閯e人測(cè)試呢?即使用戶(hù)愿意做系統(tǒng)測(cè)試,他們消耗的時(shí)間、花費(fèi)的金錢(qián)大多比測(cè)試小組的高。系統(tǒng)測(cè)試時(shí)會(huì)找出相當(dāng)多的軟件缺陷,軟件需要反反復(fù)復(fù)地改錯(cuò)。如果讓用戶(hù)發(fā)現(xiàn)“內(nèi)幕”,一是丟臉,二是會(huì)嚇跑買(mǎi)主。所以還是關(guān)起門(mén)來(lái),先讓測(cè)試小組做完系統(tǒng)測(cè)試的好。

2.測(cè)試的分類(lèi)與比較2.5問(wèn)題3.測(cè)試人員的組織3.1了解開(kāi)發(fā)人員的測(cè)試心理測(cè)試的目的是找出盡可能多的缺陷。所以測(cè)試是“破壞性”的,而開(kāi)發(fā)卻是“建設(shè)性”的。開(kāi)發(fā)人員總是喜歡欣賞程序的成功之處,而不愿看到失敗之處。讓開(kāi)發(fā)者去做“蓄意破壞”的測(cè)試,就象殺自己的孩子一樣難以接受。開(kāi)發(fā)者對(duì)自己的程序印象深刻,并總以為是正確的(自信是應(yīng)該的)。倘若在設(shè)計(jì)時(shí)就存在理解錯(cuò)誤,或因不良的編程習(xí)慣而流下了隱患,他本人很難發(fā)現(xiàn)這類(lèi)錯(cuò)誤.開(kāi)發(fā)者對(duì)自己的程序的功能、接口十分熟悉,他自己幾乎不可能因?yàn)槭褂貌划?dāng)而引發(fā)錯(cuò)誤,這與大眾用戶(hù)的情況不太相似,所以測(cè)試自己的程序不具備典型性。

結(jié)論:開(kāi)發(fā)人員應(yīng)當(dāng)測(cè)試自己的程序,這是他分內(nèi)的工作。但是開(kāi)發(fā)人員在測(cè)試自己的程序時(shí),很難做到客觀、公正,所以自我測(cè)試不具有說(shuō)服力。

3.測(cè)試人員的組織3.1了解開(kāi)發(fā)人員的測(cè)試心理3.2如何組織測(cè)試人員:應(yīng)當(dāng)視企業(yè)的人力資源而定條件特別好的公司,可以為每一個(gè)開(kāi)發(fā)人員分配一名獨(dú)立的測(cè)試人員。這樣的測(cè)試人員職業(yè)化程度很高,可以完成單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試工作,能夠?qū)崿F(xiàn)開(kāi)發(fā)與測(cè)試同步進(jìn)行。條件比較好的公司,可以設(shè)置一個(gè)獨(dú)立的測(cè)試小組,該測(cè)試小組輪流參加各個(gè)項(xiàng)目的系統(tǒng)測(cè)試。而單元測(cè)試、集成測(cè)試工作由項(xiàng)目的開(kāi)發(fā)小組承擔(dān)。條件一般的公司,養(yǎng)不起獨(dú)立的測(cè)試小組。單元測(cè)試、集成測(cè)試工作由項(xiàng)目開(kāi)發(fā)小組承擔(dān)。當(dāng)項(xiàng)目進(jìn)展到系統(tǒng)測(cè)試階段,可以從項(xiàng)目外抽調(diào)一些人員,加上開(kāi)發(fā)人員,臨時(shí)組織系統(tǒng)測(cè)試小組。條件比較差的公司,也許只有一個(gè)項(xiàng)目和為數(shù)不多的一些開(kāi)發(fā)人員。那么就讓開(kāi)發(fā)人員一直兼任測(cè)試人員的角色,相互測(cè)試對(duì)方的程序。如果人員實(shí)在太少了,只好讓開(kāi)發(fā)者測(cè)試自己的程序,有測(cè)試總比沒(méi)有測(cè)試好吧!3.2如何組織測(cè)試人員:應(yīng)當(dāng)視企業(yè)的人力資源而定3.測(cè)試人員的組織3.3避免開(kāi)發(fā)人員與測(cè)試人員產(chǎn)生矛盾開(kāi)發(fā)人員的注意事項(xiàng):不要敵視測(cè)試人員。要理解測(cè)試的目的就是發(fā)現(xiàn)缺陷,是測(cè)試人員的工作職責(zé)。不要以為測(cè)試人員吃飽了沒(méi)事干,存心找茬。不要輕視測(cè)試人員,別說(shuō)人家技術(shù)水平差,不配搞開(kāi)發(fā)只好搞測(cè)試。測(cè)試人員的注意事項(xiàng):發(fā)現(xiàn)缺陷時(shí)不要嘲笑開(kāi)發(fā)人員,別說(shuō)他的程序真臭、到處是Bug。在開(kāi)發(fā)人員壓力太大時(shí)或心情不好時(shí)不要火上澆油,發(fā)現(xiàn)缺陷時(shí)別大聲嚷嚷。請(qǐng)留意另一種極端:如果測(cè)試人員與開(kāi)發(fā)人員的關(guān)系非常好,可能會(huì)導(dǎo)致在測(cè)試的時(shí)候“手下留情”,這對(duì)項(xiàng)目也是一種傷害。

3.測(cè)試人員的組織3.3避免開(kāi)發(fā)人員與測(cè)試人員產(chǎn)生矛盾4.企業(yè)的測(cè)試策略4.1理念:企業(yè)的主要目的是獲取利潤(rùn),降低測(cè)試成本也是盈利的一種方式。用較低的代價(jià)實(shí)現(xiàn)有效的測(cè)試,不應(yīng)為了追求完美的測(cè)試而不失一切代價(jià)。4.企業(yè)的測(cè)試策略4.1理念:4.2如何合理地減少測(cè)試工作量減少冗余的測(cè)試白盒測(cè)試與黑盒測(cè)試的方式雖然不同,但往往有“異曲同工”之妙。在很多地方,白盒測(cè)試與黑盒測(cè)試會(huì)產(chǎn)生一模一樣的效果(或者能推理出來(lái)),這樣的測(cè)試是冗余的。在集成測(cè)試、系統(tǒng)測(cè)試階段,可能要執(zhí)行多次“回歸測(cè)試”。每一次“回歸測(cè)試”都會(huì)存在不少的冗余,應(yīng)當(dāng)設(shè)法剔除不必要的重復(fù)測(cè)試工作。

減少無(wú)價(jià)值的測(cè)試無(wú)價(jià)值的測(cè)試通常是由于不懂得測(cè)試技術(shù)引起的。例如功能測(cè)試,在等價(jià)區(qū)間之中,本來(lái)只要測(cè)試一個(gè)典型的輸入就行了,如果有人在此區(qū)間測(cè)試了100次,那么其中99次就是無(wú)價(jià)值的。

如何“偷工減料”有一些“短、平、快”的項(xiàng)目,經(jīng)費(fèi)本來(lái)就少,用戶(hù)對(duì)質(zhì)量要求也馬馬虎虎。為了能多掙一點(diǎn)錢(qián),開(kāi)發(fā)方不得不采用“偷工減料”的方式來(lái)降低測(cè)試代價(jià)。偷工減料的途徑無(wú)非就是減少測(cè)試的內(nèi)容和頻度。但不能砍得太狠,否則軟件拿不出手?;痉椒ㄊ钦页鲕浖行枰獌?yōu)先測(cè)試的部分(見(jiàn)下表),其它次要部分可以忽略或?qū)?lái)再測(cè)試。

4.2如何合理地減少測(cè)試工作量4.企業(yè)的測(cè)試策略“偷工減料”方法的測(cè)試優(yōu)先級(jí):哪些功能是軟件的特色?

哪些功能是用戶(hù)最常用的?

如果系統(tǒng)可以分塊賣(mài)的話(huà),哪些功能塊在銷(xiāo)售時(shí)最昂貴?

哪些功能出錯(cuò)將導(dǎo)致用戶(hù)不滿(mǎn)或索賠?哪些程序是最復(fù)雜、最容易出錯(cuò)的?哪些程序是相對(duì)獨(dú)立,應(yīng)當(dāng)提前測(cè)試的?哪些程序最容易擴(kuò)散錯(cuò)誤?哪些程序是全系統(tǒng)的性能瓶頸所在?哪些程序是開(kāi)發(fā)者最沒(méi)有信心的?

4.企業(yè)的測(cè)試策略“偷工減料”方法的測(cè)試優(yōu)先級(jí):4.3測(cè)試何時(shí)結(jié)束基于測(cè)試用例的規(guī)則基于“測(cè)試期缺陷密度”的規(guī)則基于“運(yùn)行期缺陷密度”的規(guī)則4.4測(cè)試獎(jiǎng)勵(lì)機(jī)制根據(jù)缺陷的危害程度,把獎(jiǎng)金分等級(jí)。每個(gè)新缺陷對(duì)應(yīng)一份獎(jiǎng)金,把獎(jiǎng)金發(fā)給第一個(gè)發(fā)現(xiàn)該缺陷的人。獎(jiǎng)金額要適當(dāng),太低了人們不感興趣,太高了會(huì)讓項(xiàng)目破產(chǎn)的。4.3測(cè)試何時(shí)結(jié)束5.測(cè)試規(guī)范5.1測(cè)試流程第一步:制定測(cè)試計(jì)劃。該計(jì)劃被批準(zhǔn)后轉(zhuǎn)向第二步。第二步:設(shè)計(jì)測(cè)試用例。該用例被批準(zhǔn)后轉(zhuǎn)向第三步。第三步:如果滿(mǎn)足“啟動(dòng)準(zhǔn)則”,那么執(zhí)行測(cè)試。

第四步:撰寫(xiě)測(cè)試報(bào)告。

第五步:消除軟件缺陷。如果滿(mǎn)足“完成準(zhǔn)則”,那么正常結(jié)束測(cè)試。制定測(cè)試計(jì)劃設(shè)計(jì)測(cè)試用例執(zhí)行測(cè)試撰寫(xiě)測(cè)試報(bào)告消除軟件缺陷審批審批回歸測(cè)試完成測(cè)試完成準(zhǔn)則啟動(dòng)準(zhǔn)則5.測(cè)試規(guī)范5.1測(cè)試流程制定測(cè)試計(jì)劃設(shè)計(jì)測(cè)試用例執(zhí)行測(cè)5.測(cè)試規(guī)范5.2測(cè)試啟動(dòng)準(zhǔn)則同時(shí)滿(mǎn)足以下條件,允許開(kāi)始測(cè)試:(1)測(cè)試計(jì)劃已經(jīng)制定并且通過(guò)了審批;(2)測(cè)試用例已經(jīng)設(shè)計(jì)并且通過(guò)了審批;(3)被測(cè)試對(duì)象已經(jīng)開(kāi)發(fā)完畢并等待測(cè)試。

5.測(cè)試規(guī)范5.2測(cè)試啟動(dòng)準(zhǔn)則5.3測(cè)試完成準(zhǔn)則對(duì)于非嚴(yán)格系統(tǒng)可以采用“基于測(cè)試用例”的準(zhǔn)則。同時(shí)滿(mǎn)足以下條件允許結(jié)束測(cè)試:(1)功能性測(cè)試用例通過(guò)率達(dá)到100%;(2)非功能性測(cè)試用例通過(guò)率達(dá)到90%時(shí)。對(duì)于嚴(yán)格系統(tǒng),應(yīng)當(dāng)補(bǔ)充“基于測(cè)試期缺陷密度”的規(guī)則:(3)相鄰n個(gè)CPU小時(shí)內(nèi)“測(cè)試期缺陷密度”全部低于某個(gè)值m。例如n大于10,m小于等于1。5.4測(cè)試文檔模板測(cè)試計(jì)劃參考模板測(cè)試用例參考模板測(cè)試報(bào)告參考模板5.3測(cè)試完成準(zhǔn)則5.5測(cè)試計(jì)劃的參考模板5.5測(cè)試計(jì)劃的參考模板5.6測(cè)試用例5.6測(cè)試用例5.7測(cè)試報(bào)告的參考模板5.7測(cè)試報(bào)告的參考模板6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)6.1接口與路徑測(cè)試6.2功能測(cè)試6.3健壯性測(cè)試6.4性能測(cè)試6.5用戶(hù)界面測(cè)試6.6信息安全測(cè)試6.7壓力測(cè)試6.8可靠性測(cè)試6.9安裝/反安裝測(cè)試6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)6.1接口與路徑測(cè)試6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)6.1接口與路徑測(cè)試數(shù)據(jù)一般通過(guò)接口輸入和輸出,所以接口測(cè)試是白盒測(cè)試的第一步。每個(gè)接口可能有多個(gè)輸入?yún)?shù),每個(gè)參數(shù)有“典型值”、“邊界值”、“異常值”之分,所以輸入的組合數(shù)可能并不少。根據(jù)接口的定義,可以推斷某種輸入應(yīng)當(dāng)產(chǎn)生什么樣的輸出。輸出包括函數(shù)的返回值和輸出參數(shù)。如果實(shí)際輸出與期望的輸出不一致,那么說(shuō)明程序有錯(cuò)誤。白盒方式的接口測(cè)試和黑盒方式的功能測(cè)試,其方法十分相似。一個(gè)函數(shù)體內(nèi)的語(yǔ)句可能只有十幾條,但邏輯路徑可能有成千上萬(wàn)條。想遍歷測(cè)試幾乎是不可能的,不測(cè)試或者胡亂找?guī)讞l路徑測(cè)試卻又不行。對(duì)于非嚴(yán)格系統(tǒng)而言,在分析路徑方面化費(fèi)很多精力是不值得的。我認(rèn)為在構(gòu)造接口測(cè)試的同時(shí)已經(jīng)建立了測(cè)試路徑。因?yàn)槊恳环N輸入將產(chǎn)生唯一的輸出,輸入與輸出之間的路徑也是唯一的。由于接口測(cè)試中的輸入是有代表性的,因此相應(yīng)的路徑也具有代表性,不用得著費(fèi)煞苦心地去找測(cè)試路徑。6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)6.1接口與路徑測(cè)試路徑測(cè)試的檢查表數(shù)據(jù)類(lèi)型、變量值、邏輯判斷、循環(huán)、內(nèi)存管理、文件I/O、錯(cuò)誤處理由于接口測(cè)試是枚舉的,有可能漏掉某些狀況,導(dǎo)致一些重要的路徑?jīng)]有被測(cè)試。預(yù)防措施有:觀察是否有程序語(yǔ)句從來(lái)沒(méi)有被執(zhí)行過(guò)。如果發(fā)生在這種情況,要么是程序有錯(cuò)誤,存在無(wú)用的代碼;要么是接口測(cè)試不充分,漏掉了一些路徑。要特別留意函數(shù)體內(nèi)的錯(cuò)誤處理程序塊(如果存在的話(huà)),這是最易被人疏忽的路徑,隱患最多。路徑測(cè)試的檢查表6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)接口與路徑測(cè)試用例的參考模板6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)接口與路徑測(cè)試用例的參考模6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)6.2功能測(cè)試功能測(cè)試的基本方法是構(gòu)造一些合理輸入(在需求范圍之內(nèi)),檢查輸出是否與期望的相同。如果兩者不一致,即表明功能有誤。也有例外的情況,如《需求規(guī)格說(shuō)明書(shū)》中的某個(gè)功能寫(xiě)錯(cuò)了,而實(shí)際上軟件的功能卻是正確的,這時(shí)要更改的是《需求規(guī)格說(shuō)明書(shū)》。功能測(cè)試看起來(lái)比較簡(jiǎn)單,只要看得懂《需求規(guī)格說(shuō)明書(shū)》,誰(shuí)都會(huì)做。難點(diǎn)在于如何構(gòu)造有效的輸入。由于輸入空間通常是無(wú)限的,窮舉測(cè)試顯然行不通。那么隨便輸入一些東西,碰運(yùn)氣行不行?功能測(cè)試有兩種比較好的測(cè)試方法:等價(jià)劃分法和邊界值分析法。等價(jià)劃分是指把輸入空間劃分為幾個(gè)“等價(jià)區(qū)間”,在每個(gè)“等價(jià)區(qū)間”中只需要測(cè)試一個(gè)典型值就可以了。等價(jià)劃分法來(lái)源于人們的直覺(jué)與經(jīng)驗(yàn),可令測(cè)試事半功倍?!叭毕葸z漏在角落里,聚集在邊界上”。邊界值測(cè)試法是對(duì)等價(jià)劃分法的補(bǔ)充。如果A和B是輸入空間的邊界值,那么除了典型值外還要用A和B作為測(cè)試用例。例如測(cè)試函數(shù)f(x)=根號(hào)(x)。憑直覺(jué),等價(jià)區(qū)間應(yīng)是(0,1)和(1,+∞)??扇〉湫椭祒=0.5以及x=2.0進(jìn)行“等價(jià)劃分”測(cè)試。再取x=0以及x=1進(jìn)行“邊界值”測(cè)試。6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)6.2功能測(cè)試6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)功能測(cè)試用例的參考模板6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)功能測(cè)試用例的參考模板6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)6.3健壯性測(cè)試健壯性是指在異常情況下,軟件還能正常運(yùn)行的能力。健壯性有兩層含義:一是容錯(cuò)能力,二是恢復(fù)能力。容錯(cuò)性測(cè)試通常構(gòu)造一些不合理的輸入來(lái)引誘軟件出錯(cuò),例如:(1)輸入錯(cuò)誤的數(shù)據(jù)類(lèi)型。如“猴”年“馬”月。(2)輸入定義域之外的數(shù)值。粗暴一些方式俗稱(chēng)“大猩猩”測(cè)試法。除了不能拳打腳踢嘴咬外,什么招術(shù)都可以使出來(lái)。例如在測(cè)試客戶(hù)機(jī)-服務(wù)器模式的軟件時(shí),把網(wǎng)絡(luò)線(xiàn)拔掉,造成通信異常中斷。恢復(fù)測(cè)試重點(diǎn)考察一下幾項(xiàng):(1)系統(tǒng)能否重新運(yùn)行;(2)有無(wú)重要的數(shù)據(jù)丟失;(3)是否毀壞了其它相關(guān)的軟件硬件。6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)6.3健壯性測(cè)試6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)健壯性測(cè)試用例的參考模板6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)健壯性測(cè)試用例的參考模板6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)6.4性能測(cè)試性能測(cè)試即測(cè)試軟件處理事務(wù)的速度,一是為了檢驗(yàn)性能是否符合需求,二是為了得到某些性能數(shù)據(jù)供人們參考(例如用于宣傳)。有時(shí)人們關(guān)心測(cè)試的“絕對(duì)值”,如數(shù)據(jù)送輸速率是每秒多少比特。有時(shí)人們關(guān)心測(cè)試的“相對(duì)值”,如某個(gè)軟件比另一個(gè)軟件快多少倍。在獲取測(cè)試的“絕對(duì)值”時(shí),我們要充分考慮并記錄運(yùn)行環(huán)境對(duì)測(cè)試的影響。例如網(wǎng)絡(luò)環(huán)境、計(jì)算機(jī)主頻,總線(xiàn)結(jié)構(gòu)和外部設(shè)備都可能影響軟件的運(yùn)行速度。

性能測(cè)試的一些注意事項(xiàng):不要試圖讓人拿著鐘表去測(cè)時(shí)間,應(yīng)當(dāng)編寫(xiě)一段程序用于計(jì)算時(shí)間以及相關(guān)數(shù)據(jù)。應(yīng)當(dāng)測(cè)試軟件在標(biāo)準(zhǔn)配置和最低配置下的性能。為了排除干擾,應(yīng)當(dāng)關(guān)閉那些消耗內(nèi)存、占用CPU的其它應(yīng)用軟件(如殺毒軟件)。不同的輸入情況會(huì)得到不同的性能數(shù)據(jù),應(yīng)當(dāng)分檔記錄。例如傳輸文件的容量從100K到1M可以分成若干等級(jí)。由于環(huán)境的波動(dòng),同一種輸入情況在不同的時(shí)間可能得到不同的性能數(shù)據(jù),可以取其平均值。6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)6.4性能測(cè)試6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)性能測(cè)試用例的參考模板6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)性能測(cè)試用例的參考模板6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)6.5用戶(hù)界面測(cè)試絕大多數(shù)軟件擁有圖形用戶(hù)界面。圖形用戶(hù)界面的測(cè)試重點(diǎn)是正確性、易用性和視覺(jué)效果。在評(píng)價(jià)易用性和視覺(jué)效果時(shí),主觀性非常強(qiáng),應(yīng)當(dāng)考慮多個(gè)人的觀點(diǎn)。用戶(hù)界面測(cè)試用例的參考模板:6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)6.5用戶(hù)界面測(cè)試6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)6.6信息安全測(cè)試信息安全性(security)是指防止系統(tǒng)被非法入侵的能力,既屬于技術(shù)問(wèn)題又屬于管理問(wèn)題。信息安全性測(cè)試有如下步驟:(1)為非法入侵設(shè)立目標(biāo),例如“盜竊某個(gè)文件”或“更改數(shù)據(jù)庫(kù)記錄”等。(2)邀請(qǐng)(或懸賞)一些人扮演黑客,讓他們想盡辦法入侵系統(tǒng),實(shí)現(xiàn)“目標(biāo)”。(3)如果有人成功了,請(qǐng)他詳述入侵的過(guò)程。別忘了給予獎(jiǎng)勵(lì)。信息安全性測(cè)試用例的參考模板6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)6.6信息安全測(cè)試6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)6.7壓力測(cè)試壓力測(cè)試也叫負(fù)荷測(cè)試,即獲取系統(tǒng)能正常運(yùn)行的極限狀態(tài)。了解“極限”是很有價(jià)值的,例如潛艇下潛極限深度…。壓力測(cè)試的主要任務(wù)是:構(gòu)造正確的輸入,使勁折騰系統(tǒng)卻讓它剛好不癱瘓。

壓力測(cè)試的一個(gè)變種是敏感測(cè)試。在某種情況下,微小的輸入變動(dòng)會(huì)導(dǎo)致系統(tǒng)的表現(xiàn)(如性能)發(fā)生急劇的變化。敏感測(cè)試目的是發(fā)現(xiàn)什么樣的輸入可能會(huì)引發(fā)不穩(wěn)定現(xiàn)象。

壓力測(cè)試用例的參考模板6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)6.7壓力測(cè)試6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)6.8可靠性測(cè)試可靠性是指在一定的環(huán)境下、在給定的時(shí)間內(nèi)、系統(tǒng)不發(fā)生故障的概率。由于軟件不像硬件那樣可以“加速老化”,按此定義,軟件可靠性測(cè)試可能會(huì)花費(fèi)很長(zhǎng)時(shí)間。比較實(shí)用的辦法是,讓用戶(hù)使用該系統(tǒng),記錄每一次發(fā)生故障的時(shí)刻。計(jì)算出相鄰故障的時(shí)間間隔,注意要去掉非工作時(shí)間。這樣我們可以方便地統(tǒng)計(jì)出不發(fā)生故障的“最小時(shí)間間隔”、“最大時(shí)間間隔”和“平均時(shí)間間隔”。其中“平均時(shí)間間隔”會(huì)讓人們大體了解到系統(tǒng)“可靠”的程度。6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)6.8可靠性測(cè)試6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)6.9安裝/反安裝測(cè)試安裝/反安裝測(cè)試的目的:避免“大風(fēng)浪都挺過(guò)來(lái)了,卻在陰溝里翻了船”目前市面上有非常流行的、專(zhuān)門(mén)制作安裝/反安裝程序的一些工具,如InstallShelled。制作安裝/反安裝程序不再是件難事,關(guān)鍵是不要麻痹大意。主要測(cè)試工作:(1)至少在標(biāo)準(zhǔn)配置和最低配置兩種環(huán)境下測(cè)試;(2)如果有安裝界面,應(yīng)當(dāng)嘗試各種選項(xiàng),如選擇“全部”、“部分”、“升級(jí)”等。6.軟件系統(tǒng)的主要測(cè)試內(nèi)容及技術(shù)6.9安裝/反安裝測(cè)7.改錯(cuò)的方法7.1要有勇氣改錯(cuò)改錯(cuò)是個(gè)大悲大喜的過(guò)程,一天之內(nèi)可以讓人在悲傷的低谷和喜悅的顛峰之間跌蕩起伏。如果改過(guò)了成千上萬(wàn)個(gè)程序錯(cuò)誤,那么少男少女們不必經(jīng)歷失戀的挫折也能變得成熟起來(lái)。

軟件中的錯(cuò)誤通常只有開(kāi)發(fā)者自己才能找出并改掉。如果因畏懼而拖延,會(huì)讓你終日心情不定,食無(wú)味,睡不香。所以長(zhǎng)痛不如短痛,要集中精力對(duì)付錯(cuò)誤。

東北有個(gè)林場(chǎng)工人,工作勤奮,一人能干幾個(gè)人的活。前三十年是伐樹(shù)勞模,受到周總理的接見(jiàn)。忽有一天醒悟過(guò)來(lái),覺(jué)得自己太對(duì)不起森林,決心補(bǔ)救錯(cuò)誤。后三十年成了植樹(shù)勞模,受到朱總理的接見(jiàn)。若能以此大勇來(lái)改錯(cuò),正是無(wú)往而不勝也。我們軟件開(kāi)發(fā)人員應(yīng)當(dāng)向這位可敬的林場(chǎng)工人學(xué)習(xí)。7.改錯(cuò)的方法7.1要有勇氣改錯(cuò)7.改錯(cuò)的方法7.2對(duì)癥下藥改錯(cuò)的第一步是找出錯(cuò)誤的根源,如同醫(yī)生治病,必須先找出病因才能“對(duì)癥下藥”。改錯(cuò)過(guò)程很像偵破案件,有些壞事發(fā)生了,而僅有的信息就是它的確發(fā)生了。我們必須從結(jié)果出發(fā),逆向思考。一旦找到了根源,我們就知道如何改正了。有人問(wèn)阿凡提:“我肚子痛,應(yīng)該用什么藥?”阿凡提說(shuō):“應(yīng)該用眼藥水,因?yàn)槟阊劬Σ缓?,吃了臟東西才肚子痛?!?/p>

根據(jù)軟件錯(cuò)誤的癥狀推斷出根源并不是件容易的事,因?yàn)椋?/p>

(1)癥狀和根源可能相隔很遠(yuǎn)。也就是說(shuō),癥狀可能在某一個(gè)程序單元中出現(xiàn),而根源實(shí)際上在很遠(yuǎn)的另一個(gè)地方。高度耦合的程序結(jié)構(gòu)加劇了這種情況。

(2)癥狀可能在另一個(gè)錯(cuò)誤被糾正后暫時(shí)性消失。

(3)癥狀可能并不是由某個(gè)程序錯(cuò)誤直接引發(fā)的,如誤差累積。

(4)癥狀可能是由不太容易跟蹤的人工錯(cuò)誤引起的。

(5)癥狀可能時(shí)隱時(shí)現(xiàn),如內(nèi)存泄漏。

(6)很難重新產(chǎn)生完全一樣的輸入條件,難以恢復(fù)“錯(cuò)誤的現(xiàn)場(chǎng)”。

(7)癥狀可能分布在許多不同的任務(wù)中,難以跟蹤。

人們把尋找錯(cuò)誤根源的過(guò)程稱(chēng)為調(diào)試(debugging)。

7.改錯(cuò)的方法7.2對(duì)癥下藥7.改錯(cuò)的方法7.3硬件的調(diào)試方法硬件調(diào)試據(jù)說(shuō)繼承了中醫(yī)的“望聞聽(tīng)切”診斷方法:(1)望,即用眼睛查看哪些地方是否有破損。(2)聞,即用鼻子聞哪些地方是否有燒焦的味道。(3)聽(tīng),即用耳朵聽(tīng)哪些地方是否有異常的噪聲。(4)切,即用手觸摸哪些地方是否異常發(fā)燙。據(jù)有經(jīng)驗(yàn)的電器修理工說(shuō),“望聞聽(tīng)切”這4招能解決大部分問(wèn)題。通常軟件改錯(cuò)要比硬件改錯(cuò)的代價(jià)低,因?yàn)楹笳呓?jīng)常拋棄原來(lái)的東西。7.改錯(cuò)的方法7.3硬件的調(diào)試方法7.4軟件的調(diào)試方法軟件調(diào)試的基本方法是“粗分細(xì)找”。對(duì)于隱藏得很深的Bug,我們應(yīng)該運(yùn)用歸納、推理、“二分”等方法先“快速、粗略”地確定錯(cuò)誤根源的范圍,然后再用調(diào)試工具仔細(xì)地跟蹤此范圍的源代碼。如果

溫馨提示

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

評(píng)論

0/150

提交評(píng)論