軟件測試基礎簡介課件_第1頁
軟件測試基礎簡介課件_第2頁
軟件測試基礎簡介課件_第3頁
軟件測試基礎簡介課件_第4頁
軟件測試基礎簡介課件_第5頁
已閱讀5頁,還剩109頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第1章軟件測試基礎1.1軟件測試背景1.2軟件測試基礎理論1.3軟件開發(fā)過程1.4軟件測試過程1.5軟件質量保證概要1.6軟件測試職業(yè)第1章軟件測試基礎1.1軟件測試背景11.1軟件測試背景1.1.1軟件缺陷與故障案例軟件缺陷的定義軟件缺陷的特征1.1.2軟件缺陷產(chǎn)生的原因1.1軟件測試背景1.1.1軟件缺陷與故障21.1.1軟件缺陷與故障案例1.美國迪斯尼公司的獅子王游戲軟件BUG2.火星登陸事故3.跨世紀”千年蟲”問題4.其他一些例子愛國者導彈防御系統(tǒng)

美國愛國者導彈防御系統(tǒng)首次被用在第一次海灣戰(zhàn)爭對抗伊拉克飛毛腿導彈的防御作戰(zhàn)中,總體上看效果不錯,贏得各界的贊譽.但它還是有幾次失利,沒有成功攔截伊拉克飛毛腿導彈,其中一枚在沙特阿拉伯的多哈爆炸的飛毛腿導彈造成28名美國士兵死亡.分析專家發(fā)現(xiàn),攔截失敗的癥結在于一個軟件缺陷,當愛國者導彈防御系統(tǒng)的時鐘累計運行超過14小時后,系統(tǒng)的跟蹤系統(tǒng)就不準確.在多哈襲擊戰(zhàn)中,愛國者導彈防御系統(tǒng)運行時間已經(jīng)累計超過100多個小時,顯然那時系統(tǒng)的跟蹤系統(tǒng)已經(jīng)很不準確,從而造成這種結果.

1.1.1軟件缺陷與故障案例31.1.1軟件缺陷與故障軟件缺陷的定義(符合下列規(guī)則的叫軟件缺陷):1.軟件未達到產(chǎn)品說明書的功能2.軟件出現(xiàn)了產(chǎn)品說明書指明不會出現(xiàn)的錯誤3.軟件功能超出產(chǎn)品說明書指明范圍4.軟件未達到產(chǎn)品說明書雖未指出但應達到的目標5.軟件測試員認為難以理解、不易使用、運行速度緩慢、或者最終用戶認為不好1.1.1軟件缺陷與故障軟件缺陷的定義(符合下列規(guī)則的叫軟件41.1.1軟件缺陷與故障軟件缺陷的特征1.軟件的特殊性決定了缺陷不易看到,即”看不到”;2.發(fā)現(xiàn)了缺陷,但不易找到問題發(fā)生的原因所在,即”看到但是抓不到”.1.1.1軟件缺陷與故障軟件缺陷的特征51.1.2軟件缺陷產(chǎn)生的原因軟件缺陷產(chǎn)生的原因1.1.2軟件缺陷產(chǎn)生的原因軟件缺陷產(chǎn)生的原因61.2軟件測試基礎理論1.2.1軟件測試的定義1.2.2軟件測試的基本理論1.2.3軟件測試和缺陷修復的代價1.2.4軟件測試技術概要1.2軟件測試基礎理論1.2.1軟件測試的定義71.2.1軟件測試的定義軟件測試的定義:幾個觀點:測試是為了證明程序有錯,而不是證明程序無錯誤;

一個好的測試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;

一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。1.2.1軟件測試的定義軟件測試的定義:81.2.1軟件測試的定義軟件測試的定義:狹義定義:程序測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。廣義定義:將測試延伸到需求評審、設計審查活動中去,這種延伸后的軟件測試,被認為是一種軟件測試的廣義概念。1.2.1軟件測試的定義軟件測試的定義:91.2.1軟件測試的定義軟件測試的定義為:軟件測試是貫穿整個軟件開發(fā)生命周期、對軟件產(chǎn)品(包括階段性產(chǎn)品)進行驗證和確認的活動過程,其目的是盡快盡早地發(fā)現(xiàn)在軟件產(chǎn)品中所存在的各種問題——與用戶需求、預先定義的不一致性。1.2.1軟件測試的定義軟件測試的定義為:101.2.2軟件測試的基本理論1.軟件測試的目的2.軟件測試的原則3.測試在開發(fā)各階段的作用1.2.2軟件測試的基本理論1.軟件測試的目的11軟件測試的目的發(fā)現(xiàn)軟件缺陷發(fā)現(xiàn)軟件缺陷,盡可能早一些發(fā)現(xiàn)軟件缺陷,盡可能早一些,并確保其得以修復軟件測試的目的發(fā)現(xiàn)軟件缺陷12軟件測試的原則應當把“盡早和不斷地測試”作為開發(fā)者的座右銘。程序員應該避免檢查自己的程序,測試工作應該由獨立的專業(yè)的軟件測試機構來完成。設計測試用例時,應該考慮到合法的輸入和不合法的輸入,以及各種邊界條件,特殊情況下要制造極端狀態(tài)和意外狀態(tài),比如網(wǎng)絡異常中斷、電源斷電等情況。一定要注意測試中的錯誤集中發(fā)生現(xiàn)象,這和程序員的編程水平和習慣有很大的關系。軟件測試的原則應當把“盡早和不斷地測試”作為開發(fā)者的座右銘。13對測試錯誤結果一定要有一個確認的過程。一般有A測試出來的錯誤,一定要有一個B來確認,嚴重的錯誤可以召開評審會進行討論和分析。制定嚴格的測試計劃,并把測試時間安排得盡量寬松,不要希望在極短的時間內(nèi)完成一個高水平的測試?;貧w測試的關聯(lián)性一定要引起充分的注意,修改一個錯誤而引起更多錯誤出現(xiàn)的現(xiàn)象并不少見。妥善保存一切測試過程文檔,意義是不言而喻的,測試的重現(xiàn)性往往要靠測試文檔。軟件測試的原則對測試錯誤結果一定要有一個確認的過程。一般有A測試出來的錯誤14測試在開發(fā)各階段的作用項目規(guī)劃階段:負責從單元測試到系統(tǒng)測試的整個測試階段的監(jiān)控。需求分析階段:確定測試需求分析、系統(tǒng)測試計劃的制定、評審后成為管理項目。詳細設計和概要設計階段:確保集成測試計劃和單元測試計劃完成。編碼階段:由開發(fā)人員進行自己負責部分的測試代碼。在項目較大時,由專人進行編碼階段的測試任務。測試階段:依據(jù)測試代碼進行測試,并提交相應的測試狀態(tài)報告和測試結束報告。測試在開發(fā)各階段的作用項目規(guī)劃階段:負責從單元測試到系統(tǒng)測試15軟件測試和缺陷修復的代價軟件測試和缺陷修復的代價161.2.4軟件測試技術概要1.軟件測試策略2.軟件測試技術1.2.4軟件測試技術概要1.軟件測試策略171.2.4軟件測試技術概要1.軟件測試策略軟件測試策略就是測試將按照什么樣的思路和方式進行。通常,軟件測試要經(jīng)過單元測試、集成測試、確認測試、系統(tǒng)測試和驗收測試。1.2.4軟件測試技術概要1.軟件測試策略181.2.4軟件測試技術概要2.軟件測試技術按照軟件測試用例的設計方法而論,軟件測試可分為白盒測試法和黑盒測試法;按照軟件測試是否執(zhí)行程序而論,軟件測試又可以分為靜態(tài)測試和動態(tài)測試;按照軟件設計方法是否采用面向對象設計技術而論,軟件測試又可以分為傳統(tǒng)測試方法和面向對象測試方法;按照網(wǎng)絡環(huán)境下C/S應用結構的特定環(huán)境而論,軟件測試又有其相應的方法。這些都是軟件測試具體的測試方法。1.2.4軟件測試技術概要2.軟件測試技術191.3軟件開發(fā)過程1.3.1軟件產(chǎn)品的組成1.3.2軟件開發(fā)項目組1.3.3軟件開發(fā)模式1.3軟件開發(fā)過程1.3.1軟件產(chǎn)品的組成201.3.1軟件產(chǎn)品的組成1.軟件產(chǎn)品需要多少投入產(chǎn)品審查來自上一版的反饋客戶調查易用性數(shù)據(jù)產(chǎn)品說明書進度測試計劃設計文檔競爭對手情況觀察和感受說明書1.3.1軟件產(chǎn)品的組成1.軟件產(chǎn)品需要多少投入產(chǎn)品審查產(chǎn)品212.客戶需求產(chǎn)品開發(fā)小組必須摸清客戶所需用調查問卷的形式搜集詳細信息反饋軟件的以前版本競爭產(chǎn)品信息(同領域產(chǎn)品)雜志評論(媒體)焦點人群的意見1.3.1軟件產(chǎn)品的組成2.客戶需求1.3.1軟件產(chǎn)品的組成221.3.1軟件產(chǎn)品的組成3.產(chǎn)品說明對客戶要求的研究結果是原始資料,無法描述要做的產(chǎn)品,只是確定哪些要做,哪些不要做,以及客戶要求的功能.產(chǎn)品說明書綜合上述信息和一些沒有提出但必須實現(xiàn)的要求,真正地定義產(chǎn)品是什么、有哪些功能、外觀如何產(chǎn)品說明書是“鎖定”的1.3.1軟件產(chǎn)品的組成3.產(chǎn)品說明231.3.1軟件產(chǎn)品的組成4.設計文檔常用的設計文檔包括如下:構架數(shù)據(jù)流示意圖狀態(tài)變化示意圖流程圖注釋代碼1.3.1軟件產(chǎn)品的組成4.設計文檔241.3.1軟件產(chǎn)品的組成5.測試文檔一般的測試文檔包括如下:測試計劃測試用例設計軟件測試報告歸納、統(tǒng)計和總結1.3.1軟件產(chǎn)品的組成5.測試文檔251.3.1軟件產(chǎn)品的組成6.開發(fā)進度(Gantt圖)系統(tǒng)最終交付日期已經(jīng)確定,軟件開發(fā)部門必須在規(guī)定期限內(nèi)完成系統(tǒng)最終交付日期只確定了大致的年限,最后交付日期由軟件開發(fā)部門確定Gantt圖中橫坐標表示時間,縱坐標表示任務,圖中的水平線段表示對一個任務的進度安排,線段的起點和鐘點對應在橫坐標上的時間分別表示該任務的開始時間和結束時間,線段的長度表示完成該任務所需的時間。1.3.1軟件產(chǎn)品的組成6.開發(fā)進度(Gantt圖)261.3.1軟件產(chǎn)品的組成幫助文件用戶手冊樣本和示例產(chǎn)品支持信息圖表和標志錯誤信息廣告與宣傳材料產(chǎn)品支持信息軟件的安裝軟件說明文件測試錯誤提示信息7.其他組成部分1.3.1軟件產(chǎn)品的組成7.其他組成部分271.3.2軟件開發(fā)項目組項目管理員。由他們?nèi)特撠熣麄€軟件開發(fā)項目,通常負責編寫產(chǎn)品說明書、管理進度、進行重大決策。設計師或系統(tǒng)工程師。他們的角色是擔任軟件小組的技術專家,需要具有豐富的經(jīng)驗,可以勝任設計整個系統(tǒng)構架或軟件構思。程序員。由他們負責設計、編寫并修復軟件中的缺陷。他們與項目管理員和設計師密切合作生產(chǎn)軟件,然后與項目管理和測試員密切合作修復軟件缺陷。軟件測試員。我們負責找出并報告軟件產(chǎn)品的問題,與小組全部成員在開發(fā)過程中密切合作,進行測試并報告發(fā)現(xiàn)的問題。技術作者、用戶助手、用戶培訓專員、手冊編寫人員或者文案專員。由他們來負責編制軟件產(chǎn)品附帶的文件和聯(lián)機文檔。1.3.2軟件開發(fā)項目組項目管理員。由他們?nèi)特撠熣麄€軟件開281.3.3軟件開發(fā)基本過程1.3.3軟件開發(fā)基本過程291.3.3軟件開發(fā)基本過程需求分析:

根據(jù)客戶的要求,清楚了解客戶需求中的產(chǎn)品功能、特性、性能、界面和具體規(guī)格等,然后進行分析,確定軟件產(chǎn)品所能達到的目標。設計:

根據(jù)需求分析的結果,考慮如何在邏輯、程序上去實現(xiàn)所定義的產(chǎn)品功能、特性等,可以分為概要設計和詳細設計,也可分為數(shù)據(jù)結構設計、軟件體系結構設計、應用接口設計、模塊設計、界面設計等。編程:

將設計轉換成計算機可讀的形式。測試:

對設計、編程進行驗證和用戶需求確認的過程維護:維持軟件運行,修改軟件缺陷、增強已有功能、增加新功能、升級等。1.3.3軟件開發(fā)基本過程需求分析:根據(jù)客戶的要求,清楚了301.3.4軟件開發(fā)模式瀑布模型原型模型快速應用開發(fā)(RAD)模型改進的V模型螺旋模型增量模型和迭代模型構件組裝模型并發(fā)模型XP模型1.3.4軟件開發(fā)模式瀑布模型31瀑布模型整個開發(fā)包括六個階段:計劃、需求分析、設計、編碼、測試、運行維護。六個階段自上而下、相互銜接,以固定的次序來進行。特點階段的順序性和依賴性推遲實現(xiàn)的觀點質量保證存在問題不適合需求模糊的系統(tǒng)瀑布模型整個開發(fā)包括六個階段:計劃、需求分析、設計、編碼、測32原型模型先建立一個能反映用戶需求的原型系統(tǒng),使得用戶和開發(fā)者可以對目標系統(tǒng)的概貌進行評價和判斷,然后對原型進行反復的擴充、改進和求精,最終建立符合用戶需求的目標系統(tǒng)特點:快速開發(fā)工具、循環(huán)、低成本種類:漸進型、拋棄型需求的采集和細化快速設計建造原型用戶評價原型加工原型產(chǎn)品樣品開始停止原型模型先建立一個能反映用戶需求的原型系統(tǒng),使得用戶和開發(fā)者33快速應用開發(fā)(RAD)–V模型快速應用開發(fā)(RAD)–V模型34RAD-VModel(改進)RAD-VModel(改進)35customer,user,PM,technicalsupportDesign/AnalysisVerify/testingVerificationofsystemdesignValidationofCustomerRequirementsEngineersTestObjectivesTestPlanningTestDesignTestExecution(Static)TestExecution(Dynamic)OperationalorBusinessNeedsDefineRequirementsDesignSystemBuildSystemRAD-VModel(進一步豐富)customer,user,PM,technica36螺旋模型螺旋模型將瀑布模型和快速原型模型結合起來,并且加入了兩種模型均忽略的風險分析。螺旋模型的每一周期都包括制定計劃、風險分析、實施工程和評審四個階段。

螺旋模型螺旋模型將瀑布模型和快速原型模型結合起來,并且加入了37階段開發(fā)模型階段開發(fā)模型38增量和迭代模型增量開發(fā)迭代開發(fā)增量模型中,在每個階段都生成軟件的一個可發(fā)布版本。這些階段是交錯進行的。在增量模型中,軟件版本是逐步完善的。在原型中,每個階段是發(fā)布一個原型,而在增量模型中,是完成一個正式的版本。

增量和迭代模型增量開發(fā)迭代開發(fā)增量模型中,在每個階段都生成軟391.4軟件測試過程軟件測試過程是一種抽象的模型,用于定義軟件測試的流程和方法。測試過程的質量將直接影響測試結果的準確性和有效性。軟件測試過程遵循軟件工程原理,遵循管理學原理。1.4軟件測試過程軟件測試過程是一種抽象的模型,用于定401.4軟件測試過程1.4.1軟件測試過程模型1.4.2測試過程管理理念1.4.3測試過程管理實踐1.4.4測試過程可持續(xù)改進1.4軟件測試過程1.4.1軟件測試過程模型411.4.1軟件測試過程模型圖1-4軟件測試V模型1.4.1軟件測試過程模型圖1-4軟件測試V模型421.4.1軟件測試過程模型圖1-5軟件測試W模型1.4.1軟件測試過程模型圖1-5軟件測試W模型431.4.1軟件測試過程模型圖1-6軟件測試H模型1.4.1軟件測試過程模型圖1-6軟件測試H模型441.4.2測試過程管理理念盡早測試全面測試全過程測試獨立的、迭代的測試1.4.2測試過程管理理念盡早測試451.4.3測試過程管理實踐策劃測試過程把握需求變更控制測試度量1.4.3測試過程管理實踐策劃測試過程461.4.4測試過程可持續(xù)改進測試技術發(fā)展到今天,已經(jīng)存在諸多可供參考的測試過程管理思想和理念。但信息技術發(fā)展一日千里,新技術不斷涌現(xiàn),這就注定測試過程也需要不斷的改進。1.4.4測試過程可持續(xù)改進測試技術發(fā)展到今天,已經(jīng)存471.5軟件質量保證與軟件測試的關系軟件質量保證(SQA)是建立一套有計劃,有系統(tǒng)的方法,來向管理層保證擬定出的標準、步驟、實踐和方法能夠正確地被所有項目所采用。軟件測試流程包括項目計劃檢查、測試計劃創(chuàng)建、測試設計、執(zhí)行測試、更新測試文檔和測試評估;SQA的活動可總結為協(xié)調度量、風險管理、文檔檢查、促進/協(xié)助流程改進、監(jiān)察測試工作。1.5軟件質量保證與軟件測試的關系軟件質量保證(SQA481.5軟件質量保證與軟件測試的關系軟件質量保證和軟件質量控制之間的界限越來越模糊了軟件測試是SQA中的重要手段,SQA的主要功能在軟件測試中得到體現(xiàn),集中在靜態(tài)測試中,兩者的關系越來越緊密1.5軟件質量保證與軟件測試的關系軟件質量保證和軟件質491.6軟件測試工程師的素質(1)技術能力;這一點不必多說,作為一名測試工程師,不能僅僅從使用者的角度來測試軟件產(chǎn)品,而且還要從技術的角度來設計測試用例,這里所說的技術包括基礎的與專業(yè)的,基礎方面我想應需要學習過以下的課程:軟件技術基礎、C語言、面向對象設計、C++、數(shù)據(jù)庫理論、計算機網(wǎng)絡技術、軟件工程、數(shù)據(jù)結構與算法、離散數(shù)學等;專業(yè)方面應掌握:軟件測試技術概論、測試管理、測試工具、軟件質量管理、CMM、RUP等等。1.6軟件測試工程師的素質(1)技術能力;50(2)具有一定的編程經(jīng)驗;測試工程師有時候需要對源碼進行檢查,有時候也會從程序結構的角度來測試軟件,有時候需要寫一些自動測試的工具軟件,有時候需要寫測試腳本,顯而易見,會寫簡單代碼,能讀懂源碼對測試人員來說是必須的,而且如果有一定的編程經(jīng)驗,可以幫助你對軟件開發(fā)過程有較深入的理解,從編程人員的角度來正確地評價。(2)具有一定的編程經(jīng)驗;51(3)溝通能力;測試人員需要與很多人員進行溝通,項目經(jīng)理、開發(fā)人員、客戶、市場人員等都是測試人員經(jīng)常吵架的對象,而且在面對不同人員,你需要不同的語氣、不同的態(tài)度,與客戶要談得來,處處為客戶著想,客戶就是上帝,與上帝說話要和顏悅色,與開發(fā)人員交往就需要技巧了,測試人員與開發(fā)人員往往是不共戴天的,雙方在心理上經(jīng)常較勁,因此在說話的語氣或講述一個問題的出發(fā)點時特別要注意了。(3)溝通能力;52(4)要有嚴謹、敢于承擔責任、穩(wěn)重的做事風格;思惟嚴密,什么問題都要考慮到,當然除了做事認真仔細,也要有承擔責任的勇氣,在漫長的項目實施過程中,或大或小的錯誤在所難免,我們可以原諒錯誤,但不喜歡狡辯,要敢于承認錯誤。(4)要有嚴謹、敢于承擔責任、穩(wěn)重的做事風格;53(5)具有懷疑與破壞的精神;測試人員不能總是以常規(guī)的思路來測試軟件,要設計一些非常規(guī)的、相反的測試用例來不斷地折磨軟件產(chǎn)品,要破壞性地測試,并且不要停止你的懷疑。(5)具有懷疑與破壞的精神;54(6)善于自我總結、自我督促;應該說軟件測試是一種即繁瑣又枯燥無味的工作,做多了你會覺得似乎一成不變,對自已的能力沒有提高,這時候就需要你作自我督促,并經(jīng)常作一些階段性的總結,新的技術新的方法新的工具層出不窮,要讓自已跟上技術發(fā)展的腳步,善于將新技術新方法新工具應用到測試工作當中。(6)善于自我總結、自我督促;55要成為一名優(yōu)秀的測試工程師,首先對計算機的基本知識要有很好的了解,精通一門或多門的編程語言,具備一定的程序調試技能,掌握測試工具的開發(fā)和使用技術。同時要比較細心,會按照任務的輕重緩急來安排自己的工作,要有很好的溝通能力。此外,還要善于用非常規(guī)的方式思考問題,盡可能多的參加軟件測試項目,在實踐中學習技能,積累經(jīng)驗,不斷分析和總結軟件開發(fā)過程中可能出錯的環(huán)節(jié)。要成為一名優(yōu)秀的測試工程師,首先對計算機的基本知識要有56Q&AQ&A57第1章軟件測試基礎1.1軟件測試背景1.2軟件測試基礎理論1.3軟件開發(fā)過程1.4軟件測試過程1.5軟件質量保證概要1.6軟件測試職業(yè)第1章軟件測試基礎1.1軟件測試背景581.1軟件測試背景1.1.1軟件缺陷與故障案例軟件缺陷的定義軟件缺陷的特征1.1.2軟件缺陷產(chǎn)生的原因1.1軟件測試背景1.1.1軟件缺陷與故障591.1.1軟件缺陷與故障案例1.美國迪斯尼公司的獅子王游戲軟件BUG2.火星登陸事故3.跨世紀”千年蟲”問題4.其他一些例子愛國者導彈防御系統(tǒng)

美國愛國者導彈防御系統(tǒng)首次被用在第一次海灣戰(zhàn)爭對抗伊拉克飛毛腿導彈的防御作戰(zhàn)中,總體上看效果不錯,贏得各界的贊譽.但它還是有幾次失利,沒有成功攔截伊拉克飛毛腿導彈,其中一枚在沙特阿拉伯的多哈爆炸的飛毛腿導彈造成28名美國士兵死亡.分析專家發(fā)現(xiàn),攔截失敗的癥結在于一個軟件缺陷,當愛國者導彈防御系統(tǒng)的時鐘累計運行超過14小時后,系統(tǒng)的跟蹤系統(tǒng)就不準確.在多哈襲擊戰(zhàn)中,愛國者導彈防御系統(tǒng)運行時間已經(jīng)累計超過100多個小時,顯然那時系統(tǒng)的跟蹤系統(tǒng)已經(jīng)很不準確,從而造成這種結果.

1.1.1軟件缺陷與故障案例601.1.1軟件缺陷與故障軟件缺陷的定義(符合下列規(guī)則的叫軟件缺陷):1.軟件未達到產(chǎn)品說明書的功能2.軟件出現(xiàn)了產(chǎn)品說明書指明不會出現(xiàn)的錯誤3.軟件功能超出產(chǎn)品說明書指明范圍4.軟件未達到產(chǎn)品說明書雖未指出但應達到的目標5.軟件測試員認為難以理解、不易使用、運行速度緩慢、或者最終用戶認為不好1.1.1軟件缺陷與故障軟件缺陷的定義(符合下列規(guī)則的叫軟件611.1.1軟件缺陷與故障軟件缺陷的特征1.軟件的特殊性決定了缺陷不易看到,即”看不到”;2.發(fā)現(xiàn)了缺陷,但不易找到問題發(fā)生的原因所在,即”看到但是抓不到”.1.1.1軟件缺陷與故障軟件缺陷的特征621.1.2軟件缺陷產(chǎn)生的原因軟件缺陷產(chǎn)生的原因1.1.2軟件缺陷產(chǎn)生的原因軟件缺陷產(chǎn)生的原因631.2軟件測試基礎理論1.2.1軟件測試的定義1.2.2軟件測試的基本理論1.2.3軟件測試和缺陷修復的代價1.2.4軟件測試技術概要1.2軟件測試基礎理論1.2.1軟件測試的定義641.2.1軟件測試的定義軟件測試的定義:幾個觀點:測試是為了證明程序有錯,而不是證明程序無錯誤;

一個好的測試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;

一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。1.2.1軟件測試的定義軟件測試的定義:651.2.1軟件測試的定義軟件測試的定義:狹義定義:程序測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。廣義定義:將測試延伸到需求評審、設計審查活動中去,這種延伸后的軟件測試,被認為是一種軟件測試的廣義概念。1.2.1軟件測試的定義軟件測試的定義:661.2.1軟件測試的定義軟件測試的定義為:軟件測試是貫穿整個軟件開發(fā)生命周期、對軟件產(chǎn)品(包括階段性產(chǎn)品)進行驗證和確認的活動過程,其目的是盡快盡早地發(fā)現(xiàn)在軟件產(chǎn)品中所存在的各種問題——與用戶需求、預先定義的不一致性。1.2.1軟件測試的定義軟件測試的定義為:671.2.2軟件測試的基本理論1.軟件測試的目的2.軟件測試的原則3.測試在開發(fā)各階段的作用1.2.2軟件測試的基本理論1.軟件測試的目的68軟件測試的目的發(fā)現(xiàn)軟件缺陷發(fā)現(xiàn)軟件缺陷,盡可能早一些發(fā)現(xiàn)軟件缺陷,盡可能早一些,并確保其得以修復軟件測試的目的發(fā)現(xiàn)軟件缺陷69軟件測試的原則應當把“盡早和不斷地測試”作為開發(fā)者的座右銘。程序員應該避免檢查自己的程序,測試工作應該由獨立的專業(yè)的軟件測試機構來完成。設計測試用例時,應該考慮到合法的輸入和不合法的輸入,以及各種邊界條件,特殊情況下要制造極端狀態(tài)和意外狀態(tài),比如網(wǎng)絡異常中斷、電源斷電等情況。一定要注意測試中的錯誤集中發(fā)生現(xiàn)象,這和程序員的編程水平和習慣有很大的關系。軟件測試的原則應當把“盡早和不斷地測試”作為開發(fā)者的座右銘。70對測試錯誤結果一定要有一個確認的過程。一般有A測試出來的錯誤,一定要有一個B來確認,嚴重的錯誤可以召開評審會進行討論和分析。制定嚴格的測試計劃,并把測試時間安排得盡量寬松,不要希望在極短的時間內(nèi)完成一個高水平的測試。回歸測試的關聯(lián)性一定要引起充分的注意,修改一個錯誤而引起更多錯誤出現(xiàn)的現(xiàn)象并不少見。妥善保存一切測試過程文檔,意義是不言而喻的,測試的重現(xiàn)性往往要靠測試文檔。軟件測試的原則對測試錯誤結果一定要有一個確認的過程。一般有A測試出來的錯誤71測試在開發(fā)各階段的作用項目規(guī)劃階段:負責從單元測試到系統(tǒng)測試的整個測試階段的監(jiān)控。需求分析階段:確定測試需求分析、系統(tǒng)測試計劃的制定、評審后成為管理項目。詳細設計和概要設計階段:確保集成測試計劃和單元測試計劃完成。編碼階段:由開發(fā)人員進行自己負責部分的測試代碼。在項目較大時,由專人進行編碼階段的測試任務。測試階段:依據(jù)測試代碼進行測試,并提交相應的測試狀態(tài)報告和測試結束報告。測試在開發(fā)各階段的作用項目規(guī)劃階段:負責從單元測試到系統(tǒng)測試72軟件測試和缺陷修復的代價軟件測試和缺陷修復的代價731.2.4軟件測試技術概要1.軟件測試策略2.軟件測試技術1.2.4軟件測試技術概要1.軟件測試策略741.2.4軟件測試技術概要1.軟件測試策略軟件測試策略就是測試將按照什么樣的思路和方式進行。通常,軟件測試要經(jīng)過單元測試、集成測試、確認測試、系統(tǒng)測試和驗收測試。1.2.4軟件測試技術概要1.軟件測試策略751.2.4軟件測試技術概要2.軟件測試技術按照軟件測試用例的設計方法而論,軟件測試可分為白盒測試法和黑盒測試法;按照軟件測試是否執(zhí)行程序而論,軟件測試又可以分為靜態(tài)測試和動態(tài)測試;按照軟件設計方法是否采用面向對象設計技術而論,軟件測試又可以分為傳統(tǒng)測試方法和面向對象測試方法;按照網(wǎng)絡環(huán)境下C/S應用結構的特定環(huán)境而論,軟件測試又有其相應的方法。這些都是軟件測試具體的測試方法。1.2.4軟件測試技術概要2.軟件測試技術761.3軟件開發(fā)過程1.3.1軟件產(chǎn)品的組成1.3.2軟件開發(fā)項目組1.3.3軟件開發(fā)模式1.3軟件開發(fā)過程1.3.1軟件產(chǎn)品的組成771.3.1軟件產(chǎn)品的組成1.軟件產(chǎn)品需要多少投入產(chǎn)品審查來自上一版的反饋客戶調查易用性數(shù)據(jù)產(chǎn)品說明書進度測試計劃設計文檔競爭對手情況觀察和感受說明書1.3.1軟件產(chǎn)品的組成1.軟件產(chǎn)品需要多少投入產(chǎn)品審查產(chǎn)品782.客戶需求產(chǎn)品開發(fā)小組必須摸清客戶所需用調查問卷的形式搜集詳細信息反饋軟件的以前版本競爭產(chǎn)品信息(同領域產(chǎn)品)雜志評論(媒體)焦點人群的意見1.3.1軟件產(chǎn)品的組成2.客戶需求1.3.1軟件產(chǎn)品的組成791.3.1軟件產(chǎn)品的組成3.產(chǎn)品說明對客戶要求的研究結果是原始資料,無法描述要做的產(chǎn)品,只是確定哪些要做,哪些不要做,以及客戶要求的功能.產(chǎn)品說明書綜合上述信息和一些沒有提出但必須實現(xiàn)的要求,真正地定義產(chǎn)品是什么、有哪些功能、外觀如何產(chǎn)品說明書是“鎖定”的1.3.1軟件產(chǎn)品的組成3.產(chǎn)品說明801.3.1軟件產(chǎn)品的組成4.設計文檔常用的設計文檔包括如下:構架數(shù)據(jù)流示意圖狀態(tài)變化示意圖流程圖注釋代碼1.3.1軟件產(chǎn)品的組成4.設計文檔811.3.1軟件產(chǎn)品的組成5.測試文檔一般的測試文檔包括如下:測試計劃測試用例設計軟件測試報告歸納、統(tǒng)計和總結1.3.1軟件產(chǎn)品的組成5.測試文檔821.3.1軟件產(chǎn)品的組成6.開發(fā)進度(Gantt圖)系統(tǒng)最終交付日期已經(jīng)確定,軟件開發(fā)部門必須在規(guī)定期限內(nèi)完成系統(tǒng)最終交付日期只確定了大致的年限,最后交付日期由軟件開發(fā)部門確定Gantt圖中橫坐標表示時間,縱坐標表示任務,圖中的水平線段表示對一個任務的進度安排,線段的起點和鐘點對應在橫坐標上的時間分別表示該任務的開始時間和結束時間,線段的長度表示完成該任務所需的時間。1.3.1軟件產(chǎn)品的組成6.開發(fā)進度(Gantt圖)831.3.1軟件產(chǎn)品的組成幫助文件用戶手冊樣本和示例產(chǎn)品支持信息圖表和標志錯誤信息廣告與宣傳材料產(chǎn)品支持信息軟件的安裝軟件說明文件測試錯誤提示信息7.其他組成部分1.3.1軟件產(chǎn)品的組成7.其他組成部分841.3.2軟件開發(fā)項目組項目管理員。由他們?nèi)特撠熣麄€軟件開發(fā)項目,通常負責編寫產(chǎn)品說明書、管理進度、進行重大決策。設計師或系統(tǒng)工程師。他們的角色是擔任軟件小組的技術專家,需要具有豐富的經(jīng)驗,可以勝任設計整個系統(tǒng)構架或軟件構思。程序員。由他們負責設計、編寫并修復軟件中的缺陷。他們與項目管理員和設計師密切合作生產(chǎn)軟件,然后與項目管理和測試員密切合作修復軟件缺陷。軟件測試員。我們負責找出并報告軟件產(chǎn)品的問題,與小組全部成員在開發(fā)過程中密切合作,進行測試并報告發(fā)現(xiàn)的問題。技術作者、用戶助手、用戶培訓專員、手冊編寫人員或者文案專員。由他們來負責編制軟件產(chǎn)品附帶的文件和聯(lián)機文檔。1.3.2軟件開發(fā)項目組項目管理員。由他們?nèi)特撠熣麄€軟件開851.3.3軟件開發(fā)基本過程1.3.3軟件開發(fā)基本過程861.3.3軟件開發(fā)基本過程需求分析:

根據(jù)客戶的要求,清楚了解客戶需求中的產(chǎn)品功能、特性、性能、界面和具體規(guī)格等,然后進行分析,確定軟件產(chǎn)品所能達到的目標。設計:

根據(jù)需求分析的結果,考慮如何在邏輯、程序上去實現(xiàn)所定義的產(chǎn)品功能、特性等,可以分為概要設計和詳細設計,也可分為數(shù)據(jù)結構設計、軟件體系結構設計、應用接口設計、模塊設計、界面設計等。編程:

將設計轉換成計算機可讀的形式。測試:

對設計、編程進行驗證和用戶需求確認的過程維護:維持軟件運行,修改軟件缺陷、增強已有功能、增加新功能、升級等。1.3.3軟件開發(fā)基本過程需求分析:根據(jù)客戶的要求,清楚了871.3.4軟件開發(fā)模式瀑布模型原型模型快速應用開發(fā)(RAD)模型改進的V模型螺旋模型增量模型和迭代模型構件組裝模型并發(fā)模型XP模型1.3.4軟件開發(fā)模式瀑布模型88瀑布模型整個開發(fā)包括六個階段:計劃、需求分析、設計、編碼、測試、運行維護。六個階段自上而下、相互銜接,以固定的次序來進行。特點階段的順序性和依賴性推遲實現(xiàn)的觀點質量保證存在問題不適合需求模糊的系統(tǒng)瀑布模型整個開發(fā)包括六個階段:計劃、需求分析、設計、編碼、測89原型模型先建立一個能反映用戶需求的原型系統(tǒng),使得用戶和開發(fā)者可以對目標系統(tǒng)的概貌進行評價和判斷,然后對原型進行反復的擴充、改進和求精,最終建立符合用戶需求的目標系統(tǒng)特點:快速開發(fā)工具、循環(huán)、低成本種類:漸進型、拋棄型需求的采集和細化快速設計建造原型用戶評價原型加工原型產(chǎn)品樣品開始停止原型模型先建立一個能反映用戶需求的原型系統(tǒng),使得用戶和開發(fā)者90快速應用開發(fā)(RAD)–V模型快速應用開發(fā)(RAD)–V模型91RAD-VModel(改進)RAD-VModel(改進)92customer,user,PM,technicalsupportDesign/AnalysisVerify/testingVerificationofsystemdesignValidationofCustomerRequirementsEngineersTestObjectivesTestPlanningTestDesignTestExecution(Static)TestExecution(Dynamic)OperationalorBusinessNeedsDefineRequirementsDesignSystemBuildSystemRAD-VModel(進一步豐富)customer,user,PM,technica93螺旋模型螺旋模型將瀑布模型和快速原型模型結合起來,并且加入了兩種模型均忽略的風險分析。螺旋模型的每一周期都包括制定計劃、風險分析、實施工程和評審四個階段。

螺旋模型螺旋模型將瀑布模型和快速原型模型結合起來,并且加入了94階段開發(fā)模型階段開發(fā)模型95增量和迭代模型增量開發(fā)迭代開發(fā)增量模型中,在每個階段都生成軟件的一個可發(fā)布版本。這些階段是交錯進行的。在增量模型中,軟件版本是逐步完善的。在原型中,每個階段是發(fā)布一個原型,而在增量模型中,是完成一個正式的版本。

增量和迭代模型增量開發(fā)迭代開發(fā)增量模型中,在每個階段都生成軟961.4軟件測試過程軟件測試過程是一種抽象的模型,用于定義軟件測試的流程和方法。測試過程的質量將直接影響測試結果的準確性和有效性。軟件測試過程遵循軟件工程原理,遵循管理學原理。1.4軟件測試過程軟件測試過程是一種抽象的模型,用于定971.4軟件測試過程1.4.1軟件測試過程模型1.4.2測試過程管理理念1.4.3測試過程管理實踐1.4.4測試過程可持續(xù)改進1.4軟件測試過程1.4.1軟件測試過程模型981.4.1軟件測試過程模型圖1-4軟件測試V模型1.4.1軟件測試過程模型圖1-4軟件測試V模型991.4.1軟件測試過程模型圖1-5軟件測試W模型1.4.1軟件測試過程模型圖1-5軟件測試W模型1001.4.1軟件測試過程模型圖1-6軟件測試H模型1.4.1軟件測試過程模型圖1-6軟件測試H模型1011.4.2測試過程管理理念盡早測試全面測試全過程測試獨立的、迭代的測試1.4.2測試過程管理理念盡早測試1021.4.3測試過程管理實踐策劃測試過程把握需求變更控制測試度量1.4.3測試過程管理實踐策劃測試過程1031.4.4測試過程可持續(xù)改進測試技術發(fā)展到今天,已經(jīng)存在諸多可供參考的測試過程管理思想和理念。但信息技術發(fā)展一日千里,新技術不斷涌現(xiàn),這就注定測試過程也需要不斷的改進。1.4.4測試過程可持續(xù)改進測試技術發(fā)展到今天,已經(jīng)存1041.5軟件質量保證與軟件測試的關系軟件質量保證(SQA)是建立一套有計劃,有系統(tǒng)的方法,來向管理層保證擬定出的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論