隨筆-60  評(píng)論-117  文章-0  trackbacks-0

                   經(jīng)常有這樣的經(jīng)驗(yàn):想要學(xué)一樣?xùn)|西,有一本關(guān)于它的厚厚的書(shū)擺在我面前。快速的翻了翻之后,又將它合上。然后無(wú)奈的嘆了口氣。是啊,到底該怎么下手呢?可當(dāng)?shù)弥魈炀鸵歼@本書(shū)的時(shí)候,再打開(kāi),發(fā)現(xiàn)它們突然變得簡(jiǎn)單了。只是自己想學(xué)的太多,時(shí)間有點(diǎn)不夠用……
          軟件測(cè)試
          定義:測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。

          目的:

          • 為了尋找錯(cuò)誤,并盡可能地為修正錯(cuò)誤提供更多的信息。
          • 為了證明軟件有錯(cuò)誤,而不是證明軟件沒(méi)有錯(cuò)誤。

          作用:

          • 發(fā)現(xiàn)并管理缺陷
          • 度量質(zhì)量
            • 評(píng)價(jià)工作效率和效果
            • 與其項(xiàng)目風(fēng)險(xiǎn)

          原則:

          • 座右銘:“盡早地和不斷地進(jìn)行軟件測(cè)試”。
          • 測(cè)試用例應(yīng)由測(cè)試輸入數(shù)據(jù)和對(duì)應(yīng)的語(yǔ)句輸入結(jié)果這兩部分組成。
          • 程序員應(yīng)避免檢查自己的程序。
          • 在設(shè)計(jì)測(cè)試用例時(shí),應(yīng)當(dāng)包括合理的輸入條件和不合理的輸入條件。
          • 充分注意測(cè)試中的群集現(xiàn)象。經(jīng)驗(yàn)表明,測(cè)試后程序中殘存的錯(cuò)誤數(shù)目與該程序中已發(fā)現(xiàn)的錯(cuò)誤數(shù)目成正比。
          • 嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性。
          • 應(yīng)當(dāng)對(duì)每一個(gè)測(cè)試結(jié)果作全面檢查。
          • 妥善保存測(cè)試計(jì)劃,測(cè)試用例,出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供方便。
          • 所有的測(cè)試都應(yīng)可追溯到客戶的需求。
          • 應(yīng)該在測(cè)試工作開(kāi)始之前的較長(zhǎng)時(shí)間就進(jìn)行測(cè)試計(jì)劃。
          • pareto原則:測(cè)試發(fā)現(xiàn)的錯(cuò)誤中80%很可能起源于20%的模塊中。
          • 測(cè)試從“小模塊”開(kāi)始,逐步轉(zhuǎn)向“大規(guī)模”。
          • 窮舉測(cè)試是不可能的。

          對(duì)象:

          • 軟件包括程序、數(shù)據(jù)和文檔,軟件測(cè)試并不等于程序測(cè)試。
          • 軟件測(cè)試應(yīng)貫穿于軟件定義與開(kāi)發(fā)的整個(gè)其間。
          • 開(kāi)發(fā)過(guò)程所得到的文檔,都應(yīng)成為軟件測(cè)試的對(duì)象。
          • 驗(yàn)證與確認(rèn)都屬于軟件測(cè)試,它 包括對(duì)軟件分析、設(shè)計(jì)以及程序的驗(yàn)證和確認(rèn)。
            • 驗(yàn)證:是保證軟件符合產(chǎn)品描述的過(guò)程。
            • 是保證軟件滿足用戶要求的過(guò)程。

          缺陷:

          • 軟件未達(dá)到產(chǎn)品描述表明的功能。
          • 軟件出現(xiàn)了產(chǎn)品描述指明不會(huì)出現(xiàn)的錯(cuò)誤。
          • 軟件功能超出產(chǎn)品描述指明范圍。
          • 軟件未達(dá)到產(chǎn)品描述雖未指出但應(yīng)達(dá)到的目標(biāo)。
          • 軟件測(cè)試人員認(rèn)為軟件難以理解、不易使用、運(yùn)行速度緩慢、或者最終用戶認(rèn)為不好。

          缺陷產(chǎn)生的原因:

          • 編寫(xiě)代碼
          • 設(shè)計(jì)
          • 編寫(xiě)產(chǎn)品描述
          • 其他

          特征:

          • 軟件測(cè)試具有一定的風(fēng)險(xiǎn):完全測(cè)試是不可能的,如果決定不去測(cè)試所有的情況,那就是選擇了風(fēng)險(xiǎn)。
          • 軟件缺陷的寄生蟲(chóng)性:找到的軟件缺陷越多,就說(shuō)明軟件缺陷越多。
          • 軟件測(cè)試的殺蟲(chóng)劑現(xiàn)象:軟件測(cè)試越多,其免疫力越強(qiáng)的現(xiàn)象。
          • 軟件測(cè)試的不修復(fù)原則 :并非所有軟件缺陷都能修復(fù)。有些缺陷不需要修復(fù):*沒(méi)有足夠的時(shí)間*不算真正的軟件缺陷* 修復(fù)的風(fēng)險(xiǎn)太大*不值得修復(fù)。

          軟件測(cè)試方法、技術(shù)和策略
          框架:

          1. 靜態(tài)測(cè)試方法
            1. 人工測(cè)試方法
            2. 計(jì)算機(jī)輔助靜態(tài)分析方法
          2. 動(dòng)態(tài)測(cè)試方法
            1. 白盒測(cè)試方法
            2. 黑盒測(cè)試方法

          靜態(tài)測(cè)試:
          基本特征

          • 對(duì)軟件進(jìn)行分析、檢查和審閱,不實(shí)際運(yùn)行被測(cè)試的軟件。
          • 靜態(tài)測(cè)試約可找出30-70% 的邏輯設(shè)計(jì)錯(cuò)誤 。

          比如說(shuō):對(duì)需求規(guī)格說(shuō)明書(shū)、軟件設(shè)計(jì)說(shuō)明書(shū)、原程序作檢查和審閱。



          動(dòng)態(tài)測(cè)試:
          基本特征:
          通過(guò)運(yùn)行軟件來(lái)檢驗(yàn)軟件的動(dòng)態(tài)行為和運(yùn)行結(jié)果的正確性。
          兩個(gè)基本要素:

          • 被測(cè)試程序
          • 測(cè)試數(shù)據(jù)(測(cè)試用例)

          動(dòng)態(tài)測(cè)試方法流程

          • 選取定義域有效值,或定義域外無(wú)效值
          • 對(duì)已選取值決定預(yù)期的結(jié)果
          • 用選取值執(zhí)行程序
          • 執(zhí)行結(jié)果與對(duì)已選取值決定預(yù)期的結(jié)果相比,不吻合程序有錯(cuò)。

          白盒測(cè)試:

          • 結(jié)構(gòu)測(cè)試(玻璃盒測(cè)試)
          • 對(duì)軟件的過(guò)程性細(xì)節(jié)做細(xì)致的檢查
          • 可利用程序內(nèi)的邏輯結(jié)構(gòu),設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序的邏輯羅景警醒測(cè)試。

           白盒測(cè)試方法:

          • 邏輯覆蓋
            • 語(yǔ)句覆蓋:被測(cè)程序中每個(gè)語(yǔ)句至少執(zhí)行一次
            • 判定覆蓋:使每個(gè)判定的真假分支都至少執(zhí)行一次
            • 條件覆蓋:每個(gè)語(yǔ)句至少執(zhí)行一次,切實(shí)判定表達(dá)式中的每個(gè)條件都取到各種可能的結(jié)果
            • 判定/條件覆蓋:判定每個(gè)條件的所有可能條件至少執(zhí)行一次,同時(shí)每個(gè)判定的所有的可能判定結(jié)果至少執(zhí)行一次。
            • 條件組合覆蓋:所有可能的條件去之組合至少執(zhí)行一次
          • 控制結(jié)構(gòu)測(cè)試
            • 基本路徑測(cè)試:通過(guò)分析由控制構(gòu)造的環(huán)路的復(fù)雜性,導(dǎo)出基本路徑集合,從而設(shè)計(jì)測(cè)試用例,保證這些路徑至少通過(guò)一次
            • 條件測(cè)試:是檢查程序模塊中包含的邏輯條件。
            • 循環(huán)測(cè)試:專注于測(cè)試循環(huán)結(jié)構(gòu)的有效性
              • 簡(jiǎn)單循環(huán)
              • 嵌套循環(huán)
              • 串接循環(huán)

          黑盒測(cè)試:

          • 功能測(cè)試(行為測(cè)試)
          • 數(shù)據(jù)驅(qū)動(dòng)測(cè)試
          • 注重測(cè)試軟件的功能性需求
          • 在程序借口進(jìn)行測(cè)試,只檢查程序功能是否按規(guī)格說(shuō)明書(shū)的規(guī)定
          • 不深入代碼細(xì)節(jié)的測(cè)試

          測(cè)試方法:

          • 等價(jià)劃分
          • 邊界值分析
          • 錯(cuò)誤推測(cè)
          • 其他方法

          等價(jià)劃分:
          基本思想:
          將所有可能的輸入數(shù)據(jù)(有效的和無(wú)效的)劃分成若干個(gè)等價(jià)類,從每個(gè)等價(jià)類中只取一組數(shù)據(jù)作為測(cè)試數(shù)據(jù)。
          基本步驟:

          • 劃分輸入數(shù)據(jù)的等價(jià)類(有效和無(wú)效)
            • 等價(jià)類:指某個(gè)輸入域的子集合,在該子集合中,個(gè)個(gè)輸入數(shù)據(jù)對(duì)于揭露程序中的錯(cuò)誤是等效的。
          • 涉及測(cè)試方案
            • 不斷地覆蓋所有的有效等價(jià)類
            • 不斷地覆蓋所有的無(wú)效等價(jià)類

          劃分等價(jià)類的規(guī)則:

          1. 如果輸入條件規(guī)定了取值范圍,可定義一個(gè)有效等價(jià)類和兩個(gè)無(wú)效等價(jià)類。
          2. 如果輸入條件代表集合的某個(gè)元素,則可定義一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類。
          3. 如規(guī)定了輸入數(shù)據(jù)的一組值, 且程序?qū)Σ煌斎胫底鞑煌幚恚瑒t每個(gè)允許的輸入值是一個(gè)有效等價(jià)類,并有一個(gè)無(wú)效等價(jià)類(所有不允許的輸入值的集合)。
          4. 如果規(guī)定了輸入數(shù)據(jù)必須組遵循的規(guī)則,可確定一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無(wú)效等價(jià)類(從不同角度違反規(guī)則)。
          5. 如已劃分的等價(jià)類各元素在程序中的處理方式不同,則應(yīng)將此等價(jià)類進(jìn)一步劃分成更小的等價(jià)類。

           邊界值分析:
          通過(guò)關(guān)注于在某等價(jià)類的“邊緣”的數(shù)據(jù)而擴(kuò)展了等價(jià)劃分。
          與等價(jià)劃分的區(qū)別:

          • 邊界值分析不是從某等價(jià)類中隨便挑一個(gè)作為代表, 而是使這個(gè)等價(jià)類的每個(gè)邊界都要作為測(cè)試條件。
          • 邊界值分析不僅考慮輸入條件,還要考慮輸入空間產(chǎn)生的測(cè)試情況。

          邊界值分析的步驟:
          確定邊界情況:

          • 輸入等價(jià)類和輸出等價(jià)類的邊界,就應(yīng)該著重測(cè)試的程序邊界的情況。
          • 選取的測(cè)試數(shù)據(jù)應(yīng)剛好等于,剛好小于鶴崗好大于邊界值。
          • 聯(lián)合使用等價(jià)劃分和邊界值分析兩技術(shù)。

          因果圖:

          • 描述對(duì)于多種條件的組合,相應(yīng)產(chǎn)生多個(gè)動(dòng)作的形式。適合于檢查程序輸入條件的各種組合情況。

          使用因果圖設(shè)計(jì)測(cè)試用例:

          • 考慮了多個(gè)輸入之間的相互組合,相互制約關(guān)系。
          • 能夠幫助我們按一定步驟,高效率地選擇測(cè)試用例,同時(shí)還能為我們指出, 程序規(guī)格說(shuō)明描述中存在著什么問(wèn)題

          利用因果圖導(dǎo)出測(cè)試用例的一般步驟

          • 分析程序規(guī)格說(shuō)明的描述中,哪些是原因,哪些是結(jié)果。
          • 分析程序規(guī)格說(shuō)明的描述中語(yǔ)義的內(nèi)容,并將其表示城連接各個(gè)原因與各個(gè)結(jié)果的因果圖
          • 在因果圖上使用若干個(gè)特殊的符號(hào)表明特定的約束條件
          • 把因果圖轉(zhuǎn)換成判定表
          • 把判定表中每一列表示的情況寫(xiě)成測(cè)試用例

          錯(cuò)誤推測(cè):
          基本思想:

          • 列舉程序中可能有的錯(cuò)誤和容易發(fā)生的特殊情況,并且根據(jù)他們選擇測(cè)試方案

          軟件測(cè)試模型:

          • v模型:按時(shí)間順序進(jìn)行:用戶需求,需求分析與系統(tǒng)設(shè)計(jì),概要設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼,單元測(cè)試,集成測(cè)試,確認(rèn)測(cè)試與系統(tǒng)測(cè)試,驗(yàn)收測(cè)試
            • 它是最具具有代表意義的測(cè)試模型
            • 它是軟件開(kāi)發(fā)瀑布模型的變種,它反映了測(cè)試活動(dòng)與分析和設(shè)計(jì)的關(guān)系。
            • 從左到右,描述了基本的開(kāi)發(fā)過(guò)程和測(cè)試行為,非常明確的表明了測(cè)試過(guò)程中存在的不同級(jí)別,并且清楚地描述了這些測(cè)試階段和開(kāi)發(fā)過(guò)程期間各階段的對(duì)應(yīng)關(guān)系。
            • 箭頭代表了時(shí)間方向 ,左邊下降的是開(kāi)發(fā)過(guò)程各階段,與此相對(duì)應(yīng)的是右邊上升的部分,即個(gè)測(cè)試過(guò)程的各個(gè)階段。
          • w模型
            • v模型存在一定的局限性,它僅僅把測(cè)試過(guò)程作為在需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì)及編碼之后的一個(gè)階段。容易使人理解為測(cè)試是軟件開(kāi)發(fā)的最后的一個(gè)階段,主要是針對(duì)程序進(jìn)行測(cè)試徐兆錯(cuò)誤,而需求分析階段的隱藏的問(wèn)題一直到后期的驗(yàn)收測(cè)試才被發(fā)現(xiàn)。
            • 在v模型中曾家軟件各開(kāi)發(fā)階段應(yīng)同步進(jìn)行的測(cè)試,被演化為一種w模型。
            • 開(kāi)發(fā)是v,測(cè)試也是與此相重疊的v。
            • 相比于v模型,w模型更科學(xué)。w模型可以說(shuō)是前者自然而然的發(fā)展,它強(qiáng)調(diào):測(cè)試伴隨著整個(gè)軟件開(kāi)發(fā)周期,而且測(cè)試的對(duì)象不僅僅是程序,需求,功能和設(shè)計(jì)同樣要測(cè)試。
            • 測(cè)試與開(kāi)發(fā)是同步進(jìn)行的,從而有利于僅在地發(fā)現(xiàn)問(wèn)題。與需求為例,而不是等到最后才進(jìn)行針對(duì)需求的驗(yàn)收測(cè)試。
            • 測(cè)試不僅僅是評(píng)定軟件的質(zhì)量,測(cè)試還可以盡可能早的找出缺陷所在,從而幫助改進(jìn)項(xiàng)目?jī)?nèi)部的質(zhì)量。
          • x模型

           軟件測(cè)試技術(shù):
          靜態(tài)測(cè)試的技術(shù)主要有:代碼走查,技術(shù)評(píng)審,代碼審查。
          黑盒測(cè)試的技術(shù)主要有:功能測(cè)試,性能測(cè)試,攻擊測(cè)試。
          回歸測(cè)試:程序修改或者版本更新以后,為了確保以前正確的能能和其他指標(biāo)仍舊正確,而重新進(jìn)行的測(cè)試。
          測(cè)試過(guò)程分為:

          • 單元測(cè)試:
            • 檢驗(yàn)程序最小單元有無(wú)錯(cuò)誤。接口、數(shù)據(jù)結(jié)構(gòu)、邊界、覆蓋、邏輯。檢驗(yàn)單元編碼與設(shè)計(jì)是否吻合。
            • 時(shí)機(jī):編碼完成后,首先要實(shí)施的測(cè)試。
            • 方法:靜態(tài)測(cè)試,白盒測(cè)試
            • 責(zé)任:開(kāi)發(fā)工程師
          • 集成測(cè)試:
            • 目標(biāo):檢驗(yàn)組成系統(tǒng)的模塊節(jié)后有無(wú)錯(cuò)誤。代碼實(shí)現(xiàn)的系統(tǒng)設(shè)計(jì)與需求定義是否吻合。
            • 時(shí)機(jī):主要的單元測(cè)試完成后,經(jīng)常與單元測(cè)試同步進(jìn)行。
            • 方法:黑盒測(cè)試
            • 責(zé)任:開(kāi)發(fā)工程師,測(cè)試工程師
          • 系統(tǒng)測(cè)試:
            • 目標(biāo):檢驗(yàn)組成整個(gè)系統(tǒng)的代碼、以及系統(tǒng)的軟硬件配合有無(wú)錯(cuò)誤
            • 代碼實(shí)現(xiàn)的系統(tǒng)與用戶需求是否吻合
            • 檢驗(yàn)系統(tǒng)的文檔等各種是否完整、有效
            • 模擬驗(yàn)收測(cè)試的要求,檢察系統(tǒng)是否符合用戶的驗(yàn)收標(biāo)準(zhǔn)
            • 時(shí)機(jī):多數(shù)集成測(cè)試完成后
            • 方法:黑盒測(cè)試
            • 責(zé)任:測(cè)試工程師
          • 系統(tǒng)測(cè)試----穩(wěn)定期測(cè)試
            • 目標(biāo):度量是否可以結(jié)束測(cè)試
            • 時(shí)機(jī):傳統(tǒng)的系統(tǒng)測(cè)試完成后
            • 方法:黑盒測(cè)試
            • 責(zé)任:測(cè)試工程師
          • 驗(yàn)收測(cè)試:
            • 目標(biāo):使客戶驗(yàn)收簽字,系統(tǒng)是否符合事先約定的驗(yàn)收標(biāo)準(zhǔn)。
            • 時(shí)機(jī):系統(tǒng)測(cè)試完成后,在項(xiàng)目組開(kāi)來(lái)開(kāi)發(fā)和測(cè)試工作已經(jīng)全部完成,可以交付使用。
            • 方法:黑盒測(cè)試
            • 責(zé)任:產(chǎn)品經(jīng)理或其他高級(jí)經(jīng)理,開(kāi)發(fā)工程師,測(cè)試工程師,用戶。
          • 回歸測(cè)試:
            • 目標(biāo):驗(yàn)證程序修改或者版本更新以后,以前正確的功能和其他指標(biāo)仍舊正確。
            • 時(shí)機(jī):每次錯(cuò)誤修改之后,或者版本更新之后。
            • 方法:白盒測(cè)試,黑盒測(cè)試
            • 責(zé)任:開(kāi)發(fā)工程師,測(cè)試工程師
          • 缺陷跟蹤:
            • 目標(biāo):確保所有發(fā)現(xiàn)的錯(cuò)誤被正確記錄、分發(fā)、評(píng)估、關(guān)閉、統(tǒng)計(jì)
            • 時(shí)機(jī):從錯(cuò)誤發(fā)現(xiàn)開(kāi)始到錯(cuò)誤關(guān)閉為止,每次錯(cuò)誤裝袋修改之后。
            • 方法:缺陷跟蹤系統(tǒng)
            • 責(zé)任:開(kāi)發(fā)工程師,測(cè)試工程師,測(cè)試經(jīng)理,用戶

           

          posted on 2007-04-28 08:55 靜兒 閱讀(851) 評(píng)論(1)  編輯  收藏

          評(píng)論:
          # re: 關(guān)于軟件測(cè)試 2007-10-19 08:53 | bigboy
          寫(xiě)的很好,收藏了  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 密山市| 玉田县| 和田市| 富川| 平南县| 龙井市| 凌云县| 贺州市| 卫辉市| 商河县| 锡林浩特市| 林州市| 宁海县| 高碑店市| 德令哈市| 竹溪县| 土默特左旗| 团风县| 上杭县| 邢台县| 远安县| 木里| 浦东新区| 莫力| 额济纳旗| 宣威市| 大同县| 商河县| 修文县| 女性| 双鸭山市| 上蔡县| 深圳市| 米易县| 修文县| 临清市| 河源市| 明光市| 突泉县| 鹿泉市| 阳曲县|