1 測(cè)試過程
1.1 測(cè)試階段劃分
測(cè)試階段劃分:需求測(cè)試(重點(diǎn))、單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試(重點(diǎn))、驗(yàn)收測(cè)試、回歸測(cè)試
需求測(cè)試
???????? 定義:通過評(píng)審來測(cè)試需求(通過不同級(jí)別不同類型的評(píng)審來避免人員意見)
單元測(cè)試
???????? 定義:針對(duì)軟件基本組成單元(軟件的最小組成單元:函數(shù),語句塊等)來進(jìn)行正確性檢驗(yàn)的測(cè)試工作
???????? 目的:檢測(cè)軟件模塊對(duì)《詳細(xì)設(shè)計(jì)說明書》的符合程度????????
集成測(cè)試
???????? 定義:將所有模塊按照《概要設(shè)計(jì)說明書》的要求組裝成子系統(tǒng)或者系統(tǒng),驗(yàn)證組裝后的功能以及模塊間接口是否正確的功能
???????? 目的:檢測(cè)軟件模塊對(duì)《概要設(shè)計(jì)說明書》的符合程度
系統(tǒng)測(cè)試
???????? 定義:將已經(jīng)集成好的軟件系統(tǒng),作為整個(gè)基于計(jì)算機(jī)系統(tǒng)的一個(gè)元素,與計(jì)算機(jī)硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員(用戶)等其他系統(tǒng)元素結(jié)合在一起,在實(shí)際運(yùn)行(使用)環(huán)境下,對(duì)計(jì)算機(jī)進(jìn)行一系列的測(cè)試工作
???????? 目的:通過與《需求規(guī)格說明書》作比較,發(fā)現(xiàn)軟件與系統(tǒng)需求定義不符合或與之矛盾的地方
?
回歸測(cè)試
???????? 定義:軟件在測(cè)試或其他活動(dòng)中發(fā)現(xiàn)的缺陷經(jīng)過修改后,應(yīng)該進(jìn)行回歸測(cè)試(Regression Testing)
???????? 目的:驗(yàn)證缺陷得到了正確的修復(fù),同時(shí)對(duì)系統(tǒng)的變更沒有影響以前的功能
???????? 回歸測(cè)試可以發(fā)生在任何一個(gè)階段,包括單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試
回歸測(cè)試過程信息流:
?回歸測(cè)試策略:
?????????完全重復(fù)測(cè)試:重新執(zhí)行所有在前期測(cè)試階段建立的測(cè)試用例,來確認(rèn)問題修改的正確性和修改的擴(kuò)散局部影響性。
?????????選擇性重復(fù)測(cè)試:(新發(fā)現(xiàn)的缺陷用例,和覆蓋主要功能的用例)有選擇性重新執(zhí)行部分在前期測(cè)試階段建立的測(cè)試用例,來測(cè)試被修改的程序。
?????????選擇性重復(fù)測(cè)試的方法:
???????? ① 覆蓋修改法:針對(duì)被修改的部分,選取或重新構(gòu)造測(cè)試用例,驗(yàn)證有沒有錯(cuò)誤再次發(fā)生的用例選擇方法;
???????? ② 周邊影響法:該方法不但要包含覆蓋修改法確定的用例,還需要分析修改的擴(kuò)散影響,對(duì)那些受到修改間接影響的部分選擇測(cè)試用例驗(yàn)證它沒有受到不良影響。周邊覆蓋法比覆蓋修改法更充分一點(diǎn);
???????? ③ 指標(biāo)達(dá)成方法:這是一種類似于單元測(cè)試的方法,在重新執(zhí)行測(cè)試前,先確定一個(gè)要達(dá)成的指標(biāo),如修改代碼部分100%的覆蓋、與修改有關(guān)的接口60%的覆蓋等,基于這種要求選擇一個(gè)最小的測(cè)試用例集合。
?????????回歸測(cè)試的流程:(以下流程適合單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試)
???????? ① 在測(cè)試策略制度階段,制定回歸測(cè)試策略;
???????? ② 確定需要回歸測(cè)試的版本;
???????? ③ 回歸測(cè)試版本發(fā)布,按照回歸測(cè)試策略執(zhí)行回歸測(cè)試;
???????? ④ 回歸測(cè)試通過,關(guān)閉缺陷跟蹤單;
???????? ⑤ 回歸測(cè)試不通過,缺陷跟蹤單返回開發(fā)人員,開發(fā)人員重新修改問題,再提交測(cè)試人員回歸測(cè)試。
?????????回歸測(cè)試自動(dòng)化:
???????? ① 回歸測(cè)試是重用以前成果的測(cè)試,很難預(yù)料要經(jīng)過多少次回歸系統(tǒng)才能達(dá)到滿意的水平,結(jié)果,這種回歸測(cè)試將可能演變成為一種重復(fù)的、令人心煩意亂的工作,效果與人員的積極性大打折扣,因此,在回歸測(cè)試道路上的自動(dòng)化便是我們工作的追求;
???????? ② 回歸測(cè)試的自動(dòng)化法包括測(cè)試程序的自動(dòng)運(yùn)行、自動(dòng)配置,測(cè)試用例的管理和自動(dòng)輸入,測(cè)試的自動(dòng)執(zhí)行,測(cè)試信息與結(jié)果的自動(dòng)采集,測(cè)試結(jié)果的自動(dòng)比較和結(jié)果的自動(dòng)輸出,尤其前面提到的各類數(shù)據(jù)的共享決策;
???????? ③ 對(duì)系統(tǒng)測(cè)試功能比較簡(jiǎn)單、測(cè)試界面相對(duì)穩(wěn)定并且測(cè)試用例良好組織的測(cè)試來說,采用“捕捉回放”工具比較合適,這類工具有QTP、Robot、SilkTest等;
???????? ④ 為了實(shí)現(xiàn)測(cè)試用例的自動(dòng)化并實(shí)現(xiàn)測(cè)試結(jié)果的自動(dòng)判斷,腳本話的、包含控制結(jié)構(gòu)、內(nèi)部實(shí)現(xiàn)結(jié)果判斷的測(cè)試用例是唯一的選擇,此類腳本語言有TCL、Python、Perl等;
???????? ⑤ 對(duì)特定系統(tǒng)的、復(fù)雜的測(cè)試來講,如果沒有通用的商用工具可供選擇,探索開發(fā)專用的自動(dòng)化測(cè)試工具是靈活且 易于擴(kuò)充的方法;
???????? ⑥ 回歸測(cè)試的自動(dòng)化(或者說工具化)的問題是一個(gè)需要盡早考慮的問題,在做測(cè)試方案時(shí)就要考慮這種可能性,必要時(shí)要投入資源進(jìn)行開發(fā),能形成可供繼承的工具則是最終目的。
???????? 單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試是軟件開發(fā)過程中在軟件組織內(nèi)部進(jìn)行的測(cè)試階段。軟件發(fā)布前還可能進(jìn)行用戶參與的其他一些測(cè)試,如:驗(yàn)收測(cè)試、α測(cè)試、β測(cè)試。
驗(yàn)收測(cè)試
???????? 在通過了系統(tǒng)內(nèi)部測(cè)試及配置審查之后,就可以開始驗(yàn)收測(cè)試。
???????? 驗(yàn)收測(cè)試是以用戶為主的測(cè)試,驗(yàn)收組應(yīng)該由項(xiàng)目組成員、用戶代表等組成。
???????? 驗(yàn)收測(cè)試原則在用戶所在地進(jìn)行,如經(jīng)用戶同意也在公司內(nèi)模擬用戶環(huán)境進(jìn)行。
???????? 驗(yàn)收測(cè)試根據(jù)合同、《需求規(guī)格說明書》或驗(yàn)收測(cè)試計(jì)劃對(duì)成品進(jìn)行驗(yàn)收測(cè)試。
?????????驗(yàn)收測(cè)試的結(jié)果有兩種情況:
???????? ① 軟件功能、性能等質(zhì)量特征與用戶要求的一致,軟件可以接受;
???????? ② 軟件功能、性能等質(zhì)量特征與用戶要求有差距,不被用戶接受。
α測(cè)試
???????? 定義:用戶在開發(fā)環(huán)境進(jìn)行的測(cè)試,也可以是開發(fā)機(jī)構(gòu)內(nèi)部的用戶在模擬實(shí)際操作環(huán)境下進(jìn)行的測(cè)試。是可控制環(huán)境,開發(fā)測(cè)試人員可以修改控制的環(huán)境。α測(cè)試時(shí),軟件在一個(gè)自然狀態(tài)下使用,開發(fā)者在旁,隨時(shí)記錄錯(cuò)誤情況和使用中的問題。這是在受控的環(huán)境下進(jìn)行的測(cè)試。
???????? 目的:評(píng)價(jià)軟件產(chǎn)品的FLURPS(功能,局域化,可用性,可靠性,性能和技術(shù)支持)
β測(cè)試
???????? 定義:由軟件的多個(gè)用戶在一個(gè)或多個(gè)用戶的實(shí)際環(huán)境下進(jìn)行的測(cè)試。與α測(cè)試不同的是,β測(cè)試時(shí)開發(fā)者通常不在現(xiàn)場(chǎng),因而,β測(cè)試是在開發(fā)者無法控制的環(huán)境下進(jìn)行的軟件現(xiàn)場(chǎng)應(yīng)用。
?
單元測(cè)試,集成測(cè)試,系統(tǒng)測(cè)試的比較
???????? 測(cè)試方法不同
????? ???????? 單元測(cè)試屬于白盒測(cè)試
????? ???????? 集成測(cè)試屬于灰盒測(cè)試
????? ???????? 系統(tǒng)測(cè)試屬于黑盒測(cè)試
???????? 考察范圍不同
????? ???????? 單元測(cè)試主要測(cè)試單元內(nèi)部的數(shù)據(jù)結(jié)構(gòu),邏輯控制,異常處理 等
????? ???????? 集成測(cè)試主要測(cè)試模塊之間的接口和接口數(shù)據(jù)傳遞關(guān)系,以及模塊組合后的整體功能
????? ???????? 系統(tǒng)測(cè)試主要測(cè)試整個(gè)系統(tǒng)相對(duì)于需求的符合度
???????? 評(píng)估基準(zhǔn)不同
????? ???????? 單元測(cè)試的評(píng)估基準(zhǔn)主要是邏輯覆蓋率
????? ???????? 集成測(cè)試的評(píng)估基準(zhǔn)是接口覆蓋率
????? ???????? 系統(tǒng)測(cè)試的評(píng)估基準(zhǔn)主要是測(cè)試用例對(duì)需求規(guī)格的覆蓋率
1.2 測(cè)試過程模型
測(cè)試過程階段劃分
???????? 測(cè)試計(jì)劃階段:測(cè)試計(jì)劃
???????? 測(cè)試設(shè)計(jì)階段:測(cè)試方案
???????? 測(cè)試實(shí)現(xiàn)階段:測(cè)試用例、測(cè)試規(guī)程
???????? 測(cè)試執(zhí)行階段:測(cè)試報(bào)告
主要的測(cè)試文檔
???????? 測(cè)試計(jì)劃:指明測(cè)試范圍、方法、資源,以及相應(yīng)測(cè)試活動(dòng)的時(shí)間進(jìn)度安排表的文檔
???????? 測(cè)試方案:指明為完成軟件或軟件集成特征的測(cè)試而進(jìn)行的設(shè)計(jì)測(cè)試方法的細(xì)節(jié)文檔
???????? 測(cè)試用例:指明為完成一個(gè)測(cè)試項(xiàng)的測(cè)試輸入、預(yù)期結(jié)果、測(cè)試執(zhí)行條件等因素的文檔
???????? 測(cè)試規(guī)程:指明執(zhí)行測(cè)試時(shí)測(cè)試活動(dòng)序列的文檔
???????? 測(cè)試報(bào)告:指明測(cè)試執(zhí)行結(jié)果的文檔
???????? 測(cè)試日?qǐng)?bào):每天測(cè)試執(zhí)行情況的記錄和總結(jié)
???????? 常見測(cè)試過程模型:瀑布模型、H模型、V&V模型
瀑布模型
?H模型:
?文章來源地址http://www.zghlxwxcb.cn/news/detail-691603.html
?? ? ? ? ?H模型測(cè)試分兩類活動(dòng):
???????? ① 測(cè)試準(zhǔn)備活動(dòng),包括測(cè)試需求分析、測(cè)試計(jì)劃、測(cè)試設(shè)計(jì)、測(cè)試編碼、測(cè)試驗(yàn)證
???????? ② 測(cè)試執(zhí)行活動(dòng),包括測(cè)試運(yùn)行、測(cè)試報(bào)告、測(cè)試結(jié)果分析等
?????????H模型的特點(diǎn):
???????? ① 軟件測(cè)試不僅僅指測(cè)試執(zhí)行,還包括許多其他測(cè)試活動(dòng)
???????? ② 測(cè)試是一個(gè)獨(dú)立的流程,貫穿產(chǎn)品整個(gè)周期,與其他流程并發(fā)地進(jìn)行
???????? ③ 測(cè)試要盡早準(zhǔn)備,盡早執(zhí)行
???????? ④ 各個(gè)不同階段的測(cè)試除了簡(jiǎn)單的時(shí)間上的先后關(guān)系外,還存在觸發(fā)、反復(fù)、迭代和增量關(guān)系
V&V模型
?? ? ? ? ?V&V模型的特點(diǎn)
???????? ① 實(shí)現(xiàn)了測(cè)試設(shè)計(jì)和測(cè)試執(zhí)行相分離
???????? ② 揭示了軟件測(cè)試活動(dòng)分層和分階段的本質(zhì)特性,測(cè)試執(zhí)行的順序與開發(fā)活動(dòng)相反
?????????驗(yàn)證與確認(rèn):
???????? 驗(yàn)證(Verification):
???????? ① 保證軟件正確地實(shí)現(xiàn)特定功能的一系列活動(dòng)
???????? ② 檢測(cè)每一階段形成的工作產(chǎn)品是否與前一階段定義的規(guī)格相一致
???????? 確認(rèn):
???????? ① 保證所生產(chǎn)的軟件可追溯到用戶需求的一系列活動(dòng)
???????? ② 檢測(cè)每一階段的工作產(chǎn)品是否與最初定義的需求規(guī)格相一致
?????????驗(yàn)證與確認(rèn)的關(guān)系圖
?1.3 測(cè)試過程規(guī)范
CMM關(guān)于過程的要素
???????? 角色、入口準(zhǔn)則、輸入、活動(dòng)、輸出、出口準(zhǔn)則、評(píng)審和審計(jì)等
集成測(cè)試過程
? 概要設(shè)計(jì)——詳細(xì)設(shè)計(jì)——執(zhí)行集成測(cè)試
概要設(shè)計(jì)
???????? 輸入:SRS、系統(tǒng)測(cè)試計(jì)劃
???????? 輸出:集成測(cè)試計(jì)劃、系統(tǒng)測(cè)試方案、系統(tǒng)測(cè)試用例、預(yù)測(cè)試項(xiàng)、規(guī)程、階段報(bào)告
詳細(xì)設(shè)計(jì)
???????? 輸入: SRS、系統(tǒng)測(cè)試計(jì)劃、系統(tǒng)測(cè)試方案、集成測(cè)試計(jì)劃
???????? 輸出:?jiǎn)卧獪y(cè)試計(jì)劃、集成測(cè)試方案、集成測(cè)試用例、集成測(cè)試規(guī)程、階段報(bào)告
執(zhí)行集成測(cè)試:
???????? 輸入: 單元測(cè)試報(bào)告、集成測(cè)試計(jì)劃、集成測(cè)試方案、集成測(cè)試用例、集成測(cè)試規(guī)程
???????? 輸出:集成測(cè)試報(bào)告、階段報(bào)告
?
集成測(cè)試過程與開發(fā)階段
???????? 概要設(shè)計(jì)(集成測(cè)試計(jì)劃)——詳細(xì)設(shè)計(jì)(集成測(cè)試設(shè)計(jì)、實(shí)現(xiàn))——集成測(cè)試執(zhí)行
集成測(cè)試各階段的輸入、輸出
?????????集成測(cè)試計(jì)劃階段:
???????? 輸入:軟件測(cè)試計(jì)劃、概要設(shè)計(jì)說明書(HLD)
???????? 輸出:集成測(cè)試計(jì)劃
?????????集成測(cè)試設(shè)計(jì)階段:
???????? 輸入:概要設(shè)計(jì)說明書(HLD)、集成測(cè)試計(jì)劃
???????? 輸出:集成測(cè)試方案
?????????集成測(cè)試實(shí)現(xiàn)階段:
???????? 輸入:軟件測(cè)試計(jì)劃、詳細(xì)設(shè)計(jì)說明書
???????? 輸出:?jiǎn)卧獪y(cè)試計(jì)劃
?????????集成測(cè)試執(zhí)行階段:
???????? 輸入:詳細(xì)設(shè)計(jì)說明書、單元測(cè)試計(jì)劃
???????? 輸出:?jiǎn)卧獪y(cè)試方案
?
單元測(cè)試過程
???????? 詳細(xì)設(shè)計(jì)——編碼——執(zhí)行單元測(cè)試
單元測(cè)試各階段的輸入、輸出
?????????單元測(cè)試計(jì)劃階段:
???????? 輸入:軟件測(cè)試計(jì)劃、詳細(xì)設(shè)計(jì)說明書(LLD)
???????? 輸出:?jiǎn)卧獪y(cè)試計(jì)劃
?????????單元測(cè)試設(shè)計(jì)階段:
???????? 輸入:詳細(xì)設(shè)計(jì)說明書(LLD)、單元測(cè)試計(jì)劃
???????? 輸出:?jiǎn)卧獪y(cè)試方案
?????????單元測(cè)試實(shí)現(xiàn)階段:
???????? 輸入:?jiǎn)卧獪y(cè)試計(jì)劃、詳細(xì)設(shè)計(jì)說明書、單元測(cè)試方案
???????? 輸出:?jiǎn)卧獪y(cè)試用例、單元測(cè)試規(guī)程
?????????單元測(cè)試執(zhí)行階段:
???????? 輸入:?jiǎn)卧獪y(cè)試方案、單元測(cè)試計(jì)劃、單元測(cè)試用例、單元測(cè)試規(guī)程
???????? 輸出:?jiǎn)卧獪y(cè)試報(bào)告、缺陷報(bào)告
需求分析階段的主要任務(wù)
????? ① 需求分析,完成SRS
????? ② SRS的評(píng)審
????? ③ 進(jìn)行需求跟蹤
????? ④ 系統(tǒng)測(cè)試計(jì)劃
????? ⑤ 系統(tǒng)測(cè)試計(jì)劃的評(píng)審
需求階段的角色和職責(zé)
?????????軟件測(cè)試工程師:
???????? ① 參與SRS評(píng)審工作
???????? ② 協(xié)助軟件測(cè)試項(xiàng)目經(jīng)理完成軟件系統(tǒng)測(cè)試計(jì)劃寫作
???????? ③ 參加系統(tǒng)測(cè)試計(jì)劃的評(píng)審
???????? ④ 完成本階段測(cè)試需求跟蹤
概要設(shè)計(jì)階段的主要任務(wù)
????? ① 完成HLD
????? ② 概要設(shè)計(jì)的評(píng)審
????? ③ 系統(tǒng)測(cè)試方案、用例的設(shè)計(jì)
????? ④ 系統(tǒng)測(cè)試方案、用例的評(píng)審
????? ⑤ 需求跟蹤更新
????? ⑥ 集成測(cè)試計(jì)劃
????? ⑦ 集成測(cè)試計(jì)劃評(píng)審
概要設(shè)計(jì)階段的角色和職責(zé)
???????? 軟件測(cè)試工程師:
???????? ① 參與HLD評(píng)審
???????? ② 參與集成測(cè)試計(jì)劃的評(píng)審
???????? ③ 進(jìn)行系統(tǒng)測(cè)試方案、用例的設(shè)計(jì)
???????? ④ 參與系統(tǒng)測(cè)試方案、用例的評(píng)審
???????? ⑤ 完成本階段測(cè)試需求跟蹤
詳細(xì)設(shè)計(jì)階段的主要任務(wù)
????? ① 進(jìn)行軟件詳細(xì)設(shè)計(jì),完成LLD
????? ② 詳細(xì)設(shè)計(jì)的評(píng)審
????? ③ 集成測(cè)試的方案、用例的設(shè)計(jì)
????? ④ 集成測(cè)試的方案、用例的評(píng)審
????? ⑤ 需求跟蹤更新
????? ⑥ 單元測(cè)試計(jì)劃
????? ⑦ 單元測(cè)試計(jì)劃評(píng)審
詳細(xì)設(shè)計(jì)階段的角色和職責(zé)
???????? 軟件測(cè)試工程師:
???????? ① 進(jìn)行軟件詳細(xì)設(shè)計(jì),完成LLD文檔
???????? ② 詳細(xì)設(shè)計(jì)的評(píng)審
???????? ③ 集成測(cè)試方案、用例的設(shè)計(jì)
???????? ④ 集成測(cè)試方案、用例的評(píng)審
???????? ⑥ 需求跟蹤更新
???????? ⑦ 單元測(cè)試計(jì)劃
???????? ⑧ 單元測(cè)試計(jì)劃評(píng)審
軟件編碼階段的主要任務(wù)
????? ① 軟件編碼
????? ② 代碼靜態(tài)質(zhì)量檢查
????? ③ 代碼評(píng)審
????? ④ 單元測(cè)試方案、用例設(shè)計(jì)
????? ⑤ 單元測(cè)試方案、用例評(píng)審
軟件編碼階段的角色和職責(zé)
???????? 軟件測(cè)試工程師:
???????? ① 參與代碼評(píng)審
???????? ② 進(jìn)行單元測(cè)試方案、用例設(shè)計(jì)
???????? ③ 單元測(cè)試方案、用例評(píng)審
???????? ④ 完成本階段測(cè)試需求跟蹤
集成測(cè)試執(zhí)行階段的主要任務(wù)
????? ① 集成測(cè)試用例執(zhí)行
????? ② 集成測(cè)試缺陷記錄、修復(fù)
????? ③ 集成測(cè)試日?qǐng)?bào)寫作
????? ④ 集成測(cè)試缺陷的回歸測(cè)試
UT/IT/ST執(zhí)行階段的角色和職責(zé)
???????? 軟件測(cè)試工程師:
???????? ① 搭建測(cè)試環(huán)境
???????? ② 執(zhí)行測(cè)試用例
???????? ③ 發(fā)現(xiàn)缺陷后提交缺陷報(bào)告
???????? ④ 回歸測(cè)試
???????? ⑤ 每天提交測(cè)試日?qǐng)?bào)
???????? ⑥ 測(cè)試報(bào)告及系統(tǒng)測(cè)試預(yù)測(cè)試報(bào)告寫作
???????? ⑦ 參與測(cè)試報(bào)告的評(píng)審
???????? ⑧ 參與轉(zhuǎn)系統(tǒng)測(cè)試評(píng)審
2 測(cè)試方法
測(cè)試方法的分類:
???????? 按方法區(qū)分:白盒測(cè)試、灰盒測(cè)試、黑盒測(cè)試
???????? 按照是否執(zhí)行被測(cè)程序區(qū)分:靜態(tài)測(cè)試、動(dòng)態(tài)測(cè)試
???????? 根據(jù)執(zhí)行測(cè)試的方式區(qū)分:人工測(cè)試、自動(dòng)化測(cè)試
2.1 白盒測(cè)試
定義:依據(jù)被測(cè)軟件分析程序內(nèi)部構(gòu)造,并根據(jù)內(nèi)部構(gòu)造設(shè)計(jì)用例,來對(duì)內(nèi)部控制流程進(jìn)行測(cè)試,可完全不顧程序的整體功能的實(shí)現(xiàn)情況。白盒測(cè)試是基于程序結(jié)構(gòu)的邏輯驅(qū)動(dòng)測(cè)試。
為什么要進(jìn)行白盒測(cè)試
???????? 它一般在測(cè)試前期進(jìn)行,通過達(dá)到一定的邏輯覆蓋率使軟件內(nèi)部邏輯控制結(jié)構(gòu)上的問題能夠基本得到消除
保證內(nèi)部邏輯結(jié)構(gòu)達(dá)到一定的覆蓋程度,能夠給予軟件代碼質(zhì)量更大的保證,白盒測(cè)試發(fā)現(xiàn)問題后解決問題成本較低
白盒測(cè)試的常用技術(shù)
?????????靜態(tài)分析技術(shù):控制流分析技術(shù),數(shù)據(jù)流分析技術(shù),信息流分析技術(shù)(不執(zhí)行代碼)
?????????動(dòng)態(tài)分析技術(shù):邏輯覆蓋率測(cè)試(分支測(cè)試,路經(jīng)測(cè)試),程序插裝
控制流相關(guān)概念
?????????程序元素:一個(gè)程序元素通常是一個(gè)條件,一個(gè)簡(jiǎn)單的語句或者一塊語句(多個(gè)連續(xù)語句)
?????????控制流關(guān)系:一個(gè)程序的控制流關(guān)系,敘述了程序元素和它們執(zhí)行的次序之間的聯(lián)系
?????????控制流圖:對(duì)應(yīng)于控制流關(guān)系的圖
???????? 控制流矩陣:由控制流圖得到,反映相鄰程序元素之間的先后順序關(guān)系
控制流分析的步驟
???????? 1.確定所有程序元素
???????? 2.根據(jù)程序元素之間的相互關(guān)系得到控制流圖
???????? 3.將控制流圖轉(zhuǎn)換成控制流矩陣
???????? 4.通過數(shù)據(jù)結(jié)構(gòu)的形式把控制流矩陣表示出來
控制流分析能發(fā)現(xiàn)的問題
???????? 轉(zhuǎn)向并不存在的標(biāo)號(hào)
???????? 沒有用的語句標(biāo)號(hào)
???????? 從程序入口進(jìn)入后無法達(dá)到的語句
???????? 不能達(dá)到停機(jī)語句的語句
數(shù)據(jù)流相關(guān)概念
?????????數(shù)據(jù)定義:如果程序中某一語句執(zhí)行時(shí)能改變某程序變量V的值,則稱V是被該語句定義的
???????? 數(shù)據(jù)的引用:如果一語句的執(zhí)行引用了內(nèi)存中變量V的值,則說該語句引用變量V
數(shù)據(jù)流分析步驟
???????? 1.根據(jù)代碼得到數(shù)據(jù)流表
???????? 2.分析數(shù)據(jù)流表找到以下兩種錯(cuò)誤:
???????? 3.變量未定義但被引用
???????? 4.變量定義但未被引用
信息流分析
???????? 可以導(dǎo)出程序的信息流的關(guān)系,為軟件開發(fā)的確認(rèn)提供了工具。
???????? 通過以下三個(gè)關(guān)系表給出:
???????? 輸入變量和語句關(guān)系:輸入變量直接或間接影響語句的執(zhí)行
???????? 語句和輸出變量關(guān)系:語句執(zhí)行直接或間接影響變量的輸出
???????? 輸入和輸出變量關(guān)系:輸入變量直接或間接影響輸出變量
信息流分析步驟
???????? 根據(jù)代碼得到三個(gè)關(guān)系表
???????? 分析輸入變量和語句關(guān)系表
???????? 分析語句和輸出變量關(guān)系表
???????? 分析輸入和輸出變量關(guān)系表
????????
邏輯覆蓋測(cè)試
???????? 根據(jù)覆蓋的對(duì)象不同:
???????? 語句覆蓋
???????? 判定覆蓋
???????? 條件覆蓋
???????? 判定—條件覆蓋
???????? 路徑覆蓋
???????? ,,,,,,
????????
程序插裝
???????? 我們?cè)谡{(diào)試程序,常常要在程序中打印一些語句,其目的在于,希望執(zhí)行程序時(shí),打印出我們最關(guān)系的信息。進(jìn)一步通過這些信息了解執(zhí)行過程中程序的一些動(dòng)態(tài)特征。比如,程序?qū)嶋H執(zhí)行路徑,或是特定變量在特定時(shí)刻的取值。
???????? 從這一思想發(fā)展出的程序插樁技術(shù)能夠按用戶的要求,獲取程序的各種信息,成為測(cè)試工作的有效手段。程序插樁簡(jiǎn)單地說就是借助往被測(cè)程序中插入操作來實(shí)現(xiàn)測(cè)試目的的方法。
白盒測(cè)試的特點(diǎn)
?????????優(yōu)點(diǎn):
?????????1.迫使測(cè)試人員去自覺地思考軟件的實(shí)現(xiàn)
???????? 2.可以檢測(cè)代碼中的每條分支和路徑
???????? 3.揭露隱藏在代碼中的錯(cuò)誤
???????? 4.對(duì)代碼的測(cè)試比較徹底
???????? 5.實(shí)現(xiàn)代碼結(jié)構(gòu)上的最優(yōu)化
????缺點(diǎn):
???????? 1.昂貴
???????? 2.無法檢測(cè)代碼中遺漏的路徑和數(shù)據(jù)敏感性錯(cuò)誤
???????? 3.不驗(yàn)證規(guī)格的正確性
2.2 黑盒測(cè)試
定義:只考慮其整體特性,不考慮其內(nèi)部具體實(shí)現(xiàn),是基于規(guī)格的測(cè)試
對(duì)象:?系統(tǒng),子系統(tǒng),子模塊,函數(shù)
黑盒測(cè)試類型和質(zhì)量模型
???????? 來源于質(zhì)量模型
???????? 將軟件的特性和質(zhì)量特性結(jié)合起來就得到了測(cè)試類型
???????? 一個(gè)軟件特性可以和一個(gè)質(zhì)量特性結(jié)合得到一個(gè)測(cè)試類型
???????? 一個(gè)軟件特性可以和多個(gè)不同的質(zhì)量特性結(jié)合得到多個(gè)不同的測(cè)試類型
常見的黑盒測(cè)試方法
???????? 等價(jià)類劃分法
???????? 邊界值分析法
???????? 因果圖分析法
???????? 判定表法
???????? 狀態(tài)遷移法
???????? 錯(cuò)誤猜測(cè)法
???????? ………
注:不管是什么測(cè)試方法,都是為了減少測(cè)試時(shí)的測(cè)試用例數(shù),都是為了用盡量少的測(cè)試用例去完成測(cè)試,去發(fā)現(xiàn)更多問題。
?
黑盒測(cè)試的特點(diǎn)
???????? 1.對(duì)于更大的代碼單元來說,比白盒測(cè)試效率更高
???????? 2.測(cè)試人員不需要了解實(shí)現(xiàn)細(xì)節(jié)
???????? 3.測(cè)試人員和編碼人員彼此獨(dú)立
???????? 4.從用戶和編碼人員視角進(jìn)行測(cè)試,很容易被大家理解和接受
???????? 5.有助于暴露任何規(guī)格不一致或有歧義的問題
???????? 6.測(cè)試用例可以再規(guī)格完成之后馬上進(jìn)行
???????? 7.只有一小部分可能的輸入被測(cè)試到 ,要測(cè)試每個(gè)可能的輸入流幾乎是不可能的
???????? 8.沒有清晰和簡(jiǎn)明的規(guī)格,測(cè)試用例很難設(shè)計(jì)
???????? 9.溝通不到位會(huì)有問題
???????? 10.會(huì)有很多程序路徑?jīng)]有被測(cè)試到
???????? 11.不能直接針對(duì)特定的程序段,這些程序段可能非常復(fù)雜
2.3 灰盒測(cè)試
???????? 既利用被測(cè)對(duì)象的整體特性信息,又利用被測(cè)對(duì)象的內(nèi)部具體實(shí)現(xiàn)信息,如:集成測(cè)試和系統(tǒng)測(cè)試時(shí)借助Log信息
2.4 靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試
靜態(tài)測(cè)試:不運(yùn)行被測(cè)試軟件系統(tǒng),而采用其他手段和技術(shù)進(jìn)行檢測(cè)的一種測(cè)試技術(shù)。例如:代碼走讀、文檔評(píng)審、程序分析
動(dòng)態(tài)測(cè)試:按照預(yù)先設(shè)計(jì)的數(shù)據(jù)和步驟去運(yùn)行被測(cè)軟件系統(tǒng),從而對(duì)被測(cè)軟件系統(tǒng)進(jìn)行檢測(cè)的一種測(cè)試技術(shù)。常用技術(shù)有動(dòng)態(tài)分析技術(shù)。
靜態(tài)分析技術(shù)
?????????定義:不通過執(zhí)行程序而分析程序執(zhí)行的技術(shù)
?????????功能:檢查軟件的表示和描述是否一致,沒有沖突或者沒有歧義,它糾正軟件系統(tǒng)在描述、表示和規(guī)格上的錯(cuò)誤,因此是任何進(jìn)一步測(cè)試執(zhí)行的前提
?????????三種不同的程序測(cè)試可能性:
???????? 考慮程序是否滿足編碼規(guī)則,語法上是否具有一致性和完整性
???????? 考慮文檔描述是否規(guī)范、準(zhǔn)確、便于查詢
???????? 考慮程序和文檔之間的一致性
?????????靜態(tài)分析技術(shù)結(jié)構(gòu)
?? ? ? ? ?手工靜態(tài)分析-同行評(píng)審
???????? 靜態(tài)分析技術(shù)中的一個(gè)重要的手工技術(shù)是同行評(píng)審,根據(jù)形式正規(guī)程度分為:正規(guī)檢視、技術(shù)評(píng)審和走查。
?????????同行評(píng)審的對(duì)象:計(jì)劃、需求文檔、設(shè)計(jì)圖、代碼等
自動(dòng)化靜態(tài)分析
?????????靜態(tài)驗(yàn)證:檢測(cè)規(guī)格到程序?qū)崿F(xiàn)之間轉(zhuǎn)換上的問題,驗(yàn)證器需要有形式化的規(guī)格和規(guī)格的形式化定義,靜態(tài)驗(yàn)證比較程序提供的實(shí)際值和在規(guī)范文檔中被預(yù)定義的目標(biāo)值。
?????????語法分析器:是一個(gè)基本的自動(dòng)化靜態(tài)分析工具,把程序、文檔文本分解成獨(dú)立的語句。當(dāng)在內(nèi)部檢查程序、文檔文本的時(shí)候,語句一致性被進(jìn)行了檢查。
?????????符號(hào)執(zhí)行器:在符號(hào)短語中分析一個(gè)程序在給定路徑上做的事情,它模擬程序的執(zhí)行,計(jì)算程序在不同位置上變量的事,適合于相數(shù)學(xué)算法的分析。
?動(dòng)態(tài)分析技術(shù)
定義:對(duì)軟件系統(tǒng)運(yùn)行行為進(jìn)行分析,包含程序在受控的環(huán)境下使用特定的輸入進(jìn)行正式的運(yùn)行,和期望的結(jié)果比較以檢查系統(tǒng)運(yùn)行是正確還是不正確。
常用的動(dòng)態(tài)分析技術(shù)
路徑測(cè)試
分支測(cè)試
性能測(cè)試
……
常用動(dòng)態(tài)分析類型及功能
動(dòng)態(tài)分析類型 |
功能 |
測(cè)試覆蓋率分析 |
測(cè)試對(duì)代碼的檢測(cè)范圍 |
跟蹤 |
跟蹤程序執(zhí)行期間的所有路徑,如變量的值 |
調(diào)整 |
度量程序執(zhí)行過程中使用的資源 |
模擬 |
模擬系統(tǒng)的一部分,如無法獲得的代碼或硬件 |
斷言檢查 |
測(cè)試在復(fù)雜邏輯結(jié)構(gòu)中是否某個(gè)條件已經(jīng)被給出 |
人工測(cè)試和自動(dòng)化測(cè)試
人工測(cè)試:測(cè)試活動(dòng)由人來完成,狹義上是指測(cè)試執(zhí)行由人工完成
自動(dòng)化測(cè)試:指通過計(jì)算機(jī)模擬人的測(cè)試行為,替代人的測(cè)試活動(dòng),狹義上是指測(cè)試執(zhí)行由計(jì)算機(jī)來完成
注:適用于重復(fù)多次、機(jī)械化的操作、大量的數(shù)據(jù)執(zhí)行等。
適合自動(dòng)化的活動(dòng)
自動(dòng)化測(cè)試執(zhí)行
自動(dòng)化測(cè)試檢查
自動(dòng)化測(cè)試的意義
對(duì)程序新版本前一版本執(zhí)行的測(cè)試,提高回歸測(cè)試效率
可以運(yùn)行更多更頻繁的測(cè)試,如冒煙測(cè)試
可以執(zhí)行手工測(cè)試?yán)щy或不可能做的測(cè)試,如大量的重復(fù)操作或集成測(cè)試
更好地利用資源,如測(cè)試儀器或被測(cè)對(duì)象
自動(dòng)化測(cè)試的限制
不能取代手工測(cè)試,只能提高測(cè)試效率,不能提高測(cè)試有效性(不能發(fā)現(xiàn)更多缺陷)
手工測(cè)試比自動(dòng)化測(cè)試發(fā)現(xiàn)的缺陷更多
對(duì)測(cè)試設(shè)計(jì)依賴性極大,測(cè)試設(shè)計(jì)的不好會(huì)遺漏問題
自動(dòng)化測(cè)試對(duì)軟件開發(fā)具有很大的依賴性,開發(fā)上出現(xiàn)變更可能導(dǎo)致前面的自動(dòng)化測(cè)試完會(huì)失效
工具本身并不具備想象力,工具不具有智能
最后:下方這份完整的軟件測(cè)試視頻學(xué)習(xí)教程已經(jīng)整理上傳完成,朋友們?nèi)绻枰梢宰孕忻赓M(fèi)領(lǐng)取 【保證100%免費(fèi)】
?文章來源:http://www.zghlxwxcb.cn/news/detail-691603.html
?
到了這里,關(guān)于軟件測(cè)試:測(cè)試過程和方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!