軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合。注意與廣義軟件概念的區(qū)別(P1)。 程序是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu) 文檔是與程序開發(fā),維護(hù)和使用有關(guān)的圖文材料
軟件的特點(diǎn). 軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體。因而它具有抽象性 軟件的生產(chǎn)與硬件不同,在它的開發(fā)過(guò)程中沒有明顯的制造過(guò)程,可以復(fù)制, 軟件的開發(fā)和運(yùn)行常受到計(jì)算機(jī)系統(tǒng)的限制,對(duì)計(jì)算機(jī)系統(tǒng)有著不同程度的依賴性 軟件的開發(fā)至今尚未完全擺脫手工藝的開發(fā)方式 本身復(fù)雜 且 成本昂貴。
軟件功能分:系統(tǒng),支撐,應(yīng)用軟件。
軟件生存期的六個(gè)步驟,即制定計(jì)劃(確定要開發(fā)軟件系統(tǒng)的總目標(biāo),給出功能、性能、可靠性以及接口等方面的要求,完成該軟件任務(wù)的可行性研究,制定出完成開發(fā)任務(wù)的實(shí)施計(jì)劃)、需求分析(對(duì)待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)的定義)、設(shè)計(jì)(把各項(xiàng)需求轉(zhuǎn)換成軟件的體系結(jié)構(gòu),對(duì)每個(gè)模塊要完成的工作進(jìn)行具體的描述,為源程序編寫打下基礎(chǔ))、程序編碼(把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼)、測(cè)試(通過(guò)單元模塊測(cè)試和組裝測(cè)試,對(duì)各項(xiàng)需求進(jìn)行有效性測(cè)試)及運(yùn)行維護(hù) (改正性維護(hù) 適應(yīng)性維護(hù) 完善性維護(hù) )
軟件:程序和所有使程序正確運(yùn)行所需要的相關(guān)文檔和配置信息。
軟件工程:是一門工程學(xué)科,不僅涉及軟件開發(fā),也涉及軟件項(xiàng)目管理、支持軟件生產(chǎn)的工具、方法和理論的開發(fā)等活動(dòng)。
軟件過(guò)程:指制作軟件產(chǎn)品的一組活動(dòng)及其結(jié)果。包括軟件描述(對(duì)軟件及其操作的一些約束)軟件開發(fā)(軟件設(shè)計(jì)和編程實(shí)現(xiàn))軟件有效性驗(yàn)證(檢查保證客戶所需)軟件進(jìn)化(隨不同客戶和變化市場(chǎng)做修改)
軟件過(guò)程模型:從一特定角度提出的軟件過(guò)程的簡(jiǎn)化描述。1工作流模型(描述軟件過(guò)程中各種活動(dòng)的序列及其輸入輸出和相互依賴性)2數(shù)據(jù)流或活動(dòng)模型(軟件過(guò)程描述成一組活動(dòng),每個(gè)活動(dòng)完成一定數(shù)據(jù)轉(zhuǎn)換)3角色/動(dòng)作模型(描述參與人員的不同角色和各自負(fù)責(zé)的活動(dòng))
CASE是計(jì)算機(jī)輔助軟件工程的簡(jiǎn)寫。它包括很多種類的軟件工具,覆蓋面很廣,包括支持阮娟過(guò)程活動(dòng),如需求分析、系統(tǒng)建模、調(diào)試和測(cè)試等。
1瀑布模型:采用一些基本過(guò)程活動(dòng),并且使用單獨(dú)的過(guò)程階段表現(xiàn)活動(dòng)。包括:需求分析和定義(通過(guò)咨詢系統(tǒng)用戶建立系統(tǒng)的服務(wù)、約束和目標(biāo))系統(tǒng)和軟件設(shè)計(jì)(系統(tǒng)設(shè)計(jì)區(qū)分硬件和軟件系統(tǒng)的需求,軟件設(shè)計(jì)包括識(shí)別和描述一些基本的軟件系統(tǒng)的抽象及其之間的關(guān)系)實(shí)現(xiàn)和單元測(cè)試(檢驗(yàn)每個(gè)單元是否符合描述)集成和系統(tǒng)測(cè)試(對(duì)系統(tǒng)整體測(cè)試確保滿足需求)運(yùn)行和維護(hù)。優(yōu)勢(shì)在于每個(gè)階段生成文檔,并且與其他模型相一致,問(wèn)題在于將項(xiàng)目生硬分解成這些確切的階段。委托事項(xiàng)一定要在過(guò)程的早期階段清晰給出,意味它難以響應(yīng)用戶需求的變更。
2迭代式模型:是軟件描述、開發(fā)和有效性驗(yàn)證活動(dòng)交替進(jìn)行的開發(fā)方法。先開發(fā)出一個(gè)原型給用戶使用,通過(guò)用戶反饋意見不斷修改系統(tǒng)直到最后成熟。基本類型(探索式開發(fā)和拋棄式原型)優(yōu)勢(shì)在于讓開發(fā)活動(dòng)都能得到快速的反饋信息,缺點(diǎn)在于1過(guò)程不可見(管理者要經(jīng)常性交付把握進(jìn)度)2系統(tǒng)結(jié)構(gòu)通常較差(連續(xù)的變更損壞系統(tǒng)結(jié)構(gòu))
3基于組件的軟件工程(CBSE )假定系統(tǒng)的各個(gè)組件已經(jīng)存在,開發(fā)過(guò)程焦點(diǎn)在于集成這些組件。階段:組件分析(給出需求描述,然后搜索能滿足需求的組件)需求修改(修改需求以反映可得到的組件)使用復(fù)用的系統(tǒng)設(shè)計(jì)(開始設(shè)計(jì)系統(tǒng)的框架)開發(fā)和集成(集成開發(fā)的組件和現(xiàn)成的組件使之成為整體)優(yōu)勢(shì)在于減少需要開發(fā)的軟件數(shù)量,降低軟件開發(fā)成本和風(fēng)險(xiǎn)。缺點(diǎn)在于需求妥協(xié)的不可避免,對(duì)系統(tǒng)進(jìn)化的控制不起作用。
Rational統(tǒng)一過(guò)程:是一個(gè)階段化了的模型,識(shí)別出軟件過(guò)程當(dāng)中的四個(gè)階段——開端(目標(biāo)是建立系統(tǒng)的一個(gè)業(yè)務(wù)案例)細(xì)化(增進(jìn)對(duì)問(wèn)題域的理解,建立系統(tǒng)的體系框架)構(gòu)造(關(guān)心系統(tǒng)設(shè)計(jì)、編程和測(cè)試)轉(zhuǎn)換(關(guān)注如何將系統(tǒng)從開發(fā)單位轉(zhuǎn)移到用戶單位使之在真實(shí)環(huán)境工作)九個(gè)工作流 ——業(yè)務(wù)建模(用業(yè)務(wù)用例對(duì)業(yè)務(wù)過(guò)程建模)需求(完成對(duì)系統(tǒng)需求的建模)分析和設(shè)計(jì)(使用體系結(jié)構(gòu)模型、組件模型、對(duì)象模型和序列模型來(lái)創(chuàng)建并記錄設(shè)計(jì)模型)實(shí)現(xiàn)(實(shí)現(xiàn)系統(tǒng)中的組件并將他們合理安排在子系統(tǒng)中)測(cè)試(它的執(zhí)行與實(shí)現(xiàn)緊密聯(lián)系)部署(創(chuàng)建和分發(fā)產(chǎn)品版本并安裝到他們的工作場(chǎng)所)配置和變更管理(支持工作流管理對(duì)系統(tǒng)的變更)項(xiàng)目管理(支持工作流管理系統(tǒng)開發(fā))環(huán)境(用于提供軟件開發(fā)團(tuán)隊(duì)可用的合適軟件工具)六個(gè)基本實(shí)踐(反復(fù)的開發(fā)軟件、管理需求、使用基于組件的體系結(jié)構(gòu)、可視化模型軟件、驗(yàn)證軟件質(zhì)量、控制對(duì)軟件的變更)
軟件系統(tǒng)需求常常分為功能需求、非功能需求和領(lǐng)域需求。1功能需求——包括對(duì)系統(tǒng)應(yīng)該提供的服務(wù)、如何對(duì)輸入作出反應(yīng)以及系統(tǒng)在特定條件下的行為的描述。應(yīng)該即、既全面(用戶所需服務(wù)都給出描述)又具有一致性(描述不能前后矛盾)2非功能需求——對(duì)系統(tǒng)提供的服務(wù)或功能給出的約束。分類:產(chǎn)品需求(敘述產(chǎn)品行為的需求,包括可移植性和可用性需求)機(jī)構(gòu)需求(起源于客戶所在的機(jī)構(gòu)和開發(fā)者所在的機(jī)構(gòu)中的政策和規(guī)定)外部需求(包括所有系統(tǒng)外部因素和開發(fā)過(guò)程,如操作、法律、道德需求)3領(lǐng)域需求——來(lái)自系統(tǒng)的應(yīng)用領(lǐng)域的需求,反映該領(lǐng)域的特點(diǎn)。
用戶需求是從用戶角度來(lái)描述系統(tǒng)功能和非功能需求,以便讓不具備專業(yè)技術(shù)知識(shí)的用戶能看懂。編寫用戶需求的一些原則:1設(shè)計(jì)一個(gè)標(biāo)準(zhǔn)的格式,保證所有的需求定義按照該格式書寫。2使用一致的語(yǔ)言。定義強(qiáng)制性需求要使用“必須”;定義希望性需求時(shí)使用“應(yīng)該”。3對(duì)文本加亮來(lái)突出顯示關(guān)鍵性需求。4盡量避免用計(jì)算機(jī)專業(yè)術(shù)語(yǔ)。
系統(tǒng)需求:是用戶需求的擴(kuò)展版,是軟件工程師開始系統(tǒng)設(shè)計(jì)的起點(diǎn)。僅僅描述系統(tǒng)的外部行為和對(duì)它的操作上的限制,而不包括系統(tǒng)應(yīng)該如何設(shè)計(jì)和實(shí)現(xiàn)。
信息持有者(對(duì)系統(tǒng)需求有直接或間接影響力的人)
需求導(dǎo)入和分析:軟件開發(fā)技術(shù)人員要和客戶及系統(tǒng)最終用戶一起調(diào)查應(yīng)用領(lǐng)域。包括:需求發(fā)現(xiàn)(收集準(zhǔn)備建立的系統(tǒng)和正在使用的系統(tǒng)的信息,并從這些信息當(dāng)中提取用戶和系統(tǒng)的需求)需求分類和組織、優(yōu)先排序和沖突解決、需求文檔編制(記錄需求并將它作為螺旋下一循環(huán)的輸入,產(chǎn)生形式化的或非形式化的需求文檔)
視點(diǎn):需求工程的面向視點(diǎn)的方法將導(dǎo)出過(guò)程和需求本身都用視點(diǎn)來(lái)組織。1交互者視點(diǎn)(代表與系統(tǒng)直接交互的人或其他系統(tǒng))2間接視點(diǎn)(代表那些不使用系統(tǒng)本身但是以某種方式影響需求的信息持有者)3領(lǐng)域視點(diǎn)(代表領(lǐng)域和影響系統(tǒng)需求的那些約束)
場(chǎng)景:描述人如何與一個(gè)軟件系統(tǒng)交互。
用例:是一種基于場(chǎng)景的需求導(dǎo)出技術(shù),識(shí)別與系統(tǒng)的單個(gè)交互。
需求管理是一個(gè)對(duì)系統(tǒng)需求變更了解和控制的過(guò)程,需要跟蹤各個(gè)需求并維護(hù)他們與所依賴需求之間的關(guān)聯(lián)關(guān)系。分持久和易變的需求。
在需求管理階段,必須決定一下內(nèi)容——需求識(shí)別、需求管理過(guò)程、可追溯策略、CASE工具支持。3類可追溯信息:1源可追溯性信息連接需求到提出需求的信息持有者和這些需求的基本原理2需求可追溯性信息連接需求文檔中 依賴的需求3設(shè)計(jì)可追溯性信息連接需求到其實(shí)現(xiàn)的設(shè)計(jì)模塊。需求變更管理三個(gè)階段:1問(wèn)題分析和變更描述階段(要對(duì)問(wèn)題或變更提議進(jìn)行分析以檢查它的有效性)2變更分析和成本計(jì)算(對(duì)被提議的變更產(chǎn)生的影響進(jìn)行評(píng)估并且估計(jì)系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)的成本)3變更實(shí)現(xiàn)。
體系結(jié)構(gòu)設(shè)計(jì)是設(shè)法建立一個(gè)系統(tǒng)組成來(lái)滿足功能性和非功能性需求。
所開發(fā)的體系結(jié)構(gòu)模型會(huì)包括:靜態(tài)結(jié)構(gòu)模型(給出子系統(tǒng)或組件,將其作為一個(gè)個(gè)獨(dú)立的單元開發(fā))動(dòng)態(tài)過(guò)程模型(給出系統(tǒng)在運(yùn)行時(shí)的過(guò)程組成)接口模型(定義每個(gè)子系統(tǒng)從它們的公共接口能得到服務(wù))關(guān)系模型(給出如子系統(tǒng)間的數(shù)據(jù)流這樣的關(guān)系)分布模型(給出子系統(tǒng)在多臺(tái)計(jì)算機(jī)上是如何分布的)
模塊化分解:將子系統(tǒng)分解為模塊,有兩種策略:1 面向?qū)ο蟮姆纸猓▽⑾到y(tǒng)分解為一組相互通信的對(duì)象)一個(gè)面向?qū)ο蟮南到y(tǒng)體系結(jié)構(gòu)模型是將系統(tǒng)看成一組松散的對(duì)象結(jié)合,這些對(duì)象都有良好的接口定義,對(duì)象請(qǐng)求其他對(duì)象提供的服務(wù)。優(yōu)勢(shì)在于其對(duì)象間是松散耦合的,對(duì)對(duì)象實(shí)現(xiàn)的修改可以不影響其他對(duì)象,缺點(diǎn)在于對(duì)象必須明確地給出引用的其他對(duì)象的名字及其接口。2 面向功能的流水線操作(將系統(tǒng)分解為一些功能模塊,這些功能模塊接受輸入并轉(zhuǎn)換它們?yōu)檩敵鰯?shù)據(jù))好處在于1支持換換的復(fù)用2直觀,能將它們的工作理解成輸入輸出處理3可以簡(jiǎn)單的再系統(tǒng)中增加新的轉(zhuǎn)換4無(wú)論作為順序的還是并發(fā)的系統(tǒng),其實(shí)現(xiàn)容易。其主要缺點(diǎn)是需要一種適合于所有轉(zhuǎn)換的通用格式。
數(shù)據(jù)處理系統(tǒng)是批處理系統(tǒng),數(shù)據(jù)的輸入和輸出時(shí)成批地從文件或數(shù)據(jù)庫(kù)中取出或存入,而不是對(duì)用戶終端進(jìn)行輸入和輸出。 形成輸入—處理—輸出結(jié)構(gòu)。
事務(wù)處理系統(tǒng)是設(shè)計(jì)用來(lái)處理用戶對(duì)數(shù)據(jù)庫(kù)信息的查詢或者請(qǐng)求更新數(shù)據(jù)庫(kù)的。
快速軟件開發(fā)的原因:新的軟件需要快速開發(fā)來(lái)順應(yīng)新的的機(jī)遇,響應(yīng)競(jìng)爭(zhēng)壓力。事實(shí)上很多業(yè)務(wù)都寧愿犧牲一些軟件的質(zhì)量并降低某些需求來(lái)贏得快速軟件移交。還因?yàn)闃I(yè)務(wù)運(yùn)營(yíng)于一個(gè)變化的環(huán)境中,因此實(shí)際上通常不可能導(dǎo)出一個(gè)完全的穩(wěn)定的軟件需求。
基本特征:1描述、設(shè)計(jì)和實(shí)現(xiàn)過(guò)程是并發(fā)的2系統(tǒng)通過(guò)一系列增量開發(fā)出來(lái)3系統(tǒng)用戶界面通常是采用交互式開發(fā)系統(tǒng)開發(fā)的。
敏捷方法的基本原則:客戶參與(客戶應(yīng)該在開發(fā)過(guò)程中始終緊密參與其中)增量式移交(軟件以增量的方式進(jìn)行開發(fā),客戶指定每個(gè)增量中的包含需求)人非過(guò)程(開發(fā)團(tuán)隊(duì)的技術(shù)應(yīng)該得到承認(rèn)和發(fā)揚(yáng))接收變更(設(shè)計(jì)系統(tǒng)使之適應(yīng)這些變更)保持簡(jiǎn)單性(致力于所開發(fā)的軟件和開發(fā)過(guò)程的簡(jiǎn)單性)
極限編程的經(jīng)驗(yàn):增量式規(guī)劃(需求記錄在腳本上,開發(fā)者將腳本分解為開發(fā)任務(wù))小版本(首先開發(fā)能提供業(yè)務(wù)價(jià)值的一個(gè)最小有用集合)簡(jiǎn)單設(shè)計(jì)(只進(jìn)行有限需求設(shè)計(jì))測(cè)試優(yōu)先開發(fā)(功能實(shí)現(xiàn)之前,采用一個(gè)自動(dòng)單元測(cè)試框架來(lái)書寫此新功能的測(cè)試)重構(gòu)(保持代碼簡(jiǎn)單和可維護(hù)性)結(jié)對(duì)編程(檢查彼此工作提供支持)集體所有(配對(duì)的開發(fā)人員參與系統(tǒng)的所有方面,所有開發(fā)者享有全部代碼)連續(xù)集成(任務(wù)一完成,就將它集成到大系統(tǒng)中)可忍受速度(不能接受大量超時(shí))在場(chǎng)客戶(系統(tǒng)最終用戶的代表應(yīng)該全程滿時(shí)配合XP團(tuán)隊(duì))
檢驗(yàn)和有效性驗(yàn)證:實(shí)現(xiàn)過(guò)程之后,必須對(duì)所開發(fā)的程序進(jìn)行驗(yàn)證,它是對(duì)這些檢查和分析過(guò)程的總稱。 檢驗(yàn)的作用是檢查軟件是否符合它的描述。應(yīng)該檢查系統(tǒng)是否滿足了需求所定義的功能的和非功能的需求。有效性驗(yàn)證卻是一個(gè)更一般的過(guò)程,其目標(biāo)是保證軟件系統(tǒng)能滿足客戶的期待。
V&V過(guò)程中,系統(tǒng)檢查和分析有兩種互補(bǔ)的方法:1軟件審查或配對(duì)審查——審查可以輔之以某些對(duì)系統(tǒng)源文本或者是相關(guān)文檔的自動(dòng)分析,是一種靜態(tài)的V&V技術(shù),因?yàn)槟銦o(wú)需再計(jì)算機(jī)上運(yùn)行系統(tǒng)。2包括使用測(cè)試數(shù)據(jù)來(lái)運(yùn)行軟件的實(shí)現(xiàn),檢驗(yàn)軟件的輸出和它的操作行為,測(cè)試是一種動(dòng)態(tài)的V&V技術(shù)。在軟件過(guò)程的不同階段,有2中截然不同的測(cè)試類型:1有效性測(cè)試——試圖證明軟件是用戶所期望的即滿足需求2缺陷測(cè)試——試圖使缺陷暴露出來(lái),而不是要仿真它在實(shí)際中的使用。發(fā)現(xiàn)程序和描述的不一致。
檢驗(yàn)和有效性驗(yàn)證過(guò)程試圖確定軟件系統(tǒng)中存在缺陷,程序調(diào)試時(shí)一個(gè)對(duì)缺陷定位和修正的過(guò)程。
軟件測(cè)試的目標(biāo):1向開發(fā)者和用戶展示軟件滿足它的需求。2為了找出軟件中的缺陷和不足,即軟件的活動(dòng)室不正確的、所不希望的或不符合它的描述的。
測(cè)試過(guò)程:組件測(cè)試(單個(gè)程序組件的測(cè)試)—系統(tǒng)測(cè)試(對(duì)一組組件集成的系統(tǒng)進(jìn)行測(cè)試)
系統(tǒng)測(cè)試:兩個(gè)階段1集成測(cè)試(測(cè)試小組可以深入到系統(tǒng)源代碼)自上而下集成:首先開發(fā)系統(tǒng)的框架,然后將組件加入到框架中。自下而上集成:集成基礎(chǔ)設(shè)施組件,然后添加功能組件.2發(fā)布測(cè)試(對(duì)要發(fā)布給用戶的系統(tǒng)版本進(jìn)行測(cè)試)
測(cè)試原則:是給測(cè)試團(tuán)隊(duì)提示,以幫助他們選擇將揭示系統(tǒng)中的缺陷測(cè)試。
接口測(cè)試:目標(biāo)是為了檢測(cè)由于接口的錯(cuò)誤或無(wú)效的接口假設(shè)所造成的故障.
接口類型1參數(shù)接口(數(shù)據(jù)從一個(gè)過(guò)程傳到另外一個(gè)過(guò)程).2共享內(nèi)存接口(內(nèi)存塊為過(guò)程或函數(shù)所共享.)3程序接口(子系統(tǒng)封裝一組程序,這些程序?yàn)槠渌酉到y(tǒng)調(diào)用.)4消息傳遞接口(子系統(tǒng)通過(guò)傳遞消息請(qǐng)求其他子系統(tǒng)上的服務(wù))
劃分測(cè)試:由于類中成員的這些等價(jià)行為,這些類通常叫做等價(jià)劃分或者域.
結(jié)構(gòu)化測(cè)試(白盒測(cè)試):根據(jù)軟件的結(jié)構(gòu)知識(shí)和實(shí)現(xiàn)知識(shí)導(dǎo)出測(cè)試的測(cè)試用例設(shè)計(jì)方法。
路徑測(cè)試:目標(biāo)是要練習(xí)組件或程序中的每一條執(zhí)行路徑。
要點(diǎn):測(cè)試只能證明系統(tǒng)中存在錯(cuò)誤,它不能說(shuō)明系統(tǒng)中不再有缺陷.;組件測(cè)試是組件開發(fā)者的責(zé)任,獨(dú)立的測(cè)試團(tuán)隊(duì)通常執(zhí)行系統(tǒng)測(cè)試.;集成測(cè)試是最初的系統(tǒng)測(cè)試活動(dòng),發(fā)布測(cè)試關(guān)心的是測(cè)試客戶版本,應(yīng)該驗(yàn)證所要發(fā)布的系統(tǒng)滿足了它的需求.;在缺陷測(cè)試時(shí),應(yīng)根據(jù)經(jīng)驗(yàn)和準(zhǔn)則來(lái)設(shè)計(jì)測(cè)試用例.;接口測(cè)試是要發(fā)現(xiàn)組合組件的接口中的缺陷.;等價(jià)劃分是導(dǎo)出測(cè)試用例的一個(gè)方法,需要找出輸入和輸出數(shù)據(jù)集合上的劃分并用這些劃分中的數(shù)據(jù)執(zhí)行系統(tǒng).;結(jié)構(gòu)化分析依賴于分析一個(gè)程序由此來(lái)確定路徑.;測(cè)試自動(dòng)化通過(guò)使用一系列軟件工具支持測(cè)試過(guò)程,以減少測(cè)試過(guò)程的花費(fèi).
什么是黑盒測(cè)試和白盒測(cè)試? 任何工程產(chǎn)品(注意是任何工程產(chǎn)品)都可以使用以下兩種方法之一進(jìn)行測(cè)試。 黑盒測(cè)試:已知產(chǎn)品的功能設(shè)計(jì)規(guī)格,可以進(jìn)行測(cè)試證明每個(gè)實(shí)現(xiàn)了的功能是否符合要求。 白盒測(cè)試:已知產(chǎn)品的內(nèi)部工作過(guò)程,可以通過(guò)測(cè)試證明每種內(nèi)部操作是否符合設(shè)計(jì)規(guī)格要求,所有內(nèi)部成分是否以經(jīng)過(guò)檢查。 軟件的黑盒測(cè)試意味著測(cè)試要在軟件的接口處進(jìn)行。這種方法是把測(cè)試對(duì)象看做一個(gè)黑盒子,測(cè)試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說(shuō)明書,檢查程序的功能是否符合它的功能說(shuō)明。因此黑盒測(cè)試又叫功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試。黑盒測(cè)試主要是為了發(fā)現(xiàn)以下幾類錯(cuò)誤: 1、是否有不正確或遺漏的功能? 2、在接口上,輸入是否能正確的接受?能否輸出正確的結(jié)果? 3、是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息(例如數(shù)據(jù)文件)訪問(wèn)錯(cuò)誤? 4、性能上是否能夠滿足要求? 5、是否有初始化或終止性錯(cuò)誤? 軟件的白盒測(cè)試是對(duì)軟件的過(guò)程性細(xì)節(jié)做細(xì)致的檢查。這種方法是把測(cè)試對(duì)象看做一個(gè)打開的盒子,它允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。通過(guò)在不同點(diǎn)檢查程序狀態(tài),確定實(shí)際狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。白盒測(cè)試主要是想對(duì)程序模塊進(jìn)行如下檢查: 1、對(duì)程序模塊的所有獨(dú)立的執(zhí)行路徑至少測(cè)試一遍。 2、對(duì)所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測(cè)一遍。 3、在循環(huán)的邊界和運(yùn)行的界限內(nèi)執(zhí)行循環(huán)體。 4、測(cè)試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等等。 以上事實(shí)說(shuō)明,軟件測(cè)試有一個(gè)致命的缺陷,即測(cè)試的不完全、不徹底性。由于任何程序只能進(jìn)行少量(相對(duì)于窮舉的巨大數(shù)量而言)的有限的測(cè)試,在未發(fā)現(xiàn)錯(cuò)誤時(shí),不能說(shuō)明程序中沒有錯(cuò)誤。
配置管理的重要性:涉及程序和標(biāo)準(zhǔn)的發(fā)展和應(yīng)用來(lái)管理不斷發(fā)展的軟件產(chǎn)品;配置管理有時(shí)候被看做是軟件質(zhì)量管理過(guò)程的一部分;當(dāng)進(jìn)行配置管理時(shí),受控系統(tǒng)有時(shí)也稱為基線,因?yàn)樗鼈兪鞘芸剡M(jìn)化的一個(gè)起點(diǎn).
四種主要配置管理活動(dòng):
配置管理規(guī)劃:描述配置管理應(yīng)該使用的標(biāo)準(zhǔn)和規(guī)劃。1配置項(xiàng)識(shí)別(應(yīng)該定義文檔命名規(guī)則,以便類型相同的文檔命名也類似)2配置數(shù)據(jù)庫(kù)(用于記錄與配置有關(guān)的所有信息)
變更管理:需求不斷發(fā)生變化,系統(tǒng)也相應(yīng)作出變更。關(guān)注的是對(duì)變化保持跟蹤,并確保它們用最具成本效益的方式實(shí)施. 變更請(qǐng)求表(記錄了變更的建議、變更的請(qǐng)求、變更的原因以及變更的迫切性.它還記錄了變更評(píng)估、影響分析、變更成本和建議.)
版本和發(fā)布管理:是識(shí)別和追蹤一個(gè)系統(tǒng)的各個(gè)版本和發(fā)布的過(guò)程。
版本 一個(gè)系統(tǒng)版本就是一個(gè)系統(tǒng)實(shí)例,在某種程度上有別于其他系統(tǒng)實(shí)例.
變體 有一些版本可能在功能上沒有什么區(qū)別,只是為了不同的硬件或軟件配置而設(shè)計(jì).
發(fā)布版本: 一個(gè)系統(tǒng)的發(fā)布版本就是要分發(fā)給客戶的版本.
版本管理規(guī)程應(yīng)該規(guī)定明確的標(biāo)識(shí)每個(gè)組件版本的方法.
三種基本的版本標(biāo)識(shí)方法 1版本編號(hào);2基于屬性的標(biāo)識(shí);3面向變更的標(biāo)識(shí).
系統(tǒng)構(gòu)建:把軟件組件編譯和連接成一個(gè)程序并在特定目標(biāo)配置上運(yùn)行的過(guò)程.
CASE工具可用于支持所有的配置管理活動(dòng).
支持配置管理的CASE工具可以是一些獨(dú)立的工具分別用來(lái)支持變更管理、版本管理和系統(tǒng)構(gòu)建,也可以是集成的系統(tǒng),為所有的配置管理支持提供一個(gè)一致的接口.
聯(lián)系客服