軟件測(cè)試項(xiàng)目實(shí)戰(zhàn)(第四版)課件 第三章:缺陷管理_第1頁(yè)
軟件測(cè)試項(xiàng)目實(shí)戰(zhàn)(第四版)課件 第三章:缺陷管理_第2頁(yè)
軟件測(cè)試項(xiàng)目實(shí)戰(zhàn)(第四版)課件 第三章:缺陷管理_第3頁(yè)
軟件測(cè)試項(xiàng)目實(shí)戰(zhàn)(第四版)課件 第三章:缺陷管理_第4頁(yè)
軟件測(cè)試項(xiàng)目實(shí)戰(zhàn)(第四版)課件 第三章:缺陷管理_第5頁(yè)
已閱讀5頁(yè),還剩15頁(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è)試項(xiàng)目實(shí)戰(zhàn)(第四版)第3章:缺陷管理目錄CONTENTS3.1.1軟件回歸測(cè)試01020304添加標(biāo)題

添加標(biāo)題3.1.2軟件缺陷的概念和種類(lèi)添加標(biāo)題

添加標(biāo)題3.1.3軟件缺陷的生命周期添加標(biāo)題

添加標(biāo)題3.1.4軟件缺陷的嚴(yán)重性和優(yōu)先級(jí)添加標(biāo)題

添加標(biāo)題053.2缺陷總結(jié)報(bào)告添加標(biāo)題

添加標(biāo)題Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.3.1.1軟件回歸測(cè)試第3章缺陷管理以下文字描述了軟件回歸測(cè)試的概念和進(jìn)行回歸測(cè)試的基本步驟,介紹了可用于回歸測(cè)試的測(cè)試用例庫(kù)的維護(hù)方法,給出了幾種可以保證回歸測(cè)試效率和有效性的回歸測(cè)試策略,總結(jié)了回歸測(cè)試時(shí)應(yīng)該注意的一些實(shí)際問(wèn)題。1.概述在軟件生命周期中的任何一個(gè)階段,只要軟件發(fā)生了改變,就可能給該軟件帶來(lái)問(wèn)題。軟件的改變可能是源于發(fā)現(xiàn)了錯(cuò)誤并做了修改,也有可能是因?yàn)樵诩苫蚓S護(hù)階段加入了新的模塊。當(dāng)軟件中所含錯(cuò)誤被發(fā)現(xiàn)時(shí),如果錯(cuò)誤跟蹤與管理系統(tǒng)不夠完善,就可能會(huì)遺漏對(duì)這些錯(cuò)誤的修改;而開(kāi)發(fā)者對(duì)錯(cuò)誤理解得不夠透徹,也可能導(dǎo)致所做的修改只修正了錯(cuò)誤的外在表現(xiàn),而沒(méi)有修復(fù)錯(cuò)誤本身,從而造成修改失敗;修改還有可能產(chǎn)生副作用從而導(dǎo)致軟件未被修改的部分產(chǎn)生新的問(wèn)題,使本來(lái)工作正常的功能產(chǎn)生錯(cuò)誤。同樣,在有新代碼加入軟件的時(shí)候,除了新加入的代碼中有可能含有錯(cuò)誤外,新代碼還有可能對(duì)原有的代碼帶來(lái)影響。因此,每當(dāng)軟件發(fā)生變化時(shí),我們就必須重新測(cè)試現(xiàn)有的功能,以便確定修改是否達(dá)到了預(yù)期的目的,檢查修改是否損害了原有的正常功能。同時(shí),還需要補(bǔ)充新的測(cè)試用例來(lái)測(cè)試新的或被修改了的功能。為了驗(yàn)證修改的正確性及其影響就需要進(jìn)行回歸測(cè)試。回歸測(cè)試在軟件生命周期中扮演著重要的角色,因忽視回歸測(cè)試而造成嚴(yán)重后果的例子不計(jì)其數(shù),導(dǎo)致阿里亞娜5型火箭發(fā)射失敗的軟件缺陷就是由于復(fù)用的代碼沒(méi)有經(jīng)過(guò)充分的回歸測(cè)試造成的。回歸測(cè)試作為軟件生命周期的一個(gè)組成部分,在整個(gè)軟件測(cè)試過(guò)程中占有很大的工作比重,軟件開(kāi)發(fā)的各個(gè)階段都會(huì)進(jìn)行多次回歸測(cè)試。在漸進(jìn)和快速迭代開(kāi)發(fā)中,新版本的連續(xù)發(fā)布使回歸測(cè)試進(jìn)行得更加頻繁,而在極端編程方法中,更是要求每天都進(jìn)行若干次回歸測(cè)試。因此,通過(guò)選擇正確的回歸測(cè)試策略來(lái)改進(jìn)回歸測(cè)試的效率和有效性是非常有意義的。2.回歸測(cè)試策略對(duì)于一個(gè)軟件開(kāi)發(fā)項(xiàng)目來(lái)說(shuō),項(xiàng)目的測(cè)試組在實(shí)施測(cè)試的過(guò)程中會(huì)將所開(kāi)發(fā)的測(cè)試用例保存到“測(cè)試用例庫(kù)”中,并對(duì)其進(jìn)行維護(hù)和管理。當(dāng)?shù)玫揭粋€(gè)軟件的基線版本時(shí),用于基線版本測(cè)試的所有測(cè)試用例就形成了基線測(cè)試用例庫(kù)。在需要進(jìn)行回歸測(cè)試的時(shí)候,就可以根據(jù)所選擇的回歸測(cè)試策略,從基線測(cè)試用例庫(kù)中提取合適的測(cè)試用例組成回歸測(cè)試包,通過(guò)運(yùn)行回歸測(cè)試包來(lái)實(shí)現(xiàn)回歸測(cè)試。保存在基線測(cè)試用例庫(kù)中的測(cè)試用例可能是自動(dòng)測(cè)試腳本,也有可能是測(cè)試用例的手工實(shí)現(xiàn)過(guò)程。第3章缺陷管理回歸測(cè)試需要時(shí)間、經(jīng)費(fèi)和人力來(lái)計(jì)劃、實(shí)施和管理。為了在給定的預(yù)算和進(jìn)度下,盡可能有效地進(jìn)行回歸測(cè)試,需要對(duì)測(cè)試用例庫(kù)進(jìn)行維護(hù)并依據(jù)一定的策略選擇相應(yīng)的回歸測(cè)試包。(1)測(cè)試用例庫(kù)的維護(hù)為了最大限度地滿(mǎn)足客戶(hù)的需要和適應(yīng)應(yīng)用的要求,軟件在其生命周期中會(huì)頻繁地被修改和不斷推出新的版本,修改后的或者新版本的軟件會(huì)添加一些新的功能或者在軟件功能上產(chǎn)生某些變化。隨著軟件的改變,軟件的功能和應(yīng)用接口及軟件的實(shí)現(xiàn)發(fā)生了演變,測(cè)試用例庫(kù)中的一些測(cè)試用例可能會(huì)失去針對(duì)性和有效性,而另一些測(cè)試用例可能會(huì)變得過(guò)時(shí),還有一些測(cè)試用例將完全不能運(yùn)行。為了保證測(cè)試用例庫(kù)中測(cè)試用例的有效性,必須對(duì)測(cè)試用例庫(kù)進(jìn)行維護(hù)。同時(shí),被修改的或新增添的軟件功能,僅僅靠重新運(yùn)行以前的測(cè)試用例并不足以揭示其中的問(wèn)題,有必要追加新的測(cè)試用例來(lái)測(cè)試這些新的功能或特征。因此,測(cè)試用例庫(kù)的維護(hù)工作還應(yīng)包括開(kāi)發(fā)新測(cè)試用例,這些新的測(cè)試用例用來(lái)測(cè)試軟件的新特征或者覆蓋現(xiàn)有測(cè)試用例無(wú)法覆蓋的軟件功能或特征。測(cè)試用例的維護(hù)是一個(gè)不間斷的過(guò)程,通常可以將軟件開(kāi)發(fā)的基線作為基準(zhǔn),維護(hù)的主要內(nèi)容包括下述幾個(gè)方面。①刪除過(guò)時(shí)的測(cè)試用例。因?yàn)樾枨蟮母淖兊仍蚩赡軙?huì)使一個(gè)基線測(cè)試用例不再適合被測(cè)試系統(tǒng),這些測(cè)試用例就會(huì)過(guò)時(shí)。例如,某個(gè)變量的界限發(fā)生了改變,原來(lái)針對(duì)邊界值的測(cè)試就無(wú)法完成對(duì)新邊界測(cè)試。所以,在軟件的每次修改后都應(yīng)進(jìn)行相應(yīng)的過(guò)時(shí)測(cè)試用例的刪除。②改進(jìn)不受控制的測(cè)試用例。隨著軟件項(xiàng)目的進(jìn)展,測(cè)試用例庫(kù)中的用例會(huì)不斷增加,其中會(huì)出現(xiàn)一些對(duì)輸入或運(yùn)行狀態(tài)十分敏感的測(cè)試用例。這些測(cè)試不容易重復(fù)且結(jié)果難以控制,會(huì)影響回歸測(cè)試的效率,需要進(jìn)行改進(jìn),使其達(dá)到可重復(fù)和可控制的要求。③刪除冗余的測(cè)試用例。如果存在兩個(gè)或者更多個(gè)測(cè)試用例針對(duì)一組相同的輸入和輸出進(jìn)行測(cè)試,那么這些測(cè)試用例是冗余的。冗余測(cè)試用例的存在降低了回歸測(cè)試的效率。所以需要定期地整理測(cè)試用例庫(kù),并將冗余的用例刪除掉。第3章缺陷管理④增添新的測(cè)試用例。如果某個(gè)程序段、構(gòu)件或關(guān)鍵的接口在現(xiàn)有的測(cè)試中沒(méi)有被測(cè)試,那么應(yīng)該開(kāi)發(fā)新測(cè)試用例重新對(duì)其進(jìn)行測(cè)試,并將新開(kāi)發(fā)的測(cè)試用例合并到基線測(cè)試包中。通過(guò)對(duì)測(cè)試用例庫(kù)的維護(hù)不僅改善了測(cè)試用例的可用性,而且也提高了測(cè)試庫(kù)的可信性,同時(shí)還可以將一個(gè)基線測(cè)試用例庫(kù)的效率和效用保持在一個(gè)較高的級(jí)別上。(2)回歸測(cè)試包的選擇在軟件生命周期中,即使一個(gè)得到良好維護(hù)的測(cè)試用例庫(kù)也可能變得相當(dāng)大,這使每次回歸測(cè)試都重新運(yùn)行完整的測(cè)試包變得不切實(shí)際。一個(gè)完全的回歸測(cè)試包括每個(gè)基線測(cè)試用例,時(shí)間和成本約束可能阻礙運(yùn)行這樣一個(gè)測(cè)試,有時(shí)測(cè)試組不得不選擇一個(gè)縮減的回歸測(cè)試包來(lái)完成回歸測(cè)試?;貧w測(cè)試的價(jià)值在于它是一個(gè)能夠檢測(cè)到回歸錯(cuò)誤的受控實(shí)驗(yàn)。當(dāng)測(cè)試組選擇縮減的回歸測(cè)試時(shí),有可能刪除了將揭示回歸錯(cuò)誤的測(cè)試用例,消除了發(fā)現(xiàn)回歸錯(cuò)誤的機(jī)會(huì)。然而,如果采用了代碼相依性分析等安全的縮減技術(shù),就可以決定哪些測(cè)試用例可以被刪除而不會(huì)讓回歸測(cè)試的意圖遭到破壞。選擇回歸測(cè)試策略應(yīng)該兼顧效率和有效性?xún)蓚€(gè)方面。常用的選擇回歸測(cè)試的方式包括:①再測(cè)試全部用例。選擇基線測(cè)試用例庫(kù)中的全部測(cè)試用例組成回歸測(cè)試包,這是一種比較安全的方法,再測(cè)試全部用例具有最低的遺漏回歸錯(cuò)誤的風(fēng)險(xiǎn),但測(cè)試成本最高。全部再測(cè)試幾乎可以應(yīng)用到任何情況下,基本上不需要進(jìn)行分析和重新開(kāi)發(fā),但是,隨著開(kāi)發(fā)工作的進(jìn)展,測(cè)試用例不斷增多,重復(fù)原先所有的測(cè)試將帶來(lái)很大的工作量,往往超出了我們的預(yù)算和進(jìn)度。②基于風(fēng)險(xiǎn)選擇測(cè)試??梢曰谝欢ǖ娘L(fēng)險(xiǎn)標(biāo)準(zhǔn)來(lái)從基線測(cè)試用例庫(kù)中選擇回歸測(cè)試包。首先運(yùn)行最重要的、關(guān)鍵的和可疑的測(cè)試,而跳過(guò)那些非關(guān)鍵的、優(yōu)先級(jí)別低的或者高穩(wěn)定的測(cè)試用例,這些用例即便可能測(cè)試到缺陷,這些缺陷的嚴(yán)重性也僅有三級(jí)或四級(jí)。一般而言,測(cè)試從主要特征到次要特征。第3章缺陷管理③基于操作剖面選擇測(cè)試。如果基線測(cè)試用例庫(kù)的測(cè)試用例是基于軟件操作剖面開(kāi)發(fā)的,測(cè)試用例的分布情況反映了系統(tǒng)的實(shí)際使用情況?;貧w測(cè)試所使用的測(cè)試用例個(gè)數(shù)可以由測(cè)試預(yù)算確定,回歸測(cè)試可以?xún)?yōu)先選擇那些針對(duì)最重要或最頻繁使用功能的測(cè)試用例,釋放和緩解最高級(jí)別的風(fēng)險(xiǎn),有助于盡早發(fā)現(xiàn)那些對(duì)可靠性有最大影響的故障。這種方法可以在一個(gè)給定的預(yù)算下最有效地提高系統(tǒng)可靠性,但實(shí)施起來(lái)有一定的難度。④再測(cè)試修改的部分。當(dāng)測(cè)試者對(duì)修改的部分有足夠的信心時(shí),可以通過(guò)相依性分析識(shí)別軟件的修改情況并分析修改的影響,將回歸測(cè)試局限于被改變的模塊和它的接口上。通常,一個(gè)回歸錯(cuò)誤一定涉及一個(gè)新的、修改的或刪除的代碼段。在允許的條件下,回歸測(cè)試盡可能覆蓋受到影響的部分。再測(cè)試全部用例的策略是最安全的策略,但已經(jīng)運(yùn)行過(guò)許多次的回歸測(cè)試不太可能揭示新的錯(cuò)誤,而且很多時(shí)候,由于時(shí)間、人員、設(shè)備和經(jīng)費(fèi)的原因,不允許選擇再測(cè)試全部用例的回歸測(cè)試策略,此時(shí),可以選擇適當(dāng)?shù)牟呗赃M(jìn)行縮減的回歸測(cè)試。(3)回歸測(cè)試的基本過(guò)程有了測(cè)試用例庫(kù)的維護(hù)方法和回歸測(cè)試包的選擇策略,回歸測(cè)試可遵循下述基本過(guò)程

進(jìn)行:①識(shí)別出軟件中被修改的部分。②從原基線測(cè)試用例庫(kù)T中,排除所有不再適用的測(cè)試用例,確定那些對(duì)新的軟件版本依然有效的測(cè)試用例,其結(jié)果是建立一個(gè)新的基線測(cè)試用例庫(kù)T0。③依據(jù)一定的策略從T0中選擇測(cè)試用例測(cè)試被修改的軟件。④如果必要,生成新的測(cè)試用例集T1,用于測(cè)試T0無(wú)法充分測(cè)試的軟件部分。⑤用T1執(zhí)行修改后的軟件。第②和第③步測(cè)試驗(yàn)證修改是否破壞了現(xiàn)有的功能,第④和第⑤步測(cè)試驗(yàn)證修改工作本身。第3章缺陷管理3.回歸測(cè)試實(shí)踐在實(shí)際工作中,回歸測(cè)試需要反復(fù)進(jìn)行,當(dāng)測(cè)試者一次又一次地完成相同的測(cè)試時(shí),這些回歸測(cè)試將變得非常令人厭煩,而在大多數(shù)回歸測(cè)試需要手工完成的時(shí)候尤其如此,因此,需要通過(guò)自動(dòng)測(cè)試來(lái)實(shí)現(xiàn)重復(fù)的和一致的回歸測(cè)試。通過(guò)測(cè)試自動(dòng)化可以提高回歸測(cè)試效率。為了支持多種回歸測(cè)試策略,自動(dòng)測(cè)試工具應(yīng)該是通用的和靈活的,以便滿(mǎn)足達(dá)到不同回歸測(cè)試目標(biāo)的要求。在測(cè)試軟件時(shí),應(yīng)用多種測(cè)試技術(shù)是常見(jiàn)的。當(dāng)測(cè)試一個(gè)修改了的軟件時(shí),測(cè)試者也可能希望采用多于一種回歸測(cè)試策略來(lái)增加對(duì)修改軟件的信心。不同的測(cè)試者可能會(huì)依據(jù)自己的經(jīng)驗(yàn)和判斷選擇不同的回歸測(cè)試技術(shù)和策略。回歸測(cè)試并不減少對(duì)系統(tǒng)新功能和特征的測(cè)試需求,回歸測(cè)試包應(yīng)包括新功能和特征的測(cè)試。如果回歸測(cè)試包不能達(dá)到所需的覆蓋要求,必須補(bǔ)充新的測(cè)試用例使覆蓋率達(dá)到規(guī)定的要求。回歸測(cè)試是重復(fù)性較多的活動(dòng),容易使測(cè)試者感到疲勞和厭倦,降低測(cè)試效率,在實(shí)際工作中可以采用一些策略減輕這些問(wèn)題。例如,安排新的測(cè)試者完成手工回歸測(cè)試,分配更有經(jīng)驗(yàn)的測(cè)試者開(kāi)發(fā)新的測(cè)試用例,編寫(xiě)和調(diào)試自動(dòng)測(cè)試腳本,做一些探索性的測(cè)試。還可以在不影響測(cè)試目標(biāo)的情況下,鼓勵(lì)測(cè)試者創(chuàng)造性地執(zhí)行測(cè)試用例,變化的輸入、按鍵和配置能夠有助于激勵(lì)測(cè)試者又能揭示新的錯(cuò)誤。在組織回歸測(cè)試時(shí)需要注意兩點(diǎn),首先是各測(cè)試階段發(fā)生的修改一定要在本測(cè)試階段內(nèi)完成回歸,以免將錯(cuò)誤遺留到下一測(cè)試階段。其次,回歸測(cè)試期間應(yīng)對(duì)該軟件版本凍結(jié),將回歸測(cè)試發(fā)現(xiàn)的問(wèn)題集中修改,集中回歸。在實(shí)際工作中,可以將回歸測(cè)試與兼容性測(cè)試結(jié)合起來(lái)進(jìn)行。在新的配置條件下運(yùn)行舊的測(cè)試可以發(fā)現(xiàn)兼容性問(wèn)題,而同時(shí)也可以揭示編碼在回歸方面的錯(cuò)誤。Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.3.1.2軟件缺陷的概念和種類(lèi)第3章缺陷管理一、軟件缺陷概念軟件缺陷(Defect),常常又被叫做Bug。

所謂軟件缺陷,即為計(jì)算機(jī)軟件或程序中存在的某種破壞正常運(yùn)行能力的問(wèn)題、錯(cuò)誤,或者隱藏的功能缺陷。缺陷的存在會(huì)導(dǎo)致軟件產(chǎn)品在某種程度上不能滿(mǎn)足用戶(hù)的需要。IEEE729-1983對(duì)缺陷有一個(gè)標(biāo)準(zhǔn)的定義:從產(chǎn)品內(nèi)部看,缺陷是軟件產(chǎn)品開(kāi)發(fā)或維護(hù)過(guò)程中存在的錯(cuò)誤、毛病等各種問(wèn)題;從產(chǎn)品外部看,缺陷是系統(tǒng)所需要實(shí)現(xiàn)的某種功能的失效或違背。二、軟件缺陷有以下五大類(lèi)1.功能缺陷規(guī)格說(shuō)明書(shū)缺陷:規(guī)格說(shuō)明書(shū)可能不完全,有二義性或自身矛盾。另外,在設(shè)計(jì)過(guò)程中可能修改功能,如果不能緊跟這種變化并及時(shí)修改規(guī)格說(shuō)明書(shū),則產(chǎn)生規(guī)格說(shuō)明書(shū)錯(cuò)誤。功能缺陷:程序?qū)崿F(xiàn)的功能與用戶(hù)要求的不一致。這常常是由于規(guī)格說(shuō)明書(shū)包含錯(cuò)誤的功能、多余的功能或遺漏的功能所致。在發(fā)現(xiàn)和改正這些缺陷的過(guò)程中又可能引入新的缺陷。測(cè)試缺陷:軟件測(cè)試的設(shè)計(jì)與實(shí)施發(fā)生錯(cuò)誤。特別是系統(tǒng)級(jí)的功能測(cè)試,要求復(fù)雜的測(cè)試環(huán)境和數(shù)據(jù)庫(kù)支持,還需要對(duì)測(cè)試進(jìn)行腳本編寫(xiě)。因此軟件測(cè)試自身也可能發(fā)生錯(cuò)誤。另外,如果測(cè)試人員對(duì)系統(tǒng)缺乏了解,或?qū)σ?guī)格說(shuō)明書(shū)做了錯(cuò)誤的解釋?zhuān)矔?huì)發(fā)生許多錯(cuò)誤。測(cè)試標(biāo)準(zhǔn)引起的缺陷:對(duì)軟件測(cè)試的標(biāo)準(zhǔn)要選擇適當(dāng),若測(cè)試標(biāo)準(zhǔn)太復(fù)雜,則導(dǎo)致測(cè)試過(guò)程出錯(cuò)的可能就大。2.系統(tǒng)缺陷外部接口缺陷:外部接口是指如終端、打印機(jī)、通信線路等系統(tǒng)與外部環(huán)境通訊的手段。所有外部接口之間、人與機(jī)器之間的通訊都使用形式的或非形式的專(zhuān)門(mén)協(xié)議。如果協(xié)議有錯(cuò),或太復(fù)雜,難以理解,致使在使用中出錯(cuò)。此外,還包括對(duì)輸入/輸出格式錯(cuò)誤理解,對(duì)輸入數(shù)據(jù)不合理的容錯(cuò)等。內(nèi)部接口缺陷:內(nèi)部接口是指程序內(nèi)部子系統(tǒng)或模塊之間的聯(lián)系。它所發(fā)生的缺陷與外部接口相同,只是與程序內(nèi)實(shí)現(xiàn)的細(xì)節(jié)有關(guān),如設(shè)計(jì)協(xié)議錯(cuò)、輸入/輸出格式錯(cuò)、數(shù)據(jù)保護(hù)不可靠、子程序訪問(wèn)錯(cuò)等。第3章缺陷管理硬件結(jié)構(gòu)缺陷:與硬件結(jié)構(gòu)有關(guān)的軟件缺陷在于不能正確的理解硬件如何工作。如忽視或錯(cuò)誤地理解分頁(yè)機(jī)構(gòu)、地址生成、通道容量、I/O指令、中斷處理、設(shè)備初始化和啟動(dòng)等而導(dǎo)致的出錯(cuò)。操作系統(tǒng)缺陷:與操作系統(tǒng)有關(guān)的軟件缺陷在于不了解操作系統(tǒng)的工作機(jī)制而導(dǎo)致出錯(cuò)。當(dāng)然,操作系統(tǒng)本身也有缺陷,但是一般用戶(hù)很難發(fā)現(xiàn)這種缺陷。軟件結(jié)構(gòu)缺陷:由于軟件結(jié)構(gòu)不合理而產(chǎn)生的缺陷。這種缺陷通常與系統(tǒng)的負(fù)載有關(guān),而且往往在系統(tǒng)滿(mǎn)載時(shí)才出現(xiàn)。如錯(cuò)誤地設(shè)置局部參數(shù)或全局參數(shù);錯(cuò)誤地假定寄存器與存儲(chǔ)器單元初始化了;錯(cuò)誤地假定被調(diào)用子程序常駐內(nèi)存或非常駐內(nèi)存等,都將導(dǎo)致軟件出錯(cuò)??刂婆c順序缺陷:如忽視了時(shí)間因素而破壞了事件的順序;等待一個(gè)不可能發(fā)生的條件;漏掉先決條件;規(guī)定錯(cuò)誤的優(yōu)先級(jí)或程序狀態(tài);漏掉處理步驟;存在不正確的處理步驟或多余的處理步驟等。資源管理缺陷:由于不正確地使用資源而產(chǎn)生的缺陷。如使用未經(jīng)獲準(zhǔn)的資源;使用后未釋放資源;資源死鎖;把資源鏈接到錯(cuò)誤的隊(duì)列中等。3.加工缺陷算法與操作缺陷:是指在算術(shù)運(yùn)算、函數(shù)求值和一般操作過(guò)程中發(fā)生的缺陷。如數(shù)據(jù)類(lèi)型轉(zhuǎn)換錯(cuò);除法溢出;不正確地使用關(guān)系運(yùn)算符;不正確地使用整數(shù)與浮點(diǎn)數(shù)做比較等。初始化缺陷:如忘記初始化工作區(qū),忘記初始化寄存器和數(shù)據(jù)區(qū);錯(cuò)誤地對(duì)循環(huán)控制變量賦初值;用不正確的格式、數(shù)據(jù)或類(lèi)類(lèi)型進(jìn)行初始化等??刂坪痛涡蛉毕荩号c系統(tǒng)級(jí)同名缺陷相比,它是局部缺陷。如遺漏路徑;不可達(dá)到的代碼;不符合語(yǔ)法的循環(huán)嵌套;循環(huán)返回和終止的條件不正確;漏掉處理步驟或處理步驟有錯(cuò)等。靜態(tài)邏輯缺陷:如不正確地使用switch語(yǔ)句;在表達(dá)式中使用不正確的否定(例如用“>”代替“<”的否定);對(duì)情況不適當(dāng)?shù)胤纸馀c組合;混淆“或”與“異或”等。第3章缺陷管理4.?dāng)?shù)據(jù)缺陷動(dòng)態(tài)數(shù)據(jù)缺陷:動(dòng)態(tài)數(shù)據(jù)是在程序執(zhí)行過(guò)程中暫時(shí)存在的數(shù)據(jù),它的生存期非常短。各種不同類(lèi)型的動(dòng)態(tài)數(shù)據(jù)在執(zhí)行期間將共享一個(gè)共同的存儲(chǔ)區(qū)域,若程序啟動(dòng)時(shí)對(duì)這個(gè)區(qū)域未初始化,救護(hù)導(dǎo)致數(shù)據(jù)出錯(cuò)。靜態(tài)數(shù)據(jù)缺陷:靜態(tài)數(shù)據(jù)在內(nèi)容和格式上都是固定的。它們直接或間接的出現(xiàn)在程序或數(shù)據(jù)庫(kù)中,有編譯程序或其他專(zhuān)門(mén)對(duì)他們做預(yù)處理,但預(yù)處理也會(huì)出錯(cuò)。數(shù)據(jù)內(nèi)容、結(jié)構(gòu)和屬性缺陷:數(shù)據(jù)內(nèi)容是指存儲(chǔ)于存儲(chǔ)單元或數(shù)據(jù)結(jié)構(gòu)中的位串、字符串或數(shù)字。數(shù)據(jù)內(nèi)容缺陷就是由于內(nèi)容被破壞或被錯(cuò)誤地解釋而造成的缺陷。數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)元素的大小和組織形式。在同一存儲(chǔ)區(qū)域中可以定義不同的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)缺陷包括結(jié)構(gòu)說(shuō)明錯(cuò)誤及數(shù)據(jù)結(jié)構(gòu)誤用的錯(cuò)誤。數(shù)據(jù)屬性是指數(shù)據(jù)內(nèi)容的含義或語(yǔ)義。數(shù)據(jù)屬性缺陷包括對(duì)數(shù)據(jù)屬性不正確地解釋?zhuān)珏e(cuò)把整數(shù)當(dāng)實(shí)數(shù),允許不同類(lèi)型數(shù)據(jù)混合運(yùn)算而導(dǎo)致的錯(cuò)誤等。5.代碼缺陷包括數(shù)據(jù)說(shuō)明錯(cuò)、數(shù)據(jù)使用錯(cuò)、計(jì)算錯(cuò)、比較錯(cuò)、控制流錯(cuò)、界面錯(cuò)、輸入\輸出錯(cuò),及其他的錯(cuò)誤。規(guī)格說(shuō)明書(shū)是軟件缺陷出現(xiàn)最多的地方,其原因是:用戶(hù)一般是非軟件開(kāi)發(fā)專(zhuān)業(yè)人員,軟件開(kāi)發(fā)人員和用戶(hù)的溝通存在較大困難,對(duì)要開(kāi)發(fā)的產(chǎn)品功能理解不一致。由于在開(kāi)發(fā)初期,軟件產(chǎn)品還沒(méi)有設(shè)計(jì)和編程,完全靠想象去描述系統(tǒng)的實(shí)現(xiàn)結(jié)果,所以有些需求特性不夠完整、清晰。用戶(hù)的需求總是不斷變化,這些變化如果沒(méi)有在產(chǎn)品規(guī)格說(shuō)明書(shū)中得到正確的描述,容易引起前后文、上下文的矛盾。對(duì)規(guī)格說(shuō)明書(shū)不夠重視,在規(guī)格說(shuō)明書(shū)的設(shè)計(jì)和寫(xiě)作上投入的人力、時(shí)間不足。沒(méi)有在整個(gè)開(kāi)發(fā)隊(duì)伍中進(jìn)行充分溝通,有時(shí)只有設(shè)計(jì)師或項(xiàng)目經(jīng)理得到比較多的信息。排在產(chǎn)品規(guī)格說(shuō)明書(shū)之后的是設(shè)計(jì),編程排在第三位。許多人印象中,軟件測(cè)試主要是找程序代碼中的錯(cuò)誤,這是一個(gè)認(rèn)識(shí)的誤區(qū)。Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.3.1.3軟件缺陷的生命周期第3章缺陷管理軟件的生命周期,亦稱(chēng)軟件的生存周期。它是按開(kāi)發(fā)軟件的規(guī)模和復(fù)雜程度,從時(shí)間上把軟件開(kāi)發(fā)的整個(gè)過(guò)程(從計(jì)劃開(kāi)發(fā)開(kāi)始到軟件報(bào)廢為止的整個(gè)歷史階段)進(jìn)行分解,形成相對(duì)獨(dú)立的幾個(gè)階段,每個(gè)階段又分解成幾個(gè)具體的任務(wù),然后按規(guī)定順序依次完成各階段的任務(wù)并規(guī)定一套標(biāo)準(zhǔn)的文檔作為各個(gè)階段的開(kāi)發(fā)成果,最后生產(chǎn)出高質(zhì)量的軟件。1.新建:當(dāng)缺陷被第一次遞交的時(shí)候,它的狀態(tài)即為“新建”。這也就是說(shuō)缺陷未被確認(rèn)其是否真正是一個(gè)缺陷。2.打開(kāi):在測(cè)試者提交一個(gè)缺陷后,測(cè)試組長(zhǎng)確認(rèn)其確實(shí)為一個(gè)缺陷的時(shí)候他會(huì)把狀態(tài)置為“打開(kāi)”3.分配:一旦缺陷被測(cè)試經(jīng)理置為“打開(kāi)”,他會(huì)把缺陷交給相應(yīng)的開(kāi)發(fā)人員或者開(kāi)發(fā)組。這時(shí)缺陷狀態(tài)變更為“分配”。4.測(cè)試:當(dāng)開(kāi)發(fā)人員修復(fù)缺陷后,他會(huì)吧缺陷提交給測(cè)試組進(jìn)行新一輪的測(cè)試。在開(kāi)發(fā)人員公布已修復(fù)缺陷的程序之前,他會(huì)把缺陷狀態(tài)置為“測(cè)試”。這時(shí)表明缺陷已經(jīng)修復(fù)并且已經(jīng)交給了測(cè)試組。5.延遲的:缺陷狀態(tài)被置為“延遲的”意味著缺陷將會(huì)在下一個(gè)版本中被修復(fù)。將缺陷置為“延遲的”原因有許多種。有些由于缺陷優(yōu)先級(jí)不高,有些由于時(shí)間緊,有些是因?yàn)槿毕輰?duì)軟件不會(huì)造成太大影響。6.不接受的:如果開(kāi)發(fā)人員不認(rèn)為其是一個(gè)缺陷,他會(huì)不接受。他會(huì)吧缺陷狀態(tài)置為“不接受的”7.重復(fù)提交:如果同一個(gè)缺陷被重復(fù)提交或者兩個(gè)缺陷表明的意思相同,那么這個(gè)缺陷狀態(tài)會(huì)被置為“重復(fù)提交”。8.已核實(shí):一但缺陷被修復(fù)它就會(huì)被置為“測(cè)試”,測(cè)試員會(huì)執(zhí)行測(cè)試。如果缺陷不再出現(xiàn),這就證明缺陷被修復(fù)了同時(shí)其狀態(tài)被置為“已核實(shí)”。9.再次打開(kāi):如果缺陷被開(kāi)發(fā)人員修復(fù)后仍然存在,測(cè)試人員會(huì)把缺陷狀態(tài)置為“再次打開(kāi)”。缺陷即將再次穿越其生命周期。10.關(guān)閉:一但缺陷被修復(fù),測(cè)試人員會(huì)對(duì)其進(jìn)行測(cè)試。如果測(cè)試人員認(rèn)為缺陷不存在了,他會(huì)把缺陷狀態(tài)置為“關(guān)閉”。這個(gè)狀態(tài)意味著缺陷被修復(fù),通過(guò)了測(cè)試并且核實(shí)確實(shí)如此。Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.3.1.4軟件缺陷的嚴(yán)重性和優(yōu)先級(jí)第3章缺陷管理一、軟件缺陷嚴(yán)重性級(jí)別分類(lèi)如何確定缺陷的嚴(yán)重性和優(yōu)先級(jí)通常由軟件測(cè)試人員確定缺陷的嚴(yán)重性,由軟件開(kāi)發(fā)人員確定優(yōu)先級(jí)較為適當(dāng)。但是,實(shí)際測(cè)試中,通常都是由軟件測(cè)試人員在缺陷報(bào)告中同時(shí)確定嚴(yán)重性和優(yōu)先級(jí)。確定缺陷的嚴(yán)重性和優(yōu)先級(jí)要全面了解和深刻體會(huì)缺陷的特征,從用戶(hù)和開(kāi)發(fā)人員以及市場(chǎng)的因素綜合考慮。通常功能性的缺陷較為嚴(yán)重,具有較高的優(yōu)先級(jí),而軟件界面類(lèi)缺陷的嚴(yán)重性一般較低,優(yōu)先級(jí)也較低。對(duì)于缺陷的嚴(yán)重性,一般分為4級(jí):1.非常嚴(yán)重的缺陷,例如,軟件的意外退出甚至操作系統(tǒng)崩潰,造成數(shù)據(jù)丟失。

2.較嚴(yán)重的缺陷,例如,軟件的某個(gè)菜單

溫馨提示

  • 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)論