




已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
軟件工程復(fù)習(xí)資料2014軟件概念:是計算機(jī)系統(tǒng)中的一個重要組成部分,從系統(tǒng)工程的角度來看,它作為系統(tǒng)元素,與計算機(jī)硬件、人、數(shù)據(jù)庫、過程等共同構(gòu)成計算機(jī)系統(tǒng)。它由兩部分組成,計算機(jī)程序及其相關(guān)文檔。其中,計算機(jī)程序是按事先設(shè)汁的功能和性能要求執(zhí)行的指令序列,文檔是與程序開發(fā)、維護(hù)和使用有關(guān)的圖文資料,它又可以分為系統(tǒng)文檔,用戶文檔和web站點(diǎn)。系統(tǒng)文檔用于描述系統(tǒng)的結(jié)構(gòu),用戶文檔針對軟件產(chǎn)品解釋如何使用系統(tǒng),web站點(diǎn)用于下載系統(tǒng)信息。軟件也是用戶與硬件之間的接口。軟件危機(jī):軟件危機(jī)是指軟件在開發(fā)和維護(hù)過程中遇到的一系統(tǒng)嚴(yán)重問題,主要包含二方面的問題,一是如何開發(fā)利用軟件,二是如何維護(hù)數(shù)量不斷膨脹的已有軟件。主要體現(xiàn)在軟件開發(fā)進(jìn)度無法預(yù)測,成本增長無法控制,軟件可靠性沒有保證,軟件維護(hù)費(fèi)用大幅上升,開發(fā)人員無限增多,軟件產(chǎn)品無法滿足用戶的要求。解決辦法:采用先進(jìn)的開發(fā)技術(shù)和方法;使用好的軟件開發(fā)工具,提高軟件生產(chǎn)率,有良好的組織,嚴(yán)密的管理,各類人員相互配合共同完成任務(wù)??傊浖C(jī),既要有技術(shù)措施(方法和工具),又要有必要的組織管理措施。軟件工程正是從管理和技術(shù)兩方面研究如何更好地開發(fā)和維護(hù)計算機(jī)軟件的一門新興學(xué)科。原因:(1)軟件的規(guī)模越來越大,結(jié)構(gòu)越來越復(fù)雜。(2)軟件開發(fā)管理困難而復(fù)雜。(3)軟件開發(fā)費(fèi)用不斷增加。(4)軟件開發(fā)技術(shù)落后。(5)生產(chǎn)方式落后。(6)開發(fā)工具落后,生產(chǎn)率提高緩慢。軟件的發(fā)展階段:a.程序設(shè)計階段(19461956)b.程序系統(tǒng)階段(19561968)c.軟件工程階段(1968年以來)。軟件工程定義:應(yīng)用計算機(jī)科學(xué)理論和技術(shù)以及工程管理原則和方法,按預(yù)算和進(jìn)度,實(shí)現(xiàn)滿足用戶要求的軟件產(chǎn)品的定義開發(fā)發(fā)布和維護(hù)的工程或進(jìn)行研究的學(xué)科。是指導(dǎo)軟件開發(fā)和維護(hù)的工程性學(xué)科,它以計算機(jī)科學(xué)理論和其他相關(guān)學(xué)科的理論為指導(dǎo),采用工程化的概念原理技術(shù)和方法進(jìn)行軟件的開發(fā)與維護(hù),把經(jīng)過時間考驗(yàn)而證明是正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以較少的代價獲得高質(zhì)量的軟件并維護(hù)它。軟件工程的框架:可用一個三元組刻畫,即SE=(G,P,Q),其中SE表示軟件工程,G為目標(biāo),P為原則,Q為活動。目標(biāo):生產(chǎn)具有正確性,可用性,開銷適宜的產(chǎn)品?;顒樱盒枨蠓治?,設(shè)計,實(shí)現(xiàn),V&V(驗(yàn)證與確認(rèn)),支持。原則:選取適宜的開發(fā)范型,采用合適的設(shè)計方法,提供高質(zhì)量的工具支持,重視開發(fā)過程的管理(工程管理)。軟件的生存周期:是軟件產(chǎn)品的一系列相關(guān)活動的整個生命期,即從形成概念開始,經(jīng)過開發(fā),交付使用,在使用中不斷修改和演進(jìn),直到最終被廢棄,讓位于新的軟件產(chǎn)品位置的整個時期。三個時期的基本任務(wù):軟件定義(任務(wù):問題定義與可行性研究;需求分析)、軟件開發(fā)(軟件設(shè)計是技術(shù)核心,分為概要設(shè)計和詳細(xì)設(shè)計;程序編碼與單元測試;綜合測試)、運(yùn)行維護(hù)(軟件維護(hù):使軟件持久地滿足用戶的需要)。瀑布模型:定義:規(guī)定了這些活動,并且規(guī)定了這些活動按自上而下,相互銜接的固定次序,如同瀑布流水,逐級下落?;净顒樱盒枨蠓治雠c定義;系統(tǒng)與軟件設(shè)計;實(shí)現(xiàn)和單元測試;集成和系統(tǒng)測試;運(yùn)行和維護(hù)。特點(diǎn):階段間具有順序性和依賴性:必須等前一階段的工作完成之后,才能開始后一階段的工作;前一階段的輸出文檔就是后一階段的輸入文檔,因此,只有前一階段的輸出文檔正確,后一階段的工作才能獲得正確的結(jié)果。缺點(diǎn):各個階段的劃分固定,缺乏靈活性,階段之間產(chǎn)生大量的文檔,極大地增加了工作量;由于開發(fā)模型基本是線性的,用戶只有等到過程的末期才能見到開花結(jié)果,從而增加了開發(fā)的風(fēng)險;早期的錯誤可能要等到開發(fā)后期的測試階段才能發(fā)現(xiàn),今兒帶來嚴(yán)重的后果??焖僭湍P停憾x(基本思想):基于快速開發(fā)一個滿足構(gòu)想的模型的想法提出來的。先開發(fā)一個“原型”軟件,完成部分主要功能,展示給用戶并征求意見,然后逐步完善,最終獲得滿意的軟件產(chǎn)品。優(yōu)點(diǎn):可以滿足客戶直接的要求,可以增量式地開發(fā)出需求規(guī)格說明,有較大的靈活性,適合軟件需求不明確,設(shè)計方案有一定風(fēng)險的軟件項(xiàng)目。缺點(diǎn):過程不可見,系統(tǒng)常常構(gòu)造的不合理,可能要求特殊的工具和技術(shù)。類型:演進(jìn)開發(fā)和廢棄原型。計算機(jī)系統(tǒng)的系統(tǒng)元素:軟件(計算機(jī)程序、數(shù)據(jù)結(jié)構(gòu)、相關(guān)文檔)、硬件(電子計算設(shè)備和外部機(jī)電設(shè)備)人(硬件和軟件的用戶)數(shù)據(jù)庫(一個大型的有組織的信息集合)文檔(手冊、表格和其它用以描述系統(tǒng)使用和操作的信息)過程(定義每一種系統(tǒng)元素的特定使用步驟,或系統(tǒng)駐留的過程性環(huán)境)系統(tǒng)(中心)SCD環(huán)境圖:定義:確定了系統(tǒng)所使用信息的所有外部生產(chǎn)者,系統(tǒng)所生產(chǎn)信息的所有外部消費(fèi)者,所有通過接口交流或者執(zhí)行維護(hù)和自檢的實(shí)體。什么是需求分析:指開發(fā)人員要準(zhǔn)確地理解用戶的要求,進(jìn)行細(xì)致的調(diào)查分析,將用戶非形式化的需求陳述轉(zhuǎn)化為完整的需求定義,再由需求定義轉(zhuǎn)化為相應(yīng)的軟件需求規(guī)格說明書(即需求分析的結(jié)果)的過程。該階段的基本任務(wù):問題識別分析與綜合,導(dǎo)出軟件的邏輯模型編寫文檔軟件需求層次:1.業(yè)務(wù)需求:反映了組織或客戶高層次的目標(biāo)要求,描述了組織的愿景。2.用戶需求:描述了要求系統(tǒng)必須完成的任務(wù),即用戶對系統(tǒng)的目標(biāo)要求,一般采用自然語言和直觀圖形相結(jié)合的方式描述。例如采用用例、文檔或場景、等方式說明。3.功能需求和非功能需求:功能需求定義了開發(fā)者應(yīng)提供的軟件功能或服務(wù),但不涉及這些功能或服務(wù)的實(shí)現(xiàn)。非功能需求則是對功能需求的補(bǔ)充,包括了對系統(tǒng)的各種限制和用戶對系統(tǒng)的質(zhì)量要求。4.系統(tǒng)需求:來自于系統(tǒng)分析和結(jié)構(gòu)設(shè)計。充分描述了軟件系統(tǒng)應(yīng)具有的外部行為。各種需求的關(guān)系:所有的用戶需求必須與業(yè)務(wù)需求一致。功能需求必須從用戶需求中提取,以滿足用戶對產(chǎn)品的要求從而完成其任務(wù)。開發(fā)人員應(yīng)根據(jù)功能需求來設(shè)計軟件以實(shí)現(xiàn)必須的功能。功能需求從外部(用戶角度)描述了軟件系統(tǒng)所應(yīng)具有的行為。 對一個復(fù)雜產(chǎn)品來說,軟件功能需求也許只是系統(tǒng)需求的一個子集。非功能需求作為功能需求的補(bǔ)充,包括產(chǎn)品必須遵從的標(biāo)準(zhǔn)、規(guī)范和合約;外部接口的具體細(xì)節(jié);性能要求;設(shè)計或?qū)崿F(xiàn)的約束條件及質(zhì)量屬性。約束是指在軟件產(chǎn)品設(shè)計和構(gòu)造上的限制。質(zhì)量屬性是通過多種角度對產(chǎn)品的特點(diǎn)進(jìn)行描述,從而反映產(chǎn)品功能。多角度描述產(chǎn)品對用戶和開發(fā)者都極為重要。軟件設(shè)計的目標(biāo):軟件設(shè)計的基本目標(biāo)是用比較抽象概括的方式確定目標(biāo)系統(tǒng)如何完成預(yù)定的任務(wù),即軟件設(shè)計是確定系統(tǒng)的物理模型。準(zhǔn)則:性能準(zhǔn)則(包括對系統(tǒng)速度和空間的需求,例如:響應(yīng)時間,吞吐量,內(nèi)存)??煽啃詼?zhǔn)則(決定了對減少系統(tǒng)崩潰及隨后所造成危害所做的努力程度。有健壯性,可靠性,可用性,容錯性,保密性,安全性)成本準(zhǔn)則、維護(hù)準(zhǔn)則、最終用戶準(zhǔn)則。任務(wù):是基于需求分析的結(jié)果建立各種設(shè)計模型,給出問題解決的方案。它將用戶需求準(zhǔn)確地轉(zhuǎn)化成為最終的軟件產(chǎn)品的唯一途徑,在需求到實(shí)現(xiàn)之間起到了橋梁作用。概念:軟件設(shè)計包括一套原理,概念和實(shí)踐,可以指導(dǎo)高質(zhì)量的系統(tǒng)或產(chǎn)品開發(fā)。為程序正確提供了必要的框架。軟件設(shè)計的階段和任務(wù):從工程管理的角度,可以將軟件設(shè)計分為兩個階段:概要設(shè)計階段(概念:把一個軟件需求轉(zhuǎn)換為軟件表示時,首先設(shè)計出軟件總的體系結(jié)構(gòu)。稱為概要設(shè)計或結(jié)構(gòu)設(shè)計。任務(wù):將需求轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件的系統(tǒng)結(jié)構(gòu),要完成體系結(jié)構(gòu)設(shè)計,數(shù)據(jù)設(shè)計及接口設(shè)計)和詳細(xì)設(shè)計階段(要完成過程設(shè)計,是通過對結(jié)構(gòu)表示進(jìn)行細(xì)化,得到軟件詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和算法)。從技術(shù)的角度,采用的方法不同會有所不同:傳統(tǒng)的結(jié)構(gòu)化方法將軟件設(shè)計劃分為體系結(jié)構(gòu)設(shè)計、數(shù)據(jù)設(shè)計、接口設(shè)計及過程設(shè)計四部分;面向?qū)ο蠓椒▌t將軟件設(shè)計劃分為體系結(jié)構(gòu)設(shè)計、類設(shè)計數(shù)據(jù)設(shè)計、接口設(shè)計、構(gòu)件級設(shè)計四部分。 創(chuàng)建良好設(shè)計的原則:1.分而治之:將大型復(fù)雜的問題分解為許多容易解決的小問題。(例:軟件的體系結(jié)構(gòu)設(shè)計和模塊化設(shè)計)2.模塊化:將程序劃分成獨(dú)立命名且可獨(dú)立訪問的模塊,不同的模塊通常具有不同的功能或職責(zé)(面向?qū)ο笾?,對象是模塊;結(jié)構(gòu)化方法中,模塊是過程、函數(shù)和子程序)3.模塊獨(dú)立性(好的話是高內(nèi)聚低耦合):概念:模塊化,抽象,逐步求精和信息隱藏等概念的直接結(jié)果,也是完成有效模塊設(shè)計得基本標(biāo)準(zhǔn)。軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他模塊的接口是簡單的。3.1一般用兩個準(zhǔn)則獨(dú)立模塊獨(dú)立性,模塊之間的耦合(模塊之間相互連接的緊密程度的度量,之間的連接越緊密,聯(lián)系越多,耦合性就越高,模塊獨(dú)立性就越弱)和模塊的內(nèi)聚(模塊內(nèi)部各個元素彼此結(jié)合的緊密程度的度量,模塊內(nèi)部各個元素之間的聯(lián)系越緊密,則它的內(nèi)聚性越高,相對地,他與其他模塊間的耦合性就會降低,模塊獨(dú)立性就越強(qiáng))模塊類型與模塊獨(dú)立性間關(guān)系(耦合性緊密到松散):內(nèi)容耦合,公共耦合,控制耦合,標(biāo)記耦合,數(shù)據(jù)耦合,例程調(diào)用耦合,類型使用耦合,包含/引入耦合,外部耦合內(nèi)聚類型與模塊獨(dú)立性間關(guān)系(內(nèi)聚性高到低):功能內(nèi)聚,層內(nèi)聚,通信內(nèi)聚,順序內(nèi)聚,過程內(nèi)聚,時間內(nèi)聚,實(shí)用程序內(nèi)聚。接口設(shè)計:系統(tǒng)的接口設(shè)計包括用戶界面設(shè)計及系統(tǒng)的接口設(shè)計,是由穿越邊界的數(shù)據(jù)流定義的,包括三方面內(nèi)容:模塊或軟件構(gòu)件之間的接口設(shè)計;軟件與其他軟硬件系統(tǒng)之間的接口設(shè)計;軟件與人之間的交互設(shè)計。處理過程設(shè)計:要決定各個模塊的功能及模型的實(shí)現(xiàn)算法,并精確地表達(dá)這些算法。PAD圖:用結(jié)構(gòu)化程序設(shè)計思想表現(xiàn)程序邏輯結(jié)構(gòu)的圖形工具,由程序流程圖演化而來。優(yōu)點(diǎn):1.PAD所表達(dá)的程序,結(jié)構(gòu)清晰且結(jié)構(gòu)化程度高;2.PAD的執(zhí)行順序從最左主干線的上端的節(jié)點(diǎn)開始,自上而下依次執(zhí)行;3.由于PAD的樹形特點(diǎn),使他比流程圖更容易在計算機(jī)上處理。HIPO圖:由可視目錄表(給出系統(tǒng)的功能分層關(guān)系)和IPO圖組成(為系統(tǒng)的各部分提供具體地工作細(xì)節(jié))數(shù)據(jù)字典:關(guān)于數(shù)據(jù)的信息的集合,也就是對數(shù)據(jù)流圖中包含的所有元素的定義的集合。體系結(jié)構(gòu)概念:軟件被分成許多模塊,模塊之間相互作用,組合起來就有了整體的屬性,就具有了體系結(jié)構(gòu)。一個程序或計算機(jī)系統(tǒng)的軟件體系結(jié)構(gòu)是指系統(tǒng)的一個或者多個結(jié)構(gòu)。結(jié)構(gòu)中包括軟件的構(gòu)件、構(gòu)件的外部可見屬性以及它們間的相互關(guān)系。外部可見屬性則是指軟件構(gòu)件提供的服務(wù)、性能、使用特性、錯誤處理、共享資源使用等?;締挝皇擒浖?gòu)件。體系結(jié)構(gòu)的結(jié)構(gòu)風(fēng)格:定義一個詞匯表和一組約束。1.數(shù)據(jù)流風(fēng)格:例管道和過濾器結(jié)構(gòu)。2.調(diào)用返回風(fēng)格:主程序子程序體系結(jié)構(gòu) ;面向?qū)ο箫L(fēng)格;層次結(jié)構(gòu)風(fēng)格。3.數(shù)據(jù)倉庫風(fēng)格:如數(shù)據(jù)庫系統(tǒng),超文本系統(tǒng),黑板系統(tǒng)。結(jié)構(gòu)化程序設(shè)計:原則:使用語言中的順序、選擇、重復(fù)等有限的基本控制結(jié)構(gòu)表示程序邏輯;選用的控制結(jié)構(gòu)只準(zhǔn)許有一個入口和一個出口;程序語句組成容易識別的塊(Block),每塊只有一個入口和一個出口;復(fù)雜結(jié)構(gòu)應(yīng)該用基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實(shí)現(xiàn);語言中沒有的控制結(jié)構(gòu),可用一段等價的程序段模擬, 但要求該程序段在整個系統(tǒng)中應(yīng)前后一致;嚴(yán)格控制GOTO語句,僅在下列情形才可使用:用一個非結(jié)構(gòu)化的編程語言去實(shí)現(xiàn)一個結(jié)構(gòu)化的構(gòu)造,在某種可以改善而不是損害程序可讀性的情況下。包括兩個方面:1.在程序設(shè)計過程中,盡量采用自頂向下和逐步細(xì)化的原則,由粗到細(xì),一步步展開。方法:以自頂向下逐步求精的方式編寫程序:把模塊功能逐步分解,細(xì)化為一系列具體的步驟,進(jìn)而翻譯成一系列用某種編程語言寫成的程序。用先全局后局部,先整體后細(xì)節(jié),先抽象后具體的逐步求精的過程開發(fā)出來的程序具有清晰的層次結(jié)構(gòu),程序容易閱讀和理解。2.在編寫程序時強(qiáng)調(diào)使用幾種基本控制結(jié)構(gòu),通過組合嵌套,形成程序的控制結(jié)構(gòu)。盡可能避免使用會使程序質(zhì)量受到影響的GOTO語句。方法:使用基本控制結(jié)構(gòu)構(gòu)造程序 結(jié)構(gòu)化設(shè)計方法的設(shè)計步驟:對DFD圖進(jìn)行復(fù)審,必要時修改或細(xì)化;根據(jù)數(shù)據(jù)流圖確定問題的類型,針對不同的類型分別進(jìn)行分析處理;由DFD映射成初始SC圖;改進(jìn)SC圖,直至得到符合要求的結(jié)構(gòu)圖。軟件測試的目的:從用戶的角度出發(fā),普遍希望通過軟件測試暴露軟件中隱藏的錯誤和缺陷,以考慮是否可接受該產(chǎn)品。從軟件開發(fā)者的角度出發(fā),則希望測試成為表明軟件產(chǎn)品中不存在錯誤的過程,驗(yàn)證該軟件已正確地實(shí)現(xiàn)了用戶的要求。 對一個軟件系統(tǒng),尤其是規(guī)模大、復(fù)雜性高的大型軟件系統(tǒng),雖經(jīng)過了分析、設(shè)計和編程階段但仍會存在錯誤。為了保證軟件系統(tǒng)的質(zhì)量,就要對軟件系統(tǒng)進(jìn)行檢驗(yàn)和測試。軟件測試手段有三類:動態(tài)檢查、靜態(tài)檢查和正確性證明軟件測試的定義:使用人工操作或者軟件自動運(yùn)行的方式來檢驗(yàn)它是否滿足規(guī)定的需求或弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別的過程。它是幫助識別開發(fā)完成的計算機(jī)軟件的正確度、完全度和質(zhì)量的軟件過程;是的重要子域。軟件測試的基本原則:1)測試用例應(yīng)該由以下兩部分組成:輸入數(shù)據(jù)。預(yù)期的輸出結(jié)果。2)不僅要選用合理的輸入數(shù)據(jù)作為測試用例,還應(yīng)選用不合理的輸入數(shù)據(jù)作為測試用例。3)除了檢查程序是否做了它應(yīng)做的工作之外,還應(yīng)檢查程序是否還做了它不應(yīng)做的事情。4)應(yīng)該長期保留所有的測試用例,直至這個程序系統(tǒng)被廢棄不用為止。軟件測試步驟:說明這些步驟的測試對象是什么?答:(1)單元測試,測試對象為單元模塊(2)集成測試,測試對象為組裝后的程序模塊(3)確認(rèn)測試,測試對象為可運(yùn)行的目標(biāo)軟件系統(tǒng)(4)最后一步是系統(tǒng)測試,檢查軟件與系統(tǒng)中其他元素是否協(xié)調(diào)錯誤分類:1.按錯誤的影響和后果分類:微小錯誤,一般錯誤,較嚴(yán)重錯誤、嚴(yán)重錯誤,非常嚴(yán)重的錯誤,最嚴(yán)重的錯誤。2.按錯誤的性質(zhì)和范圍分類:功能錯誤、系統(tǒng)錯誤、加工錯誤、數(shù)據(jù)錯誤、代碼錯誤。3.按軟件生存周期階段分類:需求錯誤、功能與性能、程序結(jié)構(gòu)、數(shù)據(jù)錯誤、實(shí)現(xiàn)和編碼錯誤、集成錯誤、系統(tǒng)結(jié)構(gòu)錯誤、測試定義與測試執(zhí)行錯誤。單元測試定義:是針對軟件設(shè)計的最小單位程序模塊,進(jìn)行正確性檢驗(yàn)的測試工作,是在模塊源程序代碼編寫完成之后進(jìn)行的測試。對于傳統(tǒng)的結(jié)構(gòu)化程序而言,程序單元是指程序中定義的函數(shù)或子程序,單元測試就是對函數(shù)或予程序進(jìn)行的測試。對于面向?qū)ο蟮某绦蚨裕绦騿卧侵柑囟ǖ囊粋€具體的類或相關(guān)的多個類,單元測試是對類的測試;但有時候,在一個類特別復(fù)雜時,就會把方法作為一個單元進(jìn)行測試。目的:驗(yàn)證代碼是與設(shè)計相符合的;跟蹤需求和設(shè)計的實(shí)現(xiàn);發(fā)現(xiàn)設(shè)計和需求中存在的缺陷;發(fā)現(xiàn)在編碼過程中引入的錯誤。步驟:人工檢查和動態(tài)執(zhí)行跟蹤。人工檢查主要是保證代碼算法的邏輯正確性、清晰性、規(guī)范性、一致性、算法高效性,并盡可能地發(fā)現(xiàn)程序中沒有發(fā)現(xiàn)的錯誤。動態(tài)執(zhí)行跟蹤就是通過設(shè)計測試用例,執(zhí)行待測程序來跟蹤比較實(shí)際結(jié)果與預(yù)期結(jié)果來發(fā)現(xiàn)錯誤。環(huán)境:由于一個模塊或一個方法并不是一個獨(dú)立的程序,考慮測試時要同時考慮它和外界的聯(lián)系,因此要用到一些輔助模塊,來模擬與被測模塊相聯(lián)系的其他模塊。這些被測試模塊和與它相關(guān)的驅(qū)動模塊及樁模塊共同構(gòu)成了測試環(huán)境。單元測試的基本內(nèi)容:測試構(gòu)造軟件系統(tǒng)的模塊(對象和子系統(tǒng))1、模塊接口:主要檢查數(shù)據(jù)能否正確通過模塊;屬性及對應(yīng)關(guān)系是否一致。2、局部數(shù)據(jù)結(jié)構(gòu):說明不正確或不一致;初始化或缺省值錯誤;變量名未定義或拼寫錯誤;數(shù)據(jù)類型不相容;上溢下溢或地址錯誤等3、重要的執(zhí)行路徑:重要模塊要進(jìn)行基本路徑測試,仔細(xì)地選擇測試路徑是單元測試的一項(xiàng)基本任務(wù)。4、錯誤處理:主要測試程序?qū)﹀e誤處理的能力,應(yīng)檢查是否不能正確處理外部輸入錯誤或內(nèi)部處理引起的錯誤;對發(fā)生的錯誤不能正確描述的內(nèi)容,難以理解;在錯誤處理之前,系統(tǒng)已經(jīng)進(jìn)行干預(yù)。5、邊界條件:程序最容易在邊界上出錯,如輸入輸出數(shù)據(jù)的等價類邊界,選擇條件和循環(huán)條件的邊界,復(fù)雜數(shù)據(jù)結(jié)構(gòu)的邊界等都應(yīng)進(jìn)行測試單元測試策略:1.自頂向下的單元測試策略:從最頂層的單元開始,把頂層調(diào)用的單元用樁模塊代替,對頂層模塊做單元測試。對下一層單元進(jìn)行測試時,使用上面已測試的單元做驅(qū)動模塊,并為被測模塊編寫新的樁模塊。依次類推,直到全部單元測試結(jié)束。優(yōu)點(diǎn)是:可以在集成測試之前為系統(tǒng)提供早期的集成途徑。缺點(diǎn)是:單元測試被樁模塊控制,隨著單元測試的不斷進(jìn)行,測試過程也會變得越來越復(fù)雜。2.自底向上的單元測試策略:先對調(diào)用圖的最底層單元進(jìn)行測試,使用驅(qū)動模塊來代替調(diào)用它的上層單元。對上一層單元進(jìn)行測試時,用已經(jīng)被測試過的模塊做樁模塊,并為被測單元編寫新的驅(qū)動模塊。依次類推,直到全部單元測試結(jié)束。優(yōu)點(diǎn)是:不需要單獨(dú)設(shè)計樁模塊;無需依賴結(jié)構(gòu)設(shè)計,可以直接從功能設(shè)計中獲取測試用例,可以為系統(tǒng)提供早期的集成途徑。缺點(diǎn)是:自底向上的單元測試不能和詳細(xì)設(shè)計、編碼同步進(jìn)行。3.孤立測試:分別為每個模塊單獨(dú)設(shè)計樁模塊和驅(qū)動模塊,逐一完成所有單元模塊的測試。優(yōu)點(diǎn)是:方法簡單、易操作,能夠達(dá)到高覆蓋率。各模塊之間不存在依賴性,所以單元測試可以并行進(jìn)行。缺點(diǎn)是:不能為集成測試提供早期的集成途徑。依賴結(jié)構(gòu)設(shè)計信息,需要設(shè)計多個樁模塊和驅(qū)動模塊,增加了額外的測試成本。4.綜合測試:單元測試分析:目的是要根據(jù)可能的各種情況,確定測試內(nèi)容。要確認(rèn)這段代碼是否在任何情況下都和期望的一致。1.模塊接口測試(參數(shù)表、全局變量、文件)2.局部數(shù)據(jù)結(jié)構(gòu):3.路徑測試4.錯誤處理測試5.邊界測試。集成測試:定義:根據(jù)實(shí)際情況對程序模塊采用適當(dāng)?shù)募蓽y試策略組裝起來,對系統(tǒng)的接口以及集成后的功能進(jìn)行正確性檢驗(yàn)的測試工作。目的:根據(jù)實(shí)際情況對程序模塊采用適當(dāng)?shù)募蓽y試策略組裝起來,對系統(tǒng)的接口以及集成后的功能進(jìn)行正確性檢驗(yàn)的測試工作。對于傳統(tǒng)軟件來說,按集成程度不同,可以把集成測試分為 3 個層次,即模塊內(nèi)集成測試;子系統(tǒng)內(nèi)集成測試;子系統(tǒng)間集成測試。對于面向?qū)ο蟮膽?yīng)用系統(tǒng)來說,按集成程度不同,可以把集成測試分為2個層次,即類內(nèi)集成測試;類間集成測試。環(huán)境:硬件環(huán)境,操作系統(tǒng),數(shù)據(jù)庫,網(wǎng)絡(luò),測試工具運(yùn)行,其他集成測試策略:1,基于分解的集成方式(a.一次性集成方式,優(yōu)點(diǎn)是只要極少數(shù)的驅(qū)動和樁模塊;需要的測試用例最少;方法簡單;多個測試人員可以并行工作,對人力、物力資源利用率較高。缺點(diǎn)是一次試運(yùn)行成功的可能性不大;錯誤定位和修改困難;有許多接口錯誤很容易躲過測試。b.自頂向下的增量式集成:優(yōu)點(diǎn)是在增量式集成的過程中較早地驗(yàn)證了主要的控制和判斷點(diǎn);減少了驅(qū)動模塊開發(fā)的費(fèi)用;由于集成順序和設(shè)計順序一致,可以和設(shè)計并行進(jìn)行;支持故障隔離。缺點(diǎn)是建立樁模塊的成本較高;底層構(gòu)件中的一個無法預(yù)計的需求可能會導(dǎo)致許多頂層構(gòu)件的修改;底層構(gòu)件行為的驗(yàn)證被推遲了;隨著底層模塊的不斷增加,整個系統(tǒng)越來越復(fù)雜,導(dǎo)致底層模塊的測試不充分,尤其是那些被復(fù)用的模塊。c.自底向上的增量式集成:優(yōu)點(diǎn)是對底層模塊的行為能夠早期驗(yàn)證;可以并行進(jìn)行測試和集成,驅(qū)動模塊的編寫工作量遠(yuǎn)比樁模塊的編寫工作量小;支持故障隔離。缺點(diǎn)是對高層的驗(yàn)證被推遲到了最后,設(shè)計上的錯誤不能被及時發(fā)現(xiàn);對于底層的一些異常很難覆蓋。d.優(yōu)點(diǎn)是集合了由頂向下和自底向上的兩種集成策略的優(yōu)點(diǎn),且對中間層能夠盡早進(jìn)行比較充分的測試;而且該策略的并行度比較高。缺點(diǎn)是中間層如果選取不恰當(dāng),可能會有比較大的驅(qū)動模塊和樁模塊的工作量。)2、基于層次的集成:適用范圍:有明顯線性層次關(guān)系的軟件系統(tǒng)。3.基于路徑的集成:集成測試分析:1、體系結(jié)構(gòu)分析:1).跟蹤需求分析:從需求的跟蹤實(shí)現(xiàn)出發(fā),劃分出系統(tǒng)實(shí)現(xiàn)上的結(jié)構(gòu)層次圖。2)對系統(tǒng)各個構(gòu)件之間的依賴關(guān)系進(jìn)行分析,然后據(jù)此確定集成測試的模塊的大小。2、模塊分析:3、接口分析:集成測試的重點(diǎn)是測試接口的功能性、可靠性、安全性、完整性、穩(wěn)定性等多個方面。接口的劃分,接口的分類,接口數(shù)據(jù)分析。4、集成測試策略的分析:主要根據(jù)被測對象選擇合適的集成策略。測試用例的重要性 :測試用例是測試人員執(zhí)行測試的重要參考依據(jù)。良好的測試用例具有復(fù)用的功能,在測試過程中可以重復(fù)使用。測試用例是在長期測試實(shí)踐中積累起來的,組織好這些測試用例,可幫助測試者有效使用它們。測試用例的通過率是檢驗(yàn)程序代碼質(zhì)量的例證,衡量程序代碼的質(zhì)量,量化的標(biāo)準(zhǔn)應(yīng)該是測試用例的通過率和軟件缺陷(bug)的數(shù)目。測試用例也是檢驗(yàn)測試人員進(jìn)度、工作量以及跟蹤管理測試人員的工作效率的因素。黑盒測試(叫做功能測試或數(shù)據(jù)驅(qū)動測試或基于規(guī)格說明的測試):定義:根據(jù)產(chǎn)品的外部功能來規(guī)劃測試,檢查程序各個功能是否實(shí)現(xiàn),主要的質(zhì)量屬性是否達(dá)到要求,其中有無錯誤。白盒測試:定義:基于產(chǎn)品內(nèi)部結(jié)構(gòu)來規(guī)劃測試,檢查程序內(nèi)部操作是否按規(guī)定運(yùn)行,各部分代碼是否被充分覆蓋。方法:把測試對象看做一個玻璃盒子,它允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計或選擇測試用例,對程序所有邏輯路徑進(jìn)行測試。通過在不同點(diǎn)檢查程序的狀態(tài),確定實(shí)際的狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測試又稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試。主要想對程序模塊進(jìn)行如下的檢查:1)路徑覆蓋測試:對程序模塊的獨(dú)立的執(zhí)行路徑盡可能多的執(zhí)行測試;2)邏輯覆蓋測試:對所有的邏輯判定,取“真”與取“假”的兩種情況盡可能多地執(zhí)行測試;3)控制流測試:在循環(huán)的邊界和運(yùn)行界限內(nèi)執(zhí)行循環(huán)體檢查循環(huán)的執(zhí)行狀態(tài);4)數(shù)據(jù)流測試、領(lǐng)域測試:測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性 。 白盒測試用例設(shè)計方法邏輯覆蓋有語句覆蓋(設(shè)計若干個測試用例,運(yùn)行被測程序,使得每一可執(zhí)行語句至少執(zhí)行一次。)、判定覆蓋(設(shè)計若干個測試用例,運(yùn)行被測程序,使得程序中每個判斷的取真分支和取假分支至少經(jīng)歷一次。)、條件覆蓋、判定/條件覆蓋、條件組合覆蓋及路徑覆蓋。軟件工程為什么要強(qiáng)調(diào)規(guī)范化和文檔化?規(guī)范化的目的是使眾多的開發(fā)者遵守相同的規(guī)范,使軟件生產(chǎn)擺脫個人生產(chǎn)方式,進(jìn)入標(biāo)準(zhǔn)化、工程化的生產(chǎn)方式。文檔化是將軟件的設(shè)計思想、設(shè)計過程和實(shí)現(xiàn)過程完整地記錄下來,以便于后人的使用和維護(hù),在開發(fā)過程中各類相關(guān)人員借助于文檔進(jìn)行交流和溝通。另外,在開發(fā)過程中產(chǎn)生的各類文檔使得軟件的生產(chǎn)過程由不可見變?yōu)榭梢?,便于管理者對軟件生產(chǎn)進(jìn)度和開發(fā)過程進(jìn)行管理。在用戶最終驗(yàn)收時可以通過對提交的文檔進(jìn)行技術(shù)審查和管理審查,保證軟件的質(zhì)量。結(jié)構(gòu)化分析的主要步驟:根據(jù)用戶的需求畫出初始的數(shù)據(jù)流程圖,寫出數(shù)據(jù)字典和初始的加工處理說明(IPO圖),實(shí)體關(guān)系圖。以初始數(shù)據(jù)流程圖為基礎(chǔ),從數(shù)據(jù)流程圖的輸出端開始回溯。在對數(shù)據(jù)流程圖進(jìn)行回溯的過程中可能會發(fā)現(xiàn)丟失的處理和數(shù)據(jù),應(yīng)將數(shù)據(jù)流程圖補(bǔ)充完善。對軟件性能指標(biāo)、接口定義、設(shè)計和實(shí)現(xiàn)的約束條件等逐一進(jìn)行分析。系統(tǒng)分析人員與用戶一起對需求分析的結(jié)果進(jìn)行復(fù)查。根據(jù)細(xì)化的需求修訂開發(fā)計劃。編寫需求規(guī)格說明書和初始的用戶手冊,測試人員開始編寫功能測試用的測試數(shù)據(jù)。數(shù)據(jù)流圖:是描繪信息和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)受的變換。反映了數(shù)據(jù)在軟件中流動和被處理的邏輯過程。數(shù)據(jù)流圖是系統(tǒng)邏輯功能的圖形表示,是一種極好的通信工具。包括的條目:數(shù)據(jù)流詞條,數(shù)據(jù)元素詞條,數(shù)據(jù)存儲詞條,數(shù)據(jù)加工處理詞條,數(shù)據(jù)源點(diǎn)及終點(diǎn)詞條。組成:外部實(shí)體(外部實(shí)體是指系統(tǒng)之外的人或單位,它們和本系統(tǒng)有信息傳遞關(guān)系)數(shù)據(jù)流,處理、數(shù)據(jù)存儲。內(nèi)聚性和耦合性的類別。作用:數(shù)據(jù)流程圖描述了系統(tǒng)的邏輯結(jié)構(gòu),其中的四個基本圖形元素的含義無法在數(shù)據(jù)流程圖中詳細(xì)說明,因此數(shù)據(jù)流程圖需要與其他工具配合使用,數(shù)據(jù)字典就是這樣的工具之一。需求工程包括哪些基本活動?各項(xiàng)基本活動的主要任務(wù)是什么?主要活動:獲取需求。深入實(shí)際,在充分理解用戶需求的基礎(chǔ)上,獲取足夠多的問題領(lǐng)域的知識,積極與用戶交流,捕捉、分析和修訂用戶對目標(biāo)系統(tǒng)的需求,并提煉出符合解決領(lǐng)域問題的用戶需求。需求獲取的方法一般有問卷法、面談法、數(shù)據(jù)采集法、用例法、情景實(shí)例法以及基于目標(biāo)的方法等。需求分析與建模。對已獲取的需求進(jìn)行分析和提煉,進(jìn)行抽象描述,建立目標(biāo)系統(tǒng)的概念模型,需求概念模型的要求包括實(shí)現(xiàn)的獨(dú)立性:不模擬數(shù)據(jù)的表示和內(nèi)部組織等;需求模擬技術(shù)又分為企業(yè)模擬、功能需求模擬和非功能需求模擬等。進(jìn)一步對所建立的模型(原型)進(jìn)行分析。需求模型的表現(xiàn)形式有自然語言、半形式化(如圖、表、結(jié)構(gòu)化英語等)和形式化表示等三種。需求規(guī)格說明。對需求模型進(jìn)行精確的、形式化的描述,為計算機(jī)系統(tǒng)的實(shí)現(xiàn)提供基礎(chǔ)。確認(rèn)需求。以需求規(guī)格說明為基礎(chǔ)輸入,通過符號執(zhí)行、模擬或快速原型等方法,分析和驗(yàn)證需求規(guī)格說明的正確性和可行性,確保需求說明準(zhǔn)確、完整地表達(dá)系統(tǒng)的主要特性,就是對需求規(guī)格說明與用戶達(dá)成一致。其主要任務(wù)是沖突求解,包括定義沖突和沖突求解兩方面。常用的沖突求解方法有:協(xié)商、競爭、仲裁、強(qiáng)制、教育等,其中有些只能用人的因素去控制。需求管理。在整個需求工程過程中,貫穿了需求管理活動。需求管理主要包括跟蹤和管理需求變化,支持系統(tǒng)的需求演進(jìn)。由于客戶的需要總是不斷(連續(xù))增長的,但一般的軟件開發(fā)又總是落后于客戶需求的增長,如何管理需求的進(jìn)化(變化)就成為軟件管理的首要問題。對于傳統(tǒng)的變化管理過程來說,其基本成分包括軟件配置、軟件基線和變化審查小組。當(dāng)前的發(fā)展是軟件家族法,即產(chǎn)品線方法。多視點(diǎn)方法也是管理需求變化的一種新方法,它可以用于管理不一致性,并進(jìn)行關(guān)于變化的推理。進(jìn)化需求是十分必要的。1.語句覆蓋:主要特點(diǎn):語句覆蓋是最起碼的結(jié)構(gòu)覆蓋要求,語句覆蓋要求設(shè)計足夠多的測試用例,使得程序中每條語句至少被執(zhí)行一次。1)用例設(shè)計:(如果此時將A路徑上的語句1T去掉,用例如下)XY路徑15050OBDE29070OBCE2)優(yōu)點(diǎn):可以很直觀地從源代碼得到測試用例,無須細(xì)分每條判定表達(dá)式。3)缺點(diǎn):由于這種測試方法僅僅針對程序邏輯中顯式存在的語句,但對于隱藏的條件和可能到達(dá)的隱式邏輯分支,是無法測試的。在本例中去掉了語句1T去掉,那么就少了一條測試路徑。在if結(jié)構(gòu)中若源代碼沒有給出else后面的執(zhí)行分支,那么語句覆蓋測試就不會考慮這種情況。但是我們不能排除這種以外的分支不會被執(zhí)行,而往往這種錯誤會經(jīng)常出現(xiàn)。再如,在Do-While結(jié)構(gòu)中,語句覆蓋執(zhí)行其中某一個條件分支。那么顯然,語句覆蓋對于多分支的邏輯運(yùn)算是無法全面反映的,它只在乎運(yùn)行一次,而不考慮其他情況。2.判定覆蓋1)主要特點(diǎn):判定覆蓋又稱為分支覆蓋,它要求設(shè)計足夠多的測試用例,使得程序中每個判定至少有一次為真值,有一次為假值,即:程序中的每個分支至少執(zhí)行一次。每個判斷的取真、取假至少執(zhí)行一次。2)用例設(shè)計:XY路徑19090OAE25050OBDE39070OBCE3)優(yōu)點(diǎn):判定覆蓋比語句覆蓋要多幾乎一倍的測試路徑,當(dāng)然也就具有比語句覆蓋更強(qiáng)的測試能力。同樣判定覆蓋也具有和語句覆蓋一樣的簡單性,無須細(xì)分每個判定就可以得到測試用例。4)缺點(diǎn):往往大部分的判定語句是由多個邏輯條件組合而成(如,判定語句中包含AND、OR、CASE),若僅僅判斷其整個最終結(jié)果,而忽略每個條件的取值情況,必然會遺漏部分測試路徑。1)分析這一段說明,列出原因和結(jié)果原因:1.售貨機(jī)有零錢找2.投入1元硬幣3.投入5角硬幣4. 押下橙汁按鈕5. 押下啤酒按鈕結(jié)果:21. 售貨機(jī)零錢找完燈亮22. 退還1元硬幣 23. 退還5角硬幣24. 送出橙汁飲料25. 送出啤酒飲料2)畫出因果圖。所有原因結(jié)點(diǎn)列在左邊,所有結(jié)果結(jié)點(diǎn)列在右邊。建立中間結(jié)點(diǎn),表示中間狀態(tài):11. 投入 1 元硬幣且押下飲料按鈕12. 押下橙汁或啤酒的按鈕13. 應(yīng)找 5 角零錢且售貨機(jī)有零錢找14. 錢已付清3)由于 2 與 3 ,4 與 5 不能同時發(fā)生,分別加上約束條件E。4)因果圖轉(zhuǎn)換成判定表。5)在判定表中選擇測試用例。22售貨機(jī)有零錢找售貨機(jī)“零錢找完”的燈亮投入1元硬幣退還1元硬幣找回5角硬幣投入5角硬幣按下橙汁按鈕送出橙汁飲料按下啤酒按鈕送出啤酒飲料按下按鈕錢付清可找5角該找5角235423112524211214113EE軟件的分類:a.系統(tǒng)軟件:是能與計算機(jī)硬件緊密配合一起,使計算機(jī)系統(tǒng)各個部件,相關(guān)的軟件和數(shù)據(jù)協(xié)調(diào)、高效工作的軟件。B.應(yīng)用軟件:是在系統(tǒng)軟件的支持下,在特定領(lǐng)域內(nèi)開發(fā),為特定目的服務(wù)的一類軟件。C.支撐軟件:亦稱為工具軟件,是協(xié)助用戶開發(fā)軟件的工具性軟件,其中包括幫助程序人員開發(fā)軟件產(chǎn)品的工具和幫助管理人員控制開發(fā)進(jìn)程的工具。D.可復(fù)用軟件:最初實(shí)現(xiàn)的典型可復(fù)用軟件是各種標(biāo)準(zhǔn)函數(shù)庫。范型:定義:指軟件開發(fā)的模式,定義了特定的問題和應(yīng)用系統(tǒng)開發(fā)過程中應(yīng)遵循的步驟,確定用于描述問題及解決方案中各個成分的表示方式,并利用這些成分表示與問題解決相關(guān)的抽象,直接得到問題的結(jié)構(gòu),支配了設(shè)計方法編碼語言、測試和檢驗(yàn)技術(shù)的選擇。分類:過程性范型(把軟件視為處理流,定義成由一系列步驟構(gòu)成的算法。每一步驟都是帶有輸入和輸出的一個過程,把這些步驟串聯(lián)在一起可產(chǎn)生貫通于整個程序的控制流)、面向?qū)ο蟮姆缎停ò褬?biāo)識和模型化問題領(lǐng)域中的實(shí)體做為系統(tǒng)開發(fā)的起點(diǎn),面向?qū)ο笙到y(tǒng)中的對象是數(shù)據(jù)抽象與過程抽象的綜合)、面向進(jìn)程的范型(把一個問題分解成獨(dú)立執(zhí)行的模塊。讓不只一個程序同時運(yùn)行。這些進(jìn)程互相配合,解決問題)、邏輯的、面向存取的、函數(shù)型的、說明型的可行性分析:1.經(jīng)濟(jì)可行性:主要進(jìn)行成本的估算及可能取得效益的評估,確定待開發(fā)系統(tǒng)是否值得投資開發(fā)。討論經(jīng)濟(jì)可行性,需要進(jìn)行成本效益分析。其目的,是從經(jīng)濟(jì)角度評價開發(fā)一個新的軟件項(xiàng)目是否可行。它首先估算新軟件系統(tǒng)的開發(fā)成本,然后與可能取得的效益進(jìn)行比較權(quán)衡。有形的效益可以用貨幣的時間價值、投資回收期、純收入等指標(biāo)進(jìn)行度量。無形的效益主要是從性質(zhì)上、心理上進(jìn)行衡量。無形的效益可以被賦予貨幣價值,或用于支持按勸告行事。系統(tǒng)的經(jīng)濟(jì)效益等于因使用新系統(tǒng)而增加的收入加上使用新系統(tǒng)可節(jié)省的運(yùn)行費(fèi)用。度量效益的的方法:貨幣的時間價值,投資回收期,純收入,投資回收率。2。技術(shù)可行性:是根據(jù)開發(fā)系統(tǒng)的功能,性能及實(shí)現(xiàn)系統(tǒng)的各種約束條件等,分析在現(xiàn)有的資源和技術(shù)條件下,技術(shù)風(fēng)險由多大,系統(tǒng)是否能實(shí)現(xiàn)。通常包括風(fēng)險分析,資源分析,技術(shù)分析。3.法律可行性:關(guān)注的是系統(tǒng)開發(fā)過程中可能涉及的合同,侵權(quán),責(zé)任以及各種與法律相抵觸的問題。4.用戶操作可行性:要考察待開發(fā)系統(tǒng)的系統(tǒng)構(gòu)架是否符合使用單位的使用環(huán)境現(xiàn)狀和管理制度,系統(tǒng)的操作方式是否符合用戶的技術(shù)水平和使用習(xí)慣。人工測試:包括桌面檢查、走查、代碼檢查和同行評審技術(shù)。1.桌面檢查文檔的主要內(nèi)容:建立小型數(shù)據(jù)字典,描述程序中數(shù)據(jù)結(jié)構(gòu)、變量和寄存器的用法,建立各種交叉引用表。描述主要的路徑和異常的路徑。當(dāng)檢查程序邏輯時,可通過判定表或布爾代數(shù)方法來確定邏輯覆蓋情況。當(dāng)檢查程序狀態(tài)時,可考慮程序中的一組狀態(tài)和狀態(tài)遷移,來檢查狀態(tài)控制變量。以純粹的功能術(shù)語來描述輸入與輸出。描述全部已知的限制和假定。描述全部的接口和對接口的假定。2.代碼檢查是以小組為單位閱讀代碼,使用一系列規(guī)程和缺陷檢查技術(shù),檢查實(shí)際的產(chǎn)品,包括文檔和程序代碼,發(fā)現(xiàn)存在缺陷和缺陷的過程。3.用于代碼檢查的缺陷列表:數(shù)據(jù)引用缺陷、數(shù)據(jù)聲明缺陷、運(yùn)算缺陷、比較缺陷、控制流程缺陷、接口缺陷、輸入輸出缺陷、其他檢查。三種方式的區(qū)別:要檢查的項(xiàng)目也不同。桌面檢查由程序員自己檢查自己編寫的程序,程序員在程序通過編譯之后,進(jìn)行單元測試設(shè)計之前,對源程序代碼進(jìn)行分析,對照缺陷列表進(jìn)行檢查,對程序推演測試數(shù)據(jù),并補(bǔ)充相關(guān)的文檔。目的是發(fā)現(xiàn)程序中的缺陷。代碼檢查,是以小組為單位閱讀代碼,使用一系列規(guī)程和缺陷檢查技術(shù),檢查實(shí)際的產(chǎn)品,包括文檔和程序代碼,發(fā)現(xiàn)存在缺陷和缺陷的過程。走查與代碼檢查類似,都是以小組為單位進(jìn)行的。走查的過程與代碼檢查的過程大體相同,但是規(guī)程稍微有所不同,采用的缺陷檢查技術(shù)也不一樣。走查的目的是要評價一個產(chǎn)品,通常針對用場景和程序邏輯。目標(biāo)是發(fā)現(xiàn)缺陷、遺漏和矛盾的地方,改進(jìn)產(chǎn)品,考慮可替換的實(shí)現(xiàn)方法。 走查除用于檢查程序代碼以外,還可以用于檢查其他階段的文檔。走查的優(yōu)點(diǎn)在于,一旦發(fā)現(xiàn)錯誤,通常就能在代碼中對其進(jìn)行精確定位,這就降低了調(diào)試(修正缺陷)的成本。另外,這個過程通??梢园l(fā)現(xiàn)成批的錯誤,這樣錯誤就可以一同得到修正。黑盒測試用例設(shè)計方法因果圖:定義:描述事物的結(jié)果與其相關(guān)的原因之間的關(guān)系的圖示。適用范圍:1)如果在測試時必須考慮輸入條件的各種組合情況時,可使用一種適合于描述對于多種條件的組合,相應(yīng)產(chǎn)生多個動作的形式來設(shè)計測試用例,這就需要利用因果圖。2)因果圖方法最終生成的就是判定表。它適合于檢查程序輸入條件的各種組合情況?;静襟E:1)分析軟件規(guī)格說明中,哪些是原因(即輸入條件或輸入條件的等價類),哪些是結(jié)果
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅游企業(yè)工作管理制度
- 幼兒園強(qiáng)化個人管理制度
- 景區(qū)隱蔽餐廳管理制度
- 日化集團(tuán)采購管理制度
- 護(hù)理站儀器設(shè)備管理制度
- 月末季末工作管理制度
- 化工廠安全培訓(xùn)管理制度
- 幼兒園郊游安全管理制度
- 東莞貨物升降機(jī)管理制度
- 旅游公司印章管理制度
- 構(gòu)網(wǎng)型逆變器技術(shù)綜述
- 高層建筑施工進(jìn)度計劃表doc111
- 【語文】陜西省西安市高新一小小學(xué)三年級下冊期末試卷(含答案)
- XX市沙灣區(qū)美女峰景區(qū)建設(shè)項(xiàng)目意見書
- 廣東省深圳市普通高中2022-2023學(xué)年高一下學(xué)期期末數(shù)學(xué)試題
- 腫瘤防治科普叢書:胃腸腫瘤
- 提高門診一醫(yī)一患執(zhí)行率
- 相機(jī)租賃合同書
- 重癥患者用藥安全課件
- 培訓(xùn)MSDS專業(yè)知識課件
- 風(fēng)電場齒輪箱潤滑油使用規(guī)定(2023年727修訂)
評論
0/150
提交評論