软件测试基础知识总结
本文轉(zhuǎn)載自https://blog.csdn.net/benpaobagzb/article/details/47979649
第一部分:軟件評(píng)測(cè)知識(shí)
1.??軟件質(zhì)量與軟件測(cè)試
軟件測(cè)試:在規(guī)定條件下對(duì)程序進(jìn)行操作,以發(fā)現(xiàn)錯(cuò)誤,對(duì)軟件質(zhì)量進(jìn)行評(píng)估,包括對(duì)軟件形成過程的文檔、數(shù)據(jù)以及程序進(jìn)行測(cè)試
軟件質(zhì)量:軟件特性的總和,軟件滿足規(guī)定或潛在用戶需求的能力
2.??軟件測(cè)試與質(zhì)量保證
軟件測(cè)試只是質(zhì)量保證工作中的一個(gè)環(huán)節(jié),軟件質(zhì)量保證與軟件測(cè)試是軟件質(zhì)量工程的兩個(gè)不同層面的工作;
質(zhì)量保證:通過預(yù)防、檢查與改進(jìn)來保證軟件質(zhì)量,采用全面質(zhì)量管理和過程改進(jìn)的原理來開展質(zhì)量保證工作,主要關(guān)注軟件質(zhì)量的檢查與測(cè)試,主要著眼于軟件開發(fā)活動(dòng)的過程、步驟和產(chǎn)特
軟件測(cè)試:通過執(zhí)行軟件來,對(duì)過程中的產(chǎn)物(開發(fā)文檔和程序)進(jìn)行走查,發(fā)現(xiàn)問題,報(bào)告質(zhì)量
3.??軟件測(cè)試的目的
測(cè)試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯(cuò)誤;
一個(gè)好的測(cè)試用例在于發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤;
一個(gè)成功的測(cè)試是發(fā)現(xiàn)了 至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試;
4.??軟件測(cè)試原則
所有的軟件測(cè)試都應(yīng)追溯到用戶需求
應(yīng)當(dāng)把“盡早地和不斷地進(jìn)行軟件測(cè)試”作為測(cè)試者的座右銘
完全測(cè)試是不可能的,測(cè)試需要終止
測(cè)試無法顯示軟件潛在的缺陷;
充分注意測(cè)試中的群集現(xiàn)象
程序員應(yīng)避免檢查自己的程序
盡量避免測(cè)試的隨意性
5.??軟件測(cè)試對(duì)象
程序開發(fā)過程中的各個(gè)文檔、源程序
6.??軟件測(cè)試過程模型-V模型
是軟件開發(fā)瀑布模型的變種,主要反映測(cè)試活動(dòng)與分析和設(shè)計(jì)的關(guān)系;
局限性:把測(cè)試作為編碼之后的最后一個(gè)活動(dòng),需求分析等前期產(chǎn)生的錯(cuò)誤直到后期的驗(yàn)收測(cè)試才能發(fā)現(xiàn)
7.??軟件測(cè)試過程模型-W模型
在V模型的基礎(chǔ)上,增加千開發(fā)階段的同步測(cè)試,形成W模型;測(cè)試與開發(fā)同步進(jìn)行,有利用盡早的發(fā)現(xiàn)問題
局限性:仍把開發(fā)活動(dòng)看成是從需求開始到編碼結(jié)束的串行活動(dòng),只有上一階段完成后,才可以開始下一階段的活動(dòng),不能支持迭代,自發(fā)性以及變更調(diào)整
8.??軟件測(cè)試過程模型-H模型
在H模型中,軟件測(cè)試過程活動(dòng)完全獨(dú)立,貫穿于整個(gè)產(chǎn)品的周期,與其他流程并發(fā)地進(jìn)行,某個(gè)測(cè)試點(diǎn)準(zhǔn)備就緒時(shí),就可以從測(cè)試準(zhǔn)備階段進(jìn)行到測(cè)試執(zhí)行階段;軟件測(cè)試可以進(jìn)行盡早的進(jìn)行;軟件測(cè)試可以根據(jù)被測(cè)物的不同而分層次進(jìn)行
9.??測(cè)試模型使用
在實(shí)際工作中應(yīng)靈活地運(yùn)用各種模型的優(yōu)點(diǎn)
| ?V模型 | 強(qiáng)調(diào)了在整個(gè)軟件項(xiàng)目開發(fā)中需要經(jīng)歷的若干個(gè)測(cè)試級(jí)別,并與每一個(gè)開發(fā)級(jí)別對(duì)應(yīng);忽略了測(cè)試的對(duì)象不應(yīng)該僅僅包括程序,沒有明確指出對(duì)需求、設(shè)計(jì)的測(cè)試 |
| W模型 | 補(bǔ)充了V模型中忽略的內(nèi)容,強(qiáng)調(diào)了測(cè)試計(jì)劃等工作的先行和對(duì)系統(tǒng)需求和系統(tǒng)設(shè)計(jì)的測(cè)試;與V模型相同,沒有對(duì)軟件測(cè)試的流程進(jìn)行說明 |
| H模型 | 強(qiáng)調(diào)測(cè)試是獨(dú)立的,只要測(cè)試準(zhǔn)備完成,就可以執(zhí)行測(cè)試 |
?
10.? 單元測(cè)試
| 定義 | 又稱模塊測(cè)試,是針對(duì)軟件設(shè)計(jì)的最小單位程序模塊進(jìn)行正確性檢查的測(cè)試工作;可以從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測(cè)試用例,多個(gè)模塊測(cè)試可以平行地獨(dú)立進(jìn)行測(cè)試 |
| 目的 | 發(fā)現(xiàn)模塊內(nèi)部可能存在的各種差錯(cuò) |
| 內(nèi)容 | 模塊接口測(cè)試、局部數(shù)據(jù)結(jié)構(gòu)測(cè)試、路徑測(cè)試、錯(cuò)誤處理測(cè)試、邊界測(cè)試 |
| 步驟 | 利用設(shè)計(jì)文檔設(shè)計(jì)測(cè)試用例;創(chuàng)建被測(cè)模塊的樁模塊或驅(qū)動(dòng)模塊;利用被測(cè)試模塊、驅(qū)動(dòng)模塊和樁模塊來建立測(cè)試環(huán)境,進(jìn)行測(cè)試 |
?
?
11.集成測(cè)試
| 定義 | 又稱組裝測(cè)試或聯(lián)合測(cè)試,在單元測(cè)試基礎(chǔ)上,將所有模塊按概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)進(jìn)行組裝 |
| 目的 | 發(fā)現(xiàn)模塊連接中的接口可能存在的各種差錯(cuò) |
| 內(nèi)容 | 穿越模塊之間的數(shù)據(jù)是否會(huì)丟失;一個(gè)模塊組裝后是否會(huì)對(duì)另一模塊或其他模塊存在影響;各個(gè)子功能組裝在一起是否會(huì)達(dá)到預(yù)期的父功能;全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問題;單個(gè)模塊的錯(cuò)誤累積起來是否會(huì)放在 |
| 組裝方法 | 一次性組裝方式,非增殖式方式也叫整體拼裝,對(duì)模塊分別測(cè)試然后將所有模塊組裝;第二種增殖式組裝方式,可以是自頂向下或自底向上 |
| 完成標(biāo)志 | 成功地執(zhí)行了測(cè)試計(jì)劃中規(guī)定的所有測(cè)試用例;修正了所發(fā)現(xiàn)的錯(cuò)誤;測(cè)試結(jié)果通過專門小組的評(píng)審 |
?
12.確認(rèn)測(cè)試
| 目的 | 驗(yàn)證軟件的功能和性能及其他特性是否與用戶的要求一致 |
| 測(cè)試內(nèi)容 | 有效性測(cè)試 運(yùn)行黑盒測(cè)試方法驗(yàn)證所測(cè)軟件是否滿足需求規(guī)格說明書列出的需求;所有文檔正確且便于使用;軟件可移植性、易用性、兼容性進(jìn)行測(cè)試;軟件配置復(fù)查 保證軟件配置的所有成分都齊全 |
?
13.系統(tǒng)測(cè)試
| 目的 | 驗(yàn)證和確認(rèn)系統(tǒng)是否達(dá)到其原始目標(biāo),而對(duì)集成的硬件和軟件系統(tǒng)進(jìn)行的測(cè)試 |
| 測(cè)試內(nèi)容 | 在真實(shí)或模擬系統(tǒng)運(yùn)行環(huán)境下,檢查完整的程序系統(tǒng)能否和系統(tǒng)(硬件設(shè)備、網(wǎng)絡(luò)、系統(tǒng)軟件)正確配置、連接,滿足用戶需求 |
?
14.驗(yàn)收測(cè)試
測(cè)試內(nèi)容:根據(jù)任務(wù)書或合迥、供需雙方約定的驗(yàn)收依據(jù)文檔進(jìn)行對(duì)整個(gè)系統(tǒng)的測(cè)試與評(píng)審,確認(rèn)是否接收或拒絕系統(tǒng);
15.開發(fā)方測(cè)試
通常也叫‘驗(yàn)收測(cè)試’或‘a(chǎn)測(cè)試’,在軟件開發(fā)環(huán)境中,開發(fā)者檢測(cè)與證實(shí)軟件的實(shí)現(xiàn)是否滿足軟件設(shè)計(jì)說明或軟件需求說明的要求
16.用戶測(cè)試
在用戶的應(yīng)用環(huán)境下,用戶檢測(cè)與核實(shí)軟件實(shí)現(xiàn)是否符合自己預(yù)期的要求。B測(cè)試通常被認(rèn)為是用戶測(cè)試,把軟件有計(jì)劃地免費(fèi)地分發(fā)到目標(biāo)市場(chǎng),讓用戶大量使用、評(píng)價(jià)檢查軟件
17.第三方測(cè)試
由第三方測(cè)試機(jī)構(gòu)來進(jìn)行的測(cè)試,也稱獨(dú)立測(cè)試
18.動(dòng)態(tài)測(cè)試
通過人工或使用工具運(yùn)行程序進(jìn)行檢查,分析程序的執(zhí)行狀態(tài)和程序的外部表現(xiàn)
19.靜態(tài)測(cè)試
?? 不運(yùn)行程序,能過人工對(duì)程序和文檔進(jìn)行分析與檢查,包括走查、符號(hào)執(zhí)行、需求確認(rèn)等
20.白盒測(cè)試
通過對(duì)程序內(nèi)部結(jié)構(gòu)的分析、檢測(cè)來尋找問題,檢查程序的結(jié)構(gòu)及路徑是否正確,檢查程序的內(nèi)部動(dòng)作是否按照設(shè)計(jì)說明的規(guī)定正常進(jìn)行
21.黑盒測(cè)試
又稱功能測(cè)試,通過運(yùn)行程序發(fā)現(xiàn)其缺陷和錯(cuò)誤,在程序界面處進(jìn)行測(cè)試
22.灰盒測(cè)試
介于白盒和黑盒測(cè)試之間,關(guān)注輸出對(duì)于輸入的正確性,也關(guān)注程序的內(nèi)部結(jié)構(gòu),但沒有白盒測(cè)試那樣詳細(xì)、完整
23.測(cè)試分類
| 開發(fā)過程 | 單元、集成、確認(rèn)、系統(tǒng)、驗(yàn)證 |
| 實(shí)施組織 | 開發(fā)方、用戶、第三方 |
| 測(cè)試技術(shù) | 白盒、黑盒、灰盒或靜態(tài)、動(dòng)態(tài) |
?
24.軟件問題分類
軟件錯(cuò)誤、軟件缺陷、軟件故障、軟件失效
軟件錯(cuò)誤:在軟件生存周期內(nèi)的不希望或不可接受的人為錯(cuò)誤
軟件缺陷:存在于軟件(文件、程序、數(shù)據(jù))之中的不希望或不可接受的偏差
軟件故障:軟件運(yùn)行過程中出現(xiàn)的一種不希望或不可接受的內(nèi)部狀態(tài)。
軟件失效:軟件運(yùn)行時(shí)產(chǎn)生的一種不希望或不可接受的外部行為
25.GB/T16260.1 產(chǎn)品質(zhì)量-質(zhì)量模型
質(zhì)量模型:代表軟件質(zhì)量屬性的總體
軟件質(zhì)量特性與度量:質(zhì)量特性和子特性、外部度量、內(nèi)部度量
外部、內(nèi)部質(zhì)量的質(zhì)量模型:質(zhì)量屬性包括:功能性、可靠性、易用性、效率、維護(hù)性和可移植性
26.GB/T18905.1 軟件工程 產(chǎn)品評(píng)價(jià)-概述
概述了軟件產(chǎn)品評(píng)價(jià)的過程,提供了評(píng)價(jià)需求和指南
27.GB/T18905.5 軟件工程 產(chǎn)品評(píng)價(jià)-評(píng)價(jià)者用的過程
???
28.軟件測(cè)試的國(guó)內(nèi)外現(xiàn)狀
國(guó)外:軟件測(cè)試已成為一個(gè)獨(dú)立的產(chǎn)業(yè),在軟件公司占有重要的地位,軟件測(cè)試?yán)碚撗芯颗畈l(fā)展,軟件測(cè)試市場(chǎng)繁榮,開發(fā)了大量的測(cè)試工具;
國(guó)內(nèi):軟件測(cè)試成為一個(gè)新興產(chǎn)業(yè),測(cè)試技術(shù)貧乏,從業(yè)人員少,測(cè)試服務(wù)沒有足夠規(guī)模;著名的軟件公司已成立了專業(yè)的測(cè)試隊(duì)伍,國(guó)家在職業(yè)資格中新增了‘軟件評(píng)測(cè)師’,企業(yè)資集認(rèn)證時(shí)軟件測(cè)試能務(wù)成為重要指標(biāo),軟件產(chǎn)品增加了登記測(cè)試,成立第三方測(cè)試機(jī)構(gòu),軟件測(cè)試成為一個(gè)獨(dú)立課程
29.軟件評(píng)測(cè)發(fā)展趨勢(shì)
??? 測(cè)試工作將進(jìn)一步前移
軟件架構(gòu)師、開發(fā)工程師、QA人員、測(cè)試工程題將進(jìn)行更新的融合
測(cè)試行業(yè)將得到充分的尊重
設(shè)置獨(dú)立的測(cè)試部門將得到越來越多公司的軟件公司的共識(shí)
測(cè)試外包服務(wù)將快速增長(zhǎng)
30.測(cè)試過程的特性與要求
| 軟件測(cè)試過程 | 是一抽象的、遵循GB/T18905《評(píng)價(jià)者用的過程》中定義軟件評(píng)價(jià)過程的模型 | |||||
| 評(píng)價(jià)過程的特性 | 可重復(fù)性:同一評(píng)價(jià)者按同一評(píng)價(jià)規(guī)格說明對(duì)同一產(chǎn)品進(jìn)行重復(fù)地評(píng)價(jià),應(yīng)產(chǎn)生同一種可接受的結(jié)果 | |||||
| 可再現(xiàn)性:同不同評(píng)價(jià)者同一評(píng)價(jià)規(guī)格說明對(duì)同一產(chǎn)品進(jìn)行評(píng)價(jià),應(yīng)產(chǎn)生同一種可接受的結(jié)果 | ||||||
| 公正性:評(píng)價(jià)應(yīng)不偏向任何特殊的結(jié)果 | ||||||
| 客觀性:評(píng)價(jià)結(jié)果應(yīng)是客觀事實(shí) | ||||||
| 評(píng)價(jià)過程的要求 | 一般要求 | 組織和質(zhì)量體系:評(píng)價(jià)者應(yīng)立足于一個(gè)組織;評(píng)價(jià)組織為保證質(zhì)量,可以建立質(zhì)量體系 | ||||
| 請(qǐng)求者職責(zé):對(duì)軟件產(chǎn)品確立必要的合法權(quán)利;為標(biāo)識(shí)和描述產(chǎn)品提供必要的信息;闡述初步評(píng)價(jià)需求,與評(píng)價(jià)者協(xié)商確定實(shí)際需求,需求遵守相關(guān)的法規(guī)和標(biāo)準(zhǔn);闡述對(duì)評(píng)價(jià)提交的信息的保密性需求;必要時(shí)在開發(fā)者和評(píng)價(jià)者之間起中介作用;必要時(shí)向評(píng)價(jià)者提供計(jì)算機(jī)和其他設(shè)備 | ||||||
| 評(píng)價(jià)者職責(zé):檢查請(qǐng)求者對(duì)軟件產(chǎn)品是否有充分合法的權(quán)利;按規(guī)定對(duì)請(qǐng)求者提供保密承諾;提供有資格的人員,以便實(shí)施評(píng)價(jià);提供評(píng)價(jià)工具和技術(shù);按照評(píng)價(jià)需求實(shí)施測(cè)試;保證評(píng)價(jià)過程中的所有記錄 ;保證及時(shí)向請(qǐng)求者提交評(píng)價(jià)報(bào)告 | ||||||
| 活動(dòng)要求 | 確立軟件評(píng)價(jià)需求 | 編制評(píng)價(jià)規(guī)格說明 | 制定評(píng)價(jià)計(jì)劃 | 評(píng)價(jià)執(zhí)行 | 作評(píng)價(jià)結(jié)論 | |
?
31.軟件測(cè)試與配置管理
| 配置管理活動(dòng) | 配置項(xiàng)標(biāo)識(shí):標(biāo)識(shí)測(cè)試樣品、標(biāo)準(zhǔn)、工具、文檔報(bào)告等配置項(xiàng)的名稱和類型、標(biāo)識(shí)各配置項(xiàng)的所有者及儲(chǔ)存位置 |
| 配置項(xiàng)控制(變更控制):規(guī)定測(cè)試基線、基線創(chuàng)立時(shí)間、變更控制委員會(huì)人員組成、職能、確定變更請(qǐng)求的處理程序和終止條件、變更過程中測(cè)試人員變更的職能等 | |
| 配置狀態(tài)報(bào)告:定義報(bào)告形式、內(nèi)容和提交方式、確認(rèn)過程記錄和跟蹤問題報(bào)告、更改請(qǐng)求、更改次序;確定測(cè)試報(bào)告提交的時(shí)間與方式; | |
| 配置審計(jì):確定審計(jì)執(zhí)行人員和執(zhí)行時(shí)機(jī);確定審計(jì)的內(nèi)容與方式;確定發(fā)現(xiàn)問題的處理方法 |
?
32.測(cè)試的組織與人員??
| 測(cè)試的組織 | 組織結(jié)構(gòu)設(shè)計(jì)因素:垂直還是緩、市場(chǎng)還是產(chǎn)品、集中還是分散、分級(jí)還是分散、專業(yè)人員還是工作人員、功能還是項(xiàng)目 | ||
| 獨(dú)立測(cè)試組織:沒有此組織,建立系統(tǒng)不會(huì)理想 | |||
| 集中管理的測(cè)試組織:成立獨(dú)立部門,集中管理 | |||
| 選擇測(cè)試組織結(jié)構(gòu)方案的準(zhǔn)則:提供軟件測(cè)試的快速?zèng)Q策能力;利于合作;能夠獨(dú)立運(yùn)作并具有精干的人員配置;有利于協(xié)調(diào)測(cè)試與質(zhì)量管理的關(guān)系;有利于滿足軟件測(cè)試過程管理要求;有利于為測(cè)試技術(shù)提供專有技校;充分利用現(xiàn)有測(cè)試資源;對(duì)測(cè)試者的職業(yè)道德產(chǎn)生積極影響 | |||
| 測(cè)試的人員 | 測(cè)試組織管理者 | 具有理解與評(píng)價(jià)軟件測(cè)試政策、標(biāo)準(zhǔn)、過程、工具、培訓(xùn)和度量的能力;具有領(lǐng)導(dǎo)能力;具有吸引并留住杰出測(cè)試專業(yè)人才的能力;具有溝通、支持和控制能力;具有測(cè)試時(shí)間、質(zhì)量和成本控制能力 | |
| 測(cè)試人員 | 應(yīng)具有的能力 | 一般的表達(dá)、交流、協(xié)調(diào)、質(zhì)量意識(shí)、軟件工程能力;測(cè)試技能和方法;測(cè)試規(guī)劃能力;測(cè)試執(zhí)行能力;測(cè)試分析、報(bào)告和改進(jìn)能力; | |
| 職業(yè)發(fā)展: | 1~2年測(cè)試技能;3~4年測(cè)試過程;4~5年測(cè)試組織工作;5~6年技術(shù)管理;6~12年測(cè)試管理 | ||
| 人員培訓(xùn) | 按培訓(xùn)內(nèi)容分類:測(cè)試基礎(chǔ)知識(shí)和技能培訓(xùn);測(cè)試設(shè)計(jì)培訓(xùn)、測(cè)試工具培訓(xùn);測(cè)試對(duì)象軟件產(chǎn)品培訓(xùn);測(cè)試過程培訓(xùn);測(cè)試管理培訓(xùn) | ||
?
33.軟件測(cè)試風(fēng)險(xiǎn)分析
軟件測(cè)試風(fēng)險(xiǎn):是軟件測(cè)試過程出現(xiàn)的或潛在的問題,造成的原因主要是測(cè)試計(jì)劃的不充分、測(cè)試方法有誤或測(cè)試過程的偏離,造成測(cè)試的補(bǔ)充以及結(jié)果不準(zhǔn)確
軟件測(cè)試風(fēng)險(xiǎn)主要是對(duì)測(cè)試計(jì)劃執(zhí)行的風(fēng)險(xiǎn)分析與制定要采取應(yīng)急措施;重點(diǎn)在措施
測(cè)試計(jì)劃的風(fēng)險(xiǎn):一般指測(cè)試進(jìn)度滯后或出現(xiàn)非計(jì)劃事件;常見的有交付日期、測(cè)試需求、測(cè)試范圍、測(cè)試資源、人員的能力、測(cè)試預(yù)算、測(cè)試環(huán)境、測(cè)試支持、測(cè)試工具;
34.軟件測(cè)試的成本管理
| 測(cè)試實(shí)施成本 | 測(cè)試準(zhǔn)備成本、測(cè)試執(zhí)行成本、測(cè)試結(jié)束成本 |
| 低測(cè)試實(shí)施成本 | 測(cè)試準(zhǔn)備環(huán)境盡可能使用軟件和測(cè)試環(huán)境配置自動(dòng)化;測(cè)試實(shí)施盡可能采用自動(dòng)化測(cè)試工具(測(cè)試用例自動(dòng)化執(zhí)行),人工測(cè)試最好請(qǐng)初級(jí)技術(shù)人員,不使用測(cè)試工程師;測(cè)試結(jié)束編制測(cè)試報(bào)告測(cè)試結(jié)果與預(yù)期結(jié)果比較采用自動(dòng)化方法(測(cè)試文檔編制模板化) |
| 質(zhì)量成本要素 | 一致性成本(用于測(cè)試實(shí)施成本)、非一致性成本(由出現(xiàn)的問題和故障引起) 質(zhì)量成本=一致性成本+非一致性成本 |
| 缺陷探測(cè)率DD P | =Bugs(tester)/ (Bugs(tester)+ Bugs(customer)) 衡量測(cè)試投資回報(bào)的一個(gè)重要指標(biāo)注:第116頁(yè)計(jì)算題 |
?
35.文檔測(cè)試的范圍
| 用戶文檔 | 用戶手冊(cè)、操作手冊(cè)、維護(hù)修改建議 |
| 開發(fā)文檔 | 需求說明書、概要設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、可行性研究報(bào)告 |
| 管理文檔 | 項(xiàng)目開發(fā)計(jì)劃、測(cè)試計(jì)劃、測(cè)試報(bào)告、開發(fā)進(jìn)度月報(bào)、開發(fā)總結(jié)報(bào)告 |
?
36.用戶文檔的內(nèi)容
包裝上的文字及圖案;宣傳材料、廣告及其他插頁(yè);授權(quán)/注冊(cè)登記表;最終用戶許可協(xié)議;標(biāo)簽和不干膠條;安裝和設(shè)置指導(dǎo);用戶手冊(cè);聯(lián)機(jī)幫助;指南、向?qū)?#xff1b;樣例、示例和模板;錯(cuò)誤提示信息;
37.用戶文檔測(cè)試的要點(diǎn)
明確讀者群:根據(jù)讀者群(如初級(jí)、中級(jí)、高級(jí)用戶)的不同來檢查文檔內(nèi)容,保證用戶能夠看得懂、能理解
術(shù)語:文檔中術(shù)語的描述要適合定位的讀者群,用法一致,標(biāo)準(zhǔn)定義與業(yè)界規(guī)范相吻合
文檔內(nèi)容的正確性:要保證所有信息是真實(shí)正確的
文檔內(nèi)容的完整性:要完全根據(jù)提示逐步操作,檢查是否存在遺漏的地方
文檔與程序的一致性:按照文檔操作后,檢查軟件返回的結(jié)果與文檔描述是否一致
文檔的易用性:檢查是否便于用戶查找相應(yīng)的內(nèi)容
圖表與界面截圖:檢查所有圖表與界面截圖與發(fā)布的程序版本一致
樣例和示例:檢查所有的樣例和示例能夠正確完成;
語言:中文文檔保證無錯(cuò)別字和二義性
印刷與包裝:印刷質(zhì)量,包裝質(zhì)量
38.用戶手冊(cè)的測(cè)試
準(zhǔn)確的按照手冊(cè)的描述使用程序;嘗試每一條建議;檢查每條陳述;查找容易誤導(dǎo)用戶的內(nèi)容;
39.在線幫助的測(cè)試
內(nèi)容的準(zhǔn)確性;幫助功能的可靠性;每一條索引和主題列表要逐條檢查,是否能夠由索引進(jìn)入主題;幫助系統(tǒng)中的每一個(gè)超級(jí)鏈接;主題是否全部能夠在索引中找到;幫助系統(tǒng)的風(fēng)格應(yīng)簡(jiǎn)潔;
40.功能易用性測(cè)試
| 業(yè)務(wù)符合性 | 程序?qū)崿F(xiàn)的業(yè)務(wù)邏輯與實(shí)際業(yè)務(wù)邏輯是否一致; |
| 功能定制性 | 對(duì)軟件功能應(yīng)能夠靈活定制 |
| 業(yè)務(wù)模塊集成度 | 對(duì)于存在緊密關(guān)系的模塊,是否方便功能轉(zhuǎn)換,從一個(gè)功能進(jìn)入到別一個(gè)功能 |
| 數(shù)據(jù)共享能力 | 對(duì)于多處使用的數(shù)據(jù)應(yīng)可以一次輸入多處使用,減少用戶重復(fù)工作 |
| 約束性 | 對(duì)于流程性強(qiáng)的操作,應(yīng)能夠限制操作順序;對(duì)非法信息應(yīng)不允許進(jìn)行系統(tǒng) |
| 交互性 | 對(duì)于用戶的每一次操作,應(yīng)能夠給出提示或回應(yīng),使用戶清晰的看到系統(tǒng)的運(yùn)行狀態(tài) |
| 錯(cuò)誤提示 | 對(duì)于關(guān)鍵操作完成后或刪除數(shù)據(jù)之前給出明確的提示信息; |
?
41.用戶界面測(cè)試:界面整體、界面元素測(cè)試
| 界面整體 | 規(guī)范性測(cè)試:符合現(xiàn)行標(biāo)準(zhǔn)和規(guī)范 |
| 合理性測(cè)試:界面與軟件功能是否相融洽,界面的布局是否協(xié)調(diào) | |
| 一致性測(cè)試:使用的控件、標(biāo)簽風(fēng)格、錯(cuò)誤提示信息、操作方法是否一致 | |
| 界面定制性測(cè)試:界面元素的可定制性;工具欄的可定制性;統(tǒng)計(jì)檢索的可定制性;報(bào)表的可定制性 | |
| 界面元素 | 窗口測(cè)試:大小、顯示、窗口大小改變、多個(gè)窗口同時(shí)打開、支持操作方法等 |
| 菜單測(cè)試:是否符合需求;措辭是否準(zhǔn)確;順序是否合理;圖形布局是否一致 | |
| 圖標(biāo)測(cè)試:是否符合表達(dá)習(xí)慣;不同的目標(biāo)是否采用不同的圖標(biāo);圖標(biāo)尺寸是否合適;建議與對(duì)應(yīng)功能相似;圖標(biāo)上是否有標(biāo)注 | |
| 鼠標(biāo)測(cè)試:交互環(huán)境中是否可以識(shí)別鼠標(biāo)操作;多次點(diǎn)擊是否識(shí)別;無規(guī)則點(diǎn)擊是否會(huì)產(chǎn)生無法預(yù)料的結(jié)果;右鍵彈出菜單是否正確; | |
| 文字測(cè)試:界面文字是否正確,準(zhǔn)確,無二義性; |
?
42.硬件兼容性測(cè)試
| 目的 | 確認(rèn)軟件系統(tǒng)對(duì)于服務(wù)器端、客戶端及網(wǎng)絡(luò)所需的環(huán)境是否正確、合理 |
| 測(cè)試內(nèi)容 | 最低配置是否能滿足系統(tǒng)運(yùn)行的需要;在推薦配置下系統(tǒng)的響應(yīng)是否迅速;考察軟件對(duì)運(yùn)行硬件環(huán)境有無特殊說明;軟件系統(tǒng)能否運(yùn)行在多種硬件配置環(huán)境下 |
| 與整機(jī)兼容性 | 確認(rèn)要求的最低配置和推薦配置的合理性和正確性;主要指標(biāo):機(jī)型的要求;CPU;內(nèi)存;硬盤 |
| 與板卡及配件兼容性 | 獨(dú)立板卡;主板芯片組;驅(qū)動(dòng)程序中的自由軟件 |
| 與打印機(jī)的兼容性 | 對(duì)不同廠商、不同型號(hào)的打印機(jī)進(jìn)行以下測(cè)試:安裝;打印測(cè)試頁(yè);調(diào)整紙張大小;選擇分辨率;調(diào)整打印方向;逐頁(yè)、多份打印;雙面打印、網(wǎng)絡(luò)打印 |
| 其他 | 紅外線鼠標(biāo)、鍵盤、掃描儀、視頻軟件,刻錄軟件的兼容性 |
?
43.軟件兼容性
| 與操作系統(tǒng)的兼容性 | 確認(rèn)軟件系統(tǒng)是否與多種類型的操作系統(tǒng)兼容,包括安裝、關(guān)鍵流程的檢查;操作系統(tǒng)包括Windows平臺(tái)、Linux平臺(tái)、UNIX平臺(tái);Macintosh 圖形專用軟件 |
| 與數(shù)據(jù)庫(kù)的兼容性 | 確認(rèn)軟件系統(tǒng)在不同數(shù)據(jù)庫(kù)的可移植性、互操作性,對(duì)完整性、應(yīng)用系統(tǒng)測(cè)試;性能測(cè)試;數(shù)據(jù)庫(kù)包括SQL;ODBC;JDBC;ADO;OLE DB;JDO |
| 與中間件的兼容性 | 指對(duì)不同版本、不同補(bǔ)丁包的兼容性進(jìn)行測(cè)試,檢查應(yīng)用程序是否能夠正確運(yùn)行,性能的變化; |
| 與瀏覽器的兼容性 | 創(chuàng)建一個(gè)兼容性矩陣,測(cè)試不同廠商、不同版本的瀏覽器對(duì)某些構(gòu)件和設(shè)置的適應(yīng)性;如Applets,JavaScript,ActiveX,VBScript |
| 與其他軟件的兼容性 | 與支持軟件(財(cái)務(wù)軟件導(dǎo)出Excel)的兼容性測(cè)試;與其他同類軟件的兼容性(與其他同類軟件同時(shí)在機(jī)器中使用);與其他非同類軟件的兼容性 |
?
44.數(shù)據(jù)兼容性測(cè)試
| 不同數(shù)據(jù)格式兼容性 | 確認(rèn)軟件之間能否正確地交互和共享信息,不同格式的信息是否兼容;包括系統(tǒng)與其他系統(tǒng)復(fù)制粘貼文字是否正確;舊版本信息在新版本是否能打開;新版本文件在舊系統(tǒng)中是否能打開;同類軟件是否可以進(jìn)行數(shù)據(jù)交換 |
| XML符合性 | XML能夠使不同來源的結(jié)構(gòu)化的數(shù)據(jù)較容易地結(jié)合在一起,提供一個(gè)描述數(shù)據(jù)和交換數(shù)據(jù)的有效手段;測(cè)試步驟:在測(cè)試工具中建立標(biāo)準(zhǔn)模板;用被測(cè)軟件按要求導(dǎo)出數(shù)據(jù);將導(dǎo)出的數(shù)據(jù)與標(biāo)準(zhǔn)模板進(jìn)行對(duì)比匹配測(cè)試;輸出測(cè)試結(jié)果; |
?
45.平臺(tái)化軟件兼容性測(cè)試
| 平臺(tái)化軟件概述 | 用來構(gòu)建與支撐應(yīng)用軟件的獨(dú)立軟件系統(tǒng);基本要素包括支撐環(huán)境(應(yīng)用系統(tǒng)開發(fā)與運(yùn)行的基本條件)和開發(fā)體系(開發(fā)與維護(hù)管理應(yīng)用軟件的工具與方法);分類包括技術(shù)支撐型平臺(tái)和應(yīng)用實(shí)現(xiàn)平臺(tái) |
| 平臺(tái)化軟件優(yōu)點(diǎn) | 應(yīng)用的廣泛性(各行業(yè));良好的開發(fā)性(保證接口的統(tǒng)一);具有靈活性和擴(kuò)展性;快捷的適應(yīng)性 |
| 平臺(tái)化軟件兼容性 | 測(cè)試內(nèi)容:跨硬件平臺(tái)能力(不同規(guī)模硬件平臺(tái)上式);跨操作系統(tǒng)能力;支持多種數(shù)據(jù)庫(kù)系統(tǒng);客戶端兼容性測(cè)試;數(shù)據(jù)兼容性測(cè)試 |
?
46.新舊系統(tǒng)數(shù)據(jù)遷移測(cè)試
| 新舊系統(tǒng)數(shù)據(jù)遷移 | 數(shù)據(jù)遷移:新舊系統(tǒng)進(jìn)行切換時(shí),將歷史數(shù)據(jù)進(jìn)行清理、轉(zhuǎn)換,并裝載到新系統(tǒng)的過程; |
| 數(shù)據(jù)遷移的實(shí)現(xiàn) | 數(shù)據(jù)遷移的準(zhǔn)備、數(shù)據(jù)遷移的實(shí)施、數(shù)據(jù)遷移后的校驗(yàn) |
| 數(shù)據(jù)遷移的測(cè)試 | 對(duì)舊系統(tǒng)到新系統(tǒng)、新系統(tǒng)到舊系統(tǒng)進(jìn)行遷移測(cè)試;生成備份測(cè)試遷移后的數(shù)據(jù)完整可靠性; |
?
47.安全測(cè)試-測(cè)試內(nèi)容
| 用戶認(rèn)證機(jī)制 | 用戶認(rèn)證機(jī)制分為數(shù)字證書(檢驗(yàn)用戶身份的電子文件)、智能卡、雙重認(rèn)證、安全電子交易協(xié)議(SET電子商務(wù)中安全電子交易的國(guó)際標(biāo)準(zhǔn));測(cè)試時(shí)有必要對(duì)用戶認(rèn)證機(jī)制進(jìn)行全面測(cè)試,評(píng)價(jià)認(rèn)證機(jī)制的合理性 |
| 加密機(jī)制 | 對(duì)加密、解密機(jī)制進(jìn)行測(cè)試,驗(yàn)證使用是否合理,強(qiáng)度是否滿足當(dāng)前需求;保護(hù)數(shù)據(jù)安全的重要手段 |
| 安全防護(hù)策略 | 安全防護(hù)策略包括安全日志、入侵檢測(cè)、隔離防護(hù)、漏洞掃描,是系統(tǒng)對(duì)抗攻擊的主要手段 |
| 數(shù)據(jù)備份與恢復(fù)手段 | 是一種數(shù)據(jù)安全策略,需要對(duì)備份和恢復(fù)的效果進(jìn)行測(cè)試,保證實(shí)際數(shù)據(jù)的安全性 |
| 防病毒系統(tǒng) | 基本的防病毒技術(shù):集中式管理、分布式殺毒(以策略為中心、以服務(wù)器為中心);數(shù)據(jù)庫(kù)技術(shù)、LDAP技術(shù)的應(yīng)用;多引擎支持;不同操作系統(tǒng)的防護(hù);遠(yuǎn)程安裝或分發(fā)安裝; 測(cè)試時(shí)對(duì)網(wǎng)絡(luò)防病毒軟件的選購(gòu)、部署方式、策略定義進(jìn)行評(píng)估和測(cè)試 |
?
48.安全測(cè)試-測(cè)試策略
| 安全系統(tǒng) | 安全系統(tǒng)防護(hù)體系 | 由實(shí)體安全、平臺(tái)安全、數(shù)據(jù)安全、通信安全、應(yīng)用安全、運(yùn)行安全、管理安全七層次,因此安全性測(cè)試測(cè)策針對(duì)7層進(jìn)行測(cè)試和評(píng)估 |
| 基本安全防護(hù)系統(tǒng) | 一般采用防火墻、入侵檢測(cè)、漏洞掃描、安全審計(jì)、病毒防治、Web信息防篡改等基礎(chǔ)安全技計(jì),來保障應(yīng)用系統(tǒng)的安全;測(cè)試時(shí)從以上方面分別進(jìn)行測(cè)試 | |
| 證書業(yè)務(wù)服務(wù)系統(tǒng) | 包括證書認(rèn)證及證書審核注冊(cè),需驗(yàn)證功能和性能;測(cè)試采用過程是否符合標(biāo)準(zhǔn);證書類型是否正確;證書格式、申請(qǐng)、審核、下載功能是否正確;并發(fā)性、擴(kuò)展性、備份 | |
| 證書查詢驗(yàn)證服務(wù)系統(tǒng) | 驗(yàn)證功能和性能;測(cè)試查詢、管理、證書信息發(fā)布、下載、更新功能;并發(fā)性、擴(kuò)展性 | |
| 密鑰管理系統(tǒng) | 驗(yàn)證功能和性能;測(cè)試密鑰生成、發(fā)送存儲(chǔ)、查詢等基本功能,安全管理功能、系統(tǒng)管理功能;并發(fā)壓力、最大量密鑰系統(tǒng)的基本功能、密鑰的保存期、備份; | |
| 密碼服務(wù)系統(tǒng) | 驗(yàn)證功能和性能;測(cè)試加解密功能、多密碼算法支持、增加功能;長(zhǎng)度、系統(tǒng)速度、擴(kuò)展能力 | |
| 可信授權(quán)服務(wù)系統(tǒng) | 集中式授權(quán)服務(wù) 驗(yàn)證是否具有用戶管理、審核管理、資源管理、角色管理等主要功能;分布式授權(quán)服務(wù) 驗(yàn)證其是否有資源訪問的簽名授權(quán)、授權(quán)管理等功能;同時(shí)還要對(duì)系統(tǒng)進(jìn)行并發(fā)壓力測(cè)試 | |
| 可信時(shí)間戳服務(wù)系統(tǒng) | 驗(yàn)證功能和性能;測(cè)試時(shí)間來源是否正確、保存功能、簽發(fā)功能;時(shí)間精度、驗(yàn)證時(shí)間戳請(qǐng)求并發(fā)性、可擴(kuò)展性 | |
| 網(wǎng)絡(luò)信任域系統(tǒng) | :由通過安全審查的網(wǎng)絡(luò)可信接入設(shè)備和網(wǎng)絡(luò)信任域管理系統(tǒng)組成;驗(yàn)證功能和性能;接入認(rèn)證交換機(jī)、限制、管理、管理配置功能;認(rèn)證時(shí)間、認(rèn)證接入請(qǐng)求數(shù)并發(fā)性、接口 | |
| 故障恢復(fù)與容災(zāi)備份 | 故障恢復(fù)、數(shù)據(jù)備份、容災(zāi)備份 |
?
?
?
?
49.安全性測(cè)試方法
| 功能驗(yàn)證 | 采用黑盒測(cè)試方法,對(duì)涉及安全的軟件功能進(jìn)行測(cè)試 |
| 漏洞掃描 | 采用主機(jī)或系統(tǒng)漏洞掃描器自動(dòng)檢測(cè)遠(yuǎn)程或本機(jī)安全性弱點(diǎn) |
| 模擬攻擊試驗(yàn) | 采用冒充、重演、消息篡改、服務(wù)拒絕、內(nèi)部攻擊、外部攻擊、陷阱門、特洛伊木馬方法進(jìn)行測(cè)試 |
| 偵聽技術(shù) | 對(duì)數(shù)據(jù)進(jìn)行截取分析的過程,主要用于對(duì)網(wǎng)絡(luò)加密的驗(yàn)證 |
?
50.軟件產(chǎn)品安全測(cè)試
側(cè)重于用戶對(duì)數(shù)據(jù)或業(yè)務(wù)功能的訪問控制,數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)通信的遠(yuǎn)程安全控制
| 用戶管理和訪問控制 | 用戶權(quán)限控制 | 測(cè)試用戶權(quán)限分配合理性、用戶名、用戶密碼的各項(xiàng)限制 |
| 操作系統(tǒng)安全性測(cè)試 | 測(cè)試是否關(guān)閉和卸載了不必要的服務(wù)和程序、是否存在不必要的賬戶、權(quán)限設(shè)置合理性 | |
| 數(shù)據(jù)庫(kù)權(quán)限的測(cè)試 | 測(cè)試用戶的權(quán)限,用于存儲(chǔ)用戶和口令的表信息盡量加密,程序中是否存在默認(rèn)的用戶名和密碼 | |
| 通信加密 | 測(cè)試軟件系統(tǒng)通信息加密情況,采用驗(yàn)證和偵聽技術(shù)完成, | |
| 安全日志測(cè)試 | 測(cè)試日志的完整性、正確性,是否提供安全日志的智能統(tǒng)計(jì)分析能力, | |
?
51.網(wǎng)絡(luò)系統(tǒng)全生命周期測(cè)試策略
| 建設(shè)生命周期 | 生命周期測(cè)試策略 |
| 規(guī)劃設(shè)計(jì)階段 | 利用仿真技術(shù)測(cè)試設(shè)計(jì)方案、網(wǎng)絡(luò)設(shè)備評(píng)估,為網(wǎng)絡(luò)選型提供依據(jù); |
| 實(shí)施階段 | 進(jìn)行網(wǎng)絡(luò)質(zhì)量測(cè)試,如吞吐量、包轉(zhuǎn)發(fā)率、丟包率,保證系統(tǒng)的可用性和穩(wěn)定性,為網(wǎng)絡(luò)應(yīng)用系統(tǒng)開發(fā)提供基準(zhǔn)值 |
| 與應(yīng)用系統(tǒng)集成階段 | 完成應(yīng)用系統(tǒng)的功能和性能測(cè)試,保證運(yùn)行基本穩(wěn)定后,將程序應(yīng)用到網(wǎng)絡(luò)上進(jìn)行網(wǎng)絡(luò)級(jí)測(cè)試,測(cè)試并發(fā)用戶訪問能力、響應(yīng)時(shí)間、應(yīng)用對(duì)網(wǎng)絡(luò)資源占用情況,保證應(yīng)用系統(tǒng)在網(wǎng)絡(luò)平臺(tái)上的性能 |
?
52.網(wǎng)絡(luò)測(cè)試-網(wǎng)絡(luò)仿真技術(shù)
| 定義 | 是一種通過建立網(wǎng)絡(luò)設(shè)備、鏈路和協(xié)議模型,并模擬網(wǎng)絡(luò)流量的傳輸,從而獲取網(wǎng)絡(luò)設(shè)計(jì)或優(yōu)化所需要的網(wǎng)絡(luò)性能數(shù)據(jù)的仿真技術(shù),也稱為網(wǎng)絡(luò)模擬技術(shù)或網(wǎng)絡(luò)預(yù)測(cè)技術(shù) | |
| 原理 | 在計(jì)算機(jī)構(gòu)造虛擬的環(huán)境反映現(xiàn)實(shí)的網(wǎng)絡(luò)環(huán)境,利用數(shù)據(jù)建模和統(tǒng)計(jì)分析的方法模擬網(wǎng)絡(luò)行為,從而獲取特定的網(wǎng)絡(luò)特性參數(shù);采用基于包的建模機(jī)制來模擬實(shí)際物理網(wǎng)絡(luò)中包的流動(dòng),包括處理、組包、拆包過程 | |
| 應(yīng)用 | 在網(wǎng)絡(luò)規(guī)劃中應(yīng)用 | 為網(wǎng)絡(luò)規(guī)劃、設(shè)計(jì)提供可靠的定量依據(jù);可以驗(yàn)證實(shí)際方案或比較多個(gè)方案 |
| 在企業(yè)網(wǎng)絡(luò)管理和優(yōu)化中應(yīng)用 | 作為網(wǎng)絡(luò)輔助管理工具、可以對(duì)企業(yè)業(yè)務(wù)網(wǎng)絡(luò)通信情況進(jìn)行統(tǒng)計(jì)找出瓶頸、可以查出業(yè)務(wù)配置的錯(cuò)誤、可以模擬故障了解系統(tǒng)的處理情況、對(duì)新增業(yè)務(wù)進(jìn)行性能測(cè)試、模擬訪問量預(yù)測(cè)網(wǎng)絡(luò)的承受負(fù)載 | |
| 在網(wǎng)絡(luò)研發(fā)中應(yīng)用 | 構(gòu)建接近于真實(shí)網(wǎng)絡(luò)環(huán)境和業(yè)務(wù),可以有效的模擬新協(xié)議的各種行為細(xì)節(jié),作出公正的評(píng)判新協(xié)議的性能;對(duì)于大型通信設(shè)備制造商,可以作為其網(wǎng)絡(luò)設(shè)備、協(xié)議以及應(yīng)用開發(fā)的工具 | |
| 網(wǎng)絡(luò)預(yù)測(cè) | 設(shè)置服務(wù)水平、完成日常網(wǎng)絡(luò)容量規(guī)劃、離線測(cè)試網(wǎng)絡(luò)、網(wǎng)絡(luò)失效和容量極限分析 | |
| 軟件 | OPNET (OPNET公司)、NS | |
?
53.網(wǎng)絡(luò)性能測(cè)試
| 指標(biāo) | 吞吐量:指被測(cè)試設(shè)備或被測(cè)試系統(tǒng)在不丟包的情況下,能夠達(dá)到的最大包轉(zhuǎn)發(fā)速率 |
| 丟包率:高負(fù)載狀態(tài)下由于缺少資源而未轉(zhuǎn)發(fā)的包的比例 | |
| 延時(shí):系統(tǒng)在有負(fù)載的情況下轉(zhuǎn)發(fā)數(shù)據(jù)包所需的時(shí)間 | |
| 背靠背性能:通過以最大幀速率發(fā)送突發(fā)傳輸流,并測(cè)量無包丟失時(shí)的最大突發(fā)長(zhǎng)度來測(cè)試緩沖區(qū)容量 | |
| TCP/IP 4~7層負(fù)載勻衡:建立連接數(shù)、會(huì)話連接數(shù)、連接數(shù)據(jù) | |
| IP語音網(wǎng)絡(luò)測(cè)試:測(cè)試語音、數(shù)據(jù)流包的丟失、單向延時(shí),延時(shí)抖動(dòng) | |
| 寬帶XDSL網(wǎng)絡(luò)性測(cè)試:幀測(cè)試、端到端IP測(cè)試、信元測(cè)試、PPP容量測(cè)試、ATM完整性測(cè)試 | |
| VPN網(wǎng)絡(luò)測(cè)試:最大隧道創(chuàng)建數(shù)量、包丟失、延時(shí)、響應(yīng)時(shí)間 | |
| 路由測(cè)試:協(xié)議、路由壓力性能 | |
| 類型 | 可靠性測(cè)試、可接受性測(cè)試、瓶頸測(cè)試、容量規(guī)劃測(cè)試、升級(jí)測(cè)試、功能/特性測(cè)試、吞吐量測(cè)試、響應(yīng)時(shí)間測(cè)試、衰減測(cè)試、配置規(guī)模測(cè)試、網(wǎng)絡(luò)設(shè)備評(píng)估測(cè)試 |
| 對(duì)象 | 網(wǎng)絡(luò)平臺(tái):網(wǎng)絡(luò)操作系統(tǒng)、文件服務(wù)器、工作站 |
| 應(yīng)用層:應(yīng)用程序的客戶端、桌面操作系統(tǒng)和數(shù)據(jù)軟件 | |
| 子系統(tǒng):路由器、集線器、交換機(jī)、網(wǎng)橋 | |
| 全局網(wǎng)絡(luò)路徑 | |
| 方法 | 網(wǎng)絡(luò)設(shè)備:(1)放入仿真網(wǎng)絡(luò)環(huán)境中通過分析行為進(jìn)行測(cè)試(2)使用的網(wǎng)絡(luò)測(cè)試專用設(shè)備 |
| 網(wǎng)絡(luò)布線:使用工具,如網(wǎng)絡(luò)電纜測(cè)試儀、令牌環(huán)網(wǎng)測(cè)試儀、以太網(wǎng)測(cè)試儀、光纜測(cè)試儀、企業(yè)級(jí)網(wǎng)絡(luò)測(cè)試儀 | |
| 網(wǎng)絡(luò)協(xié)議:專用工具 | |
| 網(wǎng)絡(luò)性能:七層網(wǎng)絡(luò)結(jié)構(gòu)分析模型法、網(wǎng)絡(luò)連接結(jié)構(gòu)的分析法,客戶端、網(wǎng)絡(luò)鏈路、服務(wù)器端三個(gè)模塊 | |
| 標(biāo)準(zhǔn) | RFC;YD/T |
| 工具 | 物理線纜測(cè)試儀、網(wǎng)絡(luò)運(yùn)行模擬工具、協(xié)議分析儀、專用網(wǎng)絡(luò)測(cè)試設(shè)備 |
?
54.網(wǎng)絡(luò)測(cè)試-網(wǎng)絡(luò)應(yīng)用測(cè)試
| 網(wǎng)絡(luò)應(yīng)用監(jiān)控 | 概述 | 監(jiān)控功能主要能過網(wǎng)絡(luò)探測(cè)器設(shè)備安裝在某一網(wǎng)段上采集數(shù)據(jù) |
| 目標(biāo) | 及時(shí)準(zhǔn)確了解網(wǎng)絡(luò)狀況,定位問題的根源 | |
| 工具 | Network Vantage:全面應(yīng)用監(jiān)控和報(bào)告產(chǎn)品,幫助發(fā)現(xiàn)和優(yōu)化網(wǎng)絡(luò)上的應(yīng)用性能; Sniffer:捕捉流量、監(jiān)控網(wǎng)絡(luò)活動(dòng)、分析錯(cuò)誤信息,定位問題 | |
| 網(wǎng)絡(luò)故障分析 | 步驟 | 清楚故障現(xiàn)象;收集需要的用于幫助隔離可能故障原因的信息;根據(jù)收集到的信息考慮故障原因;根據(jù)分析的故障原因,建立一個(gè)診斷計(jì)劃;執(zhí)行診斷計(jì)劃;改變參數(shù)確認(rèn)結(jié)果 |
| 軟件問題診斷 | 建立在網(wǎng)絡(luò)應(yīng)用分析的基礎(chǔ)上,分析關(guān)鍵因素:會(huì)話信息(往返行程和流量信息)、包信息、響應(yīng)時(shí)間信息、負(fù)載信息、高峰信息、線程信息、響應(yīng)時(shí)間預(yù)測(cè)、帶寬模擬? 注意421頁(yè)故障定位舉例 | |
| 硬件問題診斷 | 物理層:連接方式、連接電纜、設(shè)備配置是否正確? 使用show interface命令; 數(shù)據(jù)鏈路層:路由器的配置、連接端口、接口與通信設(shè)備封裝;通過查看路由器配置檢查封裝,show命令 網(wǎng)絡(luò)層:沿源到目標(biāo)的路徑,查看路由表,同時(shí)檢查路由器接口的IP地址 |
?
55.Web應(yīng)用的測(cè)試策略
| 按系統(tǒng)架構(gòu)分類 | 客戶端的測(cè)試、服務(wù)器端的測(cè)試、網(wǎng)絡(luò)上的測(cè)試 |
| 按職能分類 | 應(yīng)用功能的測(cè)試、Web應(yīng)用服務(wù)的測(cè)試、安全系統(tǒng)的測(cè)試、數(shù)據(jù)庫(kù)服務(wù)的測(cè)試 |
| 按軟件質(zhì)量特性分類 | 功能測(cè)試、性能測(cè)試、兼容性測(cè)試、安全性測(cè)試、易用性測(cè)試 |
| 按開發(fā)階段分類 | 設(shè)計(jì)測(cè)試、開發(fā)測(cè)試、應(yīng)用測(cè)試 |
?
56.Web應(yīng)用設(shè)計(jì)測(cè)試
設(shè)計(jì)測(cè)試的主要內(nèi)容是對(duì)設(shè)計(jì)從全面性、適合性、標(biāo)準(zhǔn)性等方面進(jìn)行檢查
| 總體架構(gòu)設(shè)計(jì)測(cè)試 | 采用瘦客戶端或胖客戶端是否合需求:瘦客戶端 客戶端只作少量處理、業(yè)務(wù)邏輯規(guī)則在服務(wù)器端執(zhí)行;胖客戶端 客戶端即顯示用戶頁(yè)面,又執(zhí)行部分業(yè)務(wù)邏輯;驗(yàn)證設(shè)計(jì)中采用的模式是否適合需求 |
| 確定Web架構(gòu)的組成部分是否滿足需求:驗(yàn)證各種服務(wù)器、中間件形成的架構(gòu)是否滿足需求,各種搭配是否兼容 | |
| 服務(wù)器的配置及分布是否滿足需求:驗(yàn)證服務(wù)器的配置和分布是否滿足用戶的功能、性能、成本等需求 | |
| 客戶端設(shè)計(jì)測(cè)試 | 功能設(shè)置的測(cè)試:驗(yàn)證Web應(yīng)用中各項(xiàng)功能設(shè)置是否滿足需求,應(yīng)主要實(shí)現(xiàn)信息服務(wù)、辦公自動(dòng)化、Internet支持 |
| 信息組織結(jié)構(gòu)設(shè)計(jì)的測(cè)試:信息組織結(jié)構(gòu)設(shè)計(jì)模式包括線性結(jié)構(gòu)、分層結(jié)構(gòu)、非線性結(jié)構(gòu);驗(yàn)證設(shè)計(jì)模式是否符合用戶需求,能否使用戶直觀、快捷的瀏覽到所需信息 | |
| 頁(yè)面設(shè)計(jì)的測(cè)試:頁(yè)面顯示一致性、友好性、直觀的導(dǎo)航系統(tǒng)、不同類型瀏覽器、布局 | |
| 服務(wù)器端設(shè)計(jì)測(cè)試 | 容量規(guī)劃測(cè)試:將所要求的延遲和帶寬與該體系結(jié)構(gòu)中每一環(huán)節(jié)的額定容量作一下比較,每個(gè)組成部分都必須滿足需求;估算點(diǎn)擊率是否滿足需求;估算延遲和流量是否滿足需求;估算Web應(yīng)用系統(tǒng)所需服務(wù)器的資源消耗 |
| 安全系統(tǒng)設(shè)計(jì)測(cè)試:對(duì)常識(shí)性安全策略、加密技術(shù)、防火墻、防毒體系進(jìn)行測(cè)試 | |
| 數(shù)據(jù)庫(kù)設(shè)計(jì)測(cè)試 |
?
57.Web應(yīng)用開發(fā)測(cè)試
對(duì)Web應(yīng)用的源代碼和組件進(jìn)行測(cè)試,保證代碼的正確性、組件的功能正常
| 代碼測(cè)試 | 測(cè)試源代碼規(guī)則、鏈接測(cè)試、框架測(cè)試(窗口大小改變信息改變情況)、表格測(cè)試(大小調(diào)整情況)、圖形測(cè)試 |
| 組件測(cè)試 | 進(jìn)行表單測(cè)試、Cookies測(cè)試、腳本測(cè)試、CGI(服務(wù)器端技術(shù))、ASP測(cè)試(代碼、不同瀏覽器)、ActiveX控件測(cè)試(客戶端技術(shù)) |
| 使用Junit進(jìn)行單元測(cè)試 | |
?
58.Web應(yīng)用運(yùn)行測(cè)試
| 與其他系統(tǒng)比較 | 相同:測(cè)試內(nèi)容、測(cè)試方法、測(cè)試手段基本相同; 不同:測(cè)試重點(diǎn)不同;采用的工具不同 |
| 功能測(cè)試 | 可以采有黑盒測(cè)試方法進(jìn)行功能測(cè)試,注意客戶端的選擇測(cè)試、客戶端瀏覽器的配置、客戶分辨率顯示、內(nèi)容測(cè)試 自動(dòng)化技術(shù):Web應(yīng)用鏈接質(zhì)量保證技術(shù)、Web應(yīng)用功能測(cè)試技術(shù) |
| 易用性測(cè)試 | 界面測(cè)試:頁(yè)面中各元素布局的協(xié)調(diào)性、不同頁(yè)面風(fēng)格的統(tǒng)一性、用戶在界面中操作的便利性、界面動(dòng)態(tài)操作測(cè)試 |
| 輔助功能測(cè)試:用戶是否能夠較快的找到相應(yīng)的使用說明、導(dǎo)航、站點(diǎn)地圖、幫助信息功能 | |
| 圖形測(cè)試:主要查看所有圖形信息是否有明確的用途、大小、質(zhì)量、顏色、風(fēng)格 | |
| 負(fù)載壓力測(cè)試 | 負(fù)載測(cè)試測(cè)量Web系統(tǒng)在某一負(fù)載級(jí)別上的性能;壓力測(cè)試測(cè)試系統(tǒng)的限制和故障恢復(fù)能力 測(cè)試步驟:確定交易執(zhí)行響應(yīng)時(shí)間;做計(jì)最大并發(fā)用戶數(shù);模擬用戶請(qǐng)求,逐步加壓;負(fù)載沒有達(dá)到應(yīng)優(yōu)化 |
| 客戶端配置與兼容性測(cè)試 | 瀏覽器的配置測(cè)試:緩存設(shè)置、cookies設(shè)置、顯示設(shè)置、安全設(shè)置各項(xiàng)不同的設(shè)置對(duì)Web功能的影響程序,影響的配置在功能說明書中是否進(jìn)行描述 |
| 平臺(tái)兼容性測(cè)試:不同操作系統(tǒng)兼容性測(cè)試 | |
| 瀏覽器兼容性測(cè)試:與平臺(tái)兼容性測(cè)試結(jié)合,測(cè)試不同操作系統(tǒng)下不同瀏覽器類型的應(yīng)用 | |
| 安全性測(cè)試 | 安全體系測(cè)試:測(cè)試內(nèi)容包括部署與基礎(chǔ)結(jié)構(gòu)、輸入驗(yàn)證、身份驗(yàn)證、授權(quán)、配置管理、敏感數(shù)據(jù)、會(huì)話管理、參數(shù)操作、異常管理、審核和日志記錄 |
| 應(yīng)用級(jí)安全測(cè)試:測(cè)試注冊(cè)與登錄、在線超時(shí)、操作留痕、備份與恢復(fù) | |
| 傳輸級(jí)安全測(cè)試:測(cè)試經(jīng)客戶端傳送到服務(wù)器端可能存在的安全漏洞以及服務(wù)器防范非法訪問的能力 |
?
59.負(fù)載壓力測(cè)試基本概念
| 負(fù)載壓力 | 指系統(tǒng)在某種指定軟件、硬件以及網(wǎng)絡(luò)環(huán)境下承受的流量,如并發(fā)的用戶數(shù)、持續(xù)運(yùn)行時(shí)間、數(shù)據(jù)量等。其中并發(fā)的用戶數(shù)是負(fù)載壓力的重要體現(xiàn)。 |
| 負(fù)載壓力測(cè)試 | 指在一定測(cè)試約束條件下,測(cè)試系統(tǒng)所能承受的并發(fā)用戶量、運(yùn)行時(shí)間、數(shù)據(jù)量,以確定系統(tǒng)所能承受的最大負(fù)載壓力,負(fù)載壓力測(cè)試是性能測(cè)試的重要組成部分 |
| 性能測(cè)試 | 用來保證產(chǎn)品發(fā)布后系統(tǒng)的性能能夠滿足用戶需求,包括兩種測(cè)試策略:性能評(píng)測(cè)、性能調(diào)優(yōu) |
| 負(fù)載測(cè)試 | 通過逐步增加系統(tǒng)負(fù)載,測(cè)試系統(tǒng)性能的變化,并最終確定在滿足性能指標(biāo)的情況下,系統(tǒng)所能承受的最大負(fù)載量的測(cè)試 |
| 壓力測(cè)試 | 通過逐步增加系統(tǒng)負(fù)載,測(cè)試系統(tǒng)性能的變化,并最終確定在什么負(fù)載條件下,系統(tǒng)性能處于失效狀態(tài),并以此來獲得系統(tǒng)能提供的最大服務(wù)級(jí)別的測(cè)試壓力測(cè)試是為了發(fā)現(xiàn)在什么情況下系統(tǒng)的性能會(huì)變得不可接受 |
| 并發(fā)性能測(cè)試 | 并發(fā)性能測(cè)試的過程,是一個(gè)負(fù)載測(cè)試和壓力測(cè)試的過程; 逐漸增加并發(fā)用戶數(shù)負(fù)載,直到系統(tǒng)的瓶頸或者不能接收的性能點(diǎn),能過綜合分析交易執(zhí)行指標(biāo),資源監(jiān)控指標(biāo)來確定系統(tǒng)并發(fā)性能的過程; 并發(fā)性能測(cè)試是負(fù)載壓力測(cè)試中的重要內(nèi)容; 并發(fā)性能測(cè)試包括:應(yīng)用在客戶端性能的測(cè)試、應(yīng)用在網(wǎng)絡(luò)上性能的測(cè)試、應(yīng)用在服務(wù)器端上性能的測(cè)試三個(gè)方面 |
| 疲勞強(qiáng)度測(cè)試 | 采用系統(tǒng)穩(wěn)定運(yùn)行情況下所能支持的最大并發(fā)用戶數(shù),或者日常運(yùn)行用戶數(shù),持續(xù)執(zhí)行一段時(shí)間業(yè)務(wù),保證達(dá)到系統(tǒng)疲勞強(qiáng)度需求的業(yè)務(wù)量,通過綜合分析交易執(zhí)行指標(biāo)和資源監(jiān)控指標(biāo),來確定系統(tǒng)處理最大工作量強(qiáng)度性能的過程 |
| 大數(shù)據(jù)量測(cè)試 | l?? 大數(shù)據(jù)量測(cè)試包括獨(dú)立的數(shù)據(jù)量測(cè)試和綜合數(shù)據(jù)量測(cè)試兩類 l?? 獨(dú)立的數(shù)據(jù)量測(cè)試:指針對(duì)某些系統(tǒng)存儲(chǔ)、傳輸、統(tǒng)計(jì)、查詢等業(yè)務(wù)進(jìn)行的大數(shù)據(jù)量測(cè)試 l?? 綜合數(shù)據(jù)量:指和壓力性能測(cè)試、負(fù)載性能測(cè)試、疲勞性能測(cè)試相結(jié)合的綜合測(cè)試 |
?
60.負(fù)載壓力測(cè)試解決方案
一.? 并發(fā)性能測(cè)試
并發(fā)壓力過程與測(cè)試定位
(1)????????并發(fā)負(fù)載壓力的實(shí)施:客戶端――應(yīng)用客戶端的測(cè)試
(2)????????負(fù)載壓力的傳輸介質(zhì):網(wǎng)絡(luò)――應(yīng)用網(wǎng)絡(luò)上的測(cè)試
(3)????????壓力到達(dá):各類服務(wù)器――應(yīng)用服務(wù)器端的測(cè)試
二.并發(fā)性能測(cè)試-應(yīng)用服務(wù)端測(cè)試
1. 目的:模擬大量并發(fā)用戶執(zhí)行不同業(yè)務(wù)操作,達(dá)到實(shí)施負(fù)載壓力的目的
1.??測(cè)試環(huán)境
(1)????????測(cè)試工具主控臺(tái)(1個(gè)):負(fù)責(zé)管理各個(gè)測(cè)試工具代理,收集各類測(cè)試數(shù)據(jù)
(2)????????負(fù)載生成器(多個(gè)):即代理,模擬虛擬用戶
(3)????????服務(wù)器
2.??測(cè)試過程
(1)????????創(chuàng)建方案:方案信息包括??? 虛擬用戶組(Vuser)
????????????????????????????????? Vuser將運(yùn)行的測(cè)試腳本
????????????????????????????????? 用于運(yùn)行腳本的負(fù)載生成器
(2)????????定義測(cè)試目標(biāo):? 虛擬用戶數(shù):測(cè)試應(yīng)用程序可以同時(shí)運(yùn)行多秒個(gè)Vuser
每秒點(diǎn)擊次數(shù)
每分鐘頁(yè)面數(shù)??? 測(cè)試服務(wù)器穩(wěn)定性
每秒事務(wù)數(shù)
事務(wù)響應(yīng)時(shí)間:測(cè)試在期望的事務(wù)響應(yīng)時(shí)間內(nèi)可以同時(shí)運(yùn)行多少個(gè)Vuser,在腳本中指定要測(cè)試的事務(wù)名稱以及Vuser的范圍
(3)????????制定方案執(zhí)行計(jì)劃:制定方案執(zhí)行的時(shí)間安排,如開始時(shí)間、執(zhí)行持續(xù)時(shí)間、啟動(dòng)/停止多少個(gè)Vuser數(shù)量等。注:如果腳本中包含有集合點(diǎn),方案將不會(huì)按計(jì)劃運(yùn)行;集合點(diǎn):在方案中指定Vuser,各Vuser執(zhí)行的腳本,運(yùn)行的時(shí)間,啟動(dòng)方案后,并不能保證所有的Vuser能夠達(dá)到同步操作的效果,設(shè)置集合點(diǎn),Vuser執(zhí)行到集合點(diǎn)時(shí),會(huì)被Controller滯留在集合點(diǎn),等待所有Vuser全部到達(dá)后,執(zhí)行某一項(xiàng)指定操作,從而達(dá)到同步并發(fā)的效果
3.??影響服務(wù)器的負(fù)載級(jí)別
(1)????????選擇在方案運(yùn)行過程中活動(dòng)的集合點(diǎn)
(2)????????選擇加入每個(gè)集合的Vuser數(shù)
4.??控制服務(wù)器上的負(fù)載峰值
(1)????????創(chuàng)建Vuser腳本,插入必要的集合點(diǎn)(采用錄制功能將操作過程錄制形成腳本,插入某一項(xiàng)操作的集合點(diǎn))
(2)????????創(chuàng)建方案(建立Vuser組,指定每組的user及數(shù)量、運(yùn)行的腳本等信息)
(3)????????向方案中添加Vuser組,搜索設(shè)置的集合點(diǎn),并將集合點(diǎn)名稱添加到‘集合信息’列表中
(4)????????設(shè)置虛擬用戶負(fù)載的級(jí)別
(5)????????通過選擇加入到方案中的集合點(diǎn)及加入每個(gè)集合的Vuser數(shù),可以確定負(fù)載的精確級(jí)別
(6)????????設(shè)置集合的屬性
(7)????????對(duì)于每一個(gè)集合,都可以設(shè)置集合策略
(8)????????運(yùn)行方案(在此之前,可以同時(shí)配置負(fù)載生成器和Vuser行為)
5.??客戶端交易處理性能指標(biāo)
(1)????????并發(fā)用戶數(shù)指標(biāo)
(2)????????交易處理指標(biāo):平均事務(wù)響應(yīng)時(shí)間、每秒事務(wù)數(shù)、每秒事務(wù)總數(shù)、事條摘要、事務(wù)性能摘要、事務(wù)響應(yīng)時(shí)間(負(fù)載下、百分比、分布)
(3)????????Web請(qǐng)求指標(biāo):每秒點(diǎn)擊次數(shù)、吞吐量、吞吐量摘要、HTTP狀態(tài)代碼摘要、每秒HTTP響應(yīng)數(shù)、每秒下載頁(yè)面數(shù)、每秒重試次數(shù),重試次數(shù)摘要、連接數(shù)、每秒連接數(shù)、每秒SSL連接數(shù)
(4)????????Web頁(yè)面組件指標(biāo):激活網(wǎng)頁(yè)細(xì)分、頁(yè)面組件細(xì)分(隨時(shí)間變化)、頁(yè)面下載時(shí)間細(xì)分(隨時(shí)間變化)、第一次緩沖時(shí)間細(xì)分(隨時(shí)間變化)、已下載組件大小
二.并發(fā)性能測(cè)試-應(yīng)用網(wǎng)絡(luò)上性能測(cè)試
??? 應(yīng)用網(wǎng)絡(luò)上性能測(cè)試包括:應(yīng)用網(wǎng)絡(luò)故障分析和網(wǎng)絡(luò)應(yīng)用性能監(jiān)控
1. 應(yīng)用網(wǎng)絡(luò)故障分析
(1)????????測(cè)試目標(biāo):顯示網(wǎng)絡(luò)帶寬,延遲、負(fù)載和TCP端口的變化是如何影響用戶的響應(yīng)時(shí)間的
(2)????????作用
l? 優(yōu)化性能
l? 預(yù)測(cè)系統(tǒng)響應(yīng)時(shí)間
l? 確定網(wǎng)絡(luò)帶寬需求
l? 定位應(yīng)用程序和網(wǎng)絡(luò)故障
(3)????????網(wǎng)絡(luò)故障分析工具
l? 作用:????? 使應(yīng)用跨越多個(gè)網(wǎng)段的活動(dòng)過程變得清晰
????????????? ??提供有關(guān)應(yīng)用效率的統(tǒng)計(jì)數(shù)據(jù)
??????????????? 模擬用戶在不同網(wǎng)絡(luò)配置環(huán)境下的響應(yīng)時(shí)間,決定應(yīng)用投產(chǎn)的網(wǎng)絡(luò)環(huán)境
l? 工作原理:? 多個(gè)捕捉點(diǎn):Agent,被動(dòng)監(jiān)聽數(shù)據(jù)包來實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)采集
??????????????? 一個(gè)分析:Agent Manager進(jìn)行對(duì)所跟蹤的數(shù)據(jù)的分析
l? 獲取信息:? 監(jiān)控不同探針之間的連接狀態(tài),傳輸?shù)淖止?jié)數(shù)以及通信往返行程次數(shù)
會(huì)話性能概要,監(jiān)控哪段網(wǎng)絡(luò)延遲大,帶寬對(duì)網(wǎng)絡(luò)雙向性能的影響,節(jié)點(diǎn)用于處理和用于傳輸?shù)臅r(shí)間
服務(wù)器與客戶端之間幀傳輸情況統(tǒng)計(jì),監(jiān)控到與應(yīng)用相關(guān)的幀的分布,對(duì)每一個(gè)幀可以與相關(guān)的數(shù)據(jù)包關(guān)聯(lián),并且可以對(duì)幀解碼
服務(wù)器與客戶端之間傳送包信息統(tǒng)計(jì),監(jiān)控包的詳細(xì)信息,并且可以將包與幀及線程相關(guān)聯(lián)
線程信息統(tǒng)計(jì),監(jiān)控線程的內(nèi)容和生存周期,以及線程與數(shù)據(jù)包的關(guān)系
負(fù)載的高峰時(shí)刻,負(fù)載的平均值,高峰時(shí)刻可以與相關(guān)的線程、數(shù)據(jù)包、幀相關(guān)聯(lián)
故障錯(cuò)誤總結(jié):應(yīng)用級(jí)錯(cuò)誤、TCP錯(cuò)誤、IP錯(cuò)誤、其他錯(cuò)誤
???
2. 網(wǎng)絡(luò)應(yīng)用性能監(jiān)控指標(biāo)
(1)????????測(cè)試目標(biāo):在系統(tǒng)試運(yùn)行之后,需要及時(shí)準(zhǔn)確地了解網(wǎng)絡(luò)上正在發(fā)生什么事;什么應(yīng)用在運(yùn)行,如何運(yùn)行;多少PC正在訪問LAN或WAN;哪些應(yīng)用程序?qū)е孪到y(tǒng)瓶頸或資源競(jìng)爭(zhēng)
(2)????????作用
l? 分析關(guān)鍵應(yīng)用程序的性能
l? 定位問題的根源是在客戶端、服務(wù)器、應(yīng)用程序還是網(wǎng)絡(luò)
l? 哪些應(yīng)用程序占用大量帶寬
l? 哪些用戶產(chǎn)生了大量的網(wǎng)絡(luò)流量
(3)????????網(wǎng)絡(luò)應(yīng)用性能監(jiān)控工具
l? 組成:????? 探針:采集與存儲(chǔ)數(shù)據(jù),并根據(jù)應(yīng)用對(duì)數(shù)據(jù)進(jìn)行分類,設(shè)置的原則是根據(jù)網(wǎng)絡(luò)組成和監(jiān)控要求
探針管理器:管理配置探針,設(shè)定數(shù)據(jù)采集與上傳時(shí)間,合并收集的數(shù)據(jù);
時(shí)間服務(wù)器:對(duì)探針進(jìn)行時(shí)針同步
交互界面:數(shù)據(jù)展示平臺(tái)
l? 監(jiān)控信息:? 應(yīng)用監(jiān)視:
關(guān)鍵特性:客戶和服務(wù)器通信量,應(yīng)用響應(yīng)時(shí)間和資源應(yīng)用的業(yè)務(wù)水平等
按會(huì)話統(tǒng)計(jì)傳輸負(fù)載:測(cè)試應(yīng)用和會(huì)話級(jí)響應(yīng)時(shí)間,以及自動(dòng)為通過網(wǎng)絡(luò)中每一個(gè)聯(lián)網(wǎng)設(shè)備的每一個(gè)應(yīng)用程序生成負(fù)載圖
應(yīng)用、會(huì)話級(jí)、事務(wù)響應(yīng)時(shí)間
延遲在何處被引入網(wǎng)絡(luò),瓶頸在哪里
趨勢(shì)分析
?
?
三.并發(fā)性能測(cè)試-應(yīng)用服務(wù)器端的測(cè)試
(一)概述
1.對(duì)應(yīng)用服務(wù)器端的測(cè)試主要包括三方面:操作系統(tǒng)、數(shù)據(jù)庫(kù)和中間件的監(jiān)控
2.監(jiān)控手段:可以采用工具自動(dòng)監(jiān)控,也可以使用操作系統(tǒng)、數(shù)據(jù)庫(kù)、中間件本身提供的監(jiān)控工具
3.利用工具監(jiān)控的優(yōu)點(diǎn)
(1)????????減少故障診斷和分析時(shí)間?
(2)????????減少手工定位的時(shí)間和避免誤診
(3)????????在問題發(fā)生前定位故障
(4)????????驗(yàn)證可達(dá)到的性能水平和服務(wù)水平協(xié)議
(5)????????持續(xù)的服務(wù)器、數(shù)據(jù)庫(kù)和應(yīng)用性能和可用性監(jiān)控
(6)????????故障診斷和恢復(fù):自動(dòng)報(bào)警、故障恢復(fù)程序、故障恢復(fù)信息
(7)????????服務(wù)器、應(yīng)用可用性和性能報(bào)告
(二)操作系統(tǒng)監(jiān)控
操作系統(tǒng)的監(jiān)控涉及后臺(tái)重要服務(wù)器的操作系統(tǒng)監(jiān)控,對(duì)于主流的操作系統(tǒng),主要關(guān)注:內(nèi)存、CPU、硬盤
監(jiān)控建議:
1.磁盤管理
(1)????????采集物理讀/寫和邏輯讀/寫信息
(2)????????收集操作系統(tǒng)和其他平臺(tái)上的磁盤忙信息
(3)????????監(jiān)控I/O
2.文件系統(tǒng)
(1)????????顯示每個(gè)文件系統(tǒng)的使用率,檢測(cè)文件系統(tǒng)空閑空間的大小
(2)????????剪裁文件系統(tǒng)-刪除指定的CORE(核心)文件和其他文件
(3)????????顯示文件系統(tǒng)的mount on device、type、size
(4)????????可以監(jiān)控特殊的文件系統(tǒng),如NFS(網(wǎng)絡(luò)文件系統(tǒng)),CD-ROM
(5)????????檢測(cè)特定文件的存在及超出特定期限的文件存在
3.內(nèi)存
(1)????????顯示可用的內(nèi)存數(shù)量
(2)????????決定當(dāng)前的內(nèi)存短缺量
(3)????????幫助分析內(nèi)存問題
(4)????????顯示內(nèi)存的實(shí)存、所有虛存和kernel(核心內(nèi)存)的狀態(tài)等信息
4.CPU
(1)????????記錄CPU的使用率
(2)????????監(jiān)測(cè)CPU參數(shù),包括CPU idle(空閑),CPU waits,CPU system usage,CPUuser usage,run queue length(運(yùn)行隊(duì)列長(zhǎng)度)
(3)????????顯示CPU context(上下關(guān)系) switches 的總數(shù)
(4)????????顯示CPU處理系統(tǒng)任務(wù)和完成用戶任務(wù)的時(shí)間比例
5.操作系統(tǒng)舉例
(1)????????UNIX操作系統(tǒng)
(2)????????Windows操作系統(tǒng)
(三)數(shù)據(jù)庫(kù)監(jiān)控
1.共性的指標(biāo)
(1)????????監(jiān)控?cái)?shù)據(jù)庫(kù)系統(tǒng)中關(guān)鍵的資源
(2)????????監(jiān)測(cè)讀寫頁(yè)面的使用情況
(3)????????監(jiān)控超出共享內(nèi)存緩沖區(qū)的操作數(shù)
(4)????????監(jiān)測(cè)上一輪詢期間作業(yè)等待緩沖區(qū)的時(shí)間
(5)????????跟蹤共享內(nèi)存中物理日志和邏輯日志的緩沖區(qū)的使用率
(6)????????監(jiān)控磁盤的數(shù)據(jù)塊使用情況以及被頻繁讀寫的熱點(diǎn)區(qū)域
(7)????????監(jiān)控用戶事務(wù)或者表空間監(jiān)控事務(wù)日志
(8)????????監(jiān)控?cái)?shù)據(jù)庫(kù)鎖資源
(9)????????監(jiān)測(cè)關(guān)鍵業(yè)務(wù)的數(shù)據(jù)表的表空間增長(zhǎng)
(10)????? 監(jiān)控SQL執(zhí)行情況
2.監(jiān)控建議-針對(duì)監(jiān)控內(nèi)存緩沖區(qū)、會(huì)話及磁盤等方面
(1)????????監(jiān)控超出共享內(nèi)存緩沖區(qū)的操作:可以調(diào)整緩沖區(qū)大小,更好的支持系統(tǒng)運(yùn)行
(2)????????擴(kuò)展的會(huì)話/用戶檢查以及參數(shù)控制:發(fā)現(xiàn)不合理順序掃描操作,從而分配附加的資源,修改應(yīng)用程序,降低對(duì)系統(tǒng)資源的要求
(3)????????磁盤:監(jiān)控?cái)?shù)據(jù)塊的使用情況以及被頻繁讀寫的熱點(diǎn)區(qū)域,可以平衡數(shù)據(jù)量的存儲(chǔ)分配及I/O分配
3.數(shù)據(jù)庫(kù)舉例
(1)????????Oracle:內(nèi)存統(tǒng)計(jì)、SQL分析、會(huì)話統(tǒng)計(jì)、事件統(tǒng)計(jì)
(2)????????Sysbase:
(3)????????DB2:
(4)????????SQL Server:
?
(四)中間件監(jiān)控
1.中間件分類
(1)????????Web服務(wù)器: Apache
(2)????????Web應(yīng)用服務(wù)器: Websphere、WebLogic
(3)????????應(yīng)用服務(wù)器: tuxedo
2.中間件舉例
(1)????????TUXEDO:
(2)????????WebSphere:隊(duì)列性能計(jì)數(shù)器、通道性能計(jì)數(shù)器
(3)????????WebLogic:LogBaroadcasterRuntime、ServerSecurityRuntime
?
四.負(fù)載壓力測(cè)試解決方案-疲勞強(qiáng)度測(cè)試
強(qiáng)調(diào)長(zhǎng)時(shí)間的考核,主要是過長(zhǎng)時(shí)間運(yùn)行系統(tǒng),發(fā)現(xiàn)問題
1.日常強(qiáng)度疲勞強(qiáng)度測(cè)試
?? 模擬系統(tǒng)的日常業(yè)務(wù)(正常情況),持續(xù)執(zhí)行‘一段時(shí)間’,暴露系統(tǒng)的性能問題,如內(nèi)存泄露、資源爭(zhēng)用
2.高峰業(yè)務(wù)疲勞強(qiáng)度測(cè)試
(1)? 模擬系統(tǒng)的高峰業(yè)務(wù)(最大業(yè)務(wù)量),持續(xù)執(zhí)行‘一段時(shí)間’,暴露系統(tǒng)的性能問題
(2)? 時(shí)間指標(biāo)要滿足:(1)這段模擬時(shí)間所處理的交易量要達(dá)到系統(tǒng)疲勞強(qiáng)度需求的業(yè)務(wù)量 (2) 在這段測(cè)試周期中必須通過加大負(fù)載,以及盡可能長(zhǎng)的測(cè)試周期來保證疲勞強(qiáng)度測(cè)試
?
五.負(fù)載壓力測(cè)試解決方案-大數(shù)據(jù)量測(cè)試
1.大數(shù)據(jù)量測(cè)試類型
(1)????????獨(dú)立數(shù)據(jù)量測(cè)試:針對(duì)某些系統(tǒng)存儲(chǔ)、傳輸、統(tǒng)計(jì)、查詢等業(yè)務(wù)進(jìn)行單用戶大數(shù)據(jù)量測(cè)試,如大量的批處理任務(wù)
(2)????????綜合數(shù)據(jù)量測(cè)試:采用并發(fā)測(cè)試、疲勞強(qiáng)度測(cè)試以及大數(shù)據(jù)量測(cè)試相結(jié)合的綜合測(cè)試方案
2.自動(dòng)生成大數(shù)據(jù)量
(1)????????借助自動(dòng)化測(cè)試工具,利用數(shù)據(jù)庫(kù)測(cè)試數(shù)據(jù)自動(dòng)生成工具,如TESTBytes
(2)????????利用自動(dòng)化負(fù)載壓力測(cè)試工具,模擬用戶業(yè)務(wù)操作,同時(shí)并發(fā)數(shù)百個(gè)或數(shù)千個(gè)用戶生成相關(guān)數(shù)據(jù)
(3)????????自主開發(fā)數(shù)據(jù)生成工具
(4)????????數(shù)據(jù)庫(kù)本身的輔助工具
3.大數(shù)據(jù)量管理
(1)????????手工管理:
(2)????????自動(dòng)化工具管理:File-Aid/CS 數(shù)據(jù)庫(kù)管理工具 ,完成比較數(shù)據(jù)和數(shù)據(jù)庫(kù)結(jié)構(gòu);轉(zhuǎn)換關(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù)成XML數(shù)據(jù);比較XML數(shù)據(jù)與關(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù);比較XML文件;數(shù)據(jù)遷移
?
61.負(fù)載壓力測(cè)試指標(biāo)分析
?? 主要包括客戶端交易處理性能指標(biāo)、服務(wù)器資源監(jiān)控指標(biāo)、數(shù)據(jù)庫(kù)資源監(jiān)控指標(biāo)、Web服務(wù)器監(jiān)控指標(biāo)、中間件監(jiān)控指標(biāo)
62.負(fù)載壓力測(cè)試實(shí)施
| 測(cè)試計(jì)劃 | 分析應(yīng)用程序:系統(tǒng)組件、系統(tǒng)配置、分析使用模型、分析任務(wù)分布 |
| 定義測(cè)試目標(biāo):以可度量的指標(biāo)制定目標(biāo)、確定測(cè)試時(shí)間 | |
| 計(jì)劃方案實(shí)施 | |
| 檢查測(cè)試目標(biāo):響應(yīng)時(shí)間、最優(yōu)硬件配置、可靠性、瓶頸、系統(tǒng)容量 | |
| 測(cè)試需求分析 | 采用80~20原理測(cè)試強(qiáng)度估算及UCML壓力需求分析、任務(wù)分布圖、交易混合圖方法?? 注 第275例子 |
| 測(cè)試案例制定 | 測(cè)試策略:對(duì)比測(cè)試環(huán)境和真實(shí)業(yè)測(cè)試環(huán)境;測(cè)試案例:表格形式顯示數(shù)據(jù)案例;測(cè)試內(nèi)容:并發(fā)、疲勞、資源監(jiān)控 |
| 測(cè)試環(huán)境、工具、數(shù)據(jù)準(zhǔn)備 | |
| 測(cè)試腳本錄制、編寫與調(diào)試 | |
| 場(chǎng)景制定 | 創(chuàng)建Vuser組、配置Vuser組中的Vuser、配置Vuser運(yùn)行時(shí)的設(shè)置、配置負(fù)載生成器、配置終端服務(wù)設(shè)置、配置WAN仿真設(shè)置、配置腳本 |
| 測(cè)試執(zhí)行 | 運(yùn)行場(chǎng)景、在執(zhí)行期間查看Vuser、監(jiān)視場(chǎng)景、 |
| 獲取測(cè)試結(jié)果 | |
| 結(jié)果評(píng)估與測(cè)試報(bào)告 | 交易處理性能評(píng)估、資源占用性能評(píng)估、故障分析、數(shù)據(jù)庫(kù)服務(wù)器性能問題及原因分析 |
?
?
?
?
63.軟件自動(dòng)化測(cè)試基本概念
| 定義 | 通過測(cè)試工具或其他手段,按照測(cè)試工程師的預(yù)定計(jì)劃對(duì)軟件產(chǎn)品進(jìn)行自動(dòng)的測(cè)試 |
| 優(yōu)點(diǎn) | 提高測(cè)試質(zhì)量、提高測(cè)試效率、縮短測(cè)試工作時(shí)間、提高測(cè)試覆蓋率、執(zhí)行手工測(cè)試不能完成的測(cè)試任務(wù)、更好的重現(xiàn)軟件缺陷能力、更好的利用資源、增進(jìn)開發(fā)人員與測(cè)試人員的合作伙伴關(guān)系 |
| 缺點(diǎn) | 對(duì)于定制型項(xiàng)目、周期短的項(xiàng)目不適于;業(yè)務(wù)規(guī)則復(fù)雜的對(duì)象工具很難實(shí)現(xiàn);人體感觀與易用性測(cè)試無法實(shí)現(xiàn)、不穩(wěn)定的軟件、涉及與物理設(shè)備交互 |
?
64.選擇自動(dòng)化測(cè)試工具
| 分類 | 負(fù)載壓力測(cè)試工具、功能測(cè)試工具、白盒測(cè)試工具、網(wǎng)絡(luò)測(cè)試工具、測(cè)試管理測(cè)試工具、測(cè)試輔助工具 |
| 應(yīng)用策略 | 從功能、價(jià)格、測(cè)試工具的長(zhǎng)期投資三個(gè)方面考慮 |
?
65.功能自動(dòng)化測(cè)試
| 作用 | 幫助測(cè)試工程師自動(dòng)處理測(cè)試開發(fā)到測(cè)試執(zhí)行的整個(gè)過程中的問題,可以創(chuàng)建可修改且可復(fù)用的測(cè)試腳本,隨時(shí)執(zhí)行腳本,減少勞動(dòng)量、提高測(cè)試效率 |
| 原理 | 采用錄制回放的方式來模擬用戶的實(shí)際操作;采用環(huán)境判斷錄制模式或模擬模式 |
| 步驟 | 創(chuàng)建腳本、調(diào)試腳本、執(zhí)行測(cè)試、結(jié)果分析 |
?
66.負(fù)載壓力自動(dòng)化測(cè)試
| 作用 | 可以記錄客戶端的操作,模擬上百或上千虛擬用戶同時(shí)操作的情景,對(duì)系統(tǒng)進(jìn)行性能測(cè)試 |
| 原理 | 采用錄制回放的方式來模擬用戶的實(shí)際操作; |
| 步驟 | 協(xié)議選擇、創(chuàng)建測(cè)試腳本、參數(shù)化測(cè)試數(shù)據(jù)、創(chuàng)建虛擬用戶、執(zhí)行測(cè)試、結(jié)果分析 |
?
2005-4-18
第5章 黑盒測(cè)試
一.黑盒測(cè)試概述(2.10 黑盒測(cè)試)
1.定義
l? 也稱功能測(cè)試,它是通過測(cè)試來檢測(cè)每個(gè)功能是否都能正常使用
l? 把程序看成一個(gè)黑盒子,完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性,著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu)
l? 在程序接口進(jìn)行測(cè)試,只檢查程序功能是否按照需求說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息
l? 主要針對(duì)軟件界面和軟件功能進(jìn)行測(cè)試
2.試圖發(fā)現(xiàn)的錯(cuò)誤類型
l? 功能不正確或遺漏
l? 界面錯(cuò)誤(輸入能否正確的接受?能否輸出正確的結(jié)果)
l? 數(shù)據(jù)庫(kù)訪問錯(cuò)誤(如數(shù)據(jù)結(jié)構(gòu)定義錯(cuò)誤或外部信息(如數(shù)據(jù)文件)訪問錯(cuò)誤)
l? 性能錯(cuò)誤
l? 初始化和終止錯(cuò)誤
3.黑盒測(cè)試用例設(shè)計(jì)方法
(1)??????等價(jià)類劃分法:把程序的輸入域劃分成若干部分,然后從每個(gè)部分中選取少數(shù)代表性數(shù)據(jù)作為測(cè)試用例。每一類的代表性數(shù)據(jù)在測(cè)試中的作用等價(jià)于這一類的其他值
(2)??????邊界值分析法:通過選擇等價(jià)類邊界的測(cè)試用例。不僅重視輸入條件邊界,而且也必須考慮輸出域邊界
(3)??????錯(cuò)誤推測(cè)法:基于經(jīng)驗(yàn)和直覺推測(cè)程序中所有可能存在的各種錯(cuò)誤,從而有針對(duì)性地設(shè)計(jì)測(cè)試用例的方法
(4)??????因果圖法:從用自然語言書寫的程序規(guī)格說明的描述中找出因(輸入條件)和果(輸入或程序狀態(tài)的改變),可以通過因果圖轉(zhuǎn)換成判定表
(5)??????判定表驅(qū)動(dòng)法:利用判定表進(jìn)行測(cè)試用例的設(shè)計(jì)
(6)??????正交試驗(yàn)設(shè)計(jì)法:使用已設(shè)計(jì)好的正交表格來安排試驗(yàn),并進(jìn)行數(shù)據(jù)分析的一種方法,目的是用最少的測(cè)試用例達(dá)到最高的測(cè)試覆蓋率
(7)??????功能圖法:用功能圖形象地表示程序的功能說明,并機(jī)械地生成功能圖的測(cè)試用例。功能圖模型由狀態(tài)遷移圖和邏輯功能模型構(gòu)成
二.黑盒測(cè)試用例設(shè)計(jì)方法
1.等價(jià)類劃分法
(1)劃分基礎(chǔ):需求規(guī)格說明書中輸入、輸出要求
(2)等價(jià)類:某個(gè)輸入域的子集合;分為有效等價(jià)類和無效等價(jià)類
l??有效等價(jià)類:指對(duì)于程序規(guī)格說明書來說是合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合。利用有效等價(jià)類可以檢驗(yàn)程序是否實(shí)現(xiàn)了規(guī)格說明書中的功能和性能
l??無效等價(jià)類:與有效等價(jià)的定義恰巧相反
(3)劃分等價(jià)類原則(6條)
| 序號(hào) | 輸入條件(數(shù)據(jù)) | 劃分等價(jià)類 |
| 1 | 規(guī)定了取值范圍 值的個(gè)數(shù) | 一個(gè)有效等價(jià)類 兩個(gè)無效等價(jià)類 |
| 2 | 規(guī)定了輸入值的集合 規(guī)定了“必須如何”的條件 | 一個(gè)有效等價(jià)類 一個(gè)無效等價(jià)類 |
| 3 | 是一個(gè)布爾量 | 一個(gè)有效等價(jià)類 一個(gè)無效等價(jià)類 |
| 4 | 輸入數(shù)據(jù)的一組值(n個(gè)),并且程序?qū)γ恳粋€(gè)輸入值分別進(jìn)行處理 | n個(gè)有效等價(jià)類 一個(gè)無效等價(jià)類 |
| 5 | 規(guī)定必須遵守的規(guī)則 | 一個(gè)有效等價(jià)類(符合規(guī)則) 若干個(gè)無效等價(jià)類 |
| 6 | 在確知已劃分的等價(jià)類中,各元素在程序處理中的方式不同的情況下,則應(yīng)再將該等價(jià)類進(jìn)一步地劃分為更小的等價(jià)類 | |
????
(4) 列出等價(jià)類表
在確定了等價(jià)類之后,建立等價(jià)類表,列出所有劃分出的等價(jià)類
| 輸入條件 | 有效等價(jià)類 | 無效等類 |
| …… | …… | …… |
?
(5) 確定測(cè)試用例步驟
l??第一步:為每個(gè)等價(jià)類規(guī)定一個(gè)惟一的編號(hào)
l??第二步:設(shè)計(jì)一個(gè)新的測(cè)試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價(jià)類。重復(fù)這一步驟,最后使得所有有效等價(jià)類均被測(cè)試用例所覆蓋
l??第三步:設(shè)計(jì)一個(gè)新的測(cè)試用例,使其只覆蓋一個(gè)無效等價(jià)類。重復(fù)這一步驟,最后使得所有有效等價(jià)類均被測(cè)試用例所覆蓋
小結(jié):采用等價(jià)類劃分方法設(shè)計(jì)測(cè)試用例,按照劃分等價(jià)類、列出等價(jià)列表、確定測(cè)試用例三個(gè)步驟完成,目標(biāo)是把可能的測(cè)試用例組合縮減到仍然足以滿足軟件測(cè)試需求為止。
?
2.邊界值分析法
(1) 邊界類型
l??邊界條件:可以在產(chǎn)品說明書中有定義或者在使用軟件過程中確定
l??次邊界條件:在軟件內(nèi)部,也稱為內(nèi)部邊界條件
l??其他邊界條件:如輸入信息為空(對(duì)于此類問題應(yīng)建立單獨(dú)的等價(jià)類空間)、非法、錯(cuò)誤、不正確和垃圾數(shù)據(jù)
(2)邊界值的選擇方法(遵循原則)
| 序號(hào) | 輸入條件(數(shù)據(jù)) | 輸入邊界值數(shù)據(jù) |
| 1 | 規(guī)定了取值范圍 | 剛剛達(dá)到這個(gè)范圍 剛剛超越這個(gè)范圍 |
| 2 | 規(guī)定值的個(gè)數(shù) | 最大個(gè)數(shù)、比最大個(gè)數(shù)大1 最小個(gè)數(shù)、比最小個(gè)數(shù)少1 |
| 3 | 根據(jù)規(guī)格說明書的每個(gè)輸出條件,使用 原則1、2 | |
| 4 | 輸入或輸出是個(gè)有序集合 | 集合的第一個(gè)、最后一個(gè)元素 |
| 5 | 程序中使用一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu) | 內(nèi)部數(shù)據(jù)結(jié)構(gòu)邊界上的值 |
| 6 | 分析規(guī)格說明,找出其他可能的邊界 | |
?
(3)例子:
l??允許文本輸入1~255個(gè)字符:測(cè)試用例-1、255、254、0、256
l??程序讀寫軟盤:測(cè)試用例-文件很小、等于軟盤容量限制之內(nèi)、空、超過
l??程序允許在一張紙上打印多個(gè)頁(yè)面:測(cè)試用例-只打印一頁(yè),規(guī)定最大頁(yè),0頁(yè),大于允許最大頁(yè)數(shù)
?
3.錯(cuò)誤推測(cè)法
基本思想:列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)它們選擇測(cè)試用例
?
4.因果圖法
?? 側(cè)重于輸入條件的各種組合,各個(gè)輸入情況之間的相互制約關(guān)系
(1)??????因果圖設(shè)計(jì)方法
從用自然語言書寫的程序規(guī)格說明的描述中找出因果,通過因果圖轉(zhuǎn)換成判定表
(2)??????因果圖導(dǎo)出測(cè)試用例步驟
l?? 第一步:分析程序規(guī)格說明的描述中,哪些是原因,哪些是結(jié)果。原在因常常是輸入條件或是輸入條件的等價(jià)類,結(jié)果是輸出條件
l??第二步:分析程序規(guī)格說明的描述中語義的內(nèi)容,并將其表示成連接各個(gè)原因與各個(gè)結(jié)果的‘因果圖’
l??第三步:標(biāo)明約束條件
l??第四步:把因果圖轉(zhuǎn)換成判定表
l??第五步:為判定表中每一列表示的情況設(shè)計(jì)測(cè)試用例
(3)??????因果圖基本圖形符號(hào)
通常在因果圖中,用Ci 表示原因,Ei表示結(jié)果,各結(jié)點(diǎn)表示狀態(tài),可取值0(狀態(tài)不出現(xiàn)) 或1(某狀態(tài)出現(xiàn))
l??恒等:若原因出現(xiàn),則結(jié)果出現(xiàn);若原因不出現(xiàn),則結(jié)果不出現(xiàn)
l??非(~):若原因出現(xiàn),則結(jié)果不出現(xiàn);若原因不出現(xiàn),則結(jié)果出現(xiàn)
l??或(V):若幾個(gè)原因中有一個(gè)出現(xiàn),則結(jié)果出現(xiàn);若幾個(gè)原因都不出現(xiàn),則結(jié)果不出現(xiàn);
l??與(∧):若幾個(gè)原因都出現(xiàn),結(jié)果才出現(xiàn);若其中有一個(gè)原因不出現(xiàn),則結(jié)果不出現(xiàn)
(4)??????因果圖的約束符號(hào)
從輸入(原因)考慮四種約束
l??E(互斥):表示兩個(gè)原因不會(huì)同時(shí)成立,兩個(gè)中最多有一個(gè)可能成立
l??I(包含):表示三個(gè)原因中至少有一個(gè)必須成立
l??O(惟一):表示兩個(gè)原因中必須有一個(gè),且僅有一個(gè)成立
l??R(要求):表示兩個(gè)原因,a出現(xiàn)時(shí),b也必須出現(xiàn),a出現(xiàn)時(shí),b不可能不出現(xiàn)
從輸出(結(jié)果)考慮一種約束
l??M(屏蔽):兩個(gè)結(jié)果,a為1時(shí),b必須是0,當(dāng)a為0時(shí),b值不定
2005-4-19
5.判定表驅(qū)動(dòng)法
(1)??????判定表:是分析和表達(dá)多邏輯條件下執(zhí)行不同操作的情況的工具
(2)??????判定表組成
l??條件樁:列出了問題的所有條件
l??動(dòng)作樁:列出了問題規(guī)定可能采取的操作
l??條件項(xiàng):列出針對(duì)它所列條件的取值,在所有可能情況下的真假值
l??動(dòng)作項(xiàng):列出在條件項(xiàng)的各種取值情況下應(yīng)該采取的動(dòng)作
l??規(guī)則:任何一個(gè)條件組合的特定取值及其相應(yīng)要執(zhí)行的操作
注:判定表中貫穿條件項(xiàng)和動(dòng)作項(xiàng)的一列就是一條規(guī)則;
(3)??????判定表的建立(步驟)
l??第一步:確定規(guī)則的個(gè)數(shù)。假如有n個(gè)條件,每個(gè)條件有兩個(gè)取值(0,1),故有2n種規(guī)則
l??第二步:列出所有的條件樁和動(dòng)作樁
l??第三步:填入條件項(xiàng)
l??第四步:填入動(dòng)作項(xiàng)。制定初始判定表
l??第五步:簡(jiǎn)化。合并相似規(guī)則或者相同動(dòng)作
(4)??????適合使用判定表設(shè)計(jì)測(cè)試用例的條件
l??規(guī)格說明以判定表的形式給出,或很容易轉(zhuǎn)換成判定表
l??條件的排列順序不影響執(zhí)行哪些操作
l??規(guī)則的排列順序不影響執(zhí)行哪些操作
l??當(dāng)某一規(guī)則的條件已經(jīng)滿足,并確定要執(zhí)行的操作后,不必檢驗(yàn)別的規(guī)則
l??如果某一規(guī)則要執(zhí)行多個(gè)操作,這些操作的執(zhí)行順序無關(guān)緊要
?
2005-4-20
6.正交試驗(yàn)法
(1)??????概述
l??從大量的試驗(yàn)數(shù)據(jù)中挑選適量的、有代表性的點(diǎn),從而合理地安排測(cè)試的一種科學(xué)的試驗(yàn)設(shè)計(jì)方法
l??使用已造好的表格“-”正交表來安排試驗(yàn)并進(jìn)行數(shù)據(jù)分析的一種方法
l??因子:影響實(shí)現(xiàn)指標(biāo)的條件
l??因子的狀態(tài):影響實(shí)現(xiàn)因子的條件
(2)??????優(yōu)點(diǎn)
l??節(jié)省測(cè)試工時(shí)
l??可控制生成的測(cè)試用例的數(shù)量
l??測(cè)試用例具有一定的覆蓋率
(3)??????設(shè)計(jì)步驟
l??提取功能說明,構(gòu)造因子‘-’狀態(tài)表。
l??加權(quán)篩選,生成因素分析表;
l??利用正交表構(gòu)造測(cè)試數(shù)據(jù)集,正交表的推導(dǎo)依據(jù)Galois理論
L:代表正交表,L8(27)代表7為因子數(shù),2為因子的水平數(shù),8為此表行的數(shù)目(試驗(yàn)次數(shù))
行數(shù)為mn型的正交表中,試驗(yàn)次數(shù)(行數(shù))=∑(每列水平數(shù)-1)+1
例:5個(gè)3水平因子及一個(gè)2水平因子,表示為35*21,試驗(yàn)次數(shù)=5*(3-1)+1*(2-1)+1=12,
即L12(35*2)
7.功能圖法
(1)??????程序功能說明的組成
l??動(dòng)態(tài)說明:描述輸入數(shù)據(jù)的次序或轉(zhuǎn)移次序
l??靜態(tài)說明:描述輸入條件和輸出條件之間的對(duì)應(yīng)關(guān)系
(2)??????功能圖:由狀態(tài)遷移圖和布爾函數(shù)組成,狀態(tài)遷移圖用狀態(tài)和遷移來表示。一個(gè)狀態(tài)指出數(shù)據(jù)輸入的位置(或時(shí)間),一個(gè)遷移指明狀態(tài)的改變,同時(shí)要依靠判定表或因果圖表示的邏輯功能
(3)??????功能圖法概述
l??用功能圖形象地表示程序的功能說明,并機(jī)械地生成功能圖的測(cè)試用例
l??功能圖模型由狀態(tài)遷移圖和邏輯功能模型構(gòu)成
v????狀態(tài)遷移圖:用于表示輸入數(shù)據(jù)序列以及相應(yīng)的輸出數(shù)據(jù);由輸入數(shù)據(jù)和當(dāng)前狀態(tài)決定輸出數(shù)據(jù)和后續(xù)狀態(tài)
v????邏輯功能模型:用于表示在狀態(tài)中輸入條件和輸出條件的對(duì)應(yīng)關(guān)系。由輸入數(shù)據(jù)決定輸出數(shù)據(jù)。此模型只適用于描述靜態(tài)說明
l??功能圖測(cè)試用例由測(cè)試中經(jīng)過的一系列狀態(tài)和在每個(gè)狀態(tài)中必須依靠輸入/輸出數(shù)據(jù)滿中的一對(duì)條件組成
(4)??????測(cè)試用例生成方法
從狀態(tài)遷移圖中選取測(cè)試用例,用節(jié)點(diǎn)代替狀態(tài),用弧線代替遷移,狀態(tài)圖就可轉(zhuǎn)化成一個(gè)程序的控制流程圖形式
(5)??????測(cè)試用例生成規(guī)則
為了把狀態(tài)遷移(測(cè)試路徑)的測(cè)試用例與邏輯模型(局部測(cè)試用例)的測(cè)試用例組合起來,從功能圖生成實(shí)用的測(cè)試用例,在一個(gè)結(jié)構(gòu)化的狀態(tài)遷移(SST)中,定義3種形式的循環(huán):順序,選擇和重復(fù)
(6)??????功能圖生成測(cè)試用例步驟
l??生成局部測(cè)試用例:在每個(gè)狀態(tài)中,從因果圖生成局部測(cè)試用例。局部測(cè)試用例由原因值(輸入數(shù)據(jù))組合與對(duì)應(yīng)的結(jié)果值(輸出數(shù)據(jù)或狀態(tài))構(gòu)成
l??測(cè)試路徑生成:利用上面的規(guī)則生成從初始狀態(tài)到最后狀態(tài)的測(cè)試路徑
l??測(cè)試用例合成:合成測(cè)試路徑與功能圖中每個(gè)狀態(tài)的局部測(cè)試用例。結(jié)果是初始狀態(tài)到最后狀態(tài)的一個(gè)狀態(tài)序列,以及每個(gè)狀態(tài)中輸入數(shù)據(jù)與對(duì)應(yīng)輸出數(shù)據(jù)的組合。
l??測(cè)試用例的合成算法:采用條件構(gòu)造樹
?
8.場(chǎng)景法
(1)??????基本流和備選流
采用此方法進(jìn)行設(shè)計(jì)時(shí),需要進(jìn)行場(chǎng)景的設(shè)計(jì),在場(chǎng)景中采用基本流和備選流表示經(jīng)過用例的每條路徑
l??基本流:采用直黑線表示,是經(jīng)過用例的最簡(jiǎn)單的路徑(無任何差錯(cuò),程序從開始直接執(zhí)行到結(jié)束)
l??備選流:采用不同顏色表示,一個(gè)備選流可能從基本流開始,在某個(gè)特定條件下執(zhí)行,然后重新加入基本流中,也可以起源于另一個(gè)備選流,或終止用例,不在加入到基本流中;(各種錯(cuò)誤情況)
(2)??????設(shè)計(jì)步驟
l??根據(jù)說明,描述出程序的基本流及各項(xiàng)備選流
l??根據(jù)基本流和各項(xiàng)備選流生成不同的場(chǎng)景
l??對(duì)每一個(gè)場(chǎng)景生成相應(yīng)的測(cè)試用例
l??對(duì)生成的所有測(cè)試用例重新復(fù)審,去掉多余的測(cè)試用例,測(cè)試用例確定后,對(duì)每一個(gè)測(cè)試用例確定測(cè)試數(shù)據(jù)值
三.黑盒測(cè)試用例設(shè)計(jì)方法的選擇策略
1.????????首先進(jìn)行等價(jià)類劃分,包括輸入條件和輸出條件的等價(jià)類劃分,將無限測(cè)試變成有限測(cè)試,這是減少測(cè)試量和提高測(cè)試效率的最有效辦法
2.????????在任何情況下都必須使用邊界值分析方法。此方法設(shè)計(jì)的測(cè)試用例發(fā)現(xiàn)程序錯(cuò)誤的能力最強(qiáng)
3.????????可以用錯(cuò)誤和推測(cè)法追加一些測(cè)試用例
4.????????對(duì)照程序的邏輯,檢查已設(shè)計(jì)的測(cè)試用例的邏輯覆蓋度,如果沒有達(dá)到要求,應(yīng)在補(bǔ)充
5.????????如果程序的功能說明中含有輸入條件的組合情況,一開始就可以使用因果圖法和判定表驅(qū)動(dòng)法
6.????????對(duì)于參數(shù)配置類的軟件,要用正交試驗(yàn)法選擇較少的組合方式達(dá)到最佳效果
7.????????功能圖法也是很好的測(cè)試用例設(shè)計(jì)方法,我們可以通過不同時(shí)期條件的有效性設(shè)計(jì)不同的數(shù)據(jù)
8.????????對(duì)于業(yè)務(wù)流清晰的系統(tǒng),可以利用場(chǎng)景法貫空整個(gè)測(cè)試案例過程,在案例中綜合使用各種方法
四.測(cè)試用例的編寫
1. 測(cè)試用例概述
(1)??????定義
l??將測(cè)試行為具體量化的方法之一
l??設(shè)計(jì)一種情況,軟件程序在這種情況下,必須能夠正常運(yùn)行并且達(dá)到程序所設(shè)計(jì)的執(zhí)行結(jié)果
l??為達(dá)到最佳的測(cè)試效果或高效的揭露隱藏的錯(cuò)誤而精心設(shè)計(jì)的少量測(cè)試數(shù)據(jù),
l??一個(gè)好的測(cè)試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤
(2)??????優(yōu)點(diǎn):
l??在開始實(shí)施測(cè)試之前設(shè)計(jì)好測(cè)試用例,可以避免盲目測(cè)試并提高測(cè)試效率
l??測(cè)試用例的使用令軟件測(cè)試的實(shí)施重點(diǎn)突出、目的明確
l??在軟件版本更新后只需修正少部分的測(cè)試用例便可展開測(cè)試工作,降低工作強(qiáng)度,縮短項(xiàng)目周期
l??功能模塊的通用化和復(fù)用化使軟件易于開發(fā),而測(cè)試用例的通用化和復(fù)用化使軟件測(cè)試易于開展,并隨著測(cè)試用例的不斷精化其效率也不斷攀升
2.計(jì)劃測(cè)試用例的目的
(3)??????計(jì)劃測(cè)試用例,是達(dá)成測(cè)試目標(biāo)的必由之路
(4)??????組織性:使測(cè)試用例具有組織性,便于全體測(cè)試員和其他項(xiàng)目小組人員有效地審查和使用
(5)??????重復(fù)性和跟蹤,可以明確測(cè)試過程中測(cè)試用例的執(zhí)行情況,保證測(cè)試的全面性
(6)??????計(jì)劃測(cè)試用例,可以避免發(fā)布忽略某些測(cè)試用例的軟件
(7)??????測(cè)試證實(shí),正確的測(cè)試用例計(jì)劃和跟蹤提供了一種證實(shí)測(cè)試的手段
3.測(cè)試設(shè)計(jì)說明
(1)??????定義:在測(cè)試計(jì)劃中提煉測(cè)試方法,要明確指出設(shè)計(jì)包含的特性以及相關(guān)的測(cè)試用例和測(cè)試程序,并指定判斷通過/失敗的規(guī)則
(2)??????目的;組織和描述針對(duì)具體特性需要進(jìn)行的測(cè)試,注:不給出具體的測(cè)試用例或執(zhí)行測(cè)試的步驟
(3)??????包含的部分內(nèi)容(來自ANSI/IEEE829?? ANSI 美國(guó)國(guó)家標(biāo)準(zhǔn)化組織)
l??標(biāo)識(shí)符:用于引用和定位測(cè)試設(shè)計(jì)說明的惟一標(biāo)識(shí)符
l??要測(cè)試的特性:對(duì)測(cè)試設(shè)計(jì)說明所包含的軟件特性的描述。還將明確出要間接測(cè)試的特性
l??方法:描述測(cè)試的通用方法。如果方法在測(cè)試計(jì)劃中描述,在測(cè)試設(shè)計(jì)說明中要詳細(xì)描述要使用的技術(shù),并給出如何驗(yàn)證測(cè)試結(jié)果的方法
l??測(cè)試用例信息:用于描述所引用的測(cè)試用例的相關(guān)信息。如測(cè)試用例編號(hào)
l??通過/失敗規(guī)則:描述用什么規(guī)則來判定某項(xiàng)特性的測(cè)試結(jié)果是通過還是失敗。
4.測(cè)試用例說明
(1)??????定義(ANSI/IEEE829):編寫用于輸入的實(shí)際數(shù)據(jù)和預(yù)期結(jié)果,并明確指出使用具體測(cè)試用例產(chǎn)生的測(cè)試程序的任何限制
(2)??????包含的內(nèi)容
l??標(biāo)識(shí)符:由測(cè)試設(shè)計(jì)過程說明和測(cè)試程序說明引用的唯一標(biāo)識(shí)符
l??測(cè)試項(xiàng):描述被測(cè)試的詳細(xì)特性、代碼模塊等
l??輸入說明:列舉執(zhí)行測(cè)試用例的所有輸入內(nèi)容或者條件
l??輸出說明:描述進(jìn)行測(cè)試用例預(yù)期的結(jié)果
l??環(huán)境要求:執(zhí)行測(cè)試用例的軟件、硬件、測(cè)試工具及人員等要求
l??特殊要求:描述執(zhí)行測(cè)試用例的特殊要求
l??用例之間的依賴性:注明與其分用例的依賴關(guān)系或受其他用例的影響
5. 測(cè)試程序說明
(1)??????定義:明確指出為實(shí)現(xiàn)相關(guān)測(cè)試設(shè)計(jì)而執(zhí)行具體測(cè)試用例和操作軟件系統(tǒng)的全部步驟,有時(shí)也稱為‘測(cè)試腳本說明’,即詳細(xì)定義了執(zhí)行測(cè)試用例的每一步操作
(2)??????包含的內(nèi)容
l??標(biāo)識(shí)符:把測(cè)試程序與相關(guān)測(cè)試用例和測(cè)試設(shè)計(jì)相聯(lián)系的惟一標(biāo)識(shí)
l??目的:本程序描述的目的以及將要執(zhí)行的測(cè)試用例的引用信息
l??特殊要求:執(zhí)行測(cè)試所需的其他程、特殊測(cè)試技術(shù)或者特殊設(shè)備
l??程序步驟:執(zhí)行測(cè)試用例的詳細(xì)描述,包括
v????日志:指出記錄測(cè)試結(jié)果和現(xiàn)象的方式
v????設(shè)置:如何準(zhǔn)備測(cè)試
v????啟動(dòng):啟動(dòng)測(cè)試的步驟
v????程序:運(yùn)行測(cè)試的步驟
v????衡量標(biāo)準(zhǔn):描述如何判斷結(jié)果
v????關(guān)閉:描述因意外原因頁(yè)推遲測(cè)試的步驟
v????終止:描述正常停止測(cè)試的步驟
v????重置:說明如何把環(huán)境恢復(fù)到測(cè)試前的狀態(tài)
v????偶然事件:說明如何處理計(jì)劃之外的情況
測(cè)試用例設(shè)計(jì)練習(xí):1.采用因果圖方法設(shè)計(jì)測(cè)試用例
某個(gè)軟件的規(guī)格說明中包含下面的要求:
第一列字符必須是A或B,第二列字符必須是一個(gè)數(shù)字,在此情況下進(jìn)行文件的修改。但如果第一列字符不正確,則給出信息L,如果第二列字符不是數(shù)據(jù),則給出信息M
?
2005-4-21
第6章 白盒測(cè)試技術(shù)
相關(guān)知識(shí)點(diǎn)
軟件測(cè)試方法:分為兩類
(1)靜態(tài)測(cè)試:不要求在計(jì)算機(jī)上實(shí)際執(zhí)行所測(cè)程序,主要以一些人工的模擬技術(shù)對(duì)軟件進(jìn)行分析和測(cè)試
(2)動(dòng)態(tài)測(cè)試:通過輸入一組預(yù)先按照一定的測(cè)試準(zhǔn)則構(gòu)造的實(shí)例數(shù)據(jù)動(dòng)態(tài)運(yùn)行程序,而達(dá)到發(fā)現(xiàn)程序錯(cuò)誤的過程,特點(diǎn)如下:
l?必須生成測(cè)試數(shù)據(jù)來運(yùn)行被測(cè)試程序,取得程序運(yùn)行的真實(shí)情況、動(dòng)態(tài)情況,進(jìn)而進(jìn)行分析
l?測(cè)試質(zhì)量依賴于測(cè)試數(shù)據(jù)
l?生成測(cè)試數(shù)據(jù),分析測(cè)試結(jié)果的工作量大,使開展測(cè)試工作費(fèi)時(shí)、費(fèi)力、費(fèi)人
l?動(dòng)態(tài)測(cè)試中涉及多方面工作,人員多,設(shè)備多,數(shù)據(jù)多,要求有較好的管理和工作規(guī)程
?
一.概述
1. 定義
也稱結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試,按照程序內(nèi)部的結(jié)構(gòu)對(duì)程序進(jìn)行測(cè)試,通過測(cè)試來檢查產(chǎn)品內(nèi)部動(dòng)作是否按照設(shè)計(jì)規(guī)格說明書的規(guī)定正常進(jìn)行,檢查程序中的每條通路是否能按照預(yù)定要求正確工作
2. 測(cè)試內(nèi)容
把測(cè)試對(duì)象看成是一個(gè)打開的盒子,測(cè)試人員依據(jù)程序內(nèi)部邏輯結(jié)構(gòu)相關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序的所有邏輯路徑進(jìn)行測(cè)試,通過不同點(diǎn)檢查程序的狀態(tài),確定實(shí)際的狀態(tài)與預(yù)期的狀態(tài)一致
3. 測(cè)試基本技術(shù)
(1)詞法分析與語法分析
(2)靜態(tài)錯(cuò)誤分析
(3)程序插樁技術(shù)
4. 測(cè)試方法
(1)代碼檢查法
(2)靜態(tài)結(jié)構(gòu)分析法
(3)靜態(tài)質(zhì)量度量法
(4)邏輯覆蓋法
(5)基本路徑測(cè)試法
(6)域測(cè)試
(7)符號(hào)測(cè)試
(8)Z路徑覆蓋
(8)??????程序變異
5.黑盒測(cè)試與白盒測(cè)試
| 黑盒測(cè)試 | 白盒測(cè)試 |
| 不涉及程序結(jié)構(gòu) | 考查程序邏輯結(jié)構(gòu) |
| 用軟件規(guī)格說明書生成測(cè)試用例 | 用程序結(jié)構(gòu)信息生成測(cè)試用例 |
| 可適用于從單元測(cè)試到系統(tǒng)聯(lián)調(diào) | 適用于單元測(cè)試和集成測(cè)試 |
| 某些代碼段得不到測(cè)試 | 對(duì)所有邏輯路徑進(jìn)行測(cè)試 |
?
二.白盒測(cè)試基本技術(shù)
1.詞法和語法分析
(1)獲取信息
l?可以獲取軟件組成的重要基本因數(shù),如變量標(biāo)識(shí)符、過程標(biāo)識(shí)符、常量等
l?組合獲取的基本因數(shù),可以得到軟件的基本信息,如:
v?標(biāo)號(hào)交叉引用表:列出各模塊中出現(xiàn)的全部標(biāo)號(hào)及標(biāo)號(hào)的屬性,模塊以外的全局、計(jì)算標(biāo)號(hào)
v?變量交叉引用表:列出變量定義及引用信息,變量的屬性,變量類型(全局、局部)
v?子程序、宏和函數(shù)表:列出各個(gè)子程序、宏及函數(shù)的屬性,輸入、輸出參數(shù)信息
v?等價(jià)表:列出在等價(jià)語句和等值語句中出現(xiàn)的全部變量和標(biāo)號(hào)
v?常數(shù)表:列出全部數(shù)字常數(shù)和字符常數(shù)
(2)作用
l?直接從表中查出說明/使用錯(cuò)誤,如標(biāo)號(hào)交叉引用表、變量交叉引用表
l?為用戶提供輔助信息,如子程序、宏和函數(shù)表、等價(jià)表、常數(shù)表
l?用來做錯(cuò)誤預(yù)測(cè)和程序復(fù)雜度計(jì)算,如操作符和操作數(shù)的統(tǒng)計(jì)表
2.靜態(tài)錯(cuò)誤分析
用于確定在源程序中是否有某類錯(cuò)誤或‘危險(xiǎn)’結(jié)構(gòu),包括以下幾種:
(1)??????類型和單位分析
對(duì)源程序的類型進(jìn)行檢查,為了強(qiáng)化檢查效果,擴(kuò)充一些新的數(shù)據(jù)類型,進(jìn)行靜態(tài)預(yù)處理程序,分析程序中的類型錯(cuò)誤
(2)??????引用分析
l?對(duì)程序中變量的引用進(jìn)行檢查,發(fā)現(xiàn)引用異常錯(cuò)誤(如變量在定義前被引用,變量定義后未被引用)。
l?采用深度優(yōu)選的方法遍歷程序流圖的每一條路徑
l?建立引用異常的探測(cè)工具,包括變量定義表和變量引用表
(3)??????表達(dá)式分析
對(duì)表達(dá)式進(jìn)行分析,以發(fā)現(xiàn)和糾正在表達(dá)式出現(xiàn)的錯(cuò)誤,如:
l?在表達(dá)式中不正確的使用了括號(hào)造成錯(cuò)誤
l?數(shù)組下標(biāo)越界錯(cuò)誤
l?除數(shù)為零
l?浮點(diǎn)數(shù)計(jì)算的誤差(最復(fù)雜)
(4)??????接口分析
接口一致性是程序的靜態(tài)錯(cuò)誤分析和設(shè)計(jì)分析共同研究的題目,接口分析主要對(duì)下內(nèi)容時(shí)進(jìn)行一致性的分析:
l?各模塊之間接口一致性
l?模塊與外部數(shù)據(jù)庫(kù)的接口一致性
l?形參與實(shí)參在類型,數(shù)量,順序,維數(shù),使用上的一致性
l?全局變量和公共數(shù)據(jù)區(qū)在使用上的一致性
3.程序插樁技術(shù)
(1)??????概述
在動(dòng)態(tài)測(cè)試中,是一種基本的測(cè)試手段,有廣泛的應(yīng)用
主要借助向程序中插入操作,來實(shí)現(xiàn)測(cè)試目的的方法(即向源程序中添加一些語句(也稱探測(cè)器),實(shí)現(xiàn)對(duì)程序語句的執(zhí)行、變量的變化等情況進(jìn)行檢查)
(2)??????設(shè)計(jì)時(shí)考慮的問題
l?明確要探測(cè)哪些信息
l?在程序的什么部位設(shè)置探測(cè)點(diǎn)
l?需要設(shè)計(jì)多少個(gè)探測(cè)點(diǎn)
(3)??????探測(cè)點(diǎn)設(shè)置位置(以Fortran為例)
l?程序塊的第一個(gè)可執(zhí)行語句之前
l?entry語句的前后
l?有標(biāo)號(hào)的可執(zhí)行語句處
l?循環(huán)語句之后
l?條件語句之后
l?logical if語句之后
l?call語句之后
l?go to語句之后
(4)??????斷言語句
在程序中的特定部位插入某些用以判斷變量特性的語句,使得程序執(zhí)行中這些語句得以證實(shí),從而使程序的運(yùn)行特性得到證實(shí),我們把這些插入的語句稱為斷言語句。
三.白盒測(cè)試方法-靜態(tài)測(cè)試
1.????????代碼檢查法
(1) 目的
通過桌面檢查,代碼審查和走查方式,對(duì)以下內(nèi)容進(jìn)行檢查
l?檢查代碼和設(shè)計(jì)的一致性
l?代碼對(duì)標(biāo)準(zhǔn)的遵循、可讀性
l?代碼邏輯表達(dá)的正確性
l?代碼結(jié)構(gòu)的合理性
l?程序編寫與編寫標(biāo)準(zhǔn)的符合性
l?程序中不安全、不明確和模糊的部分
l?編程風(fēng)格問題等
(2) 代碼檢查方式
| ?方式名稱 | 執(zhí)行人員 | 檢查內(nèi)容 | 檢查過程 |
| 桌面檢查 | 程序員 | 對(duì)源程序代碼進(jìn)行分析、檢驗(yàn),并補(bǔ)充相關(guān)的文檔,發(fā)現(xiàn)程序中的錯(cuò)誤 | |
| 代碼審查 | 程序員和測(cè)試員組成的審查小組 | 通過閱讀、討論和爭(zhēng)議,以程序進(jìn)行靜態(tài)分析的過程 | 第一步:小組成員提前閱讀設(shè)計(jì)規(guī)格書、程序文本等相關(guān)文檔 第二步:召開程序?qū)彶闀?huì),開發(fā)人員讀程序,審查小組討論、發(fā)現(xiàn)、解決問題 |
| 走查 | 程序員和測(cè)試員組成的審查小組 | 通過邏輯運(yùn)行程序,發(fā)現(xiàn)問題 | 第一步:小組成員提前閱讀設(shè)計(jì)規(guī)格書、程序文本等相關(guān)文檔 第二步:利用測(cè)試用例,使程序邏輯運(yùn)行,記錄程序的蹤跡,發(fā)現(xiàn)、討論、解決問題 |
?
(3) 代碼檢查項(xiàng)目(采用分析技術(shù))
l?檢查變量的交叉引用表:檢查未說明的變量和違反了類型規(guī)定的變量,變量的引用和使用情況
l?檢查標(biāo)號(hào)的交叉引用表:驗(yàn)證所有標(biāo)號(hào)的正確性
l?檢查子程序、宏、函數(shù):驗(yàn)證每次調(diào)用與所調(diào)用位置是否正確,調(diào)用的子程序、宏、函數(shù)是否存在,參數(shù)是否一致
l?等價(jià)性檢查:檢查全部等價(jià)變量的類型的一致性
l?常量檢查:確認(rèn)常量的取值和數(shù)制、數(shù)據(jù)類型
l?標(biāo)準(zhǔn)檢查:檢查程序中是否違反標(biāo)準(zhǔn)的問題
l?風(fēng)格檢查:檢查程序的設(shè)計(jì)風(fēng)格
l?比較控制流:比較設(shè)計(jì)控制流圖和實(shí)際程序生成的控制流圖的差異
l?選擇、激活路徑:在設(shè)計(jì)控制流圖中選擇某條路徑,到實(shí)際的程序中激活這條路徑,如果不能激活,則程序可能有錯(cuò)
l?對(duì)照程序的規(guī)格說明,詳細(xì)閱讀源代碼,比較實(shí)際的代碼,從差異中發(fā)現(xiàn)程序的問題和錯(cuò)誤
l?補(bǔ)充文檔
根據(jù)以上檢查項(xiàng)目,可以編制代碼規(guī)則,規(guī)范和檢查表等作為測(cè)試用例
(4) 編碼規(guī)范
程序編寫過程中必須遵守的規(guī)則,規(guī)定代碼的語法格式、語法規(guī)則,如排版、注釋、標(biāo)識(shí)符命名、可讀性、變量、函數(shù)、過程、可測(cè)性、程序效率、質(zhì)量保證、代碼編輯、編譯、審查、代碼測(cè)試、維護(hù)、宏等各方面的編碼要求
(5) 代碼檢查規(guī)則
對(duì)程序邏輯結(jié)構(gòu)檢查時(shí),所規(guī)定的規(guī)則,形成
(6) 缺陷檢查表
主要包括一些容易出錯(cuò)的地方和在以往工作中遇到的典型錯(cuò)誤,形成表格形式
| ? | 重要性 | 審查項(xiàng) | 結(jié)論 |
| 文件結(jié)構(gòu) | 重要 | 頭文件和定義文件的名稱是否合理 | ? |
2.????????靜態(tài)結(jié)構(gòu)分析法
在靜態(tài)結(jié)構(gòu)分析中,測(cè)試者通過使用測(cè)試工具分析程序源代碼的系統(tǒng)結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)接口、內(nèi)部控制邏輯等內(nèi)部結(jié)構(gòu),生成函數(shù)調(diào)用關(guān)系圖、模塊控制流圖、內(nèi)部文件調(diào)用關(guān)系圖等各種圖形圖表,清晰地標(biāo)識(shí)整個(gè)軟件的組成結(jié)構(gòu),便于理解,通過分析這些圖表,檢查軟件有沒有存在缺陷或錯(cuò)誤;包括控制流分析、數(shù)據(jù)據(jù)流分析、接口分析、表達(dá)式分析
(1)??????函數(shù)調(diào)用關(guān)系圖:通過應(yīng)用程序各函數(shù)之間的調(diào)用關(guān)系展示了系統(tǒng)的結(jié)構(gòu)。列出所有函數(shù),用連線表示調(diào)用關(guān)系,作用:
l?可以檢查函數(shù)的調(diào)用關(guān)系是否正確
l?是否存在孤立的函數(shù)而沒有被調(diào)用
l?明確函數(shù)被調(diào)用的頻繁度,對(duì)調(diào)用頻繁的函數(shù)可以重點(diǎn)檢查
(2)??????模塊控制流圖:由許多結(jié)點(diǎn)和連接結(jié)點(diǎn)的邊組成的圖形,其中每個(gè)結(jié)點(diǎn)代表一條或多條語句,邊表示控制流向,可以直觀地反映出一個(gè)函數(shù)的內(nèi)部結(jié)構(gòu)。
*例子1-GIS軟件:存在無法執(zhí)行的死代碼;有多個(gè)出口,可能沒有在所有出口進(jìn)行內(nèi)存釋放與回收,有內(nèi)存泄露的可能
*例子2-MIS軟件:有多個(gè)出口,存在內(nèi)存泄露的可能;有10邏輯判斷結(jié)點(diǎn),易出現(xiàn)邏輯錯(cuò)誤,降低可靠性,可能會(huì)破壞對(duì)CPU操作進(jìn)行優(yōu)化的處理,影響其運(yùn)行性能
3.????????靜態(tài)質(zhì)量度量法
(1)??????軟件質(zhì)量:根據(jù)ISO/IEC9126 國(guó)際標(biāo)準(zhǔn),包括以下六個(gè)方面:
l?功能性(functionality)
l?可靠性(reliability)
l?可用性(usability)
l?有效性(efficiency)
l?可維護(hù)性(maintainability)
l?輕便性(portability)
(2)??????質(zhì)量度量模型(從上到下)
l?質(zhì)量因素(Factors):與分類標(biāo)準(zhǔn)的計(jì)算方式相似,依據(jù)各分類標(biāo)準(zhǔn)取值組合權(quán)重方法來計(jì)算,依據(jù)結(jié)果將軟件質(zhì)量分為四個(gè)等級(jí),與分類標(biāo)準(zhǔn)等級(jí)內(nèi)容相同
l?分類標(biāo)準(zhǔn)(criteria):對(duì)某一軟件質(zhì)量分為不同的分類標(biāo)準(zhǔn),每個(gè)分類標(biāo)準(zhǔn)由一系列度量規(guī)則組成,每個(gè)規(guī)則分配一個(gè)權(quán)重,每個(gè)分類標(biāo)準(zhǔn)的取值由規(guī)則的取值與權(quán)重值計(jì)算得出,依據(jù)結(jié)果將軟件質(zhì)量分為四個(gè)等級(jí):
v?優(yōu)秀(excellent):符合本模型框加中的所有規(guī)則(可以接受)
v?良好(good):未大量偏離模型框架中的規(guī)則(可以接受)
v?一般(fair):違背了模型框架中的大量規(guī)則(可以接受)
v?較差(poor):無法保障正常的軟件可維護(hù)性(不可以接受)
l?度量規(guī)則(Metrics):使用代碼行數(shù)、注釋頻度等參數(shù)度量軟件各種行為屬性
四. 白盒測(cè)試方法-動(dòng)態(tài)測(cè)試(即設(shè)計(jì)測(cè)試用例的方法)
1.????????白盒測(cè)試的動(dòng)態(tài)測(cè)試原則-根據(jù)程序的控制結(jié)構(gòu)設(shè)計(jì)測(cè)試用例
(1)??????保證每個(gè)模塊的所有獨(dú)立路徑至少被使用一次
(2)??????對(duì)所有的邏輯值均測(cè)試true和false
(3)??????上下邊界及可操作范圍內(nèi)運(yùn)行所有循環(huán)
(4)??????檢查內(nèi)部數(shù)據(jù)結(jié)構(gòu)以確保其有效性
2.????????邏輯覆蓋法
(1)?????? 概述
???????? 邏輯覆蓋是通過對(duì)程序邏輯結(jié)構(gòu)的遍歷實(shí)現(xiàn)程序的覆蓋
(2)?????? 分類-依據(jù)覆蓋源程序語句的詳盡程度
l?語句覆蓋 SC(Statement Coverage)
l?判定覆蓋 DC(Decision coverage)
l?條件覆蓋 CC(Condition Coverage)
l?條件判定組合覆蓋 CDC(Condition/ DecisionCoverage)
l?多條件覆蓋 MCC (Multiple ConditionCoverage)
l?修改條件判定覆蓋 MCDC(Multiple ConditionDecision Coverage)
(3)?????? 語句覆蓋
l?選擇足夠多的測(cè)試數(shù)據(jù),使被測(cè)程序中每條語句至少執(zhí)行一次
l?缺點(diǎn):對(duì)程序執(zhí)行邏輯的覆蓋很低
(4)?????? 判定覆蓋
l?設(shè)計(jì)足夠多的測(cè)試用例,使得程序中的每一個(gè)判定至少獲得一次‘真’值和‘假’值,或者使得程序中的每一個(gè)取‘真’分支或取‘假’分支至少經(jīng)歷一次,因此又稱分支覆蓋
l?可以滿足語句覆蓋
l?缺點(diǎn):主要對(duì)整個(gè)表達(dá)式最終取值進(jìn)行度量,忽略了表達(dá)式內(nèi)部取值
(5)?????? 條件覆蓋
l?設(shè)計(jì)足夠多的測(cè)試用例,使得每一判定語句中每個(gè)邏輯條件的可能值至少滿足一次
l?不能夠滿足判定覆蓋
(6)?????? 條件判定組合覆蓋
l?設(shè)計(jì)足夠多的測(cè)試用例,使得判定中的每個(gè)條件的所有可能(真/假)至少出現(xiàn)一次,并且每個(gè)判定本身的判定結(jié)果也至少出現(xiàn)一次
l?缺點(diǎn):沒有考慮單個(gè)判定對(duì)整體結(jié)果的影響,無法發(fā)現(xiàn)邏輯錯(cuò)誤
(7)?????? 多條件覆蓋
l?也稱條件組合覆蓋,設(shè)計(jì)足夠多的測(cè)試用例,使得每個(gè)判定中條件的各種可能組合都至少出現(xiàn)一次(以數(shù)軸形式劃分區(qū)域,提取交集,建立最少的測(cè)試用例)
l?滿足條件覆蓋一定滿足判定覆蓋、條件覆蓋、條件判定組合覆蓋
l?缺點(diǎn):判定語句較多時(shí),條件組合值比較多
(8)?????? 修正條件判定覆蓋
l?每一個(gè)程序模塊的入口和出口點(diǎn)都要考慮至少要被調(diào)用一次,每個(gè)程序的判定到所有可能的結(jié)果值要至少轉(zhuǎn)換一次
l?程序的判定被分解為通過邏輯操作符(and,or)連接的bool條件,每個(gè)條件對(duì)于判定的結(jié)果值是獨(dú)立的
?
練習(xí)1:采用多條件覆蓋方法,對(duì)下程序進(jìn)行白盒測(cè)試用例設(shè)計(jì)
if ((a >1 )&&( b= = 0))
{
?? x=x/a;
}
if (( a = = 2)|| (x > 1 ))
{
?? x=x+1;
}
?
2005-4-22
第六章 白盒測(cè)試->四.白盒測(cè)試方法
3.????????基本路徑覆蓋
(1)??????概述
l?在程序控制流圖的基礎(chǔ)上,通過分析程序控制流圖的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑的集合,然后據(jù)此設(shè)計(jì)測(cè)試用例
l?設(shè)計(jì)出的測(cè)試用例要保證在測(cè)試中程序的每一條可執(zhí)行語句至少執(zhí)行一次
(2)??????程序控制流圖
l?控制流圖是描述程序控制流的一種方式
l?圖形符號(hào):圓圈代表一個(gè)結(jié)點(diǎn) 表示一個(gè)或多個(gè)無分支的語句或源程序語句
l?邊和點(diǎn)圈定的部分叫做區(qū)域。當(dāng)對(duì)區(qū)域計(jì)數(shù)時(shí),圖形外的一個(gè)部分也應(yīng)記為一個(gè)區(qū)域
l?判斷語句中的條件為復(fù)合條件時(shí),即條件表達(dá)式由一個(gè)或多個(gè)邏輯運(yùn)算符連接的邏輯表達(dá)式(a and b),則需要改變復(fù)合條件的判斷為一系列只有單個(gè)條件的嵌套的判斷
?? 圖形符號(hào)圖所示
?
?
?
?
(3)??????程序環(huán)路復(fù)雜性
l?程序的環(huán)路復(fù)雜性即McCabe復(fù)雜性度量,簡(jiǎn)單的定義為控制流圖的區(qū)域數(shù)
l?從程序的環(huán)路復(fù)雜性可導(dǎo)出程序基本路徑集合中的獨(dú)立路徑條數(shù),這是確保程序中每個(gè)可執(zhí)行語句至少執(zhí)行一次所必須的測(cè)試用例數(shù)目的上界
l?獨(dú)立路徑:包括一組以前沒有處理的語句或條件的一條路徑
l?通常環(huán)路復(fù)雜性可用以下三種方法求得:
v? 將環(huán)路復(fù)雜性定義為控制流圖中的區(qū)域數(shù)。
v? 設(shè)E為控制流圖的邊數(shù),N為圖的結(jié)點(diǎn)數(shù),則定義環(huán)路復(fù)雜性為 V(G)=E-N+2。
v? 若設(shè)P為控制流圖中的判定結(jié)點(diǎn)數(shù),則有 V(G)=P+1。
(4)??????基本路徑測(cè)試步驟
l?以詳細(xì)設(shè)計(jì)或源代碼為基礎(chǔ),導(dǎo)出程序的控制流圖
l?計(jì)算得到控制流圖G的環(huán)路復(fù)雜性v(g)
l?確定線性無關(guān)的路徑的基本集
l?生成測(cè)試用例,確保基本路徑集中每條路徑的執(zhí)行
?
五.其他白盒測(cè)試方法
1.????????域測(cè)試
(1)??????概述
是一種基于程序結(jié)構(gòu)的測(cè)試方法,基于對(duì)程序輸入空間(域)的分析,選擇適的測(cè)試點(diǎn)進(jìn)行測(cè)試
(2)??????Howden錯(cuò)誤分類-相對(duì)于程序路徑分類
l?域錯(cuò)誤:程序的控制流存在錯(cuò)誤,對(duì)于某一特定的輸入可能執(zhí)行的是一條錯(cuò)誤路徑,這種錯(cuò)誤稱為路徑錯(cuò)誤,也叫做域錯(cuò)誤
l?計(jì)算型錯(cuò)誤:對(duì)于特定輸入執(zhí)行的路徑正確,但賦值語句的錯(cuò)誤導(dǎo)致輸出結(jié)果錯(cuò)誤,稱為計(jì)算型錯(cuò)誤
l?丟失路徑錯(cuò)誤:由于程序中的某處少了一個(gè)判定謂詞而引起的
(3)??????測(cè)試?yán)硐虢Y(jié)果:檢驗(yàn)輸入空間的每一個(gè)輸入元素是否都產(chǎn)生正確的結(jié)果
(4)??????缺點(diǎn)
l?為進(jìn)行域測(cè)試對(duì)程序提出的限制過多
l?當(dāng)程序存在很多路徑時(shí),所需的測(cè)試點(diǎn)很多
2.????????符號(hào)測(cè)試
(1)概述
l?基本思想是允許程序的輸入不僅僅是具體的數(shù)值數(shù)據(jù),而且包括符號(hào)值,符號(hào)值可以是基本的符號(hào)變量值,也可以是符號(hào)變量值的表達(dá)式。
l?符號(hào)測(cè)試執(zhí)行的是代數(shù)運(yùn)算,可以作為普通測(cè)試的一個(gè)擴(kuò)充
l?符號(hào)測(cè)試可以看作是程序測(cè)試和程序驗(yàn)證的一個(gè)折衷辦法
(2)測(cè)試?yán)硐肭闆r:程序中僅有有限的幾條執(zhí)行路徑,如果都完成了符號(hào)測(cè)試,就可把握的確認(rèn)程序的正確性了
(3)缺點(diǎn)
l?分支問題
l?二義性問題
l?大程序問題
3.????????Z路徑覆蓋
(1)??????概述
對(duì)循環(huán)機(jī)制進(jìn)行簡(jiǎn)化,減少路徑的數(shù)量,使得覆蓋所有路徑成為可能,簡(jiǎn)化循環(huán)意義下的路徑覆蓋稱為Z路徑覆蓋
(2)??????循環(huán)簡(jiǎn)化:限制循環(huán)次數(shù),只考慮循環(huán)一次或零次情況
4.????????程序變異
(1)概述
是一種錯(cuò)誤驅(qū)動(dòng)測(cè)試
錯(cuò)誤驅(qū)動(dòng)測(cè)試:指該方法是針對(duì)某類特定程序錯(cuò)誤的,即專門測(cè)試某類錯(cuò)誤是否存在
錯(cuò)誤驅(qū)動(dòng)測(cè)試分類:程序強(qiáng)變異和程序弱變異
(2)優(yōu)點(diǎn):便于集中目標(biāo)對(duì)軟件危害最大的可能錯(cuò)誤,提高測(cè)試效率,降低成本
六. 白盒測(cè)試綜合策略
1.?????? 白盒測(cè)試中測(cè)試方法的選擇策略
(1)?????在測(cè)試中,首先盡量使用測(cè)試工作進(jìn)行靜態(tài)結(jié)構(gòu)分析
(2)?????采用先靜態(tài)后動(dòng)態(tài)的組合方式,先進(jìn)行靜態(tài)結(jié)構(gòu)分析,代碼檢查和靜態(tài)質(zhì)量度量,然后現(xiàn)進(jìn)行覆蓋測(cè)試
(3)?????利用靜態(tài)結(jié)構(gòu)分析的結(jié)果,通過代碼檢查和動(dòng)態(tài)測(cè)試的方法對(duì)結(jié)果進(jìn)一步確認(rèn),使測(cè)試工作更為有效
(4)?????覆蓋率測(cè)試是白盒測(cè)試的重點(diǎn),使用基本路徑測(cè)試達(dá)到語句覆蓋標(biāo)準(zhǔn);對(duì)于重點(diǎn)模塊,應(yīng)使用多種覆蓋標(biāo)準(zhǔn)衡量代碼的覆蓋率
(5)?????不同測(cè)試階段,側(cè)重點(diǎn)不同
l?單元測(cè)試:以代碼檢查、邏輯覆蓋
l?集成測(cè)試:增加靜構(gòu)結(jié)構(gòu)分析、靜態(tài)質(zhì)量度量
l?系統(tǒng)測(cè)試:根據(jù)黑盒測(cè)試結(jié)果,采用白盒測(cè)試
2.??????最少測(cè)試用例數(shù)計(jì)算
l?將構(gòu)成循環(huán)操作的重復(fù)型結(jié)構(gòu)用選擇結(jié)構(gòu)代替,因此在N-S圖中只存在順序和分支操作
l?N-S圖按分支結(jié)構(gòu)分層,整個(gè)程序的最少測(cè)試用例數(shù)為每個(gè)分層中最少測(cè)試用例數(shù)的乘積
3.??????測(cè)試覆蓋標(biāo)準(zhǔn)
l?Foster的ESTCA覆蓋標(biāo)準(zhǔn)
l?Woodward等人的層次LCSAJ覆蓋標(biāo)準(zhǔn)
?
總結(jié):黑盒測(cè)試與白盒測(cè)試
?
【例6】下面是快速排序算法中的一趟劃分算法,其中datalist是數(shù)據(jù)表,它有兩個(gè)數(shù)據(jù)成員:一是元素類型為Element的數(shù)組V,另一個(gè)是數(shù)組大小n。算法中用到兩個(gè)操作,一是取某數(shù)組元素V[i]的關(guān)鍵碼操作getKey ( ),一是交換兩數(shù)組元素內(nèi)容的操作Swap( ):
? ?int Partition ( datalist &list, int low, int high ) {
? ?//在區(qū)間[ low, high ]以第一個(gè)對(duì)象為基準(zhǔn)進(jìn)行一次劃分,k返回基準(zhǔn)對(duì)象回放位置。
int ?k = low; ?Element pivot = list.V[low]; ? ?//基準(zhǔn)對(duì)象
? ?for ( int i = low+1; i <= high; i++ ) ? ? ??//檢測(cè)整個(gè)序列,進(jìn)行劃分
? ? ? if ( list.V[i].getKey ( ) < pivot.getKey( ) &&++ k != i )
? ? ? ? ?Swap ( list.V[k], list.V[i] ); ? ?? ? ?//小于基準(zhǔn)的交換到左側(cè)去
? ? ? Swap ( list.V[low], list.V[k] ); ? ? ??//將基準(zhǔn)對(duì)象就位 ?
? ? ? return k; ? ? ? ? ? ??//返回基準(zhǔn)對(duì)象位置
? ?}
?(1) 試畫出它的程序流程圖;
?(2) 試?yán)寐窂礁采w方法為它設(shè)計(jì)足夠的測(cè)試用例(循環(huán)次數(shù)限定為0次,1次和2次)。
答案:(1)流程圖如下。
? ? ? ?
(2) 測(cè)試用例設(shè)計(jì)
?
循環(huán)次數(shù) ? ? ? ? ? ??輸 入 條 件 ? ?? ? 輸 出 結(jié) 果 ? ?執(zhí) 行 路 徑
?low ?high ?k ?i ?V[0] ?V[1] ?V[2] ?k?i ?V[0] ?V[1] ?V[2] ?
?0 ? 0 ? 0 ?0 ?1 ? - ? - ? - ?0?1 ? - ? - ? - ?①③
?1 ? 0 ? 1 ?0 ?1 ? 1 ? 2 ? - ?0?2 ? 1 ? 2 ? - ?①②⑤⑥③
? 0 ? 1 ?0 ?1 ? 2 ? 1 ? - ?1 ?2? 1 ? 2 ? - ?①②④⑥③
? 0 ? 1 ?0 ?1 ? 1 ? 1 ? - ?0 ?2? 1 ? 1 ? - ?①②⑤⑥③
?2 ? 0 ? 2 ?0 ?1 ? 1 ? 2 ? 3 ?0?3 ? 1 ? 2 ? 3 ?①②⑤⑥②⑤⑥③
? 0 ? 2 ?0 ?1 ? 1 ? 2 ? 1 ?0 ?3? 1 ? 2 ? 1 ?①②⑤⑥②⑤⑥③
? 0 ? 2 ?0 ?1 ? 2 ? 3 ? 1 ?1 ?3? 1 ? 2 ? 3 ?①②⑤⑥②④⑥③
? 0 ? 2 ?0 ?1 ? 3 ? 2 ? 1 ?2 ?3? 1 ? 2 ? 3 ?①②④⑥②④⑥③
? 0 ? 2 ?0 ?1 ? 2 ? 1 ? 2 ?1 ?3? 1 ? 2 ? 2 ?①②④⑥②⑤⑥③
? 0 ? 2 ?0 ?1 ? 2 ? 1 ? 3 ?1 ?3? 1 ? 2 ? 3 ?①②④⑥②⑤⑥③
? 0 ? 2 ?0 ?1 ? 1 ? 1 ? 2 ?0 ?3? 1 ? 1 ? 2 ?①②⑤⑥②⑤⑥③
? 0 ? 2 ?0 ?1 ? 2 ? 2 ? 1 ?1 ?3? 1 ? 2 ? 2 ?①②⑤⑥②④⑥③
? 0 ? 2 ?0 ?1 ? 2 ? 2 ? 2 ?0 ?3? 2 ? 2 ? 2 ?①②⑤⑥②⑤⑥③
? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ?? ? ?
分析:畫程序流程圖是設(shè)計(jì)測(cè)試用例的關(guān)鍵。從以往同學(xué)解題的經(jīng)驗(yàn)來看,在畫流程圖時(shí)就出錯(cuò)了。所以首先要把流程圖中的邏輯關(guān)系搞清楚再畫出正確的流程圖。考慮測(cè)試用例設(shè)計(jì)需要首先有測(cè)試輸入數(shù)據(jù),還要有預(yù)期的輸出結(jié)果。對(duì)于此例,控制循環(huán)次數(shù)靠循環(huán)控制變量i和循環(huán)終值high。循環(huán)0次時(shí),取low = high,此時(shí)一次循環(huán)也不做。循環(huán)一次時(shí),取low +1 = high,循環(huán)二次時(shí),取low+2 = high。
根據(jù)BRO策略,條件V[i] < pivot&& ++k≠i的約束集合為 { (<, < ), (<, =), (=, <), (>, < ) },因此,測(cè)試用例設(shè)計(jì)為:
循環(huán)次數(shù) ? ? ? ? ? ??輸 入 條 件 ? ?? ? ? 輸 出 結(jié) 果 ?
?low ?high ?k ?i ?V[0] ?V[1] ?V[2]?pivot ?k ?i ?V[0] ?V[1] ?V[2] ?
?0 ? 0 ? 0 ?0 ?1 ? - ? - ? - ? -?0 ?1 ? - ? - ? - ?
?1 ? 0 ? 1 ?0 ?1 ? 1 ? 2 ? ? 1?0 ?2 ? 1 ? 2 ? ?(>, <)
? 0 ? 1 ?0 ?1 ? 2 ? 1 ? ? 2 ?1?2 ? 2 1 ? 1 2 ? ?(<, =)
? 0 ? 1 ?0 ?1 ? 1 ? 1 ? ? 1 ?0 ?2? 1 ? 1 ? ?(=, <)
? 0 ? 1 ?0 ?1 ? 不 ? 可 ? 達(dá) ? ?? ? ? ? ?(<, <)
?2 ? ? 0 ? 2 ?0 ?1 ? 1 ? 2 ? 3? 1 ?00 ?23 ? 1 1 ? 2 2 ? 3 3 ?(>, <)(>, <)
? 0 ? 2 ?0 ?1 ? 1 ? 2 ? 1 ? 1 ?00?23 ? 1 1 ? 2 2 ? 1 1 ?(>, <) (=, <)
? 0 ? 2 ?0 ?1 ? 2 ? 3 ? 1 ? 2 ?01?23 ? 2 2 1 ? 3 1 2 ? 1 3 3 ?(>, <) (<, <)
? 0 ? 2 ?0 ?1 ? 不 ? 可 ? 達(dá) ? ?? ? ? ? ?(>, <) (<, =)
? 0 ? 2 ?0 ?1 ? 3 ? 2 ? 1 ? 3 ?12?23 ? 3 3 1 ? 2 2 2 ? 1 1 3 ?(<, =) (<, =)
? 0 ? 2 ?0 ?1 ? 2 ? 1 ? 2 ? 2 ?11?23 ? 2 2 1 ? 1 1 2 ? 2 2 2 ?(<, =) (=, <)
? 0 ? 2 ?0 ?1 ? 2 ? 1 ? 3 ? 2 ?11?23 ? 2 2 1 ? 1 1 2 ? 3 3 3 ?(<, =) (>, <)
? 0 ? 2 ?0 ?1 ? 不 ? 可 ? 達(dá) ? ?? ? ? ? ?(<, =) (<, <)
? 0 ? 2 ?0 ?1 ? 1 ? 1 ? 2 ? 1 ?00?23 ? 1 1 ? 1 1 ? 2 2 ?(=, <) (>, <)
? 0 ? 2 ?0 ?1 ? 2 ? 2 ? 1 ? 2 ?01?23 ? 2 2 1 ? 2 1 2 ? 1 2 2 ?(=, <) (<, <)
? 0 ? 2 ?0 ?1 ? 2 ? 2 ? 2 ? 2 ?00?23 ? 2 2 ? 2 2 ? 2 2 ?(=, <) (=, <)
? 0 ? 2 ?0 ?1 ? 不 ? 可 ? 達(dá) ? ?? ? ? ? ?(=, <) (<, =)
? 0 ? 2 ?0 ?1 ? 不 ? 可 ? 達(dá) ? ?? ? ? ? ?(<, <) (*, *)
? ? ? ?
四、習(xí)題
【5-1】從供選擇的答案中選出應(yīng)填入下列( ? )中的字句。
軟件測(cè)試的目的是( ?A ?)。為了提高測(cè)試的效率,應(yīng)該( ?B ?)。使用白盒測(cè)試方法時(shí),確定測(cè)試數(shù)據(jù)應(yīng)根據(jù)( ?C ?)和指定的覆蓋標(biāo)準(zhǔn)。與設(shè)計(jì)測(cè)試數(shù)據(jù)無關(guān)的文檔是( ?D ?)。
軟件的集成測(cè)試工作最好由( ?E ?)承擔(dān),以提高集成測(cè)試的效果。
供選擇的答案:
?A. ?① 評(píng)價(jià)軟件的質(zhì)量 ? ?? ?② 發(fā)現(xiàn)軟件的錯(cuò)誤
③ 找出軟件中的所有錯(cuò)誤 ? ?④ 證明軟件是正確的
?B. ?① 隨機(jī)地選取測(cè)試數(shù)據(jù) ? ??
② 取一切可能的輸入數(shù)據(jù)作為測(cè)試數(shù)據(jù)
③ 在完成編碼以后制定軟件的測(cè)試計(jì)劃
④ 選擇發(fā)現(xiàn)錯(cuò)誤的可能性大的數(shù)據(jù)作為測(cè)試數(shù)據(jù)
?C. ?① 程序的內(nèi)部邏輯 ? ?? ?② 程序的復(fù)雜程度
③ 使用說明書 ? ?? ?④ 程序的功能
?D. ?① 該軟件的設(shè)計(jì)人員 ? ??② 程序的復(fù)雜程度
③ 源程序 ? ?? ? ?④ 項(xiàng)目開發(fā)計(jì)劃
?E. ?① 該軟件的設(shè)計(jì)人員 ? ??② 該軟件開發(fā)組的負(fù)責(zé)人
③ 該軟件的編程人員 ? ??④ 不屬于該軟件開發(fā)組的軟件設(shè)計(jì)人員
【5-2】請(qǐng)從供選擇的答案中選出應(yīng)填入下列( ? ? )中的字句。
程序的三種基本控制結(jié)構(gòu)是( ?A ?)。它們的共同點(diǎn)是( ?B ?)。結(jié)構(gòu)化程序設(shè)計(jì)的一種基本方法是( ?C ?)。軟件測(cè)試的目的是( ?D ?)。軟件調(diào)試的目的是( ?E ?)。
供選擇的答案:
?A. ?① 過程,子程序,分程序 ? ??② 順序,條件,循環(huán)
③ 遞歸,堆棧,隊(duì)列 ? ?? ?④ 調(diào)用,返回,轉(zhuǎn)移
?B. ?① 不能嵌套使用 ? ?? ? ?② 只能用來寫簡(jiǎn)單的程序
③ 已經(jīng)用硬件實(shí)現(xiàn) ? ?? ? ?④ 只有一個(gè)入口和一個(gè)出口
?C. ?① 篩選法 ? ?② 遞歸法 ? ?③ 歸納法 ? ?④ 逐步求精法
?D. ?① 證明程序中沒有錯(cuò)誤 ? ??② 發(fā)現(xiàn)程序中的錯(cuò)誤
③ 測(cè)量程序的動(dòng)態(tài)特性 ? ??④ 檢查程序中的語法錯(cuò)誤
?E. ?① 找出錯(cuò)誤所在并改正之 ? ??② 排除存在錯(cuò)誤的可能性
③ 對(duì)錯(cuò)誤性質(zhì)進(jìn)行分類 ? ??④ 統(tǒng)計(jì)出錯(cuò)的次數(shù)
【5-3】從下列關(guān)于軟件測(cè)試的敘述中,選出5條正確的敘述。
?(1) 用黑盒法測(cè)試時(shí),測(cè)試用例是根據(jù)程序內(nèi)部邏輯設(shè)計(jì)的。
?(2) 盡量用公共過程或子程序去代替重復(fù)的代碼段。
?(3) 測(cè)試是為了驗(yàn)證該軟件已正確地實(shí)現(xiàn)了用戶的要求。
?(4) 對(duì)于連鎖型分支結(jié)構(gòu),若有n個(gè)判定語句,則有2n條路徑。
?(5) 盡量采用復(fù)合的條件測(cè)試,以避免嵌套的分支結(jié)構(gòu)。
?(6) GOTO語句概念簡(jiǎn)單,使用方便,在某些情況下,保留GOTO語句反能使寫出的程序更加簡(jiǎn)潔。
?(7) 發(fā)現(xiàn)錯(cuò)誤多的程序模塊,殘留在模塊中的錯(cuò)誤也多。
?(8) 黑盒測(cè)試方法中最有效的是因果圖法。
?(9) 在做程序的單元測(cè)試時(shí),樁(存根)模塊比驅(qū)動(dòng)模塊容易編寫。
?(10) 程序效率的提高主要應(yīng)通過選擇高效的算法來實(shí)現(xiàn)。
【5-4】從供選擇的答案中選出同下列關(guān)于軟件測(cè)試的各條敘述關(guān)系最密切的字句。
?(1) 對(duì)可靠性要求很高的軟件,例如操作系統(tǒng),由第三者對(duì)源代碼進(jìn)行逐行檢查。
?(2) 已有的軟件被改版時(shí),由于受到變更的影響,改版前正常的功能可能發(fā)生異常,性能也可能下降。因此,對(duì)變更的軟件進(jìn)行測(cè)試是必要的。
?(3) 在意識(shí)到被測(cè)試模塊的內(nèi)部結(jié)構(gòu)或算法的情況下進(jìn)行測(cè)試。
?(4) 為了確認(rèn)用戶的需求,先做出系統(tǒng)的主要部分,提交給用戶試用。
?(5) 在測(cè)試具有層次結(jié)構(gòu)的大型軟件時(shí),有一種方法是從上層模塊開始,由上到下進(jìn)行測(cè)試。此時(shí),有必要用一些模塊替代尚未測(cè)試過的下層模塊。
供選擇的答案:
?A ~ E: ?① 仿真器 ? ? ② 代碼審查 ? ③ 模擬器 ? ? ④ 樁 ? ?? ?⑤ 驅(qū)動(dòng)器
⑥ 域測(cè)試 ? ? ⑦ 黑盒測(cè)試 ? ?⑧ 原型 ? ?? ⑨ 白盒測(cè)試 ? ?⑩ 退化測(cè)試
【5-5】對(duì)小的程序進(jìn)行窮舉測(cè)試是可能的,用窮舉測(cè)試能否保證程序是百分之百正確呢?
【5-6】在任何情況下單元測(cè)試都是可能的嗎?都是需要的嗎?
【5-7】從供選擇的答案中選出應(yīng)填入下面有關(guān)軟件測(cè)試的敘述的( ? ?)內(nèi)的正確答案。
軟件測(cè)試方法可分為黑盒測(cè)試法和白盒測(cè)試法兩種。
黑盒測(cè)試法是通過分析程序的( ?A ?)來設(shè)計(jì)測(cè)試用例的方法。除了測(cè)試程序外,它還適用于對(duì)( ?B?)階段的軟件文檔進(jìn)行測(cè)試。
白盒測(cè)試法是根據(jù)程序的( ?C ?)來設(shè)計(jì)測(cè)試用例的方法。除了測(cè)試程序外,它也適用于對(duì)( ?D ?)階段的軟件文檔進(jìn)行測(cè)試。
白盒法測(cè)試程序時(shí)常按照給定的覆蓋條件選取測(cè)試用例。( ?E ?)覆蓋比( ?F ?)覆蓋嚴(yán)格,它使得每一個(gè)判定的每一條分支至少經(jīng)歷一次。( ?G ?)覆蓋既是判定覆蓋,又是條件覆蓋,但它并不保證使各種條件都能取到所有可能的值。( ?H ?)覆蓋比其他條件都要嚴(yán)格,但它不能保證覆蓋程序中的每一條路徑。
單元測(cè)試一般以( ?I ?)為主,測(cè)試的依據(jù)是( ?J ?)。
供選擇的答案:
?A, C:① 應(yīng)用范圍 ? ?② 內(nèi)部邏輯 ? ??③ 功能 ? ??④ 輸入數(shù)據(jù)
?B, D:① 編碼 ? ??② 軟件詳細(xì)設(shè)計(jì) ?③ 軟件總體設(shè)計(jì) ?④ 需求分析
?E, F, G, H:① 語句 ? ?② 判定 ? ?? ?③ 條件 ? ??④ 判定/條件
? ⑤ 多重條件 ? ?⑥ 路徑
?I:① 白盒法 ? ?? ? ?② 黑盒法
?J:① 模塊功能規(guī)格說明 ? ?② 系統(tǒng)模塊結(jié)構(gòu)圖 ? ?③ 系統(tǒng)需求規(guī)格說明
【5-8】從供選擇的答案中選出應(yīng)該填入下列關(guān)于軟件測(cè)試的敘述的( ?)內(nèi)的正確答案。
軟件測(cè)試中常用的靜態(tài)分析方法是( ?A ?)和( ?B ?)。( ?B ?)用于檢查模塊或子程序間的調(diào)用是否正確。分析方法(白盒方法)中常用的方法是( ?C ?)方法。非分析方法(黑盒方法)中常用的方法是( ?D ?)方法和( ?E ?)方法。( ?E ?)方法根據(jù)輸出對(duì)輸入的依賴關(guān)系設(shè)計(jì)測(cè)試用例。
供選擇的答案:
?A ~ B: ?① 引用分析 ? ? ② 算法分析 ? ?③ 可靠性分析 ? ④ 效率分析 ?
? ? ? ?⑤ 接口分析 ? ? ⑥ 操作分析
?C ~ E: ?① 路徑測(cè)試 ? ? ② 等價(jià)類 ? ??③ 因果圖 ? ? ④ 歸納測(cè)試
⑤ 綜合測(cè)試 ? ? ⑥ 追蹤 ? ?? ?⑦ 深度優(yōu)先 ? ? ⑧ 調(diào)試
⑨ 相對(duì)圖
【5-9】下面是選擇排序的程序,其中datalist是數(shù)據(jù)表,它有兩個(gè)數(shù)據(jù)成員:一是元素類型為Element的數(shù)組V,另一個(gè)是數(shù)組大小n。算法中用到兩個(gè)操作,一是取某數(shù)組元素V[i]的關(guān)鍵碼操作getKey ( ),一是交換兩數(shù)組元素內(nèi)容的操作Swap( )::
? ?void SelectSort ( datalist & list ) {
? ?//對(duì)表list.V[0]到list.V[n-1]進(jìn)行排序,?n是表當(dāng)前長(zhǎng)度。
? ? ? for ( int i = 0; i < list.n-1; i++ ) {
? ? ? int k = i; ? ? ? ? //在list.V[i].key到list.V[n-1].key中找具有最小關(guān)鍵碼的對(duì)象
? ? ? for ( int j = i+1; ?j < list.n; ?j++)
? ? ? ? ?if ( list.V[j].getKey ( ) < list.V[k].getKey( ) ) k = j; ? ?//當(dāng)前具最小關(guān)鍵碼的對(duì)象
? ? ? if ( k != i ) Swap ( list.V[i], list.V[k] ); ? ?? ? ?//交換
? ? ? ? ? }
? ? ? ?}
?(1) 試計(jì)算此程序段的McCabe復(fù)雜性;
?(2) 用基本路徑覆蓋法給出測(cè)試路徑;
?(3) 為各測(cè)試路徑設(shè)計(jì)測(cè)試用例。
【5-10】根據(jù)下面給出的規(guī)格說明,利用等價(jià)類劃分的方法,給出足夠的測(cè)試用例。
“一個(gè)程序讀入三個(gè)整數(shù)。把此三個(gè)數(shù)值看成是一個(gè)三角形的三個(gè)邊。這個(gè)程序要打印出信息,說明這個(gè)三角形是三邊不等的、是等腰的、還是等邊的。”
【5-11】設(shè)要對(duì)一個(gè)自動(dòng)飲料售貨機(jī)軟件進(jìn)行黑盒測(cè)試。該軟件的規(guī)格說明如下:
“有一個(gè)處理單價(jià)為1元5角錢的盒裝飲料的自動(dòng)售貨機(jī)軟件。若投入1元5角硬幣,按下“可樂”、“雪碧”或“紅茶”按鈕,相應(yīng)的飲料就送出來。若投入的是2元硬幣,在送出飲料的同時(shí)退還5角硬幣。”
?(1) 試?yán)靡蚬麍D法,建立該軟件的因果圖;
?(2) 設(shè)計(jì)測(cè)試該軟件的全部測(cè)試用例。
【5-12】對(duì)一個(gè)長(zhǎng)度為100,000條指令的程序進(jìn)行測(cè)試,記錄下來的數(shù)據(jù)如下:
? ú 測(cè)試開始, 發(fā)現(xiàn)錯(cuò)誤個(gè)數(shù)為0;
? ú 經(jīng)過160小時(shí)的測(cè)試, 累計(jì)改正100個(gè)錯(cuò)誤, 此時(shí), MTTF = 0.4小時(shí);
? ú 又經(jīng)過160小時(shí)的測(cè)試, 累計(jì)改正300個(gè)錯(cuò)誤, 此時(shí), MTTF = 2小時(shí);
?(1) 估計(jì)程序中固有的錯(cuò)誤總數(shù);
?(2) 為使MTTF達(dá)到10小時(shí), 必須測(cè)試和調(diào)試這個(gè)程序多長(zhǎng)時(shí)間?
?(3) 給出MTTF與測(cè)試時(shí)間t之間的函數(shù)關(guān)系。
【5-13】應(yīng)該由誰來進(jìn)行確認(rèn)測(cè)試?是軟件開發(fā)者還是軟件用戶?為什么?
五、習(xí)題解答
【5-1】A. ② ? B. ④ ? C. ①? D. ④ ? E. ④
軟件測(cè)試的目的是軟件中的錯(cuò)誤。因?yàn)椴豢赡馨阉锌赡艿妮斎霐?shù)據(jù)都拿來測(cè)試(時(shí)間花費(fèi)不起),為了提高測(cè)試的效率,應(yīng)該選擇發(fā)現(xiàn)錯(cuò)誤的可能性大的數(shù)據(jù)作為測(cè)試數(shù)據(jù)。
使用白盒測(cè)試方法時(shí),確定測(cè)試數(shù)據(jù)應(yīng)根據(jù)程序的內(nèi)部邏輯和指定的覆蓋標(biāo)準(zhǔn),可以不考慮程序的功能。與設(shè)計(jì)測(cè)試數(shù)據(jù)無關(guān)的文檔是項(xiàng)目開發(fā)計(jì)劃。
軟件的集成測(cè)試工作最好由不屬于該軟件開發(fā)組的軟件設(shè)計(jì)人員承擔(dān),以提高集成測(cè)試的效果。
【5-2】A. ② ? B. ④? C. ④ ? D. ② ? E. ①
?1966年,Bohm與Jacopini提出任何單入口單出口的沒有“死循環(huán)”的程序都能由三種最基本的控制結(jié)構(gòu)構(gòu)造出來。這三種基本控制結(jié)構(gòu)就是“順序結(jié)構(gòu)”、“選擇IF-THEN-ELSE結(jié)構(gòu)”、“重復(fù)DO-WHILE或DO-UNTIL結(jié)構(gòu)”。 它們的共同點(diǎn)是只有一個(gè)入口和一個(gè)出口。E.W.Dijkstra提出了程序要實(shí)現(xiàn)結(jié)構(gòu)化的主張,并將這一類程序設(shè)計(jì)稱為結(jié)構(gòu)化程序設(shè)計(jì)。這種方法的一個(gè)重要原則就是采用自頂向下、逐步求精的方法編寫程序。N.Wirth曾做過如下說明:“我們對(duì)付一個(gè)復(fù)雜問題的最重要的方法就是抽象。 因此,對(duì)于一個(gè)復(fù)雜的問題,不要急于馬上用計(jì)算機(jī)指令、數(shù)字和邏輯符號(hào)來表示它,而應(yīng)當(dāng)先用較自然的抽象的語句來表示,從而得到抽象的程序。抽象程序?qū)Τ橄蟮臄?shù)據(jù)類型進(jìn)行某些特定的運(yùn)算,并用一些合適的記號(hào)(可以是自然語言)來表示。下一步對(duì)抽象程序再做分解,進(jìn)入下一個(gè)抽象的層次。這樣的細(xì)化過程一直進(jìn)行下去,直到程序能被計(jì)算機(jī)接受為止。此時(shí)的程序已經(jīng)是用某種高級(jí)語言或機(jī)器指令書寫的了。”
軟件調(diào)試則是在進(jìn)行了成功的測(cè)試之后才開始的工作。它與軟件測(cè)試不同,軟件測(cè)試的目的是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤,但進(jìn)一步診斷和改正程序中潛在的錯(cuò)誤,則是調(diào)試的任務(wù)。調(diào)試活動(dòng)由兩部分組成:① 確定程序中可疑錯(cuò)誤的確切性質(zhì)和位置。② 對(duì)程序(設(shè)計(jì),編碼)進(jìn)行修改,排除這個(gè)錯(cuò)誤。
【5-3】正確的敘述有(4)、(5)、(6)、(7)、(10)。
黑盒測(cè)試主要是根據(jù)程序的有關(guān)功能規(guī)格說明和覆蓋準(zhǔn)則來設(shè)計(jì)測(cè)試用例,進(jìn)行測(cè)試的,不是根據(jù)程序的內(nèi)部邏輯來設(shè)計(jì)測(cè)試用例,這是白盒測(cè)試做的事情。在所有黑盒測(cè)試方法中,最有效的不是因果圖法,而是邊界值分析方法。測(cè)試的目的是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤,其附帶的收獲才是驗(yàn)證該軟件已正確地實(shí)現(xiàn)了用戶的要求。測(cè)試的一條重要原則是:發(fā)現(xiàn)錯(cuò)誤多的程序模塊,殘留在模塊中的錯(cuò)誤也多。軟件可靠性模型(Shooman)就是依據(jù)這個(gè)原則建立它的公式的。對(duì)于連鎖型分支結(jié)構(gòu),若有n個(gè)判定語句,則有2n條路徑。因此,隨著n的增大,路徑數(shù)增長(zhǎng)非常快。單元測(cè)試時(shí),因?yàn)闃赌K要模擬子模塊的功能,這不是一件容易的事情,而驅(qū)動(dòng)模塊只是控制被測(cè)模塊的執(zhí)行,所以樁模塊的編寫比驅(qū)動(dòng)模塊的編寫要難得多。
在程序設(shè)計(jì)風(fēng)格方面,如果重復(fù)的代碼段沒有明顯的功能,不可以抽取出來形成獨(dú)立的公共過程或子程序,只有在這些代碼段表現(xiàn)出獨(dú)立的功能時(shí),才可把它們抽取出來形成獨(dú)立的公共過程或子程序。另外,程序效率的提高主要應(yīng)通過選擇高效的算法或使用高效的語言編譯器來實(shí)現(xiàn)。GOTO語句概念簡(jiǎn)單,使用方便,在某些情況下,保留GOTO語句反能使寫出的程序更加簡(jiǎn)潔,這句話是正確的。
【5-4】(1) ② ? (2) ⑩? (3) ⑨ ? (4) ⑧ ? (5) ④
(1) 對(duì)可靠性要求很高的軟件,由第三者對(duì)源代碼進(jìn)行逐行檢查,這是代碼審查。
(2) 軟件變更時(shí)可能發(fā)生退化現(xiàn)象:原來正常的功能可能發(fā)生異常,性能也可能下降。因此,對(duì)變更的軟件要進(jìn)行退化測(cè)試。
(3) 基于被測(cè)試模塊的內(nèi)部結(jié)構(gòu)或算法設(shè)計(jì)測(cè)試用例進(jìn)行測(cè)試,這是白盒測(cè)試。
(4) 為了確認(rèn)用戶的需求,先做出系統(tǒng)的原型,提交給用戶試用。
(5) 自頂向下對(duì)具有層次結(jié)構(gòu)的大型軟件進(jìn)行集成測(cè)試時(shí),需要設(shè)計(jì)一些虛擬模塊來替代尚未測(cè)試過的下層模塊,這些模塊叫做樁模塊。
【5-5】對(duì)小程序進(jìn)行窮舉測(cè)試,不見得能保證程序百分之百正確。所謂窮舉測(cè)試是拿所有可能的輸入數(shù)據(jù)來作為測(cè)試用例(黑盒測(cè)試),或覆蓋程序中所有可能的路徑(白盒測(cè)試)。對(duì)于小程序來說,實(shí)際上并不能真正作到窮舉測(cè)試。例如前面講過,一個(gè)小程序P只有兩個(gè)輸入X和Y及輸出Z,在字長(zhǎng)為32位的計(jì)算機(jī)上運(yùn)行。如果X、Y只取整數(shù),考慮把所有的X、Y值都做為測(cè)試數(shù)據(jù),按黑盒方法進(jìn)行窮舉測(cè)試,這樣做可能采用的測(cè)試數(shù)據(jù)組(Xi,Yi),基數(shù)(radix)i的最大可能數(shù)目為:232×232=264。如果程序P測(cè)試一組X、Y數(shù)據(jù)需要1毫秒,而且假定一天工作24小時(shí),一年工作365天,要完成264組測(cè)試,需要5億年。
【5-6】單元測(cè)試又稱模塊測(cè)試,是針對(duì)軟件設(shè)計(jì)的最小單位─程序模塊,進(jìn)行正確性檢驗(yàn)的測(cè)試工作。其目的在于發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種差錯(cuò)。單元測(cè)試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測(cè)試用例。多個(gè)模塊可以平行地獨(dú)立進(jìn)行單元測(cè)試。
單元測(cè)試是在編碼階段完成的,每編寫出一個(gè)程序模塊,就開始做這個(gè)模塊的單元測(cè)試,所以只要采用模塊化方法開發(fā)軟件,單元測(cè)試都是必需的。它可由編寫程序的人來完成。因?yàn)樗枰鶕?jù)程序的內(nèi)部結(jié)構(gòu)設(shè)計(jì)測(cè)試用例,對(duì)于那些不了解程序內(nèi)部細(xì)節(jié)的人,這種測(cè)試無法進(jìn)行。
【5-7】A. ③ ?B. ④?C. ② ?D. ② ?E. ②?F. ① ?G. ④ ?H. ⑤?I. ① ?J. ①
軟件測(cè)試方法可分為黑盒測(cè)試法和白盒測(cè)試法兩種。黑盒測(cè)試法是基于程序的功能來設(shè)計(jì)測(cè)試用例的方法。除了測(cè)試程序外,它還適用于對(duì)需求分析階段的軟件文檔進(jìn)行測(cè)試。白盒測(cè)試法是根據(jù)程序的內(nèi)部邏輯來設(shè)計(jì)測(cè)試用例的方法。除了測(cè)試程序外,它也適用于對(duì)軟件詳細(xì)設(shè)計(jì)階段的軟件文檔進(jìn)行測(cè)試。
白盒法測(cè)試程序時(shí)常按照給定的覆蓋條件選取測(cè)試用例。判定覆蓋比語句覆蓋嚴(yán)格,它使得每一個(gè)判定的每一條分支至少經(jīng)歷一次。判定/條件覆蓋既是判定覆蓋,又是條件覆蓋,但它并不保證使各種條件都能取到所有可能的值。多重條件覆蓋,也叫組合條件覆蓋,比其他條件都要嚴(yán)格,但它不能保證覆蓋程序中的每一條路徑。
單元測(cè)試一般以白盒法為主,測(cè)試的依據(jù)是系統(tǒng)的模塊功能規(guī)格說明。
【5-8】A. ① ? B. ⑤? C. ① ? D. ② ? E. ③
軟件測(cè)試中常用的靜態(tài)分析方法是引用分析和接口分析。接口分析用于檢查模塊或子程序間的調(diào)用是否正確。分析方法(白盒方法)中常用的方法是路徑測(cè)試方法。非分析方法(黑盒方法)中常用的方法是等價(jià)類(劃分)方法和因果圖方法。因果圖方法根據(jù)輸出對(duì)輸入的依賴關(guān)系設(shè)計(jì)測(cè)試用例。
【5-9】(1) McCabe環(huán)路復(fù)雜性 = 5
?(2) 獨(dú)立路徑有5條: ? ?
? ? ? ①③
? ? ? ①②⑤⑧……
? ? ? ①②⑤⑨……
? ? ? ①②④⑥……
? ? ? ①②④⑦……
?(3) 為各測(cè)試路徑設(shè)計(jì)測(cè)試用例:
? ? ?路徑①③:取n = 1
? ? ?路徑①②⑤⑧……:取n = 2,
? ? ? ? ?預(yù)期結(jié)果:路徑⑤⑧③不可達(dá) ?
? ? ?路徑①②⑤⑨……:取n = 2,
? ? ? ? ?預(yù)期結(jié)果:路徑⑤⑨③不可達(dá)
? ? ?路徑①②④⑥⑤⑧③:
? ? ? ? ?取n = 2, V[0] = 2,V[1] = 1, 預(yù)期結(jié)果:k = 1, V[0] = 1, V[1] = 2
? ? ?路徑①②④⑥⑤⑨③:
? ? ? ? ?取n = 2, V[0] = 2,V[1] = 1, 預(yù)期結(jié)果:k = 1, 路徑⑨③不可達(dá)
? ? ?路徑①②④⑦⑤⑧③:
? ? ? ? ?取n = 2, V[0] = 1,V[1] = 2, 預(yù)期結(jié)果:k = 0, 路徑⑧③不可達(dá)
? ? ?路徑①②④⑦⑤⑨③:
? ? ? ? ?取n = 2, V[0] = 1,V[1] = 2, 預(yù)期結(jié)果:k = 0, V[0] = 1, V[1] = 2
【5-10】設(shè)三角形的三條邊分別為A, B, C。如果它們能夠構(gòu)成三角形的三條邊,必需滿足:
A > 0,B > 0,C > 0,且A + B > C,B + C > A,A+ C > B。
如果是等腰的,還要判斷是否A = B,或B = C,或A = C。
對(duì)于等邊的,則需判斷是否A = B,且B = C,且A = C。
?列出等價(jià)類表:
? ? ?輸入條件 ? ?? ? ?有效等價(jià)類 ? ?? ? ? ? 無效等價(jià)類
是否三角形的三條邊 ?(A > 0) (1),?(B > 0) (2),(C > 0) (3), ?(A + B > C), (4)(B + C > A)(5), ?(A + C > B) (6) ? ?A £ 0 (7), ?B £ 0 (8), ?C£ 0 (9),A + B £ C (10), ?A + C £ B ?(11),B + C £ A (12)
是否等腰三角形 ?(A = B) (13),?(B = C) (14),(A = C) (15) ?(A 1 B) and (B 1 C) and (A 1C) (16)
是否等邊三角形 ?(A = B) and (B = C)and (A = C) ? (17) ?(A 1 B) (18),?(B 1 C) (19),(A 1 C) (20)
? ? ?設(shè)計(jì)測(cè)試用例:輸入順序是〖A,B,C〗
?§〖3,4,5〗覆蓋等價(jià)類 (1), (2), (3), (4), (5),(6)。滿足即為一般三角形。
§〖0,1,2〗覆蓋等價(jià)類 (7)。不能構(gòu)成三角形。 ? 若不考慮特定A, B, C,
§〖1,0,2〗覆蓋等價(jià)類 (8)。同上。 ? ? ? ? ? ?三者取一即可
§〖1,2,0〗覆蓋等價(jià)類 (9)。同上。
§〖1,2,3〗覆蓋等價(jià)類 (10)。同上。 ? 若不考慮特定A, B, C,
§〖1,3,2〗覆蓋等價(jià)類 (11)。同上。 ? 三者取一即可
§〖3,1,2〗覆蓋等價(jià)類 (12)。同上。
§〖3,3,4〗覆蓋等價(jià)類 (1), (2), (3),(4), (5), (6), (13)。 ? ?滿足即為等腰三角形,
§〖3,4,4〗覆蓋等價(jià)類 (1), (2), (3),(4), (5), (6), (14)。 ? ?若不考慮特定A, B, C,
§〖3,4,3〗覆蓋等價(jià)類 (1), (2), (3),(4), (5), (6), (15)。 ? ?三者取一即可
§〖3,4,5〗覆蓋等價(jià)類 (1), (2), (3),(4), (5), (6), (16)。不是等腰三角形。
§〖3,3,3〗覆蓋等價(jià)類 (1), (2), (3),(4), (5), (6), (17)。是等邊三角形
§〖3,4,4〗覆蓋等價(jià)類 (1), (2), (3),(4), (5), (6), (14), (18)。 ? 不是等邊三角形,
§〖3,4,3〗覆蓋等價(jià)類 (1), (2), (3),(4), (5), (6), (15), (19)。 ? 若不考慮特定A, B, C,
§〖3,3,4〗覆蓋等價(jià)類 (1), (2), (3),(4), (5), (6), (13), (20)。 ? 三者取一即可
【5-11】(1) 因果圖
? ? ? ? 輸入條件(原因) ? ?? ? ? ? ? ? ? ? ? ? ?? ? ? ? 輸出條件(結(jié)果)
? ? 投入1元5角硬幣 ? (1)? ? ? ? ? ? ? ? ? ? ?? ? ? ? ?(21) 退還5角硬幣
? ? ? ? ? ? ? ? ? ?E ?? ? ? ? ? ? ? ? ?
? ? 投入2元硬幣 ? ? ? (2) ? ?? ? ?(11) ? ? ? ? ? ? ?? ? (22) 送出“可樂”飲料
? ? ? ? ? ? ? ? ? ? ?? ? ?
? ? 按“可樂”按鈕 ? ? (3) ?? ? ? ? ? ? ? ? ? ? ?? ? ? ?(23) 送出“雪碧”飲料
? ? ? ? ? ? ? ? ? ? ?? ?
? ? 按“雪碧”按鈕 E ? (4) ? ?? ú ?(12) ? ? ? ? ? ? ? ??(24) 送出“紅茶”飲料
? ? ? ? ? ? ? ? ? ? ??
? ? 按“紅茶”按鈕 ? ? (5)
(2) 測(cè)試用例設(shè)計(jì)
?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9?10 ?11
?輸 入 ?投入1元5角硬幣 ?(1) ?1 ?1 ?1 ?1?0 ?0 ?0 ?0 ?0 ?0 ?0
?投入2元硬幣 ?(2) ?0 ?0 ?0 ?0?1 ?1 ?1 ?1 ?0 ?0 ?0
?按“可樂”按鈕 ?(3) ?1 ?0?0 ?0 ?1 ?0 ?0 ?0 ?1 ?0 ?0
?按“雪碧”按鈕 ?(4) ?0 ?1?0 ?0 ?0 ?1 ?0 ?0 ?0 ?1 ?0
?按“紅茶”按鈕 ?(5) ?0 ?0?1 ?0 ?0 ?0 ?1 ?0 ?0 ?0 ?1
中間結(jié)點(diǎn) ? ? 已投幣 ?(11) ?1 ?1 ?1 ?1?1 ?1 ?1 ?1 ?0 ?0 ?0
? ? 已按鈕 ?(12) ?1 ?1?1 ?0 ?1 ?1 ?1 ?0 ?1 ?1 ?1
?輸 出 ?退還5角硬幣 ?(21)?0 ?0 ?0 ?0 ?1 ?1 ?1 ?0 ?0 ?0?0
?送出“可樂”飲料 ?(22) ?1 ?0?0 ?0 ?1 ?0 ?0 ?0 ?0 ?0 ?0
?送出“雪碧”飲料 ?(23) ?0 ?1?0 ?0 ?0 ?1 ?0 ?0 ?0 ?0 ?0
?送出“紅茶”飲料 ?(24) ?0 ?0?1 ?0 ?0 ?0 ?1 ?0 ?0 ?0 ?0
測(cè)試用例 ?每一縱列為一個(gè)測(cè)試用例
【5-12】由shooman公式:
其中,IT = 105,MTTF1 = 0.4,T1 = 160,n1 = 100,MTTF2 = 2,T2 = 320,n2 = 300。得:
? ? ? ? ? ? ?
?(1) ?解得程序中固有得錯(cuò)誤總數(shù)ET = 350,此外K = 1000。
?(2) ?設(shè)MTTF = 10,有
? ? ?解得x = 340。由可靠性累積曲線EC (t) = ET (1-e-K1 t ),
? ? ?得 ? ?100 = 350 (1-e-160K1)
? ? ? ? ? ?300 = 350 (1-e-320K1)
? ? ?解得 K1 ? 0.01。代入:340 = 350 (1-e-K1 t ) = 350(1-e-0.01 t )
? ? ? ? t = (ln(35))/0.01 ? 356 (小時(shí))
? ? ?因此求得為使MTTF = 10,測(cè)試和調(diào)試該程序需要花費(fèi)356小時(shí)。
?(3) ?MTTF與測(cè)試時(shí)間t之間的函數(shù)關(guān)系: ?
?因?yàn)镋C (t) = ET (1-e-K1 t ),則ET - EC (t) = ET e-K1 t。代入shooman公式:
【5-13】在對(duì)照需求做有效性測(cè)試和軟件配置審查時(shí),是由軟件開發(fā)者在開發(fā)環(huán)境下進(jìn)行的測(cè)試。而接下來做驗(yàn)收測(cè)試時(shí)則以用戶為主。軟件開發(fā)人員和QA(質(zhì)量保證)人員也應(yīng)參加。由用戶參加設(shè)計(jì)測(cè)試用例,使用用戶界面輸入測(cè)試數(shù)據(jù),并分析測(cè)試的輸出結(jié)果。一般使用生產(chǎn)中的實(shí)際數(shù)據(jù)進(jìn)行測(cè)試。
如果軟件是為多個(gè)客戶開發(fā)的,則需要進(jìn)行α測(cè)試和β測(cè)試。α測(cè)試是由一個(gè)用戶在開發(fā)環(huán)境下進(jìn)行的測(cè)試,也可以是公司內(nèi)部的用戶在模擬實(shí)際操作環(huán)境下進(jìn)行的測(cè)試。軟件在一個(gè)自然設(shè)置狀態(tài)下使用。開發(fā)者坐在用戶旁邊,隨時(shí)記下錯(cuò)誤情況和使用中的問題。這是在受控制的環(huán)境下進(jìn)行的測(cè)試。
β測(cè)試是由軟件的多個(gè)用戶在一個(gè)或多個(gè)用戶的實(shí)際使用環(huán)境下進(jìn)行的測(cè)試。這些用戶是與公司簽定了支持產(chǎn)品預(yù)發(fā)行合同的外部客戶,他們要求使用該產(chǎn)品,并愿意返回有關(guān)錯(cuò)位錯(cuò)誤信息給開發(fā)者。與α測(cè)試不同的是,開發(fā)者通常不在測(cè)試現(xiàn)場(chǎng)。因而,β測(cè)試是在開發(fā)者無法控制的環(huán)境下進(jìn)行的軟件現(xiàn)場(chǎng)應(yīng)用。
第七章 面向?qū)ο蟮能浖y(cè)試技術(shù)
相關(guān)知識(shí)點(diǎn)-面象對(duì)象(=Object Oriented)技術(shù)
1.??對(duì)象和類
l? 面象對(duì)象的編程語言:以對(duì)象為中心,以消息為驅(qū)動(dòng),程序=對(duì)象+消息
l? 類是一種新的數(shù)據(jù)類型,是設(shè)計(jì)的核心,是通過抽象數(shù)據(jù)類型的方法來實(shí)現(xiàn)的一種數(shù)據(jù)類型
l? 類是對(duì)某一對(duì)象的抽象,對(duì)象是某一類的實(shí)例,兩者密切相關(guān)
2.??封裝、繼承和多態(tài)性
(1)????????封裝:把數(shù)據(jù)和操作結(jié)合一體,使程序結(jié)構(gòu)更加緊湊,避免了數(shù)據(jù)紊亂帶來的調(diào)試與維護(hù)的困難
(2)????????繼承:可以從一個(gè)類派生到另一個(gè)類,派生類繼承了父類和祖先類的數(shù)據(jù)成員和函數(shù),增加了軟件的可擴(kuò)充性,并為代碼重用提供了強(qiáng)有力的手段
(3)????????多態(tài)性:多種表現(xiàn)形式,可以用‘一個(gè)對(duì)外接口,多個(gè)內(nèi)在實(shí)現(xiàn)方法’表示。
一.面向?qū)ο鬁y(cè)試模型
1.??面向?qū)ο鬁y(cè)試的分類
依據(jù)面向?qū)ο箝_發(fā)模型(面向?qū)ο蠓治觥⒚嫦驅(qū)ο笤O(shè)計(jì)、面向?qū)ο蚓幊?#xff09;,分為:
(1)????????面向?qū)ο蠓治龅臏y(cè)試(OOA Test)、面向?qū)ο笤O(shè)計(jì)的測(cè)試(OODTest):是對(duì)分析結(jié)果和設(shè)計(jì)結(jié)果的測(cè)試,主要對(duì)分析設(shè)計(jì)產(chǎn)生的文本進(jìn)行的,是軟件開發(fā)前期的關(guān)鍵性測(cè)試
(2)????????面向?qū)ο缶幊痰臏y(cè)試(OOP Test):對(duì)編程風(fēng)格和程序代碼實(shí)現(xiàn)進(jìn)行測(cè)試,主要的測(cè)試內(nèi)容在OOUnit Test和OO Integrate Test中體現(xiàn)
(3)????????面向?qū)ο髥卧獪y(cè)試(OO Unit Test):對(duì)程序內(nèi)部具體單一的功能模塊的測(cè)試,主要對(duì)類成員函數(shù)的測(cè)試,是OOIntegrate Test的基礎(chǔ)
(4)????????面向?qū)ο蠹蓽y(cè)試(OO IntergrateTest):對(duì)系統(tǒng)內(nèi)部的相互服務(wù)進(jìn)行測(cè)試,如成員函數(shù)間的相互作用,類間的消息傳遞。不僅要基于OO Unit Test,還要參考OOD、OODTest的結(jié)果
(5)????????面向?qū)ο蟠_認(rèn)測(cè)試(OO System Test)、面向?qū)ο笙到y(tǒng)測(cè)試(OOSystem Test):最后階段的測(cè)試,以用戶需求為測(cè)試標(biāo)準(zhǔn),借鑒OOA 、OOATest的結(jié)果
2.??面向?qū)ο鬁y(cè)試模型
?
?
?
?
?
?
?
2005-4-25
二. 面向?qū)ο筌浖臏y(cè)試策略
1.??面向?qū)ο蠓治龅臏y(cè)試
(1) 面向?qū)ο蠓治?/p>
是把E-R圖和語義網(wǎng)絡(luò)模型,即信息造型中的概念,與面向?qū)ο蟪绦蛟O(shè)計(jì)語方中的重要概念結(jié)合在一起而形成的分析方法。通常以問題空間的圖表的形式進(jìn)行描述
(2) 分析方法
直接映射問題空間,全面地將問題空間中實(shí)現(xiàn)功能的現(xiàn)實(shí)抽象化。將問題空間中的實(shí)例抽象為對(duì)象,用對(duì)象的結(jié)構(gòu)反映問題空間的復(fù)雜實(shí)例和復(fù)雜關(guān)系,用屬性和服務(wù)表示實(shí)例的特性和行為。
(3) 面向?qū)ο蠓治鋈秉c(diǎn)
對(duì)問題空間分析抽象的不完整,會(huì)影響軟件的功能實(shí)現(xiàn),導(dǎo)致軟件開發(fā)后期產(chǎn)生大量原本可避免的修補(bǔ)工作;一些冗余的對(duì)象或結(jié)構(gòu)類的選定,程序的整體結(jié)構(gòu)和增加程序員不必要的工作量,因此 OOA測(cè)試的重點(diǎn)在其完整性和冗余性
(4) OOA測(cè)試劃分的五個(gè)方面
對(duì)認(rèn)定的對(duì)象的測(cè)試、對(duì)認(rèn)定的結(jié)構(gòu)的測(cè)試、對(duì)認(rèn)定的主題的測(cè)試、對(duì)定義的屬性和實(shí)例關(guān)聯(lián)的測(cè)試、對(duì)定義的服務(wù)和消息關(guān)聯(lián)的測(cè)試
| 測(cè)試內(nèi)容 | 概述 | 測(cè)試考慮方面 | |
| 認(rèn)定的對(duì)象的測(cè)試 | 認(rèn)定的對(duì)象:對(duì)問題空間中的結(jié)構(gòu)、其他系統(tǒng)、設(shè)備、被記憶的事件、系統(tǒng)涉及的人員等實(shí)際實(shí)例的抽象 | (1)是否全面,問題空間中的實(shí)例是否都反映在認(rèn)定的抽象對(duì)象中了 (2)是否具有多個(gè)屬性,只具有一個(gè)屬性的對(duì)象不抽象為為獨(dú)立的對(duì)象 (3)對(duì)認(rèn)定為同一對(duì)象的實(shí)例是否有共同的、區(qū)別于其他實(shí)例的共同屬性 (4)對(duì)認(rèn)定為同一對(duì)象的實(shí)例是否提供或需要相同的服務(wù),如果服務(wù)隨著實(shí)例的不同而變化,認(rèn)定的對(duì)象就需要分析或利用繼承性來分類表示 (5)如果系統(tǒng)沒有必要始終保持對(duì)象代表的實(shí)例信息,提供或者得到關(guān)于它的服務(wù)、認(rèn)定的對(duì)象也無必要 (6)認(rèn)定的對(duì)象的名稱要盡量準(zhǔn)確、適用 | |
| 認(rèn)定的結(jié)構(gòu)的測(cè)試 | 認(rèn)定的結(jié)構(gòu):多種對(duì)象的組織方式,用來反映問題空間中的復(fù)雜實(shí)例和復(fù)雜關(guān)系,認(rèn)定的結(jié)構(gòu)分為兩種:分類結(jié)構(gòu) 組裝結(jié)構(gòu) | 分類結(jié)構(gòu):體現(xiàn)問題空間中實(shí)例的一般與特殊的關(guān)系 | (1)結(jié)構(gòu)中一種對(duì)象尤其是高層對(duì)象,是否存在不同于下一層對(duì)象的特殊的可能性,即是否能派生出下一層對(duì)象 (2)結(jié)構(gòu)中一種對(duì)象尤其是同一低層對(duì)象,是否能抽象出在現(xiàn)實(shí)中有意義的更一般的上層對(duì)象 (3)對(duì)所有認(rèn)定的對(duì)象,是否能向上層抽象出現(xiàn)實(shí)中有意義的對(duì)象 (4)高層的對(duì)象的特性是否完全體現(xiàn)下層的共性 (5)低層的對(duì)象是否有高層特性基礎(chǔ)上的特殊性 |
| 組裝結(jié)構(gòu):體現(xiàn)問題空間中實(shí)例的整體與局部的關(guān)系 | (1)整體對(duì)象和部件對(duì)象的組裝關(guān)系是否符合現(xiàn)實(shí)的關(guān)系 (2)整體對(duì)象和部件對(duì)象是否在考慮的問題空間中有實(shí)際關(guān)系 (3)整體對(duì)象是否遺漏了在問題空間中有用的部件對(duì)象 (4)部件對(duì)象是否能夠在問題空間中組裝成新的有意義的的整體對(duì)象 | ||
| 認(rèn)定的主題的測(cè)試 | 主題:在對(duì)象和結(jié)構(gòu)的基礎(chǔ)上更高一層的抽象,是為了提供OOA 分析結(jié)果的可見性,如同文章中各章的摘要 | (1)貫徹George Miller的‘7+2’原則。如果主題個(gè)數(shù)超過7個(gè),對(duì)有較密切屬性和服務(wù)的主題歸并 (2)主題所反映的一組對(duì)象和結(jié)構(gòu)是否具有相同或相近的屬性和服務(wù) (3)認(rèn)定的主題是否是對(duì)象和結(jié)構(gòu)更高一層的抽象,是否便于理解OOA 結(jié)果的概括 (4)主題間的消息聯(lián)系(抽象)是否代表了主題所反映的對(duì)象和結(jié)構(gòu)之間的所有關(guān)聯(lián) | |
| 對(duì)定義的屬性和實(shí)例關(guān)聯(lián)的測(cè)試 | 屬性:用來描述對(duì)象或結(jié)構(gòu)所反映的實(shí)例的特性 實(shí)例關(guān)聯(lián):反映實(shí)例集合間的映射關(guān)系 | (1)定義的屬性是否對(duì)相應(yīng)的對(duì)象和分類結(jié)構(gòu)的每個(gè)現(xiàn)實(shí)實(shí)例都適用 (2)定義的屬性在現(xiàn)實(shí)世界是否與這種實(shí)例關(guān)系密切 (3)定義的屬性在問題空間是否與實(shí)種實(shí)例關(guān)系密切 (4)定義的屬性是否能夠不依賴于其他屬性被獨(dú)立理解 (5)定義的屬性在分類結(jié)構(gòu)中的位置是否恰當(dāng),低層對(duì)象的共有屬性是否在上層對(duì)象屬性中體現(xiàn) (6)在問題空間中每個(gè)對(duì)象的屬性是否定義完整 (7)定義的實(shí)例關(guān)聯(lián)是否符合現(xiàn)實(shí) (8)在問題空間中實(shí)例關(guān)聯(lián)是否定義完整,特別需要注意‘一對(duì)多’、‘多對(duì)多’的實(shí)例關(guān)聯(lián) | |
| 對(duì)定義的服務(wù)和消息關(guān)聯(lián)的測(cè)試 | 定義的服務(wù):定義的每一種對(duì)象和結(jié)構(gòu)在問題空間所要求的行為 消息關(guān)聯(lián):問題空間中實(shí)例之間必要的通信,需要定義相應(yīng)的消息關(guān)聯(lián) | (1)對(duì)象和結(jié)構(gòu)在問題空間中的不同狀態(tài)是否定義相應(yīng)的服務(wù) (2)對(duì)象和結(jié)構(gòu)所需的服務(wù)是否都定義了相應(yīng)的消息關(guān)聯(lián) (3)定義的消息關(guān)聯(lián)所指引的服務(wù)是否正確 (4)沿著消息關(guān)聯(lián)執(zhí)行的線程是否合理,是否符合現(xiàn)實(shí)過程 (5)定義的服務(wù)是否重復(fù),是否定義了能夠得到的服務(wù) | |
?
2.??面向?qū)ο笤O(shè)計(jì)(OOD)的測(cè)試
(1) 面向?qū)ο笤O(shè)計(jì)(OOD)
采用‘造型的觀點(diǎn)’,以O(shè)OA為基礎(chǔ)歸納出類,并建立類結(jié)構(gòu)或進(jìn)一步構(gòu)造類庫(kù),以實(shí)現(xiàn)分析結(jié)果對(duì)問題空間的抽象。OOD歸納的類即可以是對(duì)象的簡(jiǎn)單延續(xù),也可以是不同對(duì)象的相同或相似的服務(wù)
(2) OOD與OOA
OOD是OOA的進(jìn)一步細(xì)化和更高層的抽象,所以O(shè)OD、OOA的界限很難區(qū)分,OOD確定類和類結(jié)構(gòu)不僅是滿足當(dāng)前需求分析要求,更重要是通過重新組合或加以適當(dāng)?shù)难a(bǔ)充,方便實(shí)現(xiàn)功能重用和擴(kuò)增。因此,對(duì)OOD的測(cè)試,建議針對(duì)功能的實(shí)現(xiàn)和重用以及OOA結(jié)果的分析
(3) OOD測(cè)試劃分的三個(gè)方面
| 測(cè)試名稱 | 概述 | 測(cè)試考慮方面 |
| 認(rèn)定的類的測(cè)試 | 認(rèn)定的類:可以是OOA中認(rèn)定的對(duì)象,或?qū)ο笏枰姆?wù)的抽象、對(duì)象所具有的屬性的抽象。認(rèn)定的類盡量具有基礎(chǔ)性,便于維護(hù)和重用 | (1)是否涵蓋了OOA中所有認(rèn)定的對(duì)象 (2)是否能體現(xiàn)OOA中定義的屬性 (3)是否能實(shí)現(xiàn)OOA中定義的服務(wù) (4)是否對(duì)應(yīng)著一個(gè)含義明確的數(shù)據(jù)抽象 (5)是否盡可能少地依賴其他類 (6)類中的方法是否是單用途 |
| 構(gòu)造的類層次結(jié)構(gòu)的測(cè)試 | 類層次結(jié)構(gòu):通常基于OOA中產(chǎn)生的分類結(jié)構(gòu)的原則來組織,著重體現(xiàn)父類和子類一般性和特殊性,在當(dāng)前問題空間中,主要要求是能在解空間中構(gòu)造全部功能的結(jié)構(gòu)框架 | (1)類層次結(jié)構(gòu)是否涵蓋了所有定義的類 (2)是否體現(xiàn)了OOA中所定義的實(shí)例關(guān)聯(lián) (3)是否實(shí)現(xiàn)了OOA中所定義的消息關(guān)聯(lián) (4)子類是否具有父類沒有的新特性 (5)子類間的共同特性是否完全在父類中得以體現(xiàn) |
| 類庫(kù)的支持的測(cè)試 | 類庫(kù)的支持:也屬于類層次結(jié)構(gòu)的組織問題,但重點(diǎn)是再次軟件開發(fā)的重用。作為高質(zhì)量類層結(jié)構(gòu)的評(píng)估 | (1)一組子類中關(guān)于某種含義相同或基本相同的操作,是否有相同的接口 (2)類中方法的功能是否較單純,相應(yīng)的代碼行是否較少(<30) (3)類的層次結(jié)構(gòu)是否是深度大,寬度小 |
| 因?yàn)镺OA、OOD階段分析和設(shè)計(jì)的模型不能進(jìn)行測(cè)試,不能被執(zhí)行,所以每次迭代后要進(jìn)行評(píng)審,針對(duì)兩個(gè)方法:正確性、一致性 | 正確性:主要在于分析和設(shè)計(jì)模型表示所使用的符號(hào)語法是否正確,語義是否正確以及類的關(guān)聯(lián)(實(shí)例間的聯(lián)系)是否正確地反映了真實(shí)世界對(duì)象間的關(guān)聯(lián) | |
| 一致性:OOD和OOA模型(分析、設(shè)計(jì)和編碼層次即類、屬性、操作、消息)要一致,可以用模型內(nèi)各實(shí)體之間的關(guān)聯(lián)性判斷;評(píng)估方法:檢查每個(gè)類與其他類的連接,采用CRC(類-責(zé)任-協(xié)作者)模型和對(duì)象-關(guān)系圖 CRC模型:由CRC索引卡片構(gòu)成,卡片中列出類名、類的操作、以及其他協(xié)作類,類完成的責(zé)任 對(duì)象-關(guān)系圖:提供了類之間連接(關(guān)系)的圖形表示 | ||
| 評(píng)估類模型,采用步驟 (1)再次考察CRC模型和對(duì)象-關(guān)系模型,進(jìn)行交叉檢查,保證OOA模型所包含的協(xié)作都能體現(xiàn) (2)檢查每個(gè)CRC索引卡片的描述,以確定是否某被授權(quán)的責(zé)任是協(xié)作者定義的一部分 (3)反轉(zhuǎn)該連接,保證每個(gè)被請(qǐng)求的服務(wù)的協(xié)作者正在接收來自合理源的請(qǐng)求 (4)使用在(3)的反轉(zhuǎn)連接,確定是否可能需要其他的類,或責(zé)任是否被合適地在類間分組 (5)確定是否被廣泛請(qǐng)求的責(zé)任可被組合為單個(gè)的責(zé)任 (6)步驟(1)~(5)被迭代地應(yīng)用到每個(gè)類,并貫穿于OOA模型的每次演化中 | ||
| 創(chuàng)建設(shè)計(jì)模型,應(yīng)對(duì)系統(tǒng)設(shè)計(jì)和對(duì)象設(shè)計(jì)進(jìn)行復(fù)審 系統(tǒng)設(shè)計(jì):描述構(gòu)成產(chǎn)品的子系統(tǒng)、子系統(tǒng)分配到處理器的方式,類到子系統(tǒng)的分配;通過檢查在OOA階段開發(fā)的對(duì)象-行為模型,和映射需要的系統(tǒng)行為到被設(shè)計(jì)用于完成該行為的子系統(tǒng)來進(jìn)行復(fù)審。在系統(tǒng)行為語境中復(fù)審并發(fā)性和任務(wù)分配,評(píng)估系統(tǒng)的行為狀態(tài)以確定哪些行為為并發(fā)存在 對(duì)象模型:表示了每個(gè)類的細(xì)節(jié)和實(shí)現(xiàn)類間的協(xié)作所必須的消息序列活動(dòng);針對(duì)對(duì)象-關(guān)系網(wǎng)絡(luò)來測(cè)試,以保證所有設(shè)計(jì)對(duì)象包含為實(shí)現(xiàn)每張CRC索引卡片定義的協(xié)作所必須的屬性和操作 | ||
?
3.??面向?qū)ο缶幊?#xff08;OOP)的測(cè)試
(1) 面向?qū)ο蟪绦?/p>
把功能的實(shí)現(xiàn)分布在類中,能正確實(shí)現(xiàn)功能的類,通過消息傳遞來協(xié)同實(shí)現(xiàn)設(shè)計(jì)要求的功能。將出現(xiàn)的錯(cuò)誤精確的確定在某一具體的類上。
(2) 測(cè)試重點(diǎn)
忽略類功能實(shí)現(xiàn)的細(xì)則,將測(cè)試的目光集中在類功能的實(shí)現(xiàn)和相應(yīng)的面向?qū)ο蟪绦蝻L(fēng)格上
(3) 測(cè)試方面(c++為例)
| 測(cè)試方面 | 概述 |
| 數(shù)據(jù)成員是否滿足婁據(jù)封裝的要求 | 數(shù)據(jù)封裝:是數(shù)據(jù)和數(shù)據(jù)操作的集合 基本原則:檢查數(shù)據(jù)成員是否被外界(數(shù)據(jù)成員所屬的類或子類以外的調(diào)用)直接調(diào)用。當(dāng)改變數(shù)據(jù)成員的結(jié)構(gòu)時(shí),是否影響了類的對(duì)外接口,是否會(huì)導(dǎo)致相應(yīng)的外界必須改動(dòng) |
| 類是否實(shí)現(xiàn)了要求的功能 | 類所實(shí)現(xiàn)的功能是通過成員函數(shù)執(zhí)行的,應(yīng)首先保證成員函數(shù)的正確性 單獨(dú)看待成員函數(shù),可以使用面向?qū)ο髥卧獪y(cè)試方法 類成員函數(shù)間的作用和類之間的服務(wù)調(diào)用,需要進(jìn)行面向?qū)ο蠹蓽y(cè)試 注:測(cè)試類的功能,不能僅滿足于代碼能無錯(cuò)地運(yùn)行或被測(cè)試類所提供的功能無錯(cuò),應(yīng)該以所做的OOD結(jié)果為依據(jù),檢測(cè)類提供的功能是否滿足設(shè)計(jì)的要求,是否有缺陷,必要時(shí)還應(yīng)該參照OOA的結(jié)果,以之為最終標(biāo)準(zhǔn) |
?
4.??面向?qū)ο筌浖膯卧獪y(cè)試
(1) 可以將一些傳統(tǒng)的單元測(cè)試方法在面向?qū)ο筌浖膯卧獪y(cè)試中使用,如等價(jià)類劃分、因果圖、邊界值分析法、邏輯覆蓋法、路徑分析法、程序插樁法,單元測(cè)試一般建議由程序員完成
(2) 單元級(jí)測(cè)試的測(cè)試分析和測(cè)試用例,規(guī)模和難度均遠(yuǎn)小于對(duì)整個(gè)系統(tǒng)的測(cè)試分析和測(cè)試用例,并且對(duì)語句應(yīng)該有100%的代碼執(zhí)行覆蓋率。
(3) 設(shè)計(jì)測(cè)試用例選擇輸入數(shù)據(jù)的兩個(gè)假設(shè):
l? 如果函數(shù)(程序)對(duì)某一類輸入中的一個(gè)數(shù)據(jù)正確執(zhí)行,對(duì)同類中的基他輸入也能正確執(zhí)行(等價(jià)類)
l? 如果函數(shù)(程序)對(duì)某一復(fù)雜度的輸入正確執(zhí)行,對(duì)更高復(fù)雜度的輸入也能正確執(zhí)行
(4) 針對(duì)繼承性,BrianMarick兩方面的考慮
l? 繼承的成員函數(shù)是否都不需要測(cè)試:當(dāng)繼承的成員函數(shù)在子類中做了改動(dòng);成員函數(shù)調(diào)用了改動(dòng)過的成員函數(shù)的部分這兩種情況需要對(duì)子類重新測(cè)試
l? 對(duì)父類的測(cè)試是否能照搬到子類:可以重新測(cè)試或在父類原有的測(cè)試要求和測(cè)試用例上增加新的測(cè)試要求和測(cè)試用例,主要針對(duì)子類中變動(dòng)的部分進(jìn)行測(cè)試
5.??面向?qū)ο筌浖募蓽y(cè)試
(1) 傳統(tǒng)的自頂向下或自底向上的集成測(cè)試策略在面向?qū)ο筌浖募蓽y(cè)試中無意義,OO軟件的集成測(cè)試需要在整個(gè)程序編譯完成后進(jìn)行,面向?qū)ο蟪绦蚓哂袆?dòng)態(tài)特性,程序的控制流無法確定,只能對(duì)編譯完成的程序做基于黑盒子的集成測(cè)試
(2) 面向?qū)ο筌浖募蓽y(cè)試兩種策略
l? 基于線程的測(cè)試(Threadbased testing):集成對(duì)響應(yīng)系統(tǒng)的一個(gè)輸入或事件所需的一組類,每個(gè)線程分別進(jìn)行集成和測(cè)試,應(yīng)用回歸測(cè)試以保證沒有產(chǎn)生副作用。
l? 基于使用的測(cè)試(Usebased testing):通過測(cè)試那些幾乎不使用服務(wù)器類的的類(獨(dú)立類)而開始構(gòu)造系統(tǒng),在獨(dú)立類測(cè)試完成后,下一層中使用獨(dú)立類的類(依賴類)被測(cè)試,這個(gè)依賴類層次的測(cè)試序列一直持續(xù)到構(gòu)造完整個(gè)系統(tǒng)。
(3) 測(cè)試目的
????? 能夠檢測(cè)出相對(duì)獨(dú)立的,單元測(cè)試無法檢測(cè)出的,那些類相互作用時(shí)才會(huì)產(chǎn)生的錯(cuò)誤,只關(guān)注于系統(tǒng)的結(jié)構(gòu)和內(nèi)部的相互作用
(4) 面向?qū)ο筌浖募蓽y(cè)試過程
l? 第一步:靜態(tài)測(cè)試? 針對(duì)程序的結(jié)構(gòu)進(jìn)行,檢測(cè)程序結(jié)構(gòu)是否符合設(shè)計(jì)要求。通過使用測(cè)試軟件的‘可逆性工程’功能,得出源程序的類系統(tǒng)圖和函數(shù)功能調(diào)用關(guān)系圖,與OOD結(jié)果相比較,檢測(cè)程序結(jié)構(gòu)和實(shí)現(xiàn)上是否有缺陷,檢測(cè)OOP是否達(dá)到了設(shè)計(jì)要求
l? 第二步:動(dòng)態(tài)測(cè)試 根據(jù)靜態(tài)測(cè)試得出的函數(shù)功能調(diào)用關(guān)系圖或類關(guān)系圖作為參考,按照如下步驟設(shè)計(jì)測(cè)試用例,達(dá)到如下測(cè)試覆蓋標(biāo)準(zhǔn)
v? 設(shè)計(jì)測(cè)試用例步驟:選定檢測(cè)的類,參考OOD分析結(jié)果,確定出類的狀態(tài)和相應(yīng)的行為;確定覆蓋標(biāo)準(zhǔn);利用結(jié)構(gòu)關(guān)系圖確定待測(cè)類的所有關(guān)聯(lián);根據(jù)程序中類的對(duì)象構(gòu)造測(cè)試用例,確認(rèn)使用什么輸入激發(fā)類的狀態(tài),使用類的服務(wù)和期望產(chǎn)生什么行為等,還要設(shè)計(jì)一些類禁止的例子,確認(rèn)類是否有不合法的行為產(chǎn)生
v? 覆蓋標(biāo)準(zhǔn):達(dá)到類所有的服務(wù)要求或服務(wù)提供的一定覆蓋率;依據(jù)類間傳遞的消息,達(dá)到對(duì)所有執(zhí)行線程的一定覆蓋率;達(dá)到類的所有狀態(tài)的一定覆蓋率等
6.??面向?qū)ο筌浖拇_認(rèn)和系統(tǒng)測(cè)試
(1) 系統(tǒng)測(cè)試:需要測(cè)試它與系統(tǒng)其他部分配套運(yùn)行的表現(xiàn),以確保在系統(tǒng)各部分協(xié)調(diào)工作的環(huán)境下軟件也能正常運(yùn)行
(2) 要求:測(cè)試環(huán)境盡量與用戶實(shí)際使用環(huán)境相同,保證被測(cè)系統(tǒng)的完整性,對(duì)暫時(shí)沒有的系統(tǒng)設(shè)備部件,應(yīng)采取相應(yīng)的模擬手段。參考OOA分析結(jié)果,檢測(cè)軟件是否能夠完全‘再現(xiàn)’問題空間
(3) 不僅是檢測(cè)軟件的整體行為表現(xiàn),另一方面對(duì)軟件設(shè)計(jì)開發(fā)的確認(rèn)。OO軟件的確認(rèn)和系統(tǒng)測(cè)試具體的測(cè)試內(nèi)容與傳統(tǒng)的系統(tǒng)測(cè)試基本相同,包括:功能測(cè)試,強(qiáng)度測(cè)試,性能測(cè)試,安全測(cè)試,易用性測(cè)試,恢復(fù)測(cè)試,安裝/卸載測(cè)試
三.OO軟件測(cè)試用例設(shè)計(jì)原則(Berard)
關(guān)注于設(shè)計(jì)合適的操作序列以測(cè)試類的狀態(tài)
1.???對(duì)每個(gè)測(cè)試用例應(yīng)當(dāng)給予特殊的標(biāo)識(shí),并且還應(yīng)當(dāng)與測(cè)試的類有明確的聯(lián)系
2.???測(cè)試目的應(yīng)當(dāng)明確
3.???應(yīng)當(dāng)為每個(gè)測(cè)試用例開發(fā)一個(gè)測(cè)試步驟列表,列表包含內(nèi)容
l? 列出所要測(cè)試對(duì)象的說明
l? 列出將要作為測(cè)試結(jié)果的消息和操作
l? 列出測(cè)試對(duì)象可能發(fā)生的例外情況
l? 列出外部條件,為了正確對(duì)軟件進(jìn)行測(cè)試所必須有的外部環(huán)境的變化
l? 列出為了幫助理解和實(shí)現(xiàn)測(cè)試所需要的附加信息
四.OO軟件測(cè)試的方法
1.?????基于故障的測(cè)試
(1) 具有較高的發(fā)現(xiàn)可能故障的能力
(2) 從分析模型開始,考察可能發(fā)生的故障,設(shè)計(jì)用例去執(zhí)行設(shè)計(jì)和代碼
(3) 可用于集成測(cè)試,發(fā)現(xiàn)消息聯(lián)系中‘可能的故障’(可能的故障指意料之外的結(jié)果、錯(cuò)誤地使用了操作/消息、不正確地引用等)
(4) 除用于操作測(cè)試外,還可用于屬性測(cè)試,用以確定其對(duì)于不同類型的對(duì)象行為是否賦予了正確的屬性值
(5) 是從客戶對(duì)象(主動(dòng))上發(fā)現(xiàn)錯(cuò)誤
(6) 不能發(fā)現(xiàn)的錯(cuò)誤:不正確的規(guī)格說明,用戶不需要的功能或缺少用戶需要的功能;沒有考慮子系統(tǒng)間的交互作用
2.?????基于場(chǎng)景的測(cè)試
(1) 主要關(guān)注用戶需要做什么,不是產(chǎn)品能做什么,即從用戶任務(wù)(使用用例)中找出用戶要做什么及如何去執(zhí)行
(2) 有助于在一個(gè)單元測(cè)試情況下檢查多重系統(tǒng),比基于故障的測(cè)試更實(shí)際,更復(fù)雜一點(diǎn)
3.?????OO類的隨機(jī)測(cè)試
如果一個(gè)類有多個(gè)操作(功能),這些操作(功能)序列有多種排列,這種不變化的操作序列可隨機(jī)產(chǎn)生,用這種可隨機(jī)排列來檢查不同類實(shí)例的生存史,稱為隨機(jī)測(cè)試
4.?????類層次的分割測(cè)試
(1) 可以減少用完全相同的方式檢查類測(cè)試用例的數(shù)目,類似于等價(jià)類劃分
(2) 分類:基于狀態(tài)的分割、基于屬性的分割、基于類型的分割
l? 基于狀態(tài)的分割:按類操作是否會(huì)改變類的狀態(tài)進(jìn)行分割(歸類)
l? 基于屬性的分割:按類操作所得到的屬性來分割(歸類)
l? 基于類型的分割:按完成的功能分割(分類),如初始操作、計(jì)算操作、查詢操作
5.?????由行為模型(狀態(tài)、活動(dòng)、順序和合作圖)導(dǎo)出的測(cè)試
狀態(tài)轉(zhuǎn)換圖(STD)可以用來幫助導(dǎo)出類的動(dòng)態(tài)行為的測(cè)試序列,以及這些類與之合作的類的動(dòng)態(tài)行為測(cè)試用例,根據(jù)狀態(tài)轉(zhuǎn)換圖,設(shè)計(jì)出最小測(cè)試用例,加入其他測(cè)試序列到最小測(cè)試序列中,保證類所有行為被充分檢查
總結(jié):
?? 本章主要講述了面向?qū)ο筌浖臏y(cè)試方法,依據(jù)面向?qū)ο筌浖_發(fā)模型劃分面向?qū)ο鬁y(cè)試模型,其中單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試通過與傳統(tǒng)的單元測(cè)試、集成測(cè)試和確認(rèn)測(cè)試、系統(tǒng)測(cè)試進(jìn)行比較,得出面向?qū)ο筌浖臏y(cè)試內(nèi)容
?
第八章 應(yīng)用負(fù)載壓力測(cè)試
一.? 負(fù)載壓力測(cè)試概述
1.負(fù)載壓力
指系統(tǒng)在某種指定軟件、硬件以及網(wǎng)絡(luò)環(huán)境下承受的流量,如并發(fā)的用戶數(shù)、持續(xù)運(yùn)行時(shí)間、數(shù)據(jù)量等。其中并發(fā)的用戶數(shù)是負(fù)載壓力的重要體現(xiàn)。
2.負(fù)載壓力測(cè)試
l? 指在一定測(cè)試約束條件下,測(cè)試系統(tǒng)所能承受的并發(fā)用戶量、運(yùn)行時(shí)間、數(shù)據(jù)量,以確定系統(tǒng)所能承受的最大負(fù)載壓力
l? 負(fù)載壓力測(cè)試是性能測(cè)試的重要組成部分
3.性能測(cè)試
用來保證產(chǎn)品發(fā)布后系統(tǒng)的性能能夠滿足用戶需求,包括兩種測(cè)試策略:性能評(píng)測(cè)、性能調(diào)優(yōu)
(2)????????性能評(píng)測(cè)-性能調(diào)優(yōu)的基礎(chǔ)
l? 在真實(shí)環(huán)境下,檢查系統(tǒng)服務(wù)等級(jí)的滿足情況,評(píng)估并報(bào)告整個(gè)系統(tǒng)的性能
l? 對(duì)系統(tǒng)的未來容量作出預(yù)測(cè)和規(guī)劃
(3)????????性能調(diào)優(yōu)
l? 性能調(diào)優(yōu)步驟
l? 查找形成系統(tǒng)瓶頸或者故障的根本原因
l? 進(jìn)行性能調(diào)整和優(yōu)化
l? 評(píng)估性能調(diào)整的效果
4.負(fù)載測(cè)試
通過逐步增加系統(tǒng)負(fù)載,測(cè)試系統(tǒng)性能的變化,并最終確定在滿足性能指標(biāo)的情況下,系統(tǒng)所能承受的最大負(fù)載量的測(cè)試
5.壓力測(cè)試
l? 通過逐步增加系統(tǒng)負(fù)載,測(cè)試系統(tǒng)性能的變化,并最終確定在什么負(fù)載條件下,系統(tǒng)性能處于失效狀態(tài),并以此來獲得系統(tǒng)能提供的最大服務(wù)級(jí)別的測(cè)試
l? 壓力測(cè)試是為了發(fā)現(xiàn)在什么情況下系統(tǒng)的性能會(huì)變得不可接受
6.并發(fā)性能測(cè)試
l? 并發(fā)性能測(cè)試的過程,是一個(gè)負(fù)載測(cè)試和壓力測(cè)試的過程。
l? 逐漸增加并發(fā)用戶數(shù)負(fù)載,直到系統(tǒng)的瓶頸或者不能接收的性能點(diǎn),能過綜合分析交易執(zhí)行指標(biāo),資源監(jiān)控指標(biāo)來確定系統(tǒng)并發(fā)性能的過程
l? 并發(fā)性能測(cè)試是負(fù)載壓力測(cè)試中的重要內(nèi)容
l? 并發(fā)性能測(cè)試包括:應(yīng)用在客戶端性能的測(cè)試、應(yīng)用在網(wǎng)絡(luò)上性能的測(cè)試、應(yīng)用在服務(wù)器端上性能的測(cè)試三個(gè)方面
7.疲勞強(qiáng)度測(cè)試
采用系統(tǒng)穩(wěn)定運(yùn)行情況下所能支持的最大并發(fā)用戶數(shù),或者日常運(yùn)行用戶數(shù),持續(xù)執(zhí)行一段時(shí)間業(yè)務(wù),保證達(dá)到系統(tǒng)疲勞強(qiáng)度需求的業(yè)務(wù)量,通過綜合分析交易執(zhí)行指標(biāo)和資源監(jiān)控指標(biāo),來確定系統(tǒng)處理最大工作量強(qiáng)度性能的過程
8.大數(shù)據(jù)量測(cè)試
l? 大數(shù)據(jù)量測(cè)試包括獨(dú)立的數(shù)據(jù)量測(cè)試和綜合數(shù)據(jù)量測(cè)試兩類
l? 獨(dú)立的數(shù)據(jù)量測(cè)試:指針對(duì)某些系統(tǒng)存儲(chǔ)、傳輸、統(tǒng)計(jì)、查詢等業(yè)務(wù)進(jìn)行的大數(shù)據(jù)量測(cè)試
l? 綜合數(shù)據(jù)量:指和壓力性能測(cè)試、負(fù)載性能測(cè)試、疲勞性能測(cè)試相結(jié)合的綜合測(cè)試
二.負(fù)載壓力測(cè)試的目的
1.在真實(shí)環(huán)境下檢測(cè)系統(tǒng)性能,評(píng)估系統(tǒng)性能以及服務(wù)等級(jí)的滿足情況
2.預(yù)見系統(tǒng)負(fù)載壓力承受力,在應(yīng)用實(shí)際部署之前,評(píng)估系統(tǒng)性能
3.分析系統(tǒng)頸,優(yōu)化系統(tǒng)
(1)??????????瓶頸:應(yīng)用系統(tǒng)中導(dǎo)致系統(tǒng)性能大幅下降的原因。硬件,操作系統(tǒng)、數(shù)據(jù)庫(kù)或開發(fā)的應(yīng)用程序中都有可能存在瓶頸
(2)??????????建議首先消解決軟件瓶頸,原因有三個(gè):
l? 軟件瓶頸往往導(dǎo)致系統(tǒng)性能衰減更快,消除軟件瓶頸,系統(tǒng)性能提升更快
l? 人為因素更易導(dǎo)致軟件瓶頸要消除軟件瓶頸,開發(fā)人員會(huì)更主動(dòng),并且可以節(jié)省資源
l? 盲目增加硬件則無形中增加維護(hù)費(fèi)用,將來,軟硬件不匹配的問題終究會(huì)暴露出來
(3)??????????負(fù)載壓力性能問題分為需要優(yōu)化的性能問題和非系統(tǒng)優(yōu)化所能解決的性能問題
4.為企業(yè)項(xiàng)目的實(shí)施提供信心,幫助用戶正確地進(jìn)行容量規(guī)劃,實(shí)現(xiàn)軟硬件投資合理化,最終交付高質(zhì)量的系統(tǒng),避免項(xiàng)目投產(chǎn)失敗,保證用戶的投資得到相應(yīng)的回報(bào)
三.負(fù)載壓力測(cè)試策略
1.可以利用手工進(jìn)行測(cè)試和利用自動(dòng)化工具進(jìn)行測(cè)試兩種測(cè)試策略
(1)????????手工測(cè)試:無法解決同步問題,無法捕捉程序內(nèi)部的變化情況
(2)????????自動(dòng)化工具測(cè)試:可以解決手工測(cè)試中無法解決的問題
2.自動(dòng)化工具測(cè)試策略
(1)????????利用商業(yè)化測(cè)試工具:LoadRunner,QALoad
(2)????????利用開放資源測(cè)試工具:開放系統(tǒng)測(cè)試體系OpenSTA、TestMaker、Apache Jmeter
(3)????????利用自主開發(fā)工具:核心內(nèi)容是對(duì)與服務(wù)器的交互計(jì)時(shí),
四.產(chǎn)品生命周期中負(fù)載壓力測(cè)試計(jì)劃
1.在需求分析中充分關(guān)注負(fù)載壓力性能
2.從設(shè)計(jì)中得到負(fù)載壓力性能指標(biāo)
3.開發(fā)階段創(chuàng)建一個(gè)負(fù)載壓力性能測(cè)試環(huán)境
(5)?????????確保合理精確的測(cè)試環(huán)境,并且此環(huán)境可重用
(6)?????????為測(cè)試環(huán)境制定規(guī)則的負(fù)載壓力性能測(cè)試的時(shí)間表,如果測(cè)試環(huán)境是共享的,負(fù)載壓力性能測(cè)試不能與其他活動(dòng)同時(shí)發(fā)生
(7)?????????選擇一個(gè)負(fù)載壓力性能測(cè)試工具
(8)?????????驗(yàn)收階段在多等級(jí)范圍內(nèi)測(cè)試并調(diào)優(yōu)
(9)?????????運(yùn)行階段持續(xù)監(jiān)控系統(tǒng)負(fù)載壓力性能
五.負(fù)載壓力測(cè)試的盲點(diǎn)
在負(fù)載壓力測(cè)試時(shí),不進(jìn)行功能校驗(yàn),當(dāng)功能發(fā)生錯(cuò)誤時(shí),測(cè)試工具不能夠記錄產(chǎn)生的錯(cuò)誤,忽略了負(fù)載壓力情況下的功能不穩(wěn)定問題。所以負(fù)載壓力測(cè)試期間必須要進(jìn)行必要的功能內(nèi)容校驗(yàn),即在測(cè)試過程中記錄所有虛擬用戶的操作,及服務(wù)器的響應(yīng),才有助于判斷功能錯(cuò)誤,這是當(dāng)前負(fù)載壓力測(cè)試的最大挑戰(zhàn)
2005-4-26
第8章 應(yīng)用負(fù)載壓力測(cè)試-負(fù)載壓力測(cè)試解決方案
一.? 并發(fā)性能測(cè)試
并發(fā)壓力過程與測(cè)試定位
(1)????????并發(fā)負(fù)載壓力的實(shí)施:客戶端――應(yīng)用客戶端的測(cè)試
(2)????????負(fù)載壓力的傳輸介質(zhì):網(wǎng)絡(luò)――應(yīng)用網(wǎng)絡(luò)上的測(cè)試
(3)????????壓力到達(dá):各類服務(wù)器――應(yīng)用服務(wù)器端的測(cè)試
二.并發(fā)性能測(cè)試-應(yīng)用服務(wù)端測(cè)試
1. 目的:模擬大量并發(fā)用戶執(zhí)行不同業(yè)務(wù)操作,達(dá)到實(shí)施負(fù)載壓力的目的
6.??測(cè)試環(huán)境
(1)????????測(cè)試工具主控臺(tái)(1個(gè)):負(fù)責(zé)管理各個(gè)測(cè)試工具代理,收集各類測(cè)試數(shù)據(jù)
(2)????????負(fù)載生成器(多個(gè)):即代理,模擬虛擬用戶
(3)????????服務(wù)器
7.??測(cè)試過程
(1)????????創(chuàng)建方案:方案信息包括??? 虛擬用戶組(Vuser)
????????????????????????????????? Vuser將運(yùn)行的測(cè)試腳本
????????????????????????????????? 用于運(yùn)行腳本的負(fù)載生成器
(2)????????定義測(cè)試目標(biāo):? 虛擬用戶數(shù):測(cè)試應(yīng)用程序可以同時(shí)運(yùn)行多秒個(gè)Vuser
每秒點(diǎn)擊次數(shù)
每分鐘頁(yè)面數(shù)??? 測(cè)試服務(wù)器穩(wěn)定性
每秒事務(wù)數(shù)
事務(wù)響應(yīng)時(shí)間:測(cè)試在期望的事務(wù)響應(yīng)時(shí)間內(nèi)可以同時(shí)運(yùn)行多少個(gè)Vuser,在腳本中指定要測(cè)試的事務(wù)名稱以及Vuser的范圍
(3)????????制定方案執(zhí)行計(jì)劃:制定方案執(zhí)行的時(shí)間安排,如開始時(shí)間、執(zhí)行持續(xù)時(shí)間、啟動(dòng)/停止多少個(gè)Vuser數(shù)量等。注:如果腳本中包含有集合點(diǎn),方案將不會(huì)按計(jì)劃運(yùn)行;集合點(diǎn):在方案中指定Vuser,各Vuser執(zhí)行的腳本,運(yùn)行的時(shí)間,啟動(dòng)方案后,并不能保證所有的Vuser能夠達(dá)到同步操作的效果,設(shè)置集合點(diǎn),Vuser執(zhí)行到集合點(diǎn)時(shí),會(huì)被Controller滯留在集合點(diǎn),等待所有Vuser全部到達(dá)后,執(zhí)行某一項(xiàng)指定操作,從而達(dá)到同步并發(fā)的效果
8.??影響服務(wù)器的負(fù)載級(jí)別
(1)????????選擇在方案運(yùn)行過程中活動(dòng)的集合點(diǎn)
(2)????????選擇加入每個(gè)集合的Vuser數(shù)
9.??控制服務(wù)器上的負(fù)載峰值
(1)????????創(chuàng)建Vuser腳本,插入必要的集合點(diǎn)(采用錄制功能將操作過程錄制形成腳本,插入某一項(xiàng)操作的集合點(diǎn))
(2)????????創(chuàng)建方案(建立Vuser組,指定每組的user及數(shù)量、運(yùn)行的腳本等信息)
(3)????????向方案中添加Vuser組,搜索設(shè)置的集合點(diǎn),并將集合點(diǎn)名稱添加到‘集合信息’列表中
(4)????????設(shè)置虛擬用戶負(fù)載的級(jí)別
(5)????????通過選擇加入到方案中的集合點(diǎn)及加入每個(gè)集合的Vuser數(shù),可以確定負(fù)載的精確級(jí)別
(6)????????設(shè)置集合的屬性
(7)????????對(duì)于每一個(gè)集合,都可以設(shè)置集合策略
(8)????????運(yùn)行方案(在此之前,可以同時(shí)配置負(fù)載生成器和Vuser行為)
10.客戶端交易處理性能指標(biāo)
(1)????????并發(fā)用戶數(shù)指標(biāo)
(2)????????交易處理指標(biāo):平均事務(wù)響應(yīng)時(shí)間、每秒事務(wù)數(shù)、每秒事務(wù)總數(shù)、事條摘要、事務(wù)性能摘要、事務(wù)響應(yīng)時(shí)間(負(fù)載下、百分比、分布)
(3)????????Web請(qǐng)求指標(biāo):每秒點(diǎn)擊次數(shù)、吞吐量、吞吐量摘要、HTTP狀態(tài)代碼摘要、每秒HTTP響應(yīng)數(shù)、每秒下載頁(yè)面數(shù)、每秒重試次數(shù),重試次數(shù)摘要、連接數(shù)、每秒連接數(shù)、每秒SSL連接數(shù)
(4)????????Web頁(yè)面組件指標(biāo):激活網(wǎng)頁(yè)細(xì)分、頁(yè)面組件細(xì)分(隨時(shí)間變化)、頁(yè)面下載時(shí)間細(xì)分(隨時(shí)間變化)、第一次緩沖時(shí)間細(xì)分(隨時(shí)間變化)、已下載組件大小
二.并發(fā)性能測(cè)試-應(yīng)用網(wǎng)絡(luò)上性能測(cè)試
??? 應(yīng)用網(wǎng)絡(luò)上性能測(cè)試包括:應(yīng)用網(wǎng)絡(luò)故障分析和網(wǎng)絡(luò)應(yīng)用性能監(jiān)控
1. 應(yīng)用網(wǎng)絡(luò)故障分析
(4)???????測(cè)試目標(biāo):顯示網(wǎng)絡(luò)帶寬,延遲、負(fù)載和TCP端口的變化是如何影響用戶的響應(yīng)時(shí)間的
(5)???????作用
l? 優(yōu)化性能
l? 預(yù)測(cè)系統(tǒng)響應(yīng)時(shí)間
l? 確定網(wǎng)絡(luò)帶寬需求
l? 定位應(yīng)用程序和網(wǎng)絡(luò)故障
(6)???????網(wǎng)絡(luò)故障分析工具
l? 作用:????? 使應(yīng)用跨越多個(gè)網(wǎng)段的活動(dòng)過程變得清晰
??????????????? 提供有關(guān)應(yīng)用效率的統(tǒng)計(jì)數(shù)據(jù)
??????????????? 模擬用戶在不同網(wǎng)絡(luò)配置環(huán)境下的響應(yīng)時(shí)間,決定應(yīng)用投產(chǎn)的網(wǎng)絡(luò)環(huán)境
l? 工作原理:? 多個(gè)捕捉點(diǎn):Agent,被動(dòng)監(jiān)聽數(shù)據(jù)包來實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)采集
??????????????? 一個(gè)分析:Agent Manager進(jìn)行對(duì)所跟蹤的數(shù)據(jù)的分析
l? 獲取信息:? 監(jiān)控不同探針之間的連接狀態(tài),傳輸?shù)淖止?jié)數(shù)以及通信往返行程次數(shù)
會(huì)話性能概要,監(jiān)控哪段網(wǎng)絡(luò)延遲大,帶寬對(duì)網(wǎng)絡(luò)雙向性能的影響,節(jié)點(diǎn)用于處理和用于傳輸?shù)臅r(shí)間
服務(wù)器與客戶端之間幀傳輸情況統(tǒng)計(jì),監(jiān)控到與應(yīng)用相關(guān)的幀的分布,對(duì)每一個(gè)幀可以與相關(guān)的數(shù)據(jù)包關(guān)聯(lián),并且可以對(duì)幀解碼
服務(wù)器與客戶端之間傳送包信息統(tǒng)計(jì),監(jiān)控包的詳細(xì)信息,并且可以將包與幀及線程相關(guān)聯(lián)
線程信息統(tǒng)計(jì),監(jiān)控線程的內(nèi)容和生存周期,以及線程與數(shù)據(jù)包的關(guān)系
負(fù)載的高峰時(shí)刻,負(fù)載的平均值,高峰時(shí)刻可以與相關(guān)的線程、數(shù)據(jù)包、幀相關(guān)聯(lián)
故障錯(cuò)誤總結(jié):應(yīng)用級(jí)錯(cuò)誤、TCP錯(cuò)誤、IP錯(cuò)誤、其他錯(cuò)誤
???
2. 網(wǎng)絡(luò)應(yīng)用性能監(jiān)控指標(biāo)
(4)????????測(cè)試目標(biāo):在系統(tǒng)試運(yùn)行之后,需要及時(shí)準(zhǔn)確地了解網(wǎng)絡(luò)上正在發(fā)生什么事;什么應(yīng)用在運(yùn)行,如何運(yùn)行;多少PC正在訪問LAN或WAN;哪些應(yīng)用程序?qū)е孪到y(tǒng)瓶頸或資源競(jìng)爭(zhēng)
(5)????????作用
l? 分析關(guān)鍵應(yīng)用程序的性能
l? 定位問題的根源是在客戶端、服務(wù)器、應(yīng)用程序還是網(wǎng)絡(luò)
l? 哪些應(yīng)用程序占用大量帶寬
l? 哪些用戶產(chǎn)生了大量的網(wǎng)絡(luò)流量
(6)????????網(wǎng)絡(luò)應(yīng)用性能監(jiān)控工具
l? 組成:????? 探針:采集與存儲(chǔ)數(shù)據(jù),并根據(jù)應(yīng)用對(duì)數(shù)據(jù)進(jìn)行分類,設(shè)置的原則是根據(jù)網(wǎng)絡(luò)組成和監(jiān)控要求
探針管理器:管理配置探針,設(shè)定數(shù)據(jù)采集與上傳時(shí)間,合并收集的數(shù)據(jù);
時(shí)間服務(wù)器:對(duì)探針進(jìn)行時(shí)針同步
交互界面:數(shù)據(jù)展示平臺(tái)
l? 監(jiān)控信息:? 應(yīng)用監(jiān)視:
關(guān)鍵特性:客戶和服務(wù)器通信量,應(yīng)用響應(yīng)時(shí)間和資源應(yīng)用的業(yè)務(wù)水平等
按會(huì)話統(tǒng)計(jì)傳輸負(fù)載:測(cè)試應(yīng)用和會(huì)話級(jí)響應(yīng)時(shí)間,以及自動(dòng)為通過網(wǎng)絡(luò)中每一個(gè)聯(lián)網(wǎng)設(shè)備的每一個(gè)應(yīng)用程序生成負(fù)載圖
應(yīng)用、會(huì)話級(jí)、事務(wù)響應(yīng)時(shí)間
延遲在何處被引入網(wǎng)絡(luò),瓶頸在哪里
趨勢(shì)分析
?
?
三.并發(fā)性能測(cè)試-應(yīng)用服務(wù)器端的測(cè)試
(一)概述
1.對(duì)應(yīng)用服務(wù)器端的測(cè)試主要包括三方面:操作系統(tǒng)、數(shù)據(jù)庫(kù)和中間件的監(jiān)控
2.監(jiān)控手段:可以采用工具自動(dòng)監(jiān)控,也可以使用操作系統(tǒng)、數(shù)據(jù)庫(kù)、中間件本身提供的監(jiān)控工具
3.利用工具監(jiān)控的優(yōu)點(diǎn)
(1)?????? 減少故障診斷和分析時(shí)間?
(2)?????? 減少手工定位的時(shí)間和避免誤診
(3)?????? 在問題發(fā)生前定位故障
(4)?????? 驗(yàn)證可達(dá)到的性能水平和服務(wù)水平協(xié)議
(5)?????? 持續(xù)的服務(wù)器、數(shù)據(jù)庫(kù)和應(yīng)用性能和可用性監(jiān)控
(6)?????? 故障診斷和恢復(fù):自動(dòng)報(bào)警、故障恢復(fù)程序、故障恢復(fù)信息
(7)?????? 服務(wù)器、應(yīng)用可用性和性能報(bào)告
(二)操作系統(tǒng)監(jiān)控
操作系統(tǒng)的監(jiān)控涉及后臺(tái)重要服務(wù)器的操作系統(tǒng)監(jiān)控,對(duì)于主流的操作系統(tǒng),主要關(guān)注:內(nèi)存、CPU、硬盤
監(jiān)控建議:
1.磁盤管理
(4)????????采集物理讀/寫和邏輯讀/寫信息
(5)????????收集操作系統(tǒng)和其他平臺(tái)上的磁盤忙信息
(6)????????監(jiān)控I/O
2.文件系統(tǒng)
(1)????????顯示每個(gè)文件系統(tǒng)的使用率,檢測(cè)文件系統(tǒng)空閑空間的大小
(2)????????剪裁文件系統(tǒng)-刪除指定的CORE(核心)文件和其他文件
(3)????????顯示文件系統(tǒng)的mount on device、type、size
(4)????????可以監(jiān)控特殊的文件系統(tǒng),如NFS(網(wǎng)絡(luò)文件系統(tǒng)),CD-ROM
(5)????????檢測(cè)特定文件的存在及超出特定期限的文件存在
3.內(nèi)存
(5)????????顯示可用的內(nèi)存數(shù)量
(6)????????決定當(dāng)前的內(nèi)存短缺量
(7)????????幫助分析內(nèi)存問題
(8)????????顯示內(nèi)存的實(shí)存、所有虛存和kernel(核心內(nèi)存)的狀態(tài)等信息
4.CPU
(1)????????記錄CPU的使用率
(2)????????監(jiān)測(cè)CPU參數(shù),包括CPU idle(空閑),CPU waits,CPU system usage,CPUuser usage,run queue length(運(yùn)行隊(duì)列長(zhǎng)度)
(3)????????顯示CPU context(上下關(guān)系) switches 的總數(shù)
(4)????????顯示CPU處理系統(tǒng)任務(wù)和完成用戶任務(wù)的時(shí)間比例
5.操作系統(tǒng)舉例
(1)????????UNIX操作系統(tǒng)
(2)????????Windows操作系統(tǒng)
(三)數(shù)據(jù)庫(kù)監(jiān)控
1.共性的指標(biāo)
(1)????????監(jiān)控?cái)?shù)據(jù)庫(kù)系統(tǒng)中關(guān)鍵的資源
(2)????????監(jiān)測(cè)讀寫頁(yè)面的使用情況
(3)????????監(jiān)控超出共享內(nèi)存緩沖區(qū)的操作數(shù)
(4)????????監(jiān)測(cè)上一輪詢期間作業(yè)等待緩沖區(qū)的時(shí)間
(5)????????跟蹤共享內(nèi)存中物理日志和邏輯日志的緩沖區(qū)的使用率
(6)????????監(jiān)控磁盤的數(shù)據(jù)塊使用情況以及被頻繁讀寫的熱點(diǎn)區(qū)域
(7)????????監(jiān)控用戶事務(wù)或者表空間監(jiān)控事務(wù)日志
(8)????????監(jiān)控?cái)?shù)據(jù)庫(kù)鎖資源
(9)????????監(jiān)測(cè)關(guān)鍵業(yè)務(wù)的數(shù)據(jù)表的表空間增長(zhǎng)
(10)????? 監(jiān)控SQL執(zhí)行情況
2.監(jiān)控建議-針對(duì)監(jiān)控內(nèi)存緩沖區(qū)、會(huì)話及磁盤等方面
(4)????????監(jiān)控超出共享內(nèi)存緩沖區(qū)的操作:可以調(diào)整緩沖區(qū)大小,更好的支持系統(tǒng)運(yùn)行
(5)????????擴(kuò)展的會(huì)話/用戶檢查以及參數(shù)控制:發(fā)現(xiàn)不合理順序掃描操作,從而分配附加的資源,修改應(yīng)用程序,降低對(duì)系統(tǒng)資源的要求
(6)????????磁盤:監(jiān)控?cái)?shù)據(jù)塊的使用情況以及被頻繁讀寫的熱點(diǎn)區(qū)域,可以平衡數(shù)據(jù)量的存儲(chǔ)分配及I/O分配
3.數(shù)據(jù)庫(kù)舉例
(5)????????Oracle:內(nèi)存統(tǒng)計(jì)、SQL分析、會(huì)話統(tǒng)計(jì)、事件統(tǒng)計(jì)
(6)????????Sysbase:
(7)????????DB2:
(8)????????SQL Server:
?
(四)中間件監(jiān)控
1.中間件分類
(4) Web服務(wù)器: Apache
(5) Web應(yīng)用服務(wù)器:Websphere、WebLogic
(6) 應(yīng)用服務(wù)器: tuxedo
2.中間件舉例
(4) TUXEDO:
(5) WebSphere:隊(duì)列性能計(jì)數(shù)器、通道性能計(jì)數(shù)器
(6) WebLogic:LogBaroadcasterRuntime、ServerSecurityRuntime
?
四.負(fù)載壓力測(cè)試解決方案-疲勞強(qiáng)度測(cè)試
強(qiáng)調(diào)長(zhǎng)時(shí)間的考核,主要是過長(zhǎng)時(shí)間運(yùn)行系統(tǒng),發(fā)現(xiàn)問題
1.日常強(qiáng)度疲勞強(qiáng)度測(cè)試
?? 模擬系統(tǒng)的日常業(yè)務(wù)(正常情況),持續(xù)執(zhí)行‘一段時(shí)間’,暴露系統(tǒng)的性能問題,如內(nèi)存泄露、資源爭(zhēng)用
2.高峰業(yè)務(wù)疲勞強(qiáng)度測(cè)試
(1)? 模擬系統(tǒng)的高峰業(yè)務(wù)(最大業(yè)務(wù)量),持續(xù)執(zhí)行‘一段時(shí)間’,暴露系統(tǒng)的性能問題
(2)? 時(shí)間指標(biāo)要滿足:(1)這段模擬時(shí)間所處理的交易量要達(dá)到系統(tǒng)疲勞強(qiáng)度需求的業(yè)務(wù)量 (2) 在這段測(cè)試周期中必須通過加大負(fù)載,以及盡可能長(zhǎng)的測(cè)試周期來保證疲勞強(qiáng)度測(cè)試
?
五.負(fù)載壓力測(cè)試解決方案-大數(shù)據(jù)量測(cè)試
1.大數(shù)據(jù)量測(cè)試類型
(3)???? 獨(dú)立數(shù)據(jù)量測(cè)試:針對(duì)某些系統(tǒng)存儲(chǔ)、傳輸、統(tǒng)計(jì)、查詢等業(yè)務(wù)進(jìn)行單用戶大數(shù)據(jù)量測(cè)試,如大量的批處理任務(wù)
(4)???? 綜合數(shù)據(jù)量測(cè)試:采用并發(fā)測(cè)試、疲勞強(qiáng)度測(cè)試以及大數(shù)據(jù)量測(cè)試相結(jié)合的綜合測(cè)試方案
2.自動(dòng)生成大數(shù)據(jù)量
(5)????? 借助自動(dòng)化測(cè)試工具,利用數(shù)據(jù)庫(kù)測(cè)試數(shù)據(jù)自動(dòng)生成工具,如TESTBytes
(6)????? 利用自動(dòng)化負(fù)載壓力測(cè)試工具,模擬用戶業(yè)務(wù)操作,同時(shí)并發(fā)數(shù)百個(gè)或數(shù)千個(gè)用戶生成相關(guān)數(shù)據(jù)
(7)????? 自主開發(fā)數(shù)據(jù)生成工具
(8)????? 數(shù)據(jù)庫(kù)本身的輔助工具
3.大數(shù)據(jù)量管理
(3) 手工管理:
(4) 自動(dòng)化工具管理:File-Aid/CS 數(shù)據(jù)庫(kù)管理工具 ,完成比較數(shù)據(jù)和數(shù)據(jù)庫(kù)結(jié)構(gòu);轉(zhuǎn)換關(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù)成XML數(shù)據(jù);比較XML數(shù)據(jù)與關(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù);比較XML文件;數(shù)據(jù)遷移
?
2005-4-27
第8章 應(yīng)用負(fù)載壓力測(cè)試-負(fù)載壓力測(cè)試實(shí)施
??? 負(fù)載壓力測(cè)試的實(shí)施過程分為:制定測(cè)試計(jì)劃→制定測(cè)試需求分析→制定測(cè)試方案→測(cè)試環(huán)境、工具、數(shù)據(jù)準(zhǔn)備→測(cè)試腳本錄制、編寫與調(diào)試→場(chǎng)景制定→測(cè)試執(zhí)行→獲取測(cè)試結(jié)果→結(jié)果評(píng)估與測(cè)試報(bào)告
一.測(cè)試計(jì)劃
1.作用
(1) 是負(fù)載測(cè)試成功的關(guān)鍵,明確的測(cè)試計(jì)劃能夠確保制定的方案能完成負(fù)載測(cè)試目標(biāo)
(2) 構(gòu)建能夠精確地模擬工作環(huán)境的測(cè)試方案
(3) 了解測(cè)試需要的資源,如硬件、軟件及人力資源
(4) 以可度量的指標(biāo)定義測(cè)試成功條件,有助于確保測(cè)試成功
2.制定步驟
| 步驟名稱 | 內(nèi)????? 容 |
| 分析應(yīng)用程序 | (1)???????? 確定系統(tǒng)組件:繪制或提取應(yīng)用程序示意圖,說明系統(tǒng)的整體結(jié)構(gòu) (2)???????? 描述系統(tǒng)配置:描述各系統(tǒng)組件的配置,如連接用戶數(shù),客戶端計(jì)算機(jī)配置,數(shù)據(jù)庫(kù)和? Web服務(wù)器的類型、server與client的通信方式、中間件配置、可能影響響應(yīng)時(shí)間的其他網(wǎng)絡(luò)組件、通信設(shè)備的吞吐量及每個(gè)設(shè)備可以處理的并發(fā)用戶數(shù) (3)???????? 分析使用模型:定義系統(tǒng)的典型使用方式,并確定需要重點(diǎn)測(cè)試的功能 (4)???????? 任務(wù)分布:查看常規(guī)用戶任務(wù)的分布情況,以確定數(shù)據(jù)庫(kù)活動(dòng)峰值及負(fù)載峰值期間的典型活動(dòng) |
| 定義測(cè)試目標(biāo) | (1)???????? 以可度量的指標(biāo)制定目標(biāo):精確的確定、區(qū)分可接受和不可接受測(cè)試結(jié)果的標(biāo)準(zhǔn) (2)???????? 確定測(cè)試的時(shí)間:應(yīng)貫穿于產(chǎn)品的整個(gè)生命周期 l? 計(jì)劃和設(shè)計(jì):評(píng)估新產(chǎn)品、度量響應(yīng)時(shí)間 l? 開發(fā):度量響應(yīng)時(shí)間、檢測(cè)最優(yōu)的硬件配置、檢測(cè)硬件和軟件升級(jí)、檢查可靠性 l? 部署:檢查可靠性、度量響應(yīng)時(shí)間、度量系統(tǒng)容量 l? 生產(chǎn):度量響應(yīng)時(shí)間、確定瓶頸 l? 升級(jí):檢測(cè)硬件或軟件升級(jí)、度量系統(tǒng)容量 |
| 計(jì)劃方案實(shí)施 | (1)???????? 定義性能度量范圍:確定系統(tǒng)中不同點(diǎn)的響應(yīng)時(shí)間 l? 度量端到端的響應(yīng)時(shí)間:通過client端運(yùn)行GUI/RTEVuser度量整個(gè)網(wǎng)絡(luò)的響應(yīng)時(shí)間(client-server)? RTE 終端用戶 l? 度量網(wǎng)絡(luò)和服務(wù)器響應(yīng)時(shí)間:通過client端運(yùn)行Vuser(非GUI/RTE)度量網(wǎng)絡(luò)和服務(wù)器的響應(yīng)時(shí)間,即不包括用戶界面的響應(yīng)時(shí)間;大量Vuser可以度量負(fù)載對(duì)網(wǎng)絡(luò)和服務(wù)器響應(yīng)時(shí)間的影響 l? 度量GUI響應(yīng)時(shí)間:端到端響應(yīng)時(shí)間-網(wǎng)絡(luò)/服務(wù)器響應(yīng)時(shí)間 l? 度量服務(wù)器響應(yīng)時(shí)間:通過在與server直連的Client上運(yùn)行Vuser來度量服務(wù)器響應(yīng)時(shí)間 l? 度量中間件到服務(wù)器的響應(yīng)時(shí)間:通過使用中間件API創(chuàng)建Vuser,度量中間件到服務(wù)器的響應(yīng)時(shí)間 (2)???????? 定義Vuser活動(dòng):根據(jù)對(duì)Vuser類型的分析以及它們的典型任務(wù)和測(cè)試目標(biāo)來創(chuàng)建Vuser運(yùn)行的腳本,包括典型任務(wù),設(shè)置集合點(diǎn)等 (3)???????? 選擇Vuser:確定需要的Vuser的數(shù)量和類型,一般性選擇規(guī)則: l? 使用一個(gè)或多個(gè)GUI用戶來模擬每一種類型的典型用戶連接 l? 使用RTE Vuser來模擬終端用戶 l? 運(yùn)行多個(gè)非GUI或非RTE Vuser來生成每個(gè)用戶類型的其余負(fù)載 (4)???????? 選擇測(cè)試硬件和軟件:硬件和軟件應(yīng)具有強(qiáng)大的性能和足夠快的運(yùn)行速度,來模擬所需數(shù)量的用虛擬用戶,需考慮事項(xiàng): l? 建議在一臺(tái)單獨(dú)的計(jì)算機(jī)上運(yùn)行測(cè)試工具主控臺(tái) l? 在一臺(tái)Windows計(jì)算機(jī)上只能運(yùn)行一個(gè)GUI Vuser,在一臺(tái)UNIX計(jì)算機(jī)上則可以運(yùn)行幾個(gè)GUI Vuser l? GUI Vuser模擬機(jī)的配置盡量與用戶實(shí)際計(jì)算機(jī)配置相同 |
| 檢查測(cè)試目標(biāo) | ? |
?
?
??
?
第二部分? 基礎(chǔ)知識(shí)
1.計(jì)算機(jī)系統(tǒng)組成
| 硬件系統(tǒng) | 由中央處理單元CPU(運(yùn)算器、控制器)、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備組成;分為單總線結(jié)構(gòu)、雙總線結(jié)構(gòu) |
| 軟件系統(tǒng) | 由應(yīng)用軟件和系統(tǒng)軟件給成 |
?
2.處理機(jī)
| 組成 | 運(yùn)算器:對(duì)數(shù)據(jù)進(jìn)行加工處理的部件,主要完成算術(shù)運(yùn)算和邏輯運(yùn)算 |
| 控制器:從內(nèi)存中取出指令,并指出下一條指令的存儲(chǔ)位置 | |
| 功能 | 程序控制,操作控制,時(shí)間控制,數(shù)據(jù)處理 |
?
3.基本輸入出設(shè)備
?
4.存儲(chǔ)系統(tǒng)
| 存儲(chǔ)器結(jié)構(gòu) | 高速緩存(cache),主存儲(chǔ)器(MM)和輔助存儲(chǔ)器(外存儲(chǔ)器) |
| 分類 | 按位置分:內(nèi)存(主存)、外存(輔存)???????????????? 按訪問方式分:按地址訪問和按內(nèi)容訪問 按材料分:磁存儲(chǔ)器、半導(dǎo)體存儲(chǔ)器、光存儲(chǔ)器????????? 按尋址方式分:隨機(jī)存儲(chǔ)器和直接存儲(chǔ)器 按工作方式分:讀寫存儲(chǔ)器、只讀存儲(chǔ)器 |
| 相連存儲(chǔ)器 | 是一種按內(nèi)容訪問的存儲(chǔ)器,把數(shù)據(jù)或數(shù)據(jù)的一部分作為關(guān)鍵字,將該關(guān)鍵字與存儲(chǔ)器中的每一個(gè)單比較,找出存儲(chǔ)器中所有與關(guān)鍵字相關(guān)的數(shù)據(jù)字 |
| 高速存儲(chǔ)器 | 組成:控制部分和cache部分 地址映象方法:直接映象、全相連映象、組相連映象 替換算法:隨機(jī)替換算法,先進(jìn)先出算法、近期最少使用算法、優(yōu)化替換算法 性能分析:主存的訪問時(shí)間/ 計(jì)算機(jī)實(shí)際訪問時(shí)間 |
| 虛擬存儲(chǔ)器 | 由主存、輔存、存儲(chǔ)管理單元及操作系統(tǒng)中的存儲(chǔ)管理軟件組成,分類頁(yè)式、段式、段頁(yè)式虛擬存儲(chǔ)器 |
| 外存儲(chǔ)器 | 用來存放暫時(shí)不用的程序和數(shù)據(jù),并且以文件的形式存儲(chǔ)。CPU不能直接訪問外存中的數(shù)據(jù),只有將其以文件為單位調(diào)入主存方可訪問;由磁表面存儲(chǔ)器及光盤存儲(chǔ)器構(gòu)成;磁盤存儲(chǔ)器、光盤存儲(chǔ)器 |
| 磁盤陣列技術(shù) | 由多臺(tái)磁盤存儲(chǔ)器組成的,一個(gè)快速大容量高可靠的外存子系統(tǒng),常見為廉冗余磁盤陣列(RAID),RAID分為6級(jí) |
?
5.操作系統(tǒng)的中斷控制、進(jìn)程管理、線程管理
中斷控制
| 作用 | CPU可以不用等待I/O的狀態(tài),直接去處理其他業(yè)務(wù),I/O系統(tǒng)使用中斷信號(hào)通知CPU,CPU轉(zhuǎn)入中斷處理程序中,完成與I/O系統(tǒng)的數(shù)據(jù)交換,提交了CPU的效率 |
| 處理方法 | 多中斷信號(hào)線法、中斷軟件查詢法、雛菊鏈法、總線仲載法,中斷向量表法 |
| 中斷優(yōu)先級(jí)控制 | 當(dāng)不同優(yōu)先級(jí)的多個(gè)中斷源同時(shí)提出中斷請(qǐng)求時(shí),CPU應(yīng)優(yōu)先響應(yīng)高優(yōu)先級(jí)的中斷源,最先響應(yīng)高優(yōu)先級(jí) |
?
?
6.處理機(jī)管理,存儲(chǔ)管理,設(shè)備管理,文件管理,作業(yè)管理
處理機(jī)管理
?
存儲(chǔ)管理
| 對(duì)象及目的 | 對(duì)象:主存儲(chǔ)器;目的:保存數(shù)據(jù) | |
| 功能 | 主存儲(chǔ)器的分配和回收;提高主存儲(chǔ)器的利用率;存儲(chǔ)保護(hù);主存擴(kuò)充 | |
| 分類 | 分區(qū)存儲(chǔ)管理 | 固定分區(qū):靜態(tài)分區(qū)方式,系統(tǒng)生成時(shí)將主存劃分大小不等的區(qū)域,易形成碎片 可變分區(qū):動(dòng)態(tài)分區(qū)方式,作業(yè)裝入時(shí)劃分,個(gè)數(shù)可變,大小等于作業(yè)的大小,也容易形成碎片 可重定位分區(qū):移動(dòng)所有已分配好的分區(qū),使之成為連續(xù)的區(qū)域,有效解決磁盤碎片的問題 |
| 分頁(yè)存儲(chǔ)管理 | 原理:進(jìn)程的地址空間劃分為大小相等的區(qū)域(頁(yè)),主存空間劃分為與頁(yè)相同大小的物理塊(塊或頁(yè)框),為進(jìn)程分配主存時(shí),將進(jìn)程中若干頁(yè)分別裝入多個(gè)不鄰接的塊中 地址結(jié)構(gòu):由頁(yè)號(hào)P,偏移量W(頁(yè)內(nèi)地址) 頁(yè)表:為保證能在主存中找到每個(gè)頁(yè)面所對(duì)應(yīng)的物理塊,為每個(gè)進(jìn)程建立一張頁(yè)面映射表,簡(jiǎn)稱為頁(yè)表,實(shí)現(xiàn)從頁(yè)號(hào)到物理塊號(hào)的地址映射 | |
| 分段存儲(chǔ)管理 | 將作業(yè)的地址空間劃分為若干個(gè)段,進(jìn)程的各個(gè)段可以分配到主存的不同分區(qū)中,為每個(gè)進(jìn)程建立一張段映射表,實(shí)現(xiàn)邏輯段到物理主存區(qū)的映射 | |
| 段頁(yè)式存儲(chǔ)管理 | 結(jié)合分頁(yè)、分段存儲(chǔ)管理方式,將主存劃分成大小相等的存儲(chǔ)塊(頁(yè)框),將進(jìn)程按程序的邏輯關(guān)系分為若干段,并為每個(gè)段賦予一個(gè)段名,將每個(gè)段劃分成若干頁(yè),以頁(yè)架為單位離散分配,利用段表和頁(yè)表實(shí)現(xiàn)邏輯地址到物理地址的映射 | |
| 虛擬存儲(chǔ)管理 | 定義:主存可以將暫時(shí)不用的頁(yè)(段)調(diào)出至磁盤,有足夠的空間將要訪問的頁(yè)(段)裝入主存,系統(tǒng)具有的主存容量比實(shí)際主存容量大得多,稱這樣的存儲(chǔ)器為虛擬存儲(chǔ)器; 實(shí)現(xiàn):請(qǐng)求分頁(yè)系統(tǒng)、請(qǐng)求分段系統(tǒng);請(qǐng)求段頁(yè)式系統(tǒng)(在原存儲(chǔ)形式上增加請(qǐng)求和置換功能) 特征:離散性、多次性、對(duì)換性、虛擬性 頁(yè)面置換算法:最佳置換算法(將永久不用或長(zhǎng)時(shí)間內(nèi)不再訪問的頁(yè)置換出去)、先進(jìn)先出置換算法(將最先進(jìn)入主存的頁(yè)置換出去)、最近最久未使用置換算法LRU(選擇最上次訪問以來所經(jīng)歷的時(shí)間最大頁(yè)置換出去)、最近未用置換算法NUR(通過訪問標(biāo)志,將未使用過的頁(yè)面置換出去,) | |
?
? 設(shè)備管理
| 分類 | 按數(shù)據(jù)組織分類:塊設(shè)備、字符設(shè)備 從資源分配角度分類:獨(dú)占設(shè)備、共享設(shè)備、虛擬設(shè)備 按數(shù)據(jù)傳輸率分類:低速設(shè)備、中速設(shè)備、高速設(shè)備 按輸入輸出對(duì)象分類:人機(jī)通信和機(jī)機(jī)通信息設(shè)備 按是否可交互分類:非交設(shè)備和交互設(shè)備 |
| 目標(biāo) | 提高設(shè)備的利用率(提高CPU與輸入輸出設(shè)備之間的并行操作程度),為用戶提供方便統(tǒng)一的界面, |
| 任務(wù) | 動(dòng)態(tài)地掌握并記錄設(shè)備的狀態(tài)、設(shè)備分配和釋放、緩沖區(qū)管理、實(shí)現(xiàn)物理I/O設(shè)備的操作、提供設(shè)備使用的用戶接口、設(shè)備的訪問和控制、I/O緩沖和調(diào)度 |
| 軟件 | 分為四層:中斷處理程序、設(shè)備驅(qū)動(dòng)程序、與設(shè)備無關(guān)的系統(tǒng)軟件、用戶級(jí)軟件 |
?
文件管理
| 定義 | 文件 :是具有符號(hào)名的、在邏輯上具有完整意義的一組相關(guān)信息項(xiàng)的集合;信息項(xiàng)是構(gòu)成文件內(nèi)容的基本單位 文件系統(tǒng):操作系統(tǒng)中實(shí)現(xiàn)文件統(tǒng)一管理的一組軟件和相關(guān)數(shù)據(jù)的集合,專門負(fù)責(zé)管理和存取文件信息的軟件機(jī)構(gòu)。 |
| 文件類型 | 按性質(zhì)和用途:系統(tǒng)文件、庫(kù)文件、用戶文件 按信息保存期限:臨時(shí)文件、檔案文件、永久文件 按保護(hù)方式:只讀文件、讀寫文件、可執(zhí)行文件、不保護(hù)文件 UNIX系統(tǒng)分為普通文件、目錄文件、設(shè)備文件(特殊文件) 文件系統(tǒng)類型:FAT,Vfat,NTFS,Ext2,HPFS |
| 文件結(jié)構(gòu) | 邏輯結(jié)構(gòu):用戶角度 分為具有結(jié)構(gòu)的記錄式文件(定長(zhǎng)、可變長(zhǎng)) 、無結(jié)構(gòu)的流式文件 物理結(jié)構(gòu):存儲(chǔ)器存儲(chǔ)方式? 分為連續(xù)結(jié)構(gòu)、鏈接結(jié)構(gòu)、索引結(jié)構(gòu) |
| 文件目錄 | 文件控制塊FCB:每個(gè)文件設(shè)置用于描述和控制文件的數(shù)據(jù)結(jié)構(gòu),包括文件名和存放文件的物理地址,包含基本信息類、存取控制信息類、使用信息類 文件目錄:文件控制塊的有序集合,用于文件的檢索,分為一級(jí)、二級(jí)、多級(jí)目錄結(jié)構(gòu) |
| 存取方法 | 指讀寫文件存儲(chǔ)器上的一個(gè)物理塊方法;包括順序存取、直接存取、按鍵存取 |
| 存儲(chǔ)空間管理 | 管理方法:空閑區(qū)表、位示圖、空閑塊鏈、成組鏈接法(UNIX系統(tǒng)) |
| 文件使用 | 文件系統(tǒng)通過用戶給出的文件名,查出對(duì)應(yīng)文件的存放位置,讀出文件內(nèi)容 操作系統(tǒng)在操作級(jí)(命令級(jí))和編程級(jí)(系統(tǒng)調(diào)用和函數(shù))向用戶提供文件服務(wù) 操作級(jí)提供命令:目錄管理類、文件操作類、文件管理類 編程級(jí)提供調(diào)用:創(chuàng)建文件、撤銷文件、打開文件、關(guān)閉文件、讀文件、寫文件 |
| 文件共享 | 不同用戶進(jìn)程使用同一文件,常見文件鏈接分為硬鏈接和符號(hào)鏈接 |
| 文件保護(hù) | 采用存取控制方式進(jìn)行保護(hù),涉及存取控制矩陣、存取控制表、用戶權(quán)限表、密碼 |
| 文件安全性可靠性 | 在系統(tǒng)級(jí)、用戶級(jí)、目錄級(jí)、文件級(jí)四個(gè)級(jí)別上對(duì)文件進(jìn)行安全性管理 通過轉(zhuǎn)儲(chǔ)和恢復(fù)、日志文件、文件系統(tǒng)的一致性實(shí)現(xiàn)文件的可靠性 |
?
作業(yè)管理
| 定義 | 系統(tǒng)為完成一個(gè)用戶的計(jì)算任務(wù)(或一次事務(wù)處理)所做的工作總和 ? |
| 組成 | 由程序、數(shù)據(jù)和作業(yè)說明書組成;作業(yè)說明書包括作業(yè)基本情況、作業(yè)控制、作業(yè)資源要求的描述,體現(xiàn)用戶控制意圖 |
| 管理 | 作業(yè)控制:采用脫機(jī)和聯(lián)機(jī)兩種控制方式 作業(yè)狀態(tài):提交、后備、執(zhí)行、完成 作業(yè)控制塊JCB:記錄作業(yè)各種有關(guān)信息的登記表,是作業(yè)存在的唯一標(biāo)志,包括用戶名、作業(yè)名、狀態(tài)標(biāo)志等信息 作業(yè)后備隊(duì)列:將作業(yè)控制塊排列成一個(gè)或多個(gè)隊(duì)列,即隊(duì)列由JCB組成 |
| 調(diào)度 | 算法:先來先服務(wù)、短作業(yè)優(yōu)先、響應(yīng)比高優(yōu)先、優(yōu)先級(jí)調(diào)度算法、均衡調(diào)度算法 衡量指標(biāo):平均周轉(zhuǎn)時(shí)間或平均帶權(quán)周轉(zhuǎn)時(shí)間 |
| 用戶界面 | 定義:用戶接入口或人機(jī)界面,是計(jì)算機(jī)中實(shí)現(xiàn)用戶與計(jì)算機(jī)通信息的軟件和硬件部分的總稱 組成:硬件部分(輸入、輸出裝置)、軟件部分(協(xié)議、操作縱命令及處理軟件) 發(fā)展階段:控制面板式用戶界面、字符用戶界面、圖形用戶界面、新一代用戶界面 |
?
7.網(wǎng)絡(luò)操作系統(tǒng)和嵌入式操作系統(tǒng)基礎(chǔ)知識(shí)
? 網(wǎng)絡(luò)操作系統(tǒng)
| 功能 | 除具備基本功能外,還應(yīng)有聯(lián)網(wǎng)功能,支持網(wǎng)絡(luò)體系結(jié)構(gòu)和各種網(wǎng)絡(luò)通信協(xié)議,提供網(wǎng)絡(luò)互聯(lián)功能,支持有效、安全可靠的數(shù)據(jù)傳送 |
| 特征 | 硬件獨(dú)立性、多用戶支持、支持網(wǎng)絡(luò)實(shí)用程序及其管理功能、多種客戶端支持、提供目錄服務(wù)、支持多種增值服務(wù) |
| 分類 | 集中模式、客戶機(jī)/服務(wù)器模式、對(duì)等模式 |
?
嵌入式操作系統(tǒng)
| 概念 | 運(yùn)行在嵌入式智能芯片環(huán)境中,對(duì)整個(gè)智能芯片以及其控制的各種部件和裝置等資源進(jìn)行統(tǒng)一協(xié)調(diào)、調(diào)度、指揮和控制的系統(tǒng)軟件 |
| 特點(diǎn) | 微型化,可定制,實(shí)時(shí)性、可靠性,易移植性;與OS相比,占用空間小,執(zhí)行效率高,便于個(gè)性化定制和軟件固化存信 |
| 開發(fā)環(huán)境 | 通常配有源代碼級(jí)可配置的系統(tǒng)模塊設(shè)計(jì)、豐富的同步原語、可選擇的調(diào)度算法、主存分配策略等 常見的嵌入式系統(tǒng)有Windows CE、Palm OS |
?
8.操作系統(tǒng)的配置
?
9.數(shù)據(jù)庫(kù)基本原理
| 基本概念 | 數(shù)據(jù)庫(kù):長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的,有組織的,可共享的數(shù)據(jù)的集合 | |
| 數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS:是一組對(duì)數(shù)據(jù)進(jìn)行管理的軟件,是一個(gè)可實(shí)際運(yùn)行的,按照數(shù)據(jù)庫(kù)方式存儲(chǔ)、維護(hù)和向應(yīng)用系統(tǒng)提供數(shù)據(jù)或信息支持的系統(tǒng) | ||
| 數(shù)據(jù)庫(kù)系統(tǒng):是實(shí)現(xiàn)有組織、動(dòng)態(tài)存儲(chǔ)大量相關(guān)數(shù)據(jù)的系統(tǒng),由數(shù)據(jù)庫(kù)、軟件、硬件和人員組成 | ||
| 數(shù)據(jù)庫(kù)技術(shù):是研究數(shù)據(jù)庫(kù)的存儲(chǔ)、結(jié)構(gòu)、設(shè)計(jì)、管理和使用的一門學(xué)科 | ||
| 數(shù)據(jù)模型 | 概念 | 數(shù)據(jù)模型:對(duì)現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象 現(xiàn)實(shí)世界:數(shù)據(jù)是客觀存在的各類原始數(shù)據(jù),按用戶的觀點(diǎn)對(duì)數(shù)據(jù)和信息建模 信息世界:是現(xiàn)實(shí)世界在人們頭腦中的反映,數(shù)據(jù)庫(kù)常用術(shù)語:實(shí)體、實(shí)體集、屬性和碼 機(jī)器世界:按計(jì)算機(jī)系統(tǒng)的觀點(diǎn)建模,描述數(shù)據(jù)的常用術(shù)語:字段、記錄、文件和記錄碼 |
| 三要素 | 數(shù)據(jù)結(jié)構(gòu):是所研究的對(duì)象類型的集合,是對(duì)系統(tǒng)靜態(tài)特性的描述 數(shù)據(jù)操作:對(duì)數(shù)據(jù)庫(kù)中各種對(duì)象的實(shí)例允許執(zhí)行的操作及操作規(guī)則的集合 數(shù)據(jù)的約束條件:是一組完整性規(guī)則的集合 | |
| E-R模型 | 實(shí)體聯(lián)系模型,屬于概念數(shù)據(jù)模型,采用的三個(gè)主要概念:實(shí)體、聯(lián)系和屬性 實(shí)體:可以區(qū)別于其他對(duì)象的“事件”或“物體”,如企業(yè)中的每個(gè)人都是一個(gè)實(shí)體,由一組特性(屬性)表示 聯(lián)系:分為實(shí)體內(nèi)部聯(lián)系和實(shí)體與實(shí)體之間的聯(lián)系;兩個(gè)不同實(shí)體集之間可以存在一對(duì)一、一對(duì)多、多對(duì)多的聯(lián)系;兩個(gè)以上不同實(shí)體集之間可以存1:1:1,1:1:n,1:m:n和r:m:n的聯(lián)系;同一實(shí)體集內(nèi)的各實(shí)體之間可以存在1:1,1:n,m:n的聯(lián)系 屬性:是實(shí)體某方面的特性,分類包括簡(jiǎn)單屬性、復(fù)合屬性、單值屬性、多值屬性、NULL屬性、派生屬性 E-R方法:實(shí)體-聯(lián)系方法,從現(xiàn)實(shí)世界中抽象出實(shí)體和實(shí)體之間的聯(lián)系,采用E-R圖來表示數(shù)據(jù)模型 | |
| 層次模型 | 屬于基本數(shù)據(jù)模型,采用樹型結(jié)構(gòu)表示數(shù)據(jù)與數(shù)據(jù)間的聯(lián)系。每一個(gè)結(jié)點(diǎn)表示一個(gè)記錄類型(實(shí)體),記錄之間的聯(lián)系用連線表示,除根結(jié)點(diǎn)以外,其他結(jié)點(diǎn)有且僅有一個(gè)雙親結(jié)點(diǎn) 特點(diǎn):記錄之間的聯(lián)系通過指針實(shí)現(xiàn),比較簡(jiǎn)單,查詢效率高 缺點(diǎn):只能表示1:n的聯(lián)系 | |
| 網(wǎng)狀模型 | 屬于基本數(shù)據(jù)模型,是層次模型的一個(gè)特例,去掉了層次模型的兩個(gè)限制,允許兩個(gè)結(jié)點(diǎn)之間有多種聯(lián)系。每一個(gè)結(jié)點(diǎn)表示一個(gè)記錄類型(實(shí)體)。 特點(diǎn):能更為直接的描述現(xiàn)實(shí)世界,具有良好的性能,存取效率高 缺點(diǎn):結(jié)構(gòu)復(fù)雜 | |
| 關(guān)系模型 | 屬于基本數(shù)據(jù)模型,由若干個(gè)關(guān)系模式組成的集合 | |
?
11.數(shù)據(jù)庫(kù)管理系統(tǒng)的功能和特征
| 功能 | 數(shù)據(jù)定義、數(shù)據(jù)庫(kù)操作、數(shù)據(jù)庫(kù)運(yùn)行管理、數(shù)據(jù)組織、存儲(chǔ)和管理、數(shù)據(jù)庫(kù)的建立和維護(hù)、與其他軟件系統(tǒng)的通信功能,不同DBMS之間的轉(zhuǎn)換功能 |
| 特征 | 數(shù)據(jù)結(jié)構(gòu)化且統(tǒng)一管理、有較高的數(shù)據(jù)獨(dú)立性、數(shù)據(jù)控制功能(安全性保護(hù)、完整性、并發(fā)控制、故障恢復(fù)) |
?
12.數(shù)據(jù)庫(kù)語言與編程
?
13.中間件基礎(chǔ)知識(shí)
?
14.網(wǎng)絡(luò)分類,體系結(jié)構(gòu)與網(wǎng)絡(luò)協(xié)議
網(wǎng)絡(luò)分類? 按通信距離分 - 廣域網(wǎng)、局域網(wǎng)、城域網(wǎng)
????????? 按信息交換方式分 - 電路交換網(wǎng)、分組交換網(wǎng)、綜合交換網(wǎng)
????????? 按網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)分 - 星形、樹形、環(huán)形、總線型
????????? 按通信介質(zhì)分 - 雙絞線網(wǎng)、同軸電纜網(wǎng)、光纖網(wǎng)、衛(wèi)星網(wǎng)
????????? 按傳輸帶寬分 - 基帶網(wǎng)、寬帶網(wǎng)
????????? 按使用范圍分 - 公用網(wǎng)、專用網(wǎng)
????????? 按速率分 - 高速網(wǎng)、中速網(wǎng)、低速網(wǎng)
????????? 按通信傳播方式分 - 廣播式、點(diǎn)到點(diǎn)式
體系結(jié)構(gòu)? 采用ISO/OSI網(wǎng)絡(luò)體系結(jié)構(gòu),OSI參考模型從低到高為物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層、應(yīng)用層;
????????? 1~3層:負(fù)責(zé)通信功能,為通信子層
????????? 5~7層:資源子網(wǎng)層
網(wǎng)絡(luò)協(xié)議
| 局域網(wǎng)協(xié)議 | LAN模型:將數(shù)據(jù)鏈路層分為介質(zhì)訪問控制層(MAC)、邏輯鏈接控制層(LLC) 以太網(wǎng)(IEEE802.3標(biāo)準(zhǔn)):采用CSMA/CD訪問協(xié)議 令牌環(huán)網(wǎng)(IEEE802.5標(biāo)準(zhǔn)):采用介質(zhì)訪問控制,編碼方式差分曼徹斯特編碼 FDDI(光纖分布式數(shù)據(jù)接口):使用同軸電纜或雙絞線,編碼方式曼徹斯特編碼 |
| 廣域網(wǎng)協(xié)議 | 點(diǎn)對(duì)點(diǎn)(PPP):主要用于拔號(hào)上網(wǎng)連接模式, 數(shù)字用戶線x DSL: 數(shù)字專線DDN:數(shù)字?jǐn)?shù)據(jù)網(wǎng),采用數(shù)字傳輸信道傳輸數(shù)據(jù)信號(hào)的通信網(wǎng) 綜合業(yè)務(wù)數(shù)字網(wǎng):建立在數(shù)字電話網(wǎng)絡(luò)基礎(chǔ)上的網(wǎng)絡(luò),提供端到端的數(shù)字連接,將聲音、數(shù)據(jù)、圖像等不同業(yè)務(wù)綜合在一個(gè)網(wǎng)絡(luò)內(nèi)進(jìn)行傳送和處理 幀中繼FR:在用戶網(wǎng)絡(luò)接口之間提供用戶信息流的雙向傳送,并保持順序不變的一種承載業(yè)務(wù)。 異步傳輸模式ATM:是一種面向分組的快速分組交換模式,使用異步時(shí)分復(fù)用技術(shù),將信息流分割成固定長(zhǎng)度的信元,ATM參考模型為分用戶層、ATM適配層、ATM層和物理層 X.25協(xié)議:是在公用數(shù)據(jù)網(wǎng)上以分組方式進(jìn)行操作的DTE(數(shù)據(jù)終端設(shè)備)和DCE(數(shù)據(jù)通信設(shè)備)之間的接口 |
| Internet協(xié)議 | TCP/IP為Internet的核心協(xié)議 TCP/IP分層模型:(低到高)網(wǎng)絡(luò)接口層(數(shù)據(jù)鏈路層)、網(wǎng)際層、傳輸層、應(yīng)用層 網(wǎng)絡(luò)接口層協(xié)議:只提供接口規(guī)范 網(wǎng)際層協(xié)議-IP(網(wǎng)際)協(xié)議、ICMP(Internet控制協(xié)議)協(xié)議、ARP(地址解析IP->物理地址)協(xié)議、RARP(反地址解析物理地址->IP)協(xié)議 傳輸層協(xié)議-TCP(傳輸控制)協(xié)議、UDP(用戶數(shù)據(jù)報(bào))協(xié)議 應(yīng)用層協(xié)議:NFS、Telnet、SMTP、DNS、SNMP、FTP |
?
15.常用網(wǎng)絡(luò)設(shè)備
| 網(wǎng)絡(luò)傳輸介質(zhì)互聯(lián)設(shè)備 | 網(wǎng)絡(luò)線路與用戶節(jié)點(diǎn)鏈接:T型頭、收發(fā)器、RJ-45接口、調(diào)制解調(diào)器 |
| 物理層的互聯(lián)設(shè)備 | 中繼器:實(shí)現(xiàn)局域網(wǎng)網(wǎng)段互聯(lián),適用于連接相同的局域網(wǎng)段 集線器:一種特殊的多路中繼器, |
| 數(shù)據(jù)鏈路層的互聯(lián)設(shè)備 | 網(wǎng)橋:工作于MAC子層,兩個(gè)網(wǎng)絡(luò)MAC子層以上的協(xié)議相同,都可以用網(wǎng)橋互聯(lián) 交換機(jī):采用端口交換、幀交換、信元交換三種交換技術(shù) |
| 網(wǎng)絡(luò)層互聯(lián)設(shè)備 | 路由器:互連的網(wǎng)絡(luò)低兩層協(xié)議可以不同 |
| 應(yīng)用層互聯(lián)設(shè)備 | 網(wǎng)關(guān):連接不同類型而協(xié)議差別又較大的網(wǎng)絡(luò) |
?
16.Internet基礎(chǔ)知識(shí)及應(yīng)用
| Internet地址 | 域名格式:用戶所在的主機(jī)名或地址,由四部組成 主機(jī)名.本地名.組名.最高層域名 IP地址格式:32位 由4個(gè)小于256的數(shù)字組成,分為A(000~127),B(128~191),C(192~223),D(224~239),E(240~255)五類 |
| Internet服務(wù) | DNS域名服務(wù):提供域名地址與IP地址的映射變換,采用客戶機(jī)/服務(wù)器模式,由解析器和域名服務(wù)器組成 TELNET遠(yuǎn)程登錄服務(wù):在Telnet協(xié)議支持下,將用戶端與遠(yuǎn)程主機(jī)相連,采用客戶機(jī)/服務(wù)器模式,由客戶軟件、服務(wù)器軟件及Telnet通信協(xié)議組成; E-mail電子郵件服務(wù):利用計(jì)算機(jī)進(jìn)行信息交換的電子媒體信息,基于客戶機(jī)/服務(wù)器模式,由E-mail客戶軟件、E-mail服務(wù)器和通信協(xié)議(SMTP、POP)組成 WWW服務(wù):一種交互式圖形界面的Internet服務(wù),具有強(qiáng)大的信息連接功能的多媒體信息服務(wù)系統(tǒng),基于客戶機(jī)/服務(wù)器模式,提供超文本傳輸協(xié)議HTTP,由Web服務(wù)器、瀏覽器和HTTP通信協(xié)議等組成;URL統(tǒng)一資源定位器 FTP文件傳輸服務(wù):在計(jì)算機(jī)之間傳輸文件,采用客戶機(jī)/服務(wù)器模式,由客戶軟件、服務(wù)器軟件和FTP通信協(xié)議組成,建立控制連接、數(shù)據(jù)連接 Gopher:將Internet上的信息組織成某種索引,采用客戶機(jī)/服務(wù)器模式, |
?
17.網(wǎng)絡(luò)管理
| 網(wǎng)絡(luò)安全 | 定義:保護(hù)計(jì)算機(jī)、網(wǎng)絡(luò)系統(tǒng)的硬件、軟件以及系統(tǒng)中的數(shù)據(jù),不因偶然的或惡意的原因而遭到破壞、更改或泄露,確保系統(tǒng)能連續(xù)和可靠地運(yùn)行,使網(wǎng)絡(luò)服務(wù)不中斷 |
| 涉及內(nèi)容:運(yùn)行系統(tǒng)的安全、信息系統(tǒng)的安全、信息傳播的安全、信息內(nèi)容的安全 | |
| 信息系統(tǒng)對(duì)安全的基本需求:保密性、完整性、可用性、可核查性 | |
| 安全威脅:物理威脅、網(wǎng)絡(luò)攻擊、身份鑒別、編程威脅、系統(tǒng)漏洞 | |
| 網(wǎng)絡(luò)的信息安全 | 信息的存儲(chǔ)安全:使用的安全(用戶的標(biāo)識(shí)、存取權(quán)限限制、安全問題追蹤),計(jì)算機(jī)防病毒防治,系統(tǒng)安全監(jiān)控,數(shù)據(jù)的加密,防止非法的攻擊等內(nèi)容 |
| 信息的傳輸安全:鏈路加密,節(jié)點(diǎn)加密,端-端加密 | |
| 防火墻技術(shù) | 分類:包過濾型防火墻、應(yīng)用代理網(wǎng)關(guān)防火墻,狀態(tài)檢測(cè)技術(shù)防火墻 |
| 體系結(jié)構(gòu):一般由過濾路由器和代理服務(wù)器組成;典型防火墻由過濾路由器,雙宿主主機(jī),被屏蔽主機(jī)以及被屏蔽子網(wǎng) |
?
?
?
18.標(biāo)準(zhǔn)化的概念(意義、發(fā)展、機(jī)構(gòu))
意義:在經(jīng)濟(jì)、技術(shù)、科學(xué)及管理等社會(huì)實(shí)踐中,以改進(jìn)產(chǎn)品、過程和服務(wù)的適用性,防止貿(mào)易壁壘,促進(jìn)技術(shù)合作,促進(jìn)最大社會(huì)效益為目的,對(duì)重復(fù)性事物和概念通過制定、發(fā)布和實(shí)施標(biāo)準(zhǔn),達(dá)到統(tǒng)一,獲得最佳秩序和社會(huì)效益的過程
發(fā)展:
機(jī)構(gòu):標(biāo)準(zhǔn)化技術(shù)委員會(huì)是制定國(guó)家標(biāo)準(zhǔn)和行業(yè)標(biāo)準(zhǔn)的一種重要組織形式,它是一定專業(yè)領(lǐng)域內(nèi)從事全國(guó)性標(biāo)準(zhǔn)化工作的技術(shù)工作組織。
19.標(biāo)準(zhǔn)化的層次(國(guó)際、國(guó)家、行業(yè)、企業(yè))
國(guó)際標(biāo)準(zhǔn):由國(guó)際標(biāo)準(zhǔn)化組織(ISO)、國(guó)際電氣委員會(huì)(IEC)所制定的標(biāo)準(zhǔn),在世界范圍內(nèi)使用,各國(guó)可以自愿采用,不強(qiáng)制使用
國(guó)家標(biāo)準(zhǔn):由政府或國(guó)家級(jí)的機(jī)構(gòu)制定或批準(zhǔn)的、適用于全國(guó)范圍的標(biāo)準(zhǔn),是一個(gè)國(guó)家標(biāo)準(zhǔn)體系的主體和基礎(chǔ),國(guó)內(nèi)各級(jí)標(biāo)準(zhǔn)必須服從且不得與之相抵觸,常見:中華人民共和國(guó)國(guó)家標(biāo)準(zhǔn)GB、美國(guó)標(biāo)準(zhǔn)、英國(guó)標(biāo)準(zhǔn)、日本工業(yè)標(biāo)準(zhǔn)
行業(yè)標(biāo)準(zhǔn):由行業(yè)機(jī)構(gòu)、學(xué)術(shù)團(tuán)體或國(guó)防機(jī)構(gòu)制定,并適用于某個(gè)業(yè)務(wù)領(lǐng)域的標(biāo)準(zhǔn),常見IEEE,中國(guó)GJB
企業(yè)標(biāo)準(zhǔn):由企業(yè)或公司批準(zhǔn)、發(fā)布的標(biāo)準(zhǔn)
我國(guó)標(biāo)準(zhǔn)分為國(guó)家、行業(yè)、地方、企業(yè)四類標(biāo)準(zhǔn)
20.標(biāo)準(zhǔn)的類別及生命周期
| 按適用范圍 | 國(guó)際、國(guó)家、行業(yè)、企業(yè)標(biāo)準(zhǔn) |
| 按性質(zhì)分類 | 技術(shù)、管理、工作標(biāo)準(zhǔn) |
| 按標(biāo)準(zhǔn)化對(duì)象 | 基礎(chǔ)標(biāo)準(zhǔn)、產(chǎn)品標(biāo)準(zhǔn)、方法、安全、衛(wèi)生、環(huán)境保護(hù)、服務(wù)標(biāo)準(zhǔn) |
| 按法律約束 | 強(qiáng)制性約束、推薦性標(biāo)準(zhǔn) |
?
21.信息安全基本概念
計(jì)算機(jī)安全:指計(jì)算機(jī)資產(chǎn)的安全,要保證這些計(jì)算機(jī)資產(chǎn)不受自然和人為的有害因素的威脅和危害;計(jì)算機(jī)資產(chǎn)由系統(tǒng)資源和信息資源組成
信息安全基本要素:機(jī)密性、完整性、可用性、可控性、可審查性
計(jì)算機(jī)安全等級(jí):技術(shù)安全性、管理安全性、政策法律安全性
22.計(jì)算機(jī)病毒及防范
定義:是一種程序,編制或者在計(jì)算機(jī)程序中插入的破壞計(jì)算機(jī)功能或者破壞數(shù)據(jù),影響計(jì)算機(jī)使用并且能夠自我復(fù)制的一組計(jì)算機(jī)指令或者程序代碼,并具有這樣的特性:可以修改別的程序,使得被修改的程序也具有這種特性
特點(diǎn):寄生性、隱藏性、非法性、傳染性、破壞性
類型:系統(tǒng)引導(dǎo)型病毒、文件外殼型病毒、混合型病毒、目錄型病毒、宏病毒
繁衍方式:變種、病毒程序加密、多形性病毒、偽裝
防治:人工預(yù)防(修改程序)、軟件預(yù)防、管理預(yù)防(建立法律制度、教育管理、建立計(jì)算機(jī)系統(tǒng)管理制度)
23.加密與解密機(jī)制
加密技術(shù):兩個(gè)元素 算法、密鑰
過程:對(duì)原來為明文的文件或數(shù)據(jù)按某種加密算法進(jìn)行處理,使其成為不可讀的一段代碼(密文)
分類:對(duì)稱加密技術(shù)、不對(duì)稱型加密、不可逆加密三類
24.信息化相關(guān)概念
信息化:是指社會(huì)經(jīng)濟(jì)的發(fā)展從以物質(zhì)與能量為經(jīng)濟(jì)結(jié)構(gòu)的重心,向以信息與知識(shí)為經(jīng)濟(jì)結(jié)構(gòu)的重心轉(zhuǎn)變的過程。在這個(gè)過程中,不斷地采用現(xiàn)代信息技術(shù)裝備國(guó)民經(jīng)濟(jì)各部門和社會(huì)各領(lǐng)域,從而極大地提高社會(huì)勞動(dòng)生產(chǎn)力。
?
25.與知識(shí)產(chǎn)權(quán)相關(guān)的法律、法規(guī)
知識(shí)產(chǎn)權(quán)
| 定義 | 指民事權(quán)利主體(公民、法人)基于創(chuàng)造性的智力成果而享有的權(quán)利 |
| 分類 | 工業(yè)產(chǎn)權(quán)和著作權(quán) 著作權(quán):指作者對(duì)其創(chuàng)作的作品享有的人身權(quán)和財(cái)產(chǎn)權(quán);人身權(quán)包括發(fā)表權(quán)、署名權(quán)、修改權(quán)和保護(hù)作品完整權(quán)財(cái)產(chǎn)權(quán)包括使用權(quán)和獲得報(bào)酬權(quán) |
| 特點(diǎn) | 無形性(智力創(chuàng)造成果) 雙重性(具有財(cái)產(chǎn)權(quán)和人身權(quán)) 確認(rèn)性(依法審查確認(rèn)得到法律保護(hù)) 獨(dú)占性(專用權(quán)具有獨(dú)占性) 地域性(在本國(guó)授予、的產(chǎn)權(quán)在本國(guó)有效) 時(shí)間性(具有保護(hù)期限) |
| 法規(guī) | 《中華人民共和國(guó)著作權(quán)法》、《…專利法》、《…繼承法》《…公司法》、《…合同法》、《…商標(biāo)法》、《…產(chǎn)品質(zhì)量法》 《…反不正當(dāng)競(jìng)爭(zhēng)法》、《…刑法》、《…計(jì)算機(jī)信息系統(tǒng)安全保護(hù)條例》、《…計(jì)算機(jī)軟件保護(hù)條件》、《…著作權(quán)法實(shí)施條例》 |
?
軟件著作權(quán)
| 主體 | 享有著作權(quán)的人,包括公民、法人和其他組織 |
| 客體 | 指著作權(quán)法保護(hù)的計(jì)算機(jī)軟件著作權(quán)的范圍(受保護(hù)的對(duì)象),計(jì)算機(jī)軟件指計(jì)算機(jī)程序及其有關(guān)文檔 |
| 條件 | 獨(dú)立創(chuàng)作:受保護(hù)的軟件必須由開發(fā)者獨(dú)立開發(fā),任何復(fù)制和抄襲他人開發(fā)的軟件不能獲得著作權(quán) 可被感知:受保護(hù)的作品應(yīng)當(dāng)是作者創(chuàng)作思想在固定載體上的一種實(shí)際表達(dá) 邏輯合理:受保護(hù)的軟件必須具備合理的邏輯思想 |
| 權(quán)利 | 人身權(quán):享有發(fā)表權(quán)和開發(fā)者身份權(quán)(署名權(quán)) 財(cái)產(chǎn)權(quán):享有控制和支配,并能夠?yàn)闄?quán)利人帶來一定經(jīng)濟(jì)效益的權(quán)利,包括使用權(quán)、復(fù)制權(quán)、修改權(quán)、發(fā)行權(quán)、翻譯權(quán)、注釋權(quán)、信息網(wǎng)絡(luò)傳播權(quán)、出租權(quán)、使用許可權(quán)和獲得報(bào)酬權(quán)、轉(zhuǎn)讓權(quán) |
?
26.信息網(wǎng)絡(luò)系統(tǒng),信息應(yīng)用系統(tǒng),信息資源系統(tǒng)基本知識(shí)
?
27.軟件工程概念
| 定義 | 指應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)據(jù)及管理科學(xué)等原理,以工程化的原則和方法來解決軟件問題的工程。 |
| 目的 | 指高軟件生產(chǎn)率,提高軟件質(zhì)量,降低軟件成本 |
| 生存周期 | 由軟件定義(系統(tǒng)分析、項(xiàng)目計(jì)劃、需求分析)、軟件開發(fā)(設(shè)計(jì)、編碼、測(cè)試)、軟件維護(hù)三個(gè)階段組成 |
?
28.需求分析
| 任務(wù) | 確定軟件系統(tǒng)的綜合要求 導(dǎo)出系統(tǒng)的邏輯模型 如有必要,可開發(fā)一個(gè)原型系統(tǒng) 分析軟件系統(tǒng)的數(shù)據(jù)要求 修正項(xiàng)目開發(fā)計(jì)劃 |
| 方法 | 結(jié)構(gòu)化分析方法SA:面向數(shù)據(jù)流的分析方法,自頂向下逐層分解,分析結(jié)果包括 數(shù)據(jù)流圖DFD:用來描述數(shù)據(jù)流從輸入到輸出的變換流程, 數(shù)據(jù)字典:為數(shù)據(jù)流圖中每個(gè)數(shù)據(jù)流、文件、加工以及組成數(shù)據(jù)流或文件的數(shù)據(jù)項(xiàng)作出說明 小數(shù)明:對(duì)加工進(jìn)一步進(jìn)行描述,描述方法結(jié)構(gòu)化語言、判定表、判定樹 補(bǔ)充材料 |
?
29.軟件系統(tǒng)設(shè)計(jì)
?
30.軟件組件設(shè)計(jì)
31.軟件編碼
32.軟件測(cè)試
33.軟件維護(hù)
34.結(jié)構(gòu)化開發(fā)方法
35.面相對(duì)象開發(fā)方法
36.瀑布模型
37.快速原形模型
38.螺旋模型
39.軟件質(zhì)量及軟件質(zhì)量管理概念
40.軟件質(zhì)量管理體系
41.軟件質(zhì)量管理的目標(biāo),內(nèi)容,方法和技術(shù)
42.軟件過程管理概念
43.軟件過程改進(jìn)
44.軟件能力成熟度模型
45.軟件配置管理的意義
46.軟件配置管理的過程,方法和技術(shù)
47.風(fēng)險(xiǎn)管理
48.風(fēng)險(xiǎn)防范及應(yīng)付
49.軟件工程術(shù)語
50.計(jì)算機(jī)軟件開發(fā)規(guī)范
51.計(jì)算機(jī)軟件產(chǎn)品開發(fā)文件編制指南
52.計(jì)算機(jī)軟件需求規(guī)范說明編制指南
53.計(jì)算機(jī)軟件測(cè)試文件編制規(guī)范
54.計(jì)算機(jī)軟件配置管理計(jì)劃規(guī)范
55.計(jì)算機(jī)軟件質(zhì)量保證計(jì)劃規(guī)范
56.數(shù)據(jù)流圖,程序流程圖,系統(tǒng)流程圖,程序網(wǎng)絡(luò)圖,和系統(tǒng)資源圖得文件編制符號(hào)及約定
57.軟件評(píng)測(cè)師職業(yè)特點(diǎn)與崗位職責(zé)
58.軟件評(píng)測(cè)師行為準(zhǔn)測(cè)與職業(yè)道德要求
59.軟件評(píng)測(cè)師得能力要求總結(jié)
以上是生活随笔為你收集整理的软件测试基础知识总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 要毕业了,我应该做点啥?
- 下一篇: 图解丨在嵌入式设备上实现HTTP服务器