軟件測(cè)試與改錯(cuò)-掌握有效測(cè)試的方法與技術(shù)課件



《軟件測(cè)試與改錯(cuò)-掌握有效測(cè)試的方法與技術(shù)課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《軟件測(cè)試與改錯(cuò)-掌握有效測(cè)試的方法與技術(shù)課件(45頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、,Title Holder,First bullet sentence case,Second bullet sentence case,Third Bullet,Fourth bullet,第,*,頁,軟件測(cè)試與改錯(cuò),掌握有效測(cè)試的方法與技術(shù),王曉輝,maconi126.co,,華北電力大學(xué)計(jì)算機(jī)系,軟件測(cè)試與改錯(cuò)華北電力大學(xué)計(jì)算機(jī)系,目錄,1.,測(cè)試的常識(shí)與道理,2.,測(cè)試的分類與比較,3.,測(cè)試人員的組織,4.,企業(yè)的測(cè)試策略,5.,測(cè)試規(guī)范,6.軟件產(chǎn)品的主要測(cè)試內(nèi)容及技術(shù),7.改錯(cuò)的方法,8.小結(jié),世上不存在沒有缺陷的軟件,目錄1.測(cè)試的常識(shí)與道理 世上不存在沒有缺陷的軟件,1.測(cè)試
2、的常識(shí)與道理,1.1,你真的懂測(cè)試嗎,編程大師說:沒有錯(cuò)誤的程序世間難求。(編程之道),你在學(xué)校里學(xué)過測(cè)試嗎?(讀到博士可能也不懂測(cè)試),你所在的企業(yè)重視測(cè)試嗎?(小公司程序員的技能更加全面),臨時(shí)抱佛腳行嗎?,你以為有文檔模板就會(huì)測(cè)試了嗎,?,如果不懂得有效地進(jìn)行測(cè)試,你不僅得不到功勞,也沒人欣賞你的苦勞,你擁有最多的將只是疲勞。,職業(yè)軟件工程師應(yīng)當(dāng)掌握需求開發(fā)、系統(tǒng)設(shè)計(jì)、編程、測(cè)試、維護(hù),所有技能。,1.測(cè)試的常識(shí)與道理1.1 你真的懂測(cè)試嗎,1.2 測(cè)試的目的是什么,測(cè)試的目的是為了發(fā)現(xiàn)盡可能多的缺陷,,不是,為了說明軟件中沒有缺陷。,推論:成功的測(cè)試在于發(fā)現(xiàn)了迄今尚未發(fā)現(xiàn)的缺陷。所以測(cè)
3、試人員的職責(zé)是設(shè)計(jì)這樣的測(cè)試用例,它能有效地揭示潛伏在軟件里的缺陷。,千萬不要將“測(cè)試”與“演示”混為一談。例如科研鑒定會(huì)。,如果產(chǎn)品通過了嚴(yán)格的測(cè)試,大家不要不吭氣,應(yīng)當(dāng)好好地宣傳一把,。,1.2 測(cè)試的目的是什么,1.測(cè)試的常識(shí)與道理,1.3 一些常識(shí)和經(jīng)驗(yàn)之談,測(cè)試能提高軟件的質(zhì)量,但是提高質(zhì)量不能依賴測(cè)試。,測(cè)試只能證明缺陷存在,不能證明缺陷不存在。“徹底地測(cè)試”難以成為現(xiàn)實(shí),要考慮時(shí)間、費(fèi)用等限制,不允許無休止地測(cè)試。我們應(yīng)當(dāng)祈禱:軟件的缺陷在產(chǎn)品被淘汰之前一直沒有機(jī)會(huì)發(fā)作。,測(cè)試的主要困難是不知道如何進(jìn)行有效地測(cè)試,也不知道什么時(shí)候可以放心地結(jié)束測(cè)試。,每個(gè)開發(fā)人員應(yīng)當(dāng)測(cè)試自己的程
4、序(份內(nèi)之事),但是不能作為該程序已經(jīng)通過測(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è)試的分類與比較,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è)試過程,體現(xiàn)了“分而治之”的思想。,單元測(cè)試的粒度
5、最小,一般由開發(fā)小組采用白盒方式來測(cè)試,主要測(cè)試單元是否符合“設(shè)計(jì)”。,集成測(cè)試界于單元測(cè)試和系統(tǒng)測(cè)試之間,起到“橋梁作用”,一般由開發(fā)小組采用白盒加黑盒的方式來測(cè)試,既要驗(yàn)證“設(shè)計(jì)”又要驗(yàn)證“需求”。,系統(tǒng)測(cè)試的粒度最大,一般由獨(dú)立測(cè)試小組采用黑盒方式來測(cè)試,主要測(cè)試系統(tǒng)是否符合“需求規(guī)格說明書”。,驗(yàn)收測(cè)試與系統(tǒng)測(cè)試非常相似,主要區(qū)別是測(cè)試人員不同,驗(yàn)收測(cè)試由用戶執(zhí)行。,2.測(cè)試的分類與比較2.1 測(cè)試方式,2.測(cè)試的分類與比較,2.3 開發(fā)與測(cè)試的,V,型關(guān)系,如果軟件開發(fā)過程采用嚴(yán)格的瀑布模型,那么開發(fā)與測(cè)試有“,V”,型的對(duì)應(yīng)關(guān)系,。,需求開發(fā),高層設(shè)計(jì),詳細(xì)設(shè)計(jì),編程,單元測(cè)試,集
6、成測(cè)試,系統(tǒng)測(cè)試,驗(yàn)收測(cè)試,2.測(cè)試的分類與比較2.3 開發(fā)與測(cè)試的 V 型關(guān)系需求開,2.測(cè)試的分類與比較,2.4 測(cè)試內(nèi)容,接口與路徑測(cè)試。,功能測(cè)試、健壯性測(cè)試、性能測(cè)試、用戶界面測(cè)試、安全性測(cè)試、壓力測(cè)試、可靠性測(cè)試、安裝/反安裝測(cè)試,測(cè)試階段,主要依據(jù),測(cè)試人員、測(cè)試方式,主要測(cè)試內(nèi)容,單元測(cè)試,系統(tǒng)設(shè)計(jì)文檔,由開發(fā)小組執(zhí)行白盒測(cè)試,接口測(cè)試、路徑測(cè)試,集成測(cè)試,系統(tǒng)設(shè)計(jì)文檔,需求文檔,由開發(fā)小組執(zhí)行白盒測(cè)試和黑盒測(cè)試,接口測(cè)試、路徑測(cè)試,功能測(cè)試、性能測(cè)試,系統(tǒng)測(cè)試,需求文檔,由獨(dú)立測(cè)試小組執(zhí)行黑盒測(cè)試,功能測(cè)試、健壯性測(cè)試、性能測(cè)試、用戶界面測(cè)試、安全性測(cè)試、壓力測(cè)試、可靠性測(cè)試
7、、安裝,/,反安裝測(cè)試,驗(yàn)收測(cè)試,需求文檔,由用戶執(zhí)行黑盒測(cè)試,2.測(cè)試的分類與比較2.4 測(cè)試內(nèi)容測(cè)試階段 主要依據(jù) 測(cè),2.測(cè)試的分類與比較,2.5 問題,問題1:有了“黑盒”測(cè)試為什么還要“白盒”測(cè)試?,黑盒測(cè)試只能觀察軟件的外部表現(xiàn),即使軟件的輸入輸出都是正確的,卻并不能說明軟件就是正確的。因?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ì)問題。在這方面,黑盒測(cè)試存在嚴(yán)重的不足。,問題2:由于單元測(cè)試要寫測(cè)試驅(qū)動(dòng)程序,非常麻煩,能否等到整個(gè)系統(tǒng)全部開發(fā)
8、完后,再集中精力進(jìn)行一次性地單元測(cè)試呢?,如果這樣做,在開發(fā)過程中,缺陷會(huì)越積越多并且分布得更廣、隱藏得更深,反而導(dǎo)致測(cè)試與改錯(cuò)的代價(jià)大大增加。最糟糕的是無法估計(jì)測(cè)試與改錯(cuò)的工作量,使進(jìn)度失去控制。因此為圖眼前省事而省略單元測(cè)試或者“偷工減料”,是“得不償失”的做法。,2.測(cè)試的分類與比較2.5 問題,問題3:如果每個(gè)單元都通過了測(cè)試,把它們集成一起難道會(huì)有什么不妥嗎?集成測(cè)試是否多此一舉?,要把,N,個(gè)單元集成一起肯定靠接口耦合,這時(shí)可能會(huì)產(chǎn)生在單元測(cè)試中無法發(fā)現(xiàn)的問題。例如:數(shù)據(jù)通過不同的接口時(shí)可能出錯(cuò);幾個(gè)函數(shù)關(guān)聯(lián)在一起時(shí)可能達(dá)不到預(yù)期的功能;在某個(gè)單元里可以接受的誤差可能在集成后被擴(kuò)大
9、到無法接受的程度。所以集成測(cè)試是必要的,不是多此一舉。,問題4:在集成測(cè)試的時(shí)候,已經(jīng)對(duì)一些子系統(tǒng)進(jìn)行了功能測(cè)試、性能測(cè)試等等,那么在系統(tǒng)測(cè)試時(shí)能否跳過相同內(nèi)容的測(cè)試?,不能!因?yàn)榧蓽y(cè)試是在仿真環(huán)境中開展的,那不是真正的目標(biāo)系統(tǒng)。再者,單元測(cè)試和集成測(cè)試通常由開發(fā)小組執(zhí)行。根據(jù)測(cè)試心理學(xué)的分析,開發(fā)人員測(cè)試自己的工作成果雖然是必要的,但不能作為成果已經(jīng)通過測(cè)試的依據(jù)。,問題3:如果每個(gè)單元都通過了測(cè)試,把它們集成一起難道會(huì)有什么,2.測(cè)試的分類與比較,2.5 問題,問題5:既然系統(tǒng)測(cè)試與驗(yàn)收測(cè)試的內(nèi)容幾乎是相同的,為什么還要驗(yàn)收測(cè)試?,首先是“信任”問題。對(duì)于合同項(xiàng)目而言,如果測(cè)試小組是開發(fā)
10、方的人員,客戶怎么能夠輕易相信“別人”呢?所以當(dāng)項(xiàng)目進(jìn)行系統(tǒng)測(cè)試之后,客戶再進(jìn)行驗(yàn)收測(cè)試是情理之中的事。否則,那是客戶失職。,不論是合同項(xiàng)目還是非合同項(xiàng)目,軟件的最終用戶各色各樣(如受教育程度不同、使用習(xí)慣不同等等)。測(cè)試小組至多能夠模仿小部分用戶的行為,但并不具有普遍的代表性。,問題6:能否將系統(tǒng)測(cè)試和驗(yàn)收測(cè)試“合二為一”?,系統(tǒng)測(cè)試不是一會(huì)兒就能做完的,比較長時(shí)間的用戶測(cè)試很難組織。用戶還有自己的事情要做,他們?yōu)槭裁匆獮閯e人測(cè)試呢?即使用戶愿意做系統(tǒng)測(cè)試,他們消耗的時(shí)間、花費(fèi)的金錢大多比測(cè)試小組的高。,系統(tǒng)測(cè)試時(shí)會(huì)找出相當(dāng)多的軟件缺陷,軟件需要反反復(fù)復(fù)地改錯(cuò)。如果讓用戶發(fā)現(xiàn)“內(nèi)幕”,一是丟
11、臉,二是會(huì)嚇跑買主。所以還是關(guān)起門來,先讓測(cè)試小組做完系統(tǒng)測(cè)試的好。,2.測(cè)試的分類與比較2.5 問題,3.,測(cè)試人員的組織,3.1 了解開發(fā)人員的測(cè)試心理,測(cè)試的目的是找出盡可能多的缺陷。所以測(cè)試是“破壞性”的,而開發(fā)卻是“建設(shè)性”的。開發(fā)人員總是喜歡欣賞程序的成功之處,而不愿看到失敗之處。讓開發(fā)者去做“蓄意破壞”的測(cè)試,就象殺自己的孩子一樣難以接受。,開發(fā)者對(duì)自己的程序印象深刻,并總以為是正確的(自信是應(yīng)該的)。倘若在設(shè)計(jì)時(shí)就存在理解錯(cuò)誤,或因不良的編程習(xí)慣而流下了隱患,他本人很難發(fā)現(xiàn)這類錯(cuò)誤.,開發(fā)者對(duì)自己的程序的功能、接口十分熟悉,他自己幾乎不可能因?yàn)槭褂貌划?dāng)而引發(fā)錯(cuò)誤,這與大眾用戶的
12、情況不太相似,所以測(cè)試自己的程序不具備典型性。,結(jié)論:開發(fā)人員應(yīng)當(dāng)測(cè)試自己的程序,這是他分內(nèi)的工作。但是開發(fā)人員在測(cè)試自己的程序時(shí),很難做到客觀、公正,所以自我測(cè)試不具有說服力。,3.測(cè)試人員的組織3.1 了解開發(fā)人員的測(cè)試心理,3.2 如何組織測(cè)試人員:應(yīng)當(dāng)視企業(yè)的人力資源而定,條件特別好的公司,,,可以為每一個(gè)開發(fā)人員分配一名獨(dú)立的測(cè)試人員。這樣的測(cè)試人員職業(yè)化程度很高,可以完成單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試工作,能夠?qū)崿F(xiàn)開發(fā)與測(cè)試同步進(jìn)行。,條件比較好的公司,可以設(shè)置一個(gè)獨(dú)立的測(cè)試小組,該測(cè)試小組輪流參加各個(gè)項(xiàng)目的系統(tǒng)測(cè)試。而單元測(cè)試、集成測(cè)試工作由項(xiàng)目的開發(fā)小組承擔(dān)。,條件一般的公司,養(yǎng)
13、不起獨(dú)立的測(cè)試小組。單元測(cè)試、集成測(cè)試工作由項(xiàng)目開發(fā)小組承擔(dān)。當(dāng)項(xiàng)目進(jìn)展到系統(tǒng)測(cè)試階段,可以從項(xiàng)目外抽調(diào)一些人員,加上開發(fā)人員,臨時(shí)組織系統(tǒng)測(cè)試小組。,條件比較差的公司,也許只有一個(gè)項(xiàng)目和為數(shù)不多的一些開發(fā)人員。那么就讓開發(fā)人員一直兼任測(cè)試人員的角色,相互測(cè)試對(duì)方的程序。如果人員實(shí)在太少了,只好讓開發(fā)者測(cè)試自己的程序,有測(cè)試總比沒有測(cè)試好吧!,3.2 如何組織測(cè)試人員:應(yīng)當(dāng)視企業(yè)的人力資源而定,3.,測(cè)試人員的組織,3.3 避免開發(fā)人員與測(cè)試人員產(chǎn)生矛盾,開發(fā)人員的注意事項(xiàng):,不要敵視測(cè)試人員。要理解測(cè)試的目的就是發(fā)現(xiàn)缺陷,是測(cè)試人員的工作職責(zé)。不要以為測(cè)試人員吃飽了沒事干,存心找茬。,不要輕
14、視測(cè)試人員,別說人家技術(shù)水平差,不配搞開發(fā)只好搞測(cè)試。,測(cè)試人員的注意事項(xiàng):,發(fā)現(xiàn)缺陷時(shí)不要嘲笑開發(fā)人員,別說他的程序真臭、到處是,Bug。,在開發(fā)人員壓力太大時(shí)或心情不好時(shí)不要火上澆油,發(fā)現(xiàn)缺陷時(shí)別大聲嚷嚷。,請(qǐng)留意另一種極端:如果測(cè)試人員與開發(fā)人員的關(guān)系非常好,可能會(huì)導(dǎo)致在測(cè)試的時(shí)候“手下留情”,這對(duì)項(xiàng)目也是一種傷害。,3.測(cè)試人員的組織3.3 避免開發(fā)人員與測(cè)試人員產(chǎn)生矛盾,4.,企業(yè)的測(cè)試策略,4.1 理念:,企業(yè)的主要目的是獲取利潤,降低測(cè)試成本也是盈利的一種方式。,用較低的代價(jià)實(shí)現(xiàn)有效的測(cè)試,不應(yīng)為了追求完美的測(cè)試而不失一切代價(jià)。,4.企業(yè)的測(cè)試策略4.1 理念:,4.2 如何合理
15、地減少測(cè)試工作量,減少冗余的測(cè)試,白盒測(cè)試與黑盒測(cè)試的方式雖然不同,但往往有“異曲同工”之妙。在很多地方,白盒測(cè)試與黑盒測(cè)試會(huì)產(chǎn)生一模一樣的效果(或者能推理出來),這樣的測(cè)試是冗余的。,在集成測(cè)試、系統(tǒng)測(cè)試階段,可能要執(zhí)行多次“回歸測(cè)試”。每一次“回歸測(cè)試”都會(huì)存在不少的冗余,應(yīng)當(dāng)設(shè)法剔除不必要的重復(fù)測(cè)試工作。,減少無價(jià)值的測(cè)試,無價(jià)值的測(cè)試通常是由于不懂得測(cè)試技術(shù)引起的。例如功能測(cè)試,在等價(jià)區(qū)間之中,本來只要測(cè)試一個(gè)典型的輸入就行了,如果有人在此區(qū)間測(cè)試了100次,那么其中99次就是無價(jià)值的。,如何“偷工減料”,有一些“短、平、快”的項(xiàng)目,經(jīng)費(fèi)本來就少,用戶對(duì)質(zhì)量要求也馬馬虎虎。為了能多掙一
16、點(diǎn)錢,開發(fā)方不得不采用“偷工減料”的方式來降低測(cè)試代價(jià)。偷工減料的途徑無非就是減少測(cè)試的內(nèi)容和頻度。但不能砍得太狠,否則軟件拿不出手?;痉椒ㄊ钦页鲕浖行枰獌?yōu)先測(cè)試的部分(見下表),其它次要部分可以忽略或?qū)碓贉y(cè)試。,4.2 如何合理地減少測(cè)試工作量,4.,企業(yè)的測(cè)試策略,“偷工減料”方法的測(cè)試優(yōu)先級(jí):,哪些功能是軟件的特色?,哪些功能是用戶最常用的?,如果系統(tǒng)可以分塊賣的話,哪些功能塊在銷售時(shí)最昂貴?,哪些功能出錯(cuò)將導(dǎo)致用戶不滿或索賠?,哪些程序是最復(fù)雜、最容易出錯(cuò)的?,哪些程序是相對(duì)獨(dú)立,應(yīng)當(dāng)提前測(cè)試的?,哪些程序最容易擴(kuò)散錯(cuò)誤?,哪些程序是全系統(tǒng)的性能瓶頸所在?,哪些程序是開發(fā)者最沒有信心的?,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è)試流程,第一步:制
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中語文名句默寫總結(jié)
- 八年級(jí)下冊(cè)語文必讀名著《經(jīng)典常談》重點(diǎn)知識(shí)填空100題含參考答案
- 初中語文滿分作文閃光句子
- 初中語文作文素材:54句意蘊(yùn)深刻的電影臺(tái)詞
- 初中語文考試200個(gè)必考成語
- 初中語文考試易錯(cuò)拼音300個(gè)
- 初中語文期末押題滿分作文8篇
- 八年級(jí)語文下冊(cè) 第六單元 《岳陽樓記》教案
- 初中語文文言文閱讀資料:《宋史?歐陽修傳》
- 初中語文文言文閱讀資料:《戴胄犯顏執(zhí)法》
- 初中語文常考的118個(gè)成語
- 初中語文【易丟分】7種題型??合集
- 初中語文作文素材:10個(gè)萬能作文套句
- 初中語文考試17種??嫉谋憩F(xiàn)手法
- 初中語文古詩文劃分節(jié)奏10種方法