版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
程序設(shè)計(jì)基礎(chǔ)1.程序設(shè)計(jì)方法與風(fēng)格2.結(jié)構(gòu)化程序設(shè)計(jì)。3.面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,對(duì)象,方法,屬性及繼承與多態(tài)性。2009年3月:填空題(3)符合結(jié)構(gòu)化的三種基本結(jié)構(gòu)是選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和___。順序結(jié)構(gòu)程序設(shè)計(jì)基礎(chǔ)1.程序設(shè)計(jì)方法與風(fēng)格2009年3月:填空題順序真題實(shí)例2009年9月:選擇題(6)下列選項(xiàng)中,不符合結(jié)構(gòu)化程序設(shè)計(jì)原則的是:A)封裝性B)模塊化C)逐步求精D)自頂向下AB2009年9月:填空題(2)程序流程圖中,菱形框表示的是___。選擇框真題實(shí)例2009年9月:選擇題AB2009年9月:填空題選擇三、軟件工程基礎(chǔ)
1.軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開(kāi)發(fā)環(huán)境。2.結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說(shuō)明書(shū)。3.結(jié)構(gòu)化設(shè)計(jì)方法,總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)。4.軟件測(cè)試的方法,白盒測(cè)試與黑盒測(cè)試,測(cè)試用例設(shè)計(jì),軟件測(cè)試的實(shí)施,單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試。5.程序的調(diào)試,靜態(tài)調(diào)試與動(dòng)態(tài)調(diào)試。三、軟件工程基礎(chǔ)1.軟件工程基本概念,軟件生命周期概念,軟件概述軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合。軟件的概念程序是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)文檔是與程序開(kāi)發(fā),維護(hù)和使用有關(guān)的圖文材料軟件概述軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分軟件真題實(shí)例2009年3月:選擇題(5)軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件。下面屬于應(yīng)用軟件的有:A)編譯程序B)操作系統(tǒng)C)教務(wù)管理系統(tǒng)D)匯編程序CB2010年3月:填空題(4)軟件是___、數(shù)據(jù)和文檔的集合。程序真題實(shí)例2009年3月:選擇題CB2010年3月:填空題程序軟件開(kāi)發(fā)方法—結(jié)構(gòu)化自頂向下,逐步求精,單入口,單出口,基本原則是抽象和分解圍繞處理功能的實(shí)現(xiàn)過(guò)程來(lái)構(gòu)造軟件系統(tǒng),特別適合于需求能夠預(yù)先確定的系統(tǒng)開(kāi)發(fā)缺點(diǎn):大規(guī)?;蛘邚?fù)雜項(xiàng)目,結(jié)構(gòu)化方法不夠適用,難于解決軟件復(fù)用,難于適應(yīng)需求變化,軟件維護(hù)比較復(fù)雜.2009年9月:選擇題(6)下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是:A)可封裝B)自頂向下C)模塊化D)逐步求精A軟件開(kāi)發(fā)方法—結(jié)構(gòu)化自頂向下,逐步求精,單入口,單出口,軟件開(kāi)發(fā)方法—面向?qū)ο蟊M可能模擬人類(lèi)習(xí)慣思維方式使描述問(wèn)題的問(wèn)題空間與計(jì)算機(jī)上解決問(wèn)題的解空間上盡可能一致對(duì)象的基本特點(diǎn):(1)標(biāo)識(shí)惟一性;(2)分類(lèi)性;(3)多態(tài)性;(4)封裝性;(5)模塊獨(dú)立性好。
軟件開(kāi)發(fā)方法—面向?qū)ο蟊M可能模擬人類(lèi)習(xí)慣思維方式使描述問(wèn)軟件的特點(diǎn)邏輯產(chǎn)品失效率時(shí)間時(shí)間占總成本百分比軟件硬件磨合調(diào)整磨損用壞永不磨損和老化通過(guò)“拷貝”進(jìn)行批量生產(chǎn)規(guī)模增大,費(fèi)用上升維護(hù)軟件開(kāi)發(fā)技術(shù)落后時(shí)間軟件復(fù)雜度需求增長(zhǎng)技術(shù)進(jìn)步近30年硬件性能價(jià)格比上升106軟件概述軟件的特點(diǎn)邏輯產(chǎn)品失效率時(shí)間時(shí)間占總成本百分比軟件硬件磨軟件概述軟件開(kāi)發(fā)技術(shù)的發(fā)展程序設(shè)計(jì)50~60年代程序系統(tǒng)60~70年代軟件工程70年代至今程序程序及說(shuō)明書(shū)程序、文檔、數(shù)據(jù)設(shè)計(jì)者本人少數(shù)用戶(hù)市場(chǎng)用戶(hù)個(gè)人開(kāi)發(fā)小組開(kāi)發(fā)小組及大中型軟件開(kāi)發(fā)機(jī)構(gòu)個(gè)人程序技術(shù)小組技術(shù)水平管理水平時(shí)期特點(diǎn)軟件所指需求者開(kāi)發(fā)軟件的組織決定質(zhì)量的因素發(fā)揮創(chuàng)造才能的技術(shù)領(lǐng)域軟件危機(jī)由管理水平?jīng)Q定的工程產(chǎn)品軟件概述軟件開(kāi)發(fā)技術(shù)的發(fā)展程序設(shè)計(jì)程序系統(tǒng)軟件工程程序1963年,美國(guó)。程序中的一點(diǎn)之差導(dǎo)致飛往火星的火箭爆炸IBM公司于60年代開(kāi)發(fā)OS/360系統(tǒng),問(wèn)題頻出,宣布失敗Brooks描述研制過(guò)程的混亂和困境像巨獸在泥潭中作垂死掙扎,掙扎得越猛,泥漿沾得越多,最后,沒(méi)有一只野獸能逃脫淹沒(méi)在泥潭中的命運(yùn)……程序設(shè)計(jì)就像這樣一個(gè)泥潭……一批程序員在泥潭中掙扎,沒(méi)有人料到問(wèn)題竟會(huì)這樣棘手……軟件危機(jī)1963年,美國(guó)。程序中的一點(diǎn)之差導(dǎo)致飛往火星的火箭軟件危機(jī)軟件危機(jī)的表現(xiàn)開(kāi)發(fā)成本和進(jìn)度難于估計(jì)用戶(hù)不滿(mǎn)意軟件質(zhì)量被懷疑缺乏文檔維護(hù)困難軟件開(kāi)發(fā)生產(chǎn)率的提高速度與用戶(hù)需求之間的差距越來(lái)越大1.缺乏軟件開(kāi)發(fā)的經(jīng)驗(yàn)和有關(guān)軟件開(kāi)發(fā)數(shù)據(jù)的積累2.軟件需求在開(kāi)發(fā)的初期階段不夠明確,或是未能得到確切的表達(dá)3.開(kāi)發(fā)過(guò)程沒(méi)有統(tǒng)一、公認(rèn)的方法論和規(guī)范進(jìn)行指導(dǎo),開(kāi)發(fā)人員自行其事4.未能在測(cè)試階段充分做好檢測(cè)工作。軟件危機(jī)產(chǎn)生的原因指軟件開(kāi)發(fā)和維護(hù)中遇到的一系列嚴(yán)重問(wèn)題軟件危機(jī)軟件危機(jī)的表現(xiàn)開(kāi)發(fā)成本和進(jìn)度難于估計(jì)用戶(hù)不滿(mǎn)意軟件工程軟件工程三要素方法、工具和過(guò)程軟件工程的核心把軟件當(dāng)成一個(gè)工程產(chǎn)品來(lái)處理軟件工程過(guò)程把輸入轉(zhuǎn)化為輸出的一再組相關(guān)的資源和活動(dòng)在軟件開(kāi)發(fā)過(guò)程中應(yīng)用工程化原則。軟件工程軟件工程三要素方法、工具和過(guò)程軟件工程的核心把軟件當(dāng)軟件工程軟件生存期軟件產(chǎn)品的孕育、誕生、成長(zhǎng)、成熟、衰亡的生存過(guò)程
需求分析軟件設(shè)計(jì)程序編碼軟件測(cè)試運(yùn)行維護(hù)制定計(jì)劃軟件生存期三個(gè)階段軟件定義、軟件開(kāi)發(fā),軟件維護(hù)
軟件生存期主要活動(dòng)階段:軟件工程軟件生存期軟件產(chǎn)品的孕育、誕生、成長(zhǎng)、成熟、衰亡的生瀑布模型問(wèn)題定義可行性研究需求分析設(shè)計(jì)編程測(cè)試運(yùn)行維護(hù)軟件定義軟件開(kāi)發(fā)軟件維護(hù)生存期模型軟件人員遵循嚴(yán)格的規(guī)范,每一階段結(jié)束,要嚴(yán)格評(píng)審和確認(rèn)寫(xiě)出完整、無(wú)多義性的文檔用戶(hù)很難表達(dá)對(duì)系統(tǒng)的全面要求開(kāi)發(fā)人員不懂用戶(hù)的業(yè)務(wù)真題瀑布模型問(wèn)題定義可行性研究需求分析設(shè)計(jì)編程測(cè)試運(yùn)需求分析任務(wù)充分理解用戶(hù)需要解決的問(wèn)題:?jiǎn)栴}特征、特點(diǎn)、可以抽象為何種模型定義軟件的規(guī)格說(shuō)明描述軟件的需求需求分析的過(guò)程常用的分析方法結(jié)構(gòu)化分析方法面向?qū)ο蠓椒ㄗR(shí)別問(wèn)題分析與綜合編寫(xiě)需求分析規(guī)格說(shuō)明書(shū)需企業(yè)分析評(píng)審需求分析任務(wù)充分理解用戶(hù)需要解決的問(wèn)題:需求分析的過(guò)程常用結(jié)構(gòu)化分析的常用工具數(shù)據(jù)流圖、數(shù)據(jù)字典、判定樹(shù)和判定表數(shù)據(jù)流圖用圖形的方法來(lái)表達(dá)數(shù)據(jù)處理的過(guò)程。功能主要圖形元素?cái)?shù)據(jù)流加工數(shù)據(jù)存儲(chǔ)數(shù)據(jù)源點(diǎn)或終點(diǎn)數(shù)據(jù)文件數(shù)據(jù)庫(kù)寫(xiě)讀數(shù)據(jù)流圖的層次結(jié)構(gòu)結(jié)構(gòu)化分析的常用工具數(shù)據(jù)流圖、數(shù)據(jù)字典、判定樹(shù)和判定表數(shù)據(jù)流轉(zhuǎn)換處理型可將此類(lèi)數(shù)據(jù)流圖看成是對(duì)輸入數(shù)據(jù)進(jìn)行轉(zhuǎn)換而得到輸出數(shù)據(jù)的處理,轉(zhuǎn)換處理過(guò)程大致分為輸入數(shù)據(jù)、變換數(shù)據(jù)、輸出數(shù)據(jù)三步。輸入加工中心加工輸出加工輸入信息內(nèi)部數(shù)據(jù)內(nèi)部結(jié)果輸出信息數(shù)據(jù)流圖類(lèi)型(1)轉(zhuǎn)換處理型可將此類(lèi)數(shù)據(jù)流圖看成是對(duì)輸輸入事物處理型可將此類(lèi)數(shù)據(jù)流圖看成是對(duì)一個(gè)數(shù)據(jù)流進(jìn)行加工后,按加工的結(jié)果選擇一個(gè)輸出數(shù)據(jù)流繼續(xù)執(zhí)行的處理。IP1P2P3事務(wù)流事務(wù)中心數(shù)據(jù)流圖類(lèi)型(2)事物處理型可將此類(lèi)數(shù)據(jù)流圖看成是對(duì)IP1P數(shù)據(jù)流圖示例用戶(hù)操作信息圖書(shū)管理系統(tǒng)用戶(hù)操作結(jié)果用戶(hù)借閱信息用戶(hù)1登錄借閱管理2查詢(xún)管理3書(shū)籍管理4操作信息書(shū)籍信息查詢(xún)信息查詢(xún)結(jié)果借閱結(jié)果書(shū)籍結(jié)果查詢(xún)3.1查詢(xún)信息查詢(xún)結(jié)果用戶(hù)書(shū)庫(kù)數(shù)據(jù)流圖示例用戶(hù)操作信息圖書(shū)管理系統(tǒng)用戶(hù)操作結(jié)果用戶(hù)借閱信息數(shù)據(jù)詞典對(duì)數(shù)據(jù)流圖所有元素的定義的集合數(shù)據(jù)流、文件、數(shù)據(jù)項(xiàng)、加工數(shù)據(jù)流條目列出數(shù)據(jù)流的各數(shù)據(jù)項(xiàng)如:證件=讀者編號(hào)+讀者姓名+讀者單位
文件記錄的組成項(xiàng)
如:書(shū)籍?dāng)?shù)據(jù)文件=書(shū)號(hào)+書(shū)名+作者+出版社+分類(lèi)對(duì)每個(gè)數(shù)據(jù)單項(xiàng)的定義如:讀者編號(hào)=0001~9999(4位字符類(lèi)型)文件條目數(shù)據(jù)項(xiàng)條目數(shù)據(jù)詞典對(duì)數(shù)據(jù)流圖所有元素的定義的集合數(shù)據(jù)流、文件、數(shù)據(jù)項(xiàng)數(shù)據(jù)詞典
對(duì)基本加工進(jìn)行的精確描述如:登錄 IF號(hào)碼有效THEN IF密碼正確THEN 登錄正確 ELSE提示密碼錯(cuò)誤 ELSE身份無(wú)效加工條目過(guò)程數(shù)據(jù)詞典對(duì)基本加工進(jìn)行的精確描述加工條目過(guò)程軟件設(shè)計(jì)過(guò)程是對(duì)程序結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)和過(guò)程細(xì)節(jié)逐步求精、復(fù)審并編制文檔的過(guò)程。設(shè)計(jì)編碼信息描述功能描述行為描述其他需求數(shù)據(jù)設(shè)計(jì)總體結(jié)構(gòu)設(shè)計(jì)過(guò)程設(shè)計(jì)需求分析階段是解決系統(tǒng)“做什么”的問(wèn)題,進(jìn)入設(shè)計(jì)階段,解決系統(tǒng)“怎么做”的問(wèn)題。軟件設(shè)計(jì)過(guò)程是對(duì)程序結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)和過(guò)程細(xì)節(jié)逐步求精、復(fù)審并目標(biāo)1、提高可靠性:正確性、健壯性2、提高可維護(hù)性3、提高可理解性4、提高效率概要設(shè)計(jì)詳細(xì)設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)過(guò)程設(shè)計(jì)管理觀點(diǎn)技術(shù)觀點(diǎn)有一定的目標(biāo),軟件設(shè)計(jì)階段從這個(gè)出發(fā)點(diǎn)出發(fā),考慮系統(tǒng)的總體性能目標(biāo)1、提高可靠性:正確性、健壯性概要設(shè)計(jì)詳細(xì)設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)系概要設(shè)計(jì):根據(jù)需求確定軟件和數(shù)據(jù)的總體框架設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu),進(jìn)行模塊劃分,建立模塊層次結(jié)構(gòu),確立模塊間的調(diào)用等;設(shè)計(jì)全局?jǐn)?shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫(kù),設(shè)計(jì)系統(tǒng)接口和人機(jī)界面等詳細(xì)設(shè)計(jì):將概要進(jìn)一步精化成模塊的算法和局部數(shù)據(jù)結(jié)構(gòu)總體設(shè)計(jì)方法:模塊化方法,功能分解法,面向數(shù)據(jù)流的設(shè)計(jì)方法;面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,面向?qū)ο蟮脑O(shè)計(jì)方法詳細(xì)設(shè)計(jì)方法:程序流程圖、NS圖、PAD圖、PDL語(yǔ)言此時(shí)涉及到以前的知識(shí),如何實(shí)現(xiàn)小功能的算法概要設(shè)計(jì):根據(jù)需求確定軟件和數(shù)據(jù)的總體框架詳細(xì)設(shè)計(jì):將概要進(jìn)抽象與逐步求精把事物本質(zhì)的共同屬性提取出來(lái),而不考慮其它細(xì)節(jié)。它要求人們將注意力集中在某一層次上考慮問(wèn)題,而忽略那些低層次的細(xì)節(jié)。軟件設(shè)計(jì)過(guò)程是在不同抽象級(jí)別考慮和處理問(wèn)題的過(guò)程。模塊化把待開(kāi)發(fā)的軟件分解成若干個(gè)小的簡(jiǎn)單的部分。每個(gè)部分完成一個(gè)特定的子功能,按一定的方法組裝起來(lái),實(shí)現(xiàn)整個(gè)程序的功能。結(jié)論:各個(gè)擊破,分而治之信息隱蔽在一個(gè)模塊內(nèi)包含的信息(過(guò)程或數(shù)據(jù)),對(duì)于不需要這些信息的其他模塊是不可訪(fǎng)問(wèn)的。抽象與逐步求精把事物本質(zhì)的共同屬性提取出來(lái),而不考慮其它細(xì)節(jié)程序設(shè)計(jì)原理模塊獨(dú)立性每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,對(duì)于不需要這些信息的其他模塊是不可訪(fǎng)問(wèn)的。模塊獨(dú)立:模塊化抽象信息隱蔽概念的直接結(jié)果.模塊的獨(dú)立性是評(píng)價(jià)軟件好壞的重要度量指標(biāo)。內(nèi)聚度:模塊內(nèi)部彼此結(jié)合的緊密程度耦合度:模塊間關(guān)聯(lián)的程度程序設(shè)計(jì)原理模塊獨(dú)立性每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,內(nèi)聚度偶然性?xún)?nèi)聚:模塊內(nèi)各成分為完成一組功能而組合在一起邏輯性?xún)?nèi)聚:模塊內(nèi)的諸任務(wù)邏輯上相關(guān)時(shí)間性?xún)?nèi)聚:模塊內(nèi)的諸任務(wù)在同一時(shí)間段完成過(guò)程性?xún)?nèi)聚:模塊內(nèi)成分相關(guān),且按特定次序執(zhí)行通信性?xún)?nèi)聚:模塊內(nèi)成分都對(duì)數(shù)據(jù)結(jié)構(gòu)的同一區(qū)域進(jìn)行操 作,以達(dá)到通信的目的順序性?xún)?nèi)聚:模塊內(nèi)成分與同一功能相關(guān),且順序執(zhí)行功能性?xún)?nèi)聚:模塊內(nèi)成分形成一個(gè)整體,完成單個(gè)功能低 高模塊內(nèi)聚性越強(qiáng),模塊的獨(dú)立性越強(qiáng)內(nèi)聚度偶然性?xún)?nèi)聚:模塊內(nèi)各成分為完成一組功能而組合在一起低 耦合度非直接耦合:不互相依賴(lài)對(duì)方能獨(dú)立工作數(shù)據(jù)耦合:模塊間交換信息僅限于數(shù)據(jù)參數(shù)特征耦合:通過(guò)數(shù)據(jù)結(jié)構(gòu)傳遞數(shù)據(jù)信息控制耦合:傳遞的信息中除數(shù)據(jù)信息外還含有控制信息外部耦合:若干模塊均與同一外部環(huán)境關(guān)聯(lián)公共耦合:若干模塊通過(guò)全局?jǐn)?shù)據(jù)環(huán)境相互作用內(nèi)容耦合:一個(gè)模塊直接使用另一模塊的數(shù)據(jù)或控制信息;一個(gè)模塊直接轉(zhuǎn)移到另一模塊的內(nèi)部低 高模塊的偶合性越強(qiáng),則該模塊的獨(dú)立性越弱。耦合度非直接耦合:不互相依賴(lài)對(duì)方能獨(dú)立工作低 高軟件結(jié)構(gòu)改進(jìn)模塊的扇入和扇出:扇出不超過(guò)7(7加減2)深度寬度扇入扇出ABCDEFGHIA控制范圍:模塊及下屬模塊影響范圍:若有一個(gè)條件,所有受判定條件影響的范圍.控制的總分布原則:影響范圍不應(yīng)超出控制范圍模塊的大?。?0~100行。軟件結(jié)構(gòu)改進(jìn)模塊的扇入和扇出:扇出不超過(guò)7(7加減2)深度寬設(shè)計(jì)各個(gè)模塊的實(shí)現(xiàn)的算法描述設(shè)計(jì)實(shí)現(xiàn)算法所用的數(shù)據(jù)結(jié)構(gòu)用某種選定的工具表達(dá)算法和局部數(shù)據(jù)結(jié)構(gòu)詳細(xì)設(shè)計(jì)設(shè)計(jì)各個(gè)模塊的實(shí)現(xiàn)的算法描述詳細(xì)設(shè)計(jì)常見(jiàn)的設(shè)計(jì)工具圖形工具:流程圖、PAD(問(wèn)題分析圖)、HIPO表格工具:判定表語(yǔ)言工具:PDL(偽碼)常見(jiàn)的設(shè)計(jì)工具圖形工具:軟件編碼操作系統(tǒng)的選擇編程語(yǔ)言和開(kāi)發(fā)工具的選擇編程的標(biāo)準(zhǔn)與風(fēng)格數(shù)據(jù)庫(kù)的使用過(guò)程軟件編碼操作系統(tǒng)的選擇過(guò)程第七講軟件測(cè)試是在軟件投入運(yùn)行前為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程,是保證軟件質(zhì)量的關(guān)鍵步驟。軟件測(cè)試第七講軟件測(cè)試是在軟件投入運(yùn)行軟件測(cè)試測(cè)試的策略和步驟測(cè)試的方式測(cè)試技術(shù)軟件測(cè)試測(cè)試的目標(biāo)和原則測(cè)試的策略和步驟測(cè)試的方式測(cè)試技術(shù)軟件測(cè)試軟件測(cè)試目標(biāo):
以最少的時(shí)間和人力找出軟件中潛在的各種錯(cuò)誤和缺陷軟件測(cè)試原則:不要抱有“軟件不會(huì)有錯(cuò)或查不出錯(cuò)”的幻想設(shè)計(jì)測(cè)試用例時(shí),應(yīng)同時(shí)確定輸出結(jié)果設(shè)計(jì)測(cè)試用例時(shí),應(yīng)包含合理和不合理數(shù)據(jù)軟件設(shè)計(jì)者應(yīng)避免測(cè)試自己的程序嚴(yán)格全面執(zhí)行測(cè)試計(jì)劃測(cè)試完成后,應(yīng)產(chǎn)生測(cè)試文檔軟件測(cè)試目標(biāo):軟件測(cè)試原則:靜態(tài)測(cè)試(走查和會(huì)審)閱讀和檢查--軟件結(jié)構(gòu)是否合理;模塊接口是否正確;數(shù)據(jù)結(jié)構(gòu)分析和語(yǔ)法分析動(dòng)態(tài)測(cè)試上機(jī)測(cè)試--運(yùn)行中的錯(cuò)誤自動(dòng)測(cè)試使用測(cè)試工具,代替人工進(jìn)行靜態(tài)分析和動(dòng)態(tài)測(cè)試靜態(tài)分析工具動(dòng)態(tài)分析工具綜合測(cè)評(píng)工具測(cè)試方式(執(zhí)行軟件的角度)靜態(tài)測(cè)試(走查和會(huì)審)測(cè)試方式(執(zhí)行軟件的角度)測(cè)試技術(shù)(測(cè)試功能)白盒測(cè)試與黑盒測(cè)試動(dòng)態(tài)測(cè)試的關(guān)鍵:設(shè)計(jì)高效合理的測(cè)試用例。測(cè)試用例:為了測(cè)試而設(shè)計(jì)的數(shù)據(jù)。測(cè)試用例格式:由輸入數(shù)據(jù)和與之對(duì)應(yīng)的語(yǔ)氣輸出結(jié)果組成。[(輸入數(shù)據(jù)),(輸出數(shù)據(jù))]測(cè)試技術(shù)(測(cè)試功能)白盒測(cè)試與黑盒測(cè)試動(dòng)態(tài)測(cè)試的關(guān)鍵:測(cè)試用測(cè)試技術(shù)(測(cè)試功能)白盒測(cè)試(結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試):是根據(jù)軟件產(chǎn)品的內(nèi)部工作過(guò)程,檢查內(nèi)部成分,以確認(rèn)內(nèi)部操作符合設(shè)計(jì)規(guī)格要求。將測(cè)試對(duì)象看作打開(kāi)的盒子,利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。對(duì)程序所有獨(dú)立執(zhí)行的路徑至少測(cè)試一次;對(duì)所有邏輯判定,取真、假的兩種情況至少測(cè)試一次;在循環(huán)的邊界和運(yùn)行界限內(nèi)執(zhí)行循環(huán)體;測(cè)試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性;分類(lèi):邏輯覆蓋和基本路徑測(cè)試測(cè)試技術(shù)(測(cè)試功能)白盒測(cè)試(結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試):是根語(yǔ)句覆蓋、路徑覆蓋、判定覆蓋、條件覆蓋、判定-條件覆蓋、條件組合覆蓋入口A>1且B=0A=2且X>1出口X=X/AX=X+1abcdeTTFFs邏輯覆蓋語(yǔ)句覆蓋、路徑覆蓋、判定覆蓋、條件覆蓋、判定-條件覆蓋、條件白盒測(cè)試/結(jié)構(gòu)測(cè)試
語(yǔ)句覆蓋:使得每一可執(zhí)行語(yǔ)句至少執(zhí)行一次
判定覆蓋:使得程序中每個(gè)判斷的取真分支和取假分支至少執(zhí)行一次
條件覆蓋:使得程序中每個(gè)判斷的每個(gè)條件的可能取值至少執(zhí)行一次
判定-條件覆蓋:使得判斷中每個(gè)條件的所有可能取值至少執(zhí)行一次,同時(shí)每個(gè)判斷的所有可能判斷結(jié)果至少執(zhí)行一次
條件組合覆蓋:使得每個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次
路徑覆蓋:覆蓋程序中所有可能的路徑
白盒測(cè)試/結(jié)構(gòu)測(cè)試
語(yǔ)句覆蓋:使得每一可執(zhí)行覆蓋程度測(cè)試路徑輸入預(yù)期ABXX語(yǔ)句覆蓋s,a,c,b,d,e(c,d均執(zhí)行)2001判定覆蓋s,a,c,b,d,e(判定ab均取真)2001s,a,b,e(判定ab均取假)1011條件覆蓋s,a,,b,d,e2112s,a,,b,d,e1023判定條件s,a,c,b,d,e2043s,a,,b,,e1111條件組合s,a,c,b,d,e2043s,a,b,d,e2112s,a,b,d,e1023s,a,b,e1111覆蓋程度測(cè)試路徑輸入預(yù)期ABXX語(yǔ)句覆蓋s,a,c,b,d,根據(jù)軟件過(guò)程性描述中的控制流程確定程序的環(huán)路復(fù)雜性度量,用此度量定義基本路徑集合,并由此導(dǎo)出一組測(cè)試用例對(duì)每一條獨(dú)立執(zhí)行路徑進(jìn)行測(cè)試。s基本路徑測(cè)試入口A>1B=0出口輸出A輸出BabcdeTTFF輸出A和Bf測(cè)試用例通過(guò)路徑[(A=-2,B=0),(輸出略)](adf)[(A=5,B=0),(輸出略)](acef)[(A=5,B=5),(輸出略)](acdf)根據(jù)軟件過(guò)程性描述中的控制流程確定程序的環(huán)路復(fù)雜性度量,用此黑盒測(cè)試(功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試):對(duì)軟件已經(jīng)實(shí)現(xiàn)的功能是否滿(mǎn)足需求進(jìn)行測(cè)試和驗(yàn)證。將測(cè)試對(duì)象看作一個(gè)黑盒子,測(cè)試人員完全不考慮內(nèi)部邏輯結(jié)構(gòu),只依據(jù)需求規(guī)格說(shuō)明書(shū),檢查程序的功能是否符合它的功能說(shuō)明,所以又叫功能測(cè)試。是否有不正確或遺漏了的功能在接口上,輸入能否正確地被接受;能否輸出正確結(jié)果是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息訪(fǎng)問(wèn)錯(cuò)誤性能上是否能滿(mǎn)足要求是否有初始化或終止性錯(cuò)誤黑盒測(cè)試(功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試):對(duì)軟件已經(jīng)實(shí)現(xiàn)的功能是否等價(jià)類(lèi)劃分法將所有可能的輸入數(shù)據(jù)(無(wú)效和有效)劃分為若干個(gè)等價(jià)類(lèi),然后從每一類(lèi)中選取一組代表數(shù)據(jù)進(jìn)行測(cè)試。1、劃分等價(jià)類(lèi)2、根據(jù)等價(jià)類(lèi)選取相應(yīng)的測(cè)試用例例如:輸入的數(shù)據(jù)在0~10之間邊值分析法對(duì)各種輸入、輸出范圍的邊界情況設(shè)計(jì)測(cè)試用例。例如:某一文件有255個(gè)記錄,則應(yīng)取0、1、255、256等價(jià)分類(lèi)法、邊緣值分析法、錯(cuò)誤推測(cè)法等價(jià)類(lèi)劃分法將所有可能的輸入數(shù)據(jù)(無(wú)效和有效)劃分為若干個(gè)等錯(cuò)誤推測(cè)法根據(jù)經(jīng)驗(yàn)和直覺(jué)推測(cè)程序中可能出現(xiàn)的錯(cuò)誤,從而可以有針對(duì)性地編寫(xiě)檢查這些錯(cuò)誤的例子。例如:排序:檢查表為空,表只含有一個(gè)元素表中所有元素值相同輸入表已排好序等價(jià)分類(lèi)法、邊緣值分析法、錯(cuò)誤推測(cè)法錯(cuò)誤推測(cè)法根據(jù)經(jīng)驗(yàn)和直覺(jué)推測(cè)程序中可能出現(xiàn)的錯(cuò)誤,從而可以有對(duì)應(yīng)100行源代碼的程序,其中包含20次循環(huán),它所包含的不同的執(zhí)行路徑為520條,對(duì)其進(jìn)行窮舉測(cè)試,假如每條路徑需要1毫秒,一天工作24小時(shí),需3170年。軟件測(cè)試有一個(gè)致命的缺陷,即測(cè)試的不完全、不徹底性。通常使用黑盒法設(shè)計(jì)基本測(cè)試方案,再利用白盒法做必要補(bǔ)充對(duì)應(yīng)100行源代碼的程序,其中包含20次循環(huán),它所包含的不同測(cè)試步驟(實(shí)施)單元測(cè)試單元測(cè)試單元測(cè)試集成測(cè)試已測(cè)試的模塊設(shè)計(jì)信息確認(rèn)測(cè)試軟件需求已集成的軟件系統(tǒng)測(cè)試其他因素已確認(rèn)的軟件可交付的軟件測(cè)試步驟(實(shí)施)單元單元單元集成已測(cè)試的模塊設(shè)計(jì)信息確認(rèn)軟件測(cè)試策略單元測(cè)試:對(duì)模塊進(jìn)行檢查,盡可能保證模塊程序的質(zhì)量模塊接口測(cè)試模塊局部數(shù)據(jù)結(jié)構(gòu)測(cè)試每一條獨(dú)立執(zhí)行路徑測(cè)試出錯(cuò)處理測(cè)試邊界條件測(cè)試內(nèi)容單元測(cè)試可以采用靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試,動(dòng)態(tài)測(cè)試時(shí)通常以白盒測(cè)試為主,輔之以黑盒測(cè)試測(cè)試策略單元測(cè)試:對(duì)模塊進(jìn)行檢查,盡可能模塊接口測(cè)試內(nèi)M1M2M3M4組裝測(cè)試(集成):按系統(tǒng)程序結(jié)構(gòu),沿控制層次自頂向下進(jìn)行組裝M1M2M3M4M5M6第一步:測(cè)試M1,設(shè)計(jì)樁模塊S1、S2、S3模擬被M1調(diào)用的模塊S1S2S3自頂向下集成軟件單元的接口測(cè)試、全局?jǐn)?shù)據(jù)結(jié)構(gòu)、邊界條件和非法輸入等。M1M2M3M4組裝測(cè)試(集成):按系統(tǒng)程序結(jié)構(gòu),沿M1M2M3M4自頂向下集成按系統(tǒng)程序結(jié)構(gòu),沿控制層次自頂向下進(jìn)行組裝第二步:依次用M2、M3、M4替代樁模塊S1、S2、S3,每替換一個(gè)模塊就進(jìn)行一次測(cè)試。S2S3M1M2M3M4M5M6M1M2M3M4自頂向下集成按系統(tǒng)程序結(jié)構(gòu),沿控制M1M2M3M4自頂向下集成按系統(tǒng)程序結(jié)構(gòu),沿控制層次自頂向下進(jìn)行組裝第三步:為下一層模塊設(shè)計(jì)樁模塊S4、S5作為M5、M6的模擬模塊進(jìn)行測(cè)試。S4S5M1M2M3M4M5M6M1M2M3M4自頂向下集成按系統(tǒng)程序結(jié)構(gòu),沿控第三步:為下M1M2M3M4自頂向下集成按系統(tǒng)程序結(jié)構(gòu),沿控制層次自頂向下進(jìn)行組裝第四步:依次用M5、M6替換樁模塊S4、S5,進(jìn)行新的測(cè)試,直至組裝完畢。M5S5M1M2M3M4M5M6M1M2M3M4自頂向下集成按系統(tǒng)程序結(jié)構(gòu),沿控制層次自頂向D1D2自底向上集成按系統(tǒng)程序結(jié)構(gòu),沿控制層次自底向上進(jìn)行組裝第一步:為最底層模塊設(shè)計(jì)驅(qū)動(dòng)模塊D1、D2作為M2、M4的模擬模塊進(jìn)行測(cè)試。M5M6M1M2M3M4M5M6D1D2自底向上集成按系統(tǒng)程序結(jié)構(gòu),沿控制層次自底向上進(jìn)行組M2D2自底向上集成按系統(tǒng)程序結(jié)構(gòu),沿控制層次自底向上進(jìn)行組裝第二步:依次用M2、M4替換驅(qū)動(dòng)模塊D1、D2進(jìn)行測(cè)試。M5M6M1M2M3M4M5M6第三步:逐漸向上層設(shè)計(jì)驅(qū)動(dòng)模塊,直至全部組裝完畢。M2D2自底向上集成按系統(tǒng)程序結(jié)構(gòu),沿控制層次自底向上進(jìn)行組確認(rèn)測(cè)試(驗(yàn)收測(cè)試):驗(yàn)證軟件的功能和性能是否滿(mǎn)足需求規(guī)格說(shuō)明中確定的各種需求,以及軟件配置是否完全、正確經(jīng)過(guò)一系列的黑盒測(cè)試來(lái)驗(yàn)證軟件是否滿(mǎn)足需求規(guī)格說(shuō)明書(shū)的上的需求說(shuō)明,文檔資料是否完整準(zhǔn)確,人機(jī)界面和其他性能是否令用戶(hù)滿(mǎn)意。通過(guò)、測(cè)試,發(fā)現(xiàn)只有最終用戶(hù)才能發(fā)現(xiàn)的問(wèn)題。測(cè)試是開(kāi)發(fā)者組織人員模擬各類(lèi)用戶(hù)行為來(lái)進(jìn)行測(cè)試,盡最大努力涵蓋所有可能的用戶(hù)操作方式。經(jīng)過(guò)測(cè)試的產(chǎn)品稱(chēng)版本。版本由典型用戶(hù)在實(shí)際使用中進(jìn)行測(cè)試,并報(bào)告問(wèn)題。確認(rèn)測(cè)試(驗(yàn)收測(cè)試):驗(yàn)證軟件的功能和性能是否滿(mǎn)足需求規(guī)格說(shuō)系統(tǒng)測(cè)試:經(jīng)過(guò)確認(rèn)測(cè)試的軟件,作為基于計(jì)算機(jī)系統(tǒng)的一個(gè)元素,與計(jì)算機(jī)硬件、外設(shè)、支持軟件、數(shù)據(jù)和人員等其他元素組合在一起,在實(shí)際運(yùn)行(試用)環(huán)境下對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行一系列的集成測(cè)試和確認(rèn)測(cè)試。必須在目標(biāo)環(huán)境下運(yùn)行。功能測(cè)試性能測(cè)試操作測(cè)試配置測(cè)試外部接口測(cè)試安全性測(cè)試系統(tǒng)測(cè)試:經(jīng)過(guò)確認(rèn)測(cè)試的軟件,作為基于計(jì)算機(jī)系統(tǒng)的一個(gè)元素,軟件調(diào)試經(jīng)過(guò)測(cè)試,錯(cuò)誤暴露出來(lái),還須進(jìn)一步診斷錯(cuò)誤的原因和位置,進(jìn)而改正程序中的錯(cuò)誤。確定錯(cuò)誤的準(zhǔn)確位置仔細(xì)研究并設(shè)法改正錯(cuò)誤軟件調(diào)試經(jīng)過(guò)測(cè)試,錯(cuò)誤暴露出來(lái),還須進(jìn)調(diào)試調(diào)試方法強(qiáng)行排錯(cuò)法:設(shè)置斷點(diǎn)和監(jiān)視表達(dá)式。回溯法:確定“癥狀”位置,沿控制流程回溯原因排除法:
演繹:從一般原理或前提出發(fā)通過(guò)排除和精化的過(guò)程來(lái)推導(dǎo)出結(jié)論的思考方法。
歸納:從特殊推斷出一般的系統(tǒng)化思考方法。
二分法:過(guò)程調(diào)試調(diào)試方法過(guò)程真題實(shí)例2009年3月:選擇題(6)下列敘述中錯(cuò)誤的是:A)軟件測(cè)試的目的是發(fā)現(xiàn)錯(cuò)誤并改正錯(cuò)誤B)對(duì)被測(cè)試的程序進(jìn)行錯(cuò)誤定位是程序調(diào)試的表要步驟C)程序調(diào)試通常也稱(chēng)為debugD)軟件測(cè)試應(yīng)嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性AB2009年3月:填空題(2)軟件測(cè)試可分為白盒測(cè)試和黑盒測(cè)試,基本路徑測(cè)試屬于___測(cè)試。白盒真題實(shí)例2009年3月:選擇題AB2009年3月:填空題白盒真題實(shí)例2009年3月:選擇題(7)耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn),下列敘述中正確的是:A)提高耦合性、降低內(nèi)聚性有利于提高模塊的獨(dú)立性B)降低耦合性、提高內(nèi)聚性有利于提高模塊的獨(dú)立性C)耦合性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度D)內(nèi)聚性是指模塊間相互連接的緊密程度AB2009年9月:填空題(3)軟件開(kāi)發(fā)過(guò)程中主要分為需求分析、設(shè)計(jì)、編碼與測(cè)試4個(gè)階段,其中____產(chǎn)生軟件規(guī)格說(shuō)明書(shū)。需求分析真題實(shí)例2009年3月:選擇題AB2009年9月:填空題需求真題實(shí)例2009年9月:選擇題(5)軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是A)低內(nèi)聚低耦合B)高內(nèi)聚低耦合C)低內(nèi)聚高耦合D)高內(nèi)聚高耦合BB2009年9月:填空題(3)軟件開(kāi)發(fā)過(guò)程中主要分為需求分析、設(shè)計(jì)、編碼與測(cè)試4個(gè)階段,其中____產(chǎn)生軟件規(guī)格說(shuō)明書(shū)。需求分析真題實(shí)例2009年9月:選擇題BB2009年9月:填空題需求真題實(shí)例2009年9月:選擇題(7)軟件詳細(xì)設(shè)計(jì)產(chǎn)生的圖如下,該圖是A)N-S圖B)PAD圖C)程序流程圖D)E-R圖C入口A>1B=0出口輸出A輸出BabcdeTTFF輸出A和Bf真題實(shí)例2009年9月:選擇題C入口A>1B=0出口輸出A輸真題實(shí)例2010年3月:選擇題(4)軟件調(diào)試的任務(wù)是A)診斷和改正程序中的錯(cuò)誤B)盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤C)發(fā)現(xiàn)并改正程序中的所有錯(cuò)誤D)確定程序中錯(cuò)誤地性質(zhì)B2010年3月:選擇題(5)數(shù)據(jù)流程圖(DFD圖)是A)軟件概要設(shè)計(jì)的工具B)軟件詳細(xì)設(shè)計(jì)的工具C)結(jié)構(gòu)化方法的需求分析設(shè)計(jì)工具D)面向?qū)ο蠓椒ǖ男枨蠓治龉ぞ逤真題實(shí)例2010年3月:選擇題B2010年3月:選擇題C真題實(shí)例2010年3月:選擇題(6)軟件生命周期可分為定義階段、開(kāi)發(fā)階段和維護(hù)階段,詳細(xì)設(shè)計(jì)屬于A)定義階段B)開(kāi)發(fā)階段C)維護(hù)階段D)上述三個(gè)階段B真題實(shí)例2010年3月:選擇題B程序設(shè)計(jì)基礎(chǔ)1.程序設(shè)計(jì)方法與風(fēng)格2.結(jié)構(gòu)化程序設(shè)計(jì)。3.面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,對(duì)象,方法,屬性及繼承與多態(tài)性。2009年3月:填空題(3)符合結(jié)構(gòu)化的三種基本結(jié)構(gòu)是選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和___。順序結(jié)構(gòu)程序設(shè)計(jì)基礎(chǔ)1.程序設(shè)計(jì)方法與風(fēng)格2009年3月:填空題順序真題實(shí)例2009年9月:選擇題(6)下列選項(xiàng)中,不符合結(jié)構(gòu)化程序設(shè)計(jì)原則的是:A)封裝性B)模塊化C)逐步求精D)自頂向下AB2009年9月:填空題(2)程序流程圖中,菱形框表示的是___。選擇框真題實(shí)例2009年9月:選擇題AB2009年9月:填空題選擇三、軟件工程基礎(chǔ)
1.軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開(kāi)發(fā)環(huán)境。2.結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說(shuō)明書(shū)。3.結(jié)構(gòu)化設(shè)計(jì)方法,總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)。4.軟件測(cè)試的方法,白盒測(cè)試與黑盒測(cè)試,測(cè)試用例設(shè)計(jì),軟件測(cè)試的實(shí)施,單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試。5.程序的調(diào)試,靜態(tài)調(diào)試與動(dòng)態(tài)調(diào)試。三、軟件工程基礎(chǔ)1.軟件工程基本概念,軟件生命周期概念,軟件概述軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合。軟件的概念程序是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)文檔是與程序開(kāi)發(fā),維護(hù)和使用有關(guān)的圖文材料軟件概述軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分軟件真題實(shí)例2009年3月:選擇題(5)軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件。下面屬于應(yīng)用軟件的有:A)編譯程序B)操作系統(tǒng)C)教務(wù)管理系統(tǒng)D)匯編程序CB2010年3月:填空題(4)軟件是___、數(shù)據(jù)和文檔的集合。程序真題實(shí)例2009年3月:選擇題CB2010年3月:填空題程序軟件開(kāi)發(fā)方法—結(jié)構(gòu)化自頂向下,逐步求精,單入口,單出口,基本原則是抽象和分解圍繞處理功能的實(shí)現(xiàn)過(guò)程來(lái)構(gòu)造軟件系統(tǒng),特別適合于需求能夠預(yù)先確定的系統(tǒng)開(kāi)發(fā)缺點(diǎn):大規(guī)?;蛘邚?fù)雜項(xiàng)目,結(jié)構(gòu)化方法不夠適用,難于解決軟件復(fù)用,難于適應(yīng)需求變化,軟件維護(hù)比較復(fù)雜.2009年9月:選擇題(6)下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是:A)可封裝B)自頂向下C)模塊化D)逐步求精A軟件開(kāi)發(fā)方法—結(jié)構(gòu)化自頂向下,逐步求精,單入口,單出口,軟件開(kāi)發(fā)方法—面向?qū)ο蟊M可能模擬人類(lèi)習(xí)慣思維方式使描述問(wèn)題的問(wèn)題空間與計(jì)算機(jī)上解決問(wèn)題的解空間上盡可能一致對(duì)象的基本特點(diǎn):(1)標(biāo)識(shí)惟一性;(2)分類(lèi)性;(3)多態(tài)性;(4)封裝性;(5)模塊獨(dú)立性好。
軟件開(kāi)發(fā)方法—面向?qū)ο蟊M可能模擬人類(lèi)習(xí)慣思維方式使描述問(wèn)軟件的特點(diǎn)邏輯產(chǎn)品失效率時(shí)間時(shí)間占總成本百分比軟件硬件磨合調(diào)整磨損用壞永不磨損和老化通過(guò)“拷貝”進(jìn)行批量生產(chǎn)規(guī)模增大,費(fèi)用上升維護(hù)軟件開(kāi)發(fā)技術(shù)落后時(shí)間軟件復(fù)雜度需求增長(zhǎng)技術(shù)進(jìn)步近30年硬件性能價(jià)格比上升106軟件概述軟件的特點(diǎn)邏輯產(chǎn)品失效率時(shí)間時(shí)間占總成本百分比軟件硬件磨軟件概述軟件開(kāi)發(fā)技術(shù)的發(fā)展程序設(shè)計(jì)50~60年代程序系統(tǒng)60~70年代軟件工程70年代至今程序程序及說(shuō)明書(shū)程序、文檔、數(shù)據(jù)設(shè)計(jì)者本人少數(shù)用戶(hù)市場(chǎng)用戶(hù)個(gè)人開(kāi)發(fā)小組開(kāi)發(fā)小組及大中型軟件開(kāi)發(fā)機(jī)構(gòu)個(gè)人程序技術(shù)小組技術(shù)水平管理水平時(shí)期特點(diǎn)軟件所指需求者開(kāi)發(fā)軟件的組織決定質(zhì)量的因素發(fā)揮創(chuàng)造才能的技術(shù)領(lǐng)域軟件危機(jī)由管理水平?jīng)Q定的工程產(chǎn)品軟件概述軟件開(kāi)發(fā)技術(shù)的發(fā)展程序設(shè)計(jì)程序系統(tǒng)軟件工程程序1963年,美國(guó)。程序中的一點(diǎn)之差導(dǎo)致飛往火星的火箭爆炸IBM公司于60年代開(kāi)發(fā)OS/360系統(tǒng),問(wèn)題頻出,宣布失敗Brooks描述研制過(guò)程的混亂和困境像巨獸在泥潭中作垂死掙扎,掙扎得越猛,泥漿沾得越多,最后,沒(méi)有一只野獸能逃脫淹沒(méi)在泥潭中的命運(yùn)……程序設(shè)計(jì)就像這樣一個(gè)泥潭……一批程序員在泥潭中掙扎,沒(méi)有人料到問(wèn)題竟會(huì)這樣棘手……軟件危機(jī)1963年,美國(guó)。程序中的一點(diǎn)之差導(dǎo)致飛往火星的火箭軟件危機(jī)軟件危機(jī)的表現(xiàn)開(kāi)發(fā)成本和進(jìn)度難于估計(jì)用戶(hù)不滿(mǎn)意軟件質(zhì)量被懷疑缺乏文檔維護(hù)困難軟件開(kāi)發(fā)生產(chǎn)率的提高速度與用戶(hù)需求之間的差距越來(lái)越大1.缺乏軟件開(kāi)發(fā)的經(jīng)驗(yàn)和有關(guān)軟件開(kāi)發(fā)數(shù)據(jù)的積累2.軟件需求在開(kāi)發(fā)的初期階段不夠明確,或是未能得到確切的表達(dá)3.開(kāi)發(fā)過(guò)程沒(méi)有統(tǒng)一、公認(rèn)的方法論和規(guī)范進(jìn)行指導(dǎo),開(kāi)發(fā)人員自行其事4.未能在測(cè)試階段充分做好檢測(cè)工作。軟件危機(jī)產(chǎn)生的原因指軟件開(kāi)發(fā)和維護(hù)中遇到的一系列嚴(yán)重問(wèn)題軟件危機(jī)軟件危機(jī)的表現(xiàn)開(kāi)發(fā)成本和進(jìn)度難于估計(jì)用戶(hù)不滿(mǎn)意軟件工程軟件工程三要素方法、工具和過(guò)程軟件工程的核心把軟件當(dāng)成一個(gè)工程產(chǎn)品來(lái)處理軟件工程過(guò)程把輸入轉(zhuǎn)化為輸出的一再組相關(guān)的資源和活動(dòng)在軟件開(kāi)發(fā)過(guò)程中應(yīng)用工程化原則。軟件工程軟件工程三要素方法、工具和過(guò)程軟件工程的核心把軟件當(dāng)軟件工程軟件生存期軟件產(chǎn)品的孕育、誕生、成長(zhǎng)、成熟、衰亡的生存過(guò)程
需求分析軟件設(shè)計(jì)程序編碼軟件測(cè)試運(yùn)行維護(hù)制定計(jì)劃軟件生存期三個(gè)階段軟件定義、軟件開(kāi)發(fā),軟件維護(hù)
軟件生存期主要活動(dòng)階段:軟件工程軟件生存期軟件產(chǎn)品的孕育、誕生、成長(zhǎng)、成熟、衰亡的生瀑布模型問(wèn)題定義可行性研究需求分析設(shè)計(jì)編程測(cè)試運(yùn)行維護(hù)軟件定義軟件開(kāi)發(fā)軟件維護(hù)生存期模型軟件人員遵循嚴(yán)格的規(guī)范,每一階段結(jié)束,要嚴(yán)格評(píng)審和確認(rèn)寫(xiě)出完整、無(wú)多義性的文檔用戶(hù)很難表達(dá)對(duì)系統(tǒng)的全面要求開(kāi)發(fā)人員不懂用戶(hù)的業(yè)務(wù)真題瀑布模型問(wèn)題定義可行性研究需求分析設(shè)計(jì)編程測(cè)試運(yùn)需求分析任務(wù)充分理解用戶(hù)需要解決的問(wèn)題:?jiǎn)栴}特征、特點(diǎn)、可以抽象為何種模型定義軟件的規(guī)格說(shuō)明描述軟件的需求需求分析的過(guò)程常用的分析方法結(jié)構(gòu)化分析方法面向?qū)ο蠓椒ㄗR(shí)別問(wèn)題分析與綜合編寫(xiě)需求分析規(guī)格說(shuō)明書(shū)需企業(yè)分析評(píng)審需求分析任務(wù)充分理解用戶(hù)需要解決的問(wèn)題:需求分析的過(guò)程常用結(jié)構(gòu)化分析的常用工具數(shù)據(jù)流圖、數(shù)據(jù)字典、判定樹(shù)和判定表數(shù)據(jù)流圖用圖形的方法來(lái)表達(dá)數(shù)據(jù)處理的過(guò)程。功能主要圖形元素?cái)?shù)據(jù)流加工數(shù)據(jù)存儲(chǔ)數(shù)據(jù)源點(diǎn)或終點(diǎn)數(shù)據(jù)文件數(shù)據(jù)庫(kù)寫(xiě)讀數(shù)據(jù)流圖的層次結(jié)構(gòu)結(jié)構(gòu)化分析的常用工具數(shù)據(jù)流圖、數(shù)據(jù)字典、判定樹(shù)和判定表數(shù)據(jù)流轉(zhuǎn)換處理型可將此類(lèi)數(shù)據(jù)流圖看成是對(duì)輸入數(shù)據(jù)進(jìn)行轉(zhuǎn)換而得到輸出數(shù)據(jù)的處理,轉(zhuǎn)換處理過(guò)程大致分為輸入數(shù)據(jù)、變換數(shù)據(jù)、輸出數(shù)據(jù)三步。輸入加工中心加工輸出加工輸入信息內(nèi)部數(shù)據(jù)內(nèi)部結(jié)果輸出信息數(shù)據(jù)流圖類(lèi)型(1)轉(zhuǎn)換處理型可將此類(lèi)數(shù)據(jù)流圖看成是對(duì)輸輸入事物處理型可將此類(lèi)數(shù)據(jù)流圖看成是對(duì)一個(gè)數(shù)據(jù)流進(jìn)行加工后,按加工的結(jié)果選擇一個(gè)輸出數(shù)據(jù)流繼續(xù)執(zhí)行的處理。IP1P2P3事務(wù)流事務(wù)中心數(shù)據(jù)流圖類(lèi)型(2)事物處理型可將此類(lèi)數(shù)據(jù)流圖看成是對(duì)IP1P數(shù)據(jù)流圖示例用戶(hù)操作信息圖書(shū)管理系統(tǒng)用戶(hù)操作結(jié)果用戶(hù)借閱信息用戶(hù)1登錄借閱管理2查詢(xún)管理3書(shū)籍管理4操作信息書(shū)籍信息查詢(xún)信息查詢(xún)結(jié)果借閱結(jié)果書(shū)籍結(jié)果查詢(xún)3.1查詢(xún)信息查詢(xún)結(jié)果用戶(hù)書(shū)庫(kù)數(shù)據(jù)流圖示例用戶(hù)操作信息圖書(shū)管理系統(tǒng)用戶(hù)操作結(jié)果用戶(hù)借閱信息數(shù)據(jù)詞典對(duì)數(shù)據(jù)流圖所有元素的定義的集合數(shù)據(jù)流、文件、數(shù)據(jù)項(xiàng)、加工數(shù)據(jù)流條目列出數(shù)據(jù)流的各數(shù)據(jù)項(xiàng)如:證件=讀者編號(hào)+讀者姓名+讀者單位
文件記錄的組成項(xiàng)
如:書(shū)籍?dāng)?shù)據(jù)文件=書(shū)號(hào)+書(shū)名+作者+出版社+分類(lèi)對(duì)每個(gè)數(shù)據(jù)單項(xiàng)的定義如:讀者編號(hào)=0001~9999(4位字符類(lèi)型)文件條目數(shù)據(jù)項(xiàng)條目數(shù)據(jù)詞典對(duì)數(shù)據(jù)流圖所有元素的定義的集合數(shù)據(jù)流、文件、數(shù)據(jù)項(xiàng)數(shù)據(jù)詞典
對(duì)基本加工進(jìn)行的精確描述如:登錄 IF號(hào)碼有效THEN IF密碼正確THEN 登錄正確 ELSE提示密碼錯(cuò)誤 ELSE身份無(wú)效加工條目過(guò)程數(shù)據(jù)詞典對(duì)基本加工進(jìn)行的精確描述加工條目過(guò)程軟件設(shè)計(jì)過(guò)程是對(duì)程序結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)和過(guò)程細(xì)節(jié)逐步求精、復(fù)審并編制文檔的過(guò)程。設(shè)計(jì)編碼信息描述功能描述行為描述其他需求數(shù)據(jù)設(shè)計(jì)總體結(jié)構(gòu)設(shè)計(jì)過(guò)程設(shè)計(jì)需求分析階段是解決系統(tǒng)“做什么”的問(wèn)題,進(jìn)入設(shè)計(jì)階段,解決系統(tǒng)“怎么做”的問(wèn)題。軟件設(shè)計(jì)過(guò)程是對(duì)程序結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)和過(guò)程細(xì)節(jié)逐步求精、復(fù)審并目標(biāo)1、提高可靠性:正確性、健壯性2、提高可維護(hù)性3、提高可理解性4、提高效率概要設(shè)計(jì)詳細(xì)設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)過(guò)程設(shè)計(jì)管理觀點(diǎn)技術(shù)觀點(diǎn)有一定的目標(biāo),軟件設(shè)計(jì)階段從這個(gè)出發(fā)點(diǎn)出發(fā),考慮系統(tǒng)的總體性能目標(biāo)1、提高可靠性:正確性、健壯性概要設(shè)計(jì)詳細(xì)設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)系概要設(shè)計(jì):根據(jù)需求確定軟件和數(shù)據(jù)的總體框架設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu),進(jìn)行模塊劃分,建立模塊層次結(jié)構(gòu),確立模塊間的調(diào)用等;設(shè)計(jì)全局?jǐn)?shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫(kù),設(shè)計(jì)系統(tǒng)接口和人機(jī)界面等詳細(xì)設(shè)計(jì):將概要進(jìn)一步精化成模塊的算法和局部數(shù)據(jù)結(jié)構(gòu)總體設(shè)計(jì)方法:模塊化方法,功能分解法,面向數(shù)據(jù)流的設(shè)計(jì)方法;面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,面向?qū)ο蟮脑O(shè)計(jì)方法詳細(xì)設(shè)計(jì)方法:程序流程圖、NS圖、PAD圖、PDL語(yǔ)言此時(shí)涉及到以前的知識(shí),如何實(shí)現(xiàn)小功能的算法概要設(shè)計(jì):根據(jù)需求確定軟件和數(shù)據(jù)的總體框架詳細(xì)設(shè)計(jì):將概要進(jìn)抽象與逐步求精把事物本質(zhì)的共同屬性提取出來(lái),而不考慮其它細(xì)節(jié)。它要求人們將注意力集中在某一層次上考慮問(wèn)題,而忽略那些低層次的細(xì)節(jié)。軟件設(shè)計(jì)過(guò)程是在不同抽象級(jí)別考慮和處理問(wèn)題的過(guò)程。模塊化把待開(kāi)發(fā)的軟件分解成若干個(gè)小的簡(jiǎn)單的部分。每個(gè)部分完成一個(gè)特定的子功能,按一定的方法組裝起來(lái),實(shí)現(xiàn)整個(gè)程序的功能。結(jié)論:各個(gè)擊破,分而治之信息隱蔽在一個(gè)模塊內(nèi)包含的信息(過(guò)程或數(shù)據(jù)),對(duì)于不需要這些信息的其他模塊是不可訪(fǎng)問(wèn)的。抽象與逐步求精把事物本質(zhì)的共同屬性提取出來(lái),而不考慮其它細(xì)節(jié)程序設(shè)計(jì)原理模塊獨(dú)立性每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,對(duì)于不需要這些信息的其他模塊是不可訪(fǎng)問(wèn)的。模塊獨(dú)立:模塊化抽象信息隱蔽概念的直接結(jié)果.模塊的獨(dú)立性是評(píng)價(jià)軟件好壞的重要度量指標(biāo)。內(nèi)聚度:模塊內(nèi)部彼此結(jié)合的緊密程度耦合度:模塊間關(guān)聯(lián)的程度程序設(shè)計(jì)原理模塊獨(dú)立性每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,內(nèi)聚度偶然性?xún)?nèi)聚:模塊內(nèi)各成分為完成一組功能而組合在一起邏輯性?xún)?nèi)聚:模塊內(nèi)的諸任務(wù)邏輯上相關(guān)時(shí)間性?xún)?nèi)聚:模塊內(nèi)的諸任務(wù)在同一時(shí)間段完成過(guò)程性?xún)?nèi)聚:模塊內(nèi)成分相關(guān),且按特定次序執(zhí)行通信性?xún)?nèi)聚:模塊內(nèi)成分都對(duì)數(shù)據(jù)結(jié)構(gòu)的同一區(qū)域進(jìn)行操 作,以達(dá)到通信的目的順序性?xún)?nèi)聚:模塊內(nèi)成分與同一功能相關(guān),且順序執(zhí)行功能性?xún)?nèi)聚:模塊內(nèi)成分形成一個(gè)整體,完成單個(gè)功能低 高模塊內(nèi)聚性越強(qiáng),模塊的獨(dú)立性越強(qiáng)內(nèi)聚度偶然性?xún)?nèi)聚:模塊內(nèi)各成分為完成一組功能而組合在一起低 耦合度非直接耦合:不互相依賴(lài)對(duì)方能獨(dú)立工作數(shù)據(jù)耦合:模塊間交換信息僅限于數(shù)據(jù)參數(shù)特征耦合:通過(guò)數(shù)據(jù)結(jié)構(gòu)傳遞數(shù)據(jù)信息控制耦合:傳遞的信息中除數(shù)據(jù)信息外還含有控制信息外部耦合:若干模塊均與同一外部環(huán)境關(guān)聯(lián)公共耦合:若干模塊通過(guò)全局?jǐn)?shù)據(jù)環(huán)境相互作用內(nèi)容耦合:一個(gè)模塊直接使用另一模塊的數(shù)據(jù)或控制信息;一個(gè)模塊直接轉(zhuǎn)移到另一模塊的內(nèi)部低 高模塊的偶合性越強(qiáng),則該模塊的獨(dú)立性越弱。耦合度非直接耦合:不互相依賴(lài)對(duì)方能獨(dú)立工作低 高軟件結(jié)構(gòu)改進(jìn)模塊的扇入和扇出:扇出不超過(guò)7(7加減2)深度寬度扇入扇出ABCDEFGHIA控制范圍:模塊及下屬模塊影響范圍:若有一個(gè)條件,所有受判定條件影響的范圍.控制的總分布原則:影響范圍不應(yīng)超出控制范圍模塊的大?。?0~100行。軟件結(jié)構(gòu)改進(jìn)模塊的扇入和扇出:扇出不超過(guò)7(7加減2)深度寬設(shè)計(jì)各個(gè)模塊的實(shí)現(xiàn)的算法描述設(shè)計(jì)實(shí)現(xiàn)算法所用的數(shù)據(jù)結(jié)構(gòu)用某種選定的工具表達(dá)算法和局部數(shù)據(jù)結(jié)構(gòu)詳細(xì)設(shè)計(jì)設(shè)計(jì)各個(gè)模塊的實(shí)現(xiàn)的算法描述詳細(xì)設(shè)計(jì)常見(jiàn)的設(shè)計(jì)工具圖形工具:流程圖、PAD(問(wèn)題分析圖)、HIPO表格工具:判定表語(yǔ)言工具:PDL(偽碼)常見(jiàn)的設(shè)計(jì)工具圖形工具:軟件編碼操作系統(tǒng)的選擇編程語(yǔ)言和開(kāi)發(fā)工具的選擇編程的標(biāo)準(zhǔn)與風(fēng)格數(shù)據(jù)庫(kù)的使用過(guò)程軟件編碼操作系統(tǒng)的選擇過(guò)程第七講軟件測(cè)試是在軟件投入運(yùn)行前為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程,是保證軟件質(zhì)量的關(guān)鍵步驟。軟件測(cè)試第七講軟件測(cè)試是在軟件投入運(yùn)行軟件測(cè)試測(cè)試的策略和步驟測(cè)試的方式測(cè)試技術(shù)軟件測(cè)試測(cè)試的目標(biāo)和原則測(cè)試的策略和步驟測(cè)試的方式測(cè)試技術(shù)軟件測(cè)試軟件測(cè)試目標(biāo):
以最少的時(shí)間和人力找出軟件中潛在的各種錯(cuò)誤和缺陷軟件測(cè)試原則:不要抱有“軟件不會(huì)有錯(cuò)或查不出錯(cuò)”的幻想設(shè)計(jì)測(cè)試用例時(shí),應(yīng)同時(shí)確定輸出結(jié)果設(shè)計(jì)測(cè)試用例時(shí),應(yīng)包含合理和不合理數(shù)據(jù)軟件設(shè)計(jì)者應(yīng)避免測(cè)試自己的程序嚴(yán)格全面執(zhí)行測(cè)試計(jì)劃測(cè)試完成后,應(yīng)產(chǎn)生測(cè)試文檔軟件測(cè)試目標(biāo):軟件測(cè)試原則:靜態(tài)測(cè)試(走查和會(huì)審)閱讀和檢查--軟件結(jié)構(gòu)是否合理;模塊接口是否正確;數(shù)據(jù)結(jié)構(gòu)分析和語(yǔ)法分析動(dòng)態(tài)測(cè)試上機(jī)測(cè)試--運(yùn)行中的錯(cuò)誤自動(dòng)測(cè)試使用測(cè)試工具,代替人工進(jìn)行靜態(tài)分析和動(dòng)態(tài)測(cè)試靜態(tài)分析工具動(dòng)態(tài)分析工具綜合測(cè)評(píng)工具測(cè)試方式(執(zhí)行軟件的角度)靜態(tài)測(cè)試(走查和會(huì)審)測(cè)試方式(執(zhí)行軟件的角度)測(cè)試技術(shù)(測(cè)試功能)白盒測(cè)試與黑盒測(cè)試動(dòng)態(tài)測(cè)試的關(guān)鍵:設(shè)計(jì)高效合理的測(cè)試用例。測(cè)試用例:為了測(cè)試而設(shè)計(jì)的數(shù)據(jù)。測(cè)試用例格式:由輸入數(shù)據(jù)和與之對(duì)應(yīng)的語(yǔ)氣輸出結(jié)果組成。[(輸入數(shù)據(jù)),(輸出數(shù)據(jù))]測(cè)試技術(shù)(測(cè)試功能)白盒測(cè)試與黑盒測(cè)試動(dòng)態(tài)測(cè)試的關(guān)鍵:測(cè)試用測(cè)試技術(shù)(測(cè)試功能)白盒測(cè)試(結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試):是根據(jù)軟件產(chǎn)品的內(nèi)部工作過(guò)程,檢查內(nèi)部成分,以確認(rèn)內(nèi)部操作符合設(shè)計(jì)規(guī)格要求。將測(cè)試對(duì)象看作打開(kāi)的盒子,利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。對(duì)程序所有獨(dú)立執(zhí)行的路徑至少測(cè)試一次;對(duì)所有邏輯判定,取真、假的兩種情況至少測(cè)試一次;在循環(huán)的邊界和運(yùn)行界限內(nèi)執(zhí)行循環(huán)體;測(cè)試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性;分類(lèi):邏輯覆蓋和基本路徑測(cè)試測(cè)試技術(shù)(測(cè)試功能)白盒測(cè)試(結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試):是根語(yǔ)句覆蓋、路徑覆蓋、判定覆蓋、條件覆蓋、判定-條件覆蓋、條件組合覆蓋入口A>1且B=0A=2且X>1出口X=X/AX=X+1abcdeTTFFs邏輯覆蓋語(yǔ)句覆蓋、路徑覆蓋、判定覆蓋、條件覆蓋、判定-條件覆蓋、條件白盒測(cè)試/結(jié)構(gòu)測(cè)試
語(yǔ)句覆蓋:使得每一可執(zhí)行語(yǔ)句至少執(zhí)行一次
判定覆蓋:使得程序中每個(gè)判斷的取真分支和取假分支至少執(zhí)行一次
條件覆蓋:使得程序中每個(gè)判斷的每個(gè)條件的可能取值至少執(zhí)行一次
判定-條件覆蓋:使得判斷中每個(gè)條件的所有可能取值至少執(zhí)行一次,同時(shí)每個(gè)判斷的所有可能判斷結(jié)果至少執(zhí)行一次
條件組合覆蓋:使得每個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次
路徑覆蓋:覆蓋程序中所有可能的路徑
白盒測(cè)試/結(jié)構(gòu)測(cè)試
語(yǔ)句覆蓋:使得每一可執(zhí)行覆蓋程度測(cè)試路徑輸入預(yù)期ABXX語(yǔ)句覆蓋s,a,c,b,d,e(c,d均執(zhí)行)2001判定覆蓋s,a,c,b,d,e(判定ab均取真)2001s,a,b,e(判定ab均取假)1011條件覆蓋s,a,,b,d,e2112s,a,,b,d,e1023判定條件s,a,c,b,d,e2043s,a,,b,,e1111條件組合s,a,c,b,d,e2043s,a,b,d,e2112s,a,b,d,e1023s,a,b,e1111覆蓋程度測(cè)試路徑輸入預(yù)期ABXX語(yǔ)句覆蓋s,a,c,b,d,根據(jù)軟件過(guò)程性描述中的控制流程確定程序的環(huán)路復(fù)雜性度量,用此度量定義基本路徑集合,并由此導(dǎo)出一組測(cè)試用例對(duì)每一條獨(dú)立執(zhí)行路徑進(jìn)行測(cè)試。s基本路徑測(cè)試入口A>1B=0出口輸出A輸出BabcdeTTFF輸出A和Bf測(cè)試用例通過(guò)路徑[(A=-2,B=0),(輸出略)](adf)[(A=5,B=0),(輸出略)](acef)[(A=5,B=5),(輸出略)](acdf)根據(jù)軟件過(guò)程性描述中的控制流程確定程序的環(huán)路復(fù)雜性度量,用此黑盒測(cè)試(功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試):對(duì)軟件已經(jīng)實(shí)現(xiàn)的功能是否滿(mǎn)足需求進(jìn)行測(cè)試和驗(yàn)證。將測(cè)試對(duì)象看作一個(gè)黑盒子,測(cè)試人員完全不考慮內(nèi)部邏輯結(jié)構(gòu),只依據(jù)需求規(guī)格說(shuō)明書(shū),檢查程序的功能是否符合它的功能說(shuō)明,所以又叫功能測(cè)試。是否有不正確或遺漏了的功能在接口上,輸入能否正確地被接受;能否輸出正確結(jié)果是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息訪(fǎng)問(wèn)錯(cuò)誤性能上是否能滿(mǎn)足要求是否有初始化或終止性錯(cuò)誤黑盒測(cè)試(功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試):對(duì)軟件已經(jīng)實(shí)現(xiàn)的功能是否等價(jià)類(lèi)劃分法將所有可能的輸入數(shù)據(jù)(無(wú)效和有效)劃分為若干個(gè)等價(jià)類(lèi),然后從每一類(lèi)中選取一組代表數(shù)據(jù)進(jìn)行測(cè)試。1、劃分等價(jià)類(lèi)2、根據(jù)等價(jià)類(lèi)選取相應(yīng)的測(cè)試用例例如:輸入的數(shù)據(jù)在0~10之間邊值分析法對(duì)各種輸入、輸出范圍的邊界情況設(shè)計(jì)測(cè)試用例。例如:某一文件有255個(gè)記錄,則應(yīng)取0、1、255、256等價(jià)分類(lèi)法、邊緣值分析法、錯(cuò)誤推測(cè)法等價(jià)類(lèi)劃分法將所有可能的輸入數(shù)據(jù)(無(wú)效和有效)劃分為若干個(gè)等錯(cuò)誤推測(cè)法根據(jù)經(jīng)驗(yàn)和直覺(jué)推測(cè)程序中可能出現(xiàn)的錯(cuò)誤,從而可以有針對(duì)性地編寫(xiě)檢查這些錯(cuò)誤的例子。例如:排序:檢查表為空,表只含有一個(gè)元素表中所有元素值相同輸入表已排好序等價(jià)分類(lèi)法、邊緣值分析法、錯(cuò)誤推測(cè)法錯(cuò)誤推測(cè)法根據(jù)經(jīng)驗(yàn)和直覺(jué)推測(cè)程序中可能出現(xiàn)的錯(cuò)誤,從而可以有對(duì)應(yīng)100行源代碼的程序,其中包含20次循環(huán),它所包含的不同的執(zhí)行路徑為520條,對(duì)其進(jìn)行窮舉測(cè)試,假如每條路徑需要1毫秒,一天工作24小時(shí),需3170年。軟件測(cè)試有一個(gè)致命的缺陷,即測(cè)試的不完全、不徹底性。通常使用黑盒法設(shè)計(jì)基本測(cè)試方案,再利用白盒法做必要補(bǔ)充對(duì)應(yīng)100行源代碼的程序,其中包含20次循環(huán),它所包含的不同測(cè)試步驟(實(shí)施)單元測(cè)試單元測(cè)試單元測(cè)試集成測(cè)試已測(cè)試的模塊設(shè)計(jì)信息確認(rèn)測(cè)試軟件需求已集成的軟件系統(tǒng)測(cè)試其他因素已確認(rèn)的軟件可交付的軟件測(cè)試步驟(實(shí)施)單元單元單元集成已測(cè)試的模塊設(shè)計(jì)信息確認(rèn)軟件測(cè)試策略單元測(cè)試:對(duì)模塊進(jìn)行檢查,盡可能保證模塊程序的質(zhì)量模塊接口測(cè)試模塊局部數(shù)據(jù)結(jié)構(gòu)測(cè)試每一條獨(dú)立執(zhí)行路徑測(cè)試出錯(cuò)處理測(cè)試邊界條件測(cè)試內(nèi)容單元測(cè)試可以采用靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試,動(dòng)態(tài)測(cè)試時(shí)通常以白盒測(cè)試為主,輔之以黑盒測(cè)試測(cè)試策略單元測(cè)試:對(duì)模塊進(jìn)行檢查,盡可能模塊接口測(cè)試內(nèi)M1M2M3M4組裝測(cè)試(集成):按系統(tǒng)程序結(jié)構(gòu),沿控制層次自頂向下進(jìn)行組裝M1M2M3M4M5M6第一步:測(cè)試M1,設(shè)計(jì)樁模塊S1、S2、S3模擬被M1調(diào)用的模塊S1S2S3自頂向下集成軟件單元的接口測(cè)試、全局?jǐn)?shù)據(jù)結(jié)構(gòu)、邊界條件和非法輸入等。M1M2M3M4組裝測(cè)試(集成):按系統(tǒng)程序結(jié)構(gòu),沿M1M2M3M4自頂向下集成按系統(tǒng)程序結(jié)構(gòu),沿控制層次自頂向下進(jìn)行組裝第二步:依次用M2、M3、M4替代樁模塊S1、S2、S3,每替換一個(gè)模塊就進(jìn)行一次測(cè)試。S2S3M1M2M3M4M5M6M1M2M3M4自頂向下集成按系統(tǒng)程序結(jié)構(gòu),沿控制M1M2M3M4自頂向下集成按系統(tǒng)程序結(jié)構(gòu),沿控制層次自頂向下進(jìn)行組裝第三步:為下一層模塊設(shè)計(jì)樁模塊S4、S5作為M5、M6的模擬模塊進(jìn)行測(cè)試。S4S5M1M2M3M4M5M6M1M2M3M4自頂向下集成按系統(tǒng)程序結(jié)構(gòu),沿控第三步:為
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 診所 勞動(dòng)合同范例
- 無(wú)償勞動(dòng)合同范例
- 草木采購(gòu)合同范例
- 2024至2030年屏蔽式水泵項(xiàng)目投資價(jià)值分析報(bào)告
- 項(xiàng)目主要技術(shù)方案計(jì)劃表
- 陜西師范大學(xué)《學(xué)前社會(huì)教育與活動(dòng)指導(dǎo)》2023-2024學(xué)年第一學(xué)期期末試卷
- 陜西師范大學(xué)《焊接方法及設(shè)備》2023-2024學(xué)年第一學(xué)期期末試卷
- 陜西青年職業(yè)學(xué)院《作物栽培學(xué)Ⅱ》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年海陸空貨運(yùn)合同11篇
- 2024年網(wǎng)體式不銹鋼軟管項(xiàng)目可行性研究報(bào)告
- 肘關(guān)節(jié)的解剖課件
- 《音樂(lè)學(xué)科課程標(biāo)準(zhǔn)與教材分析》課程教學(xué)大綱
- 英語(yǔ)培訓(xùn)班招生宣傳海報(bào)
- DB32∕T 3690-2019 600MPa熱處理、熱軋帶肋鋼筋混凝土結(jié)構(gòu)技術(shù)規(guī)程
- 風(fēng)濕病概述及中國(guó)風(fēng)濕病發(fā)展情況ppt
- 2021年食品安全監(jiān)督抽檢培訓(xùn)完整版PPT課件
- 部編二年級(jí)下冊(cè)語(yǔ)文詞語(yǔ)表帶拼音
- 檢測(cè)大綱-整車(chē)檢驗(yàn)、過(guò)程檢驗(yàn)、零部件入廠(chǎng)檢驗(yàn)、關(guān)鍵部位檢驗(yàn)、成品入庫(kù)檢驗(yàn)
- 托輥技術(shù)規(guī)格書(shū)
- 踝關(guān)節(jié)扭傷.ppt
- CRH2型動(dòng)車(chē)組一級(jí)檢修作業(yè)辦法081222
評(píng)論
0/150
提交評(píng)論