嵌入式軟件測試課件1_第1頁
嵌入式軟件測試課件1_第2頁
嵌入式軟件測試課件1_第3頁
嵌入式軟件測試課件1_第4頁
嵌入式軟件測試課件1_第5頁
已閱讀5頁,還剩67頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

嵌入式軟件測試

第一部分軟件測試技術軟件測試技術—提要軟件測試基礎軟件測試的典型問題及對策嵌入式軟件測試級別及內容軟件測試過程及管理概述—測試的定義由人工或自動方法來執行或評價系統或系統部件的過程,以驗證它是否滿足規定的需求;或識別出期望的結果和實際結果之間有無差別。概述—測試的目的驗證軟件是否滿足軟件開發合同或任務書、系統/子系統設計文檔、軟件需求規格說明和軟件設計說明所規定的軟件質量特性要求;通過測試,發現軟件錯誤;為軟件產品質量的評價提供依據。概述—測試的地位有效的測試對于開發可靠、安全和成功的軟件是必須的測試不是“銀彈(silverbullet)”,它具有有效范圍,它不是其他軟件工程方法的替代品概述—測試的作用1證實給定的軟件滿足其規格說明測試公理不可能對程序進行完全的測試局限無法確信規格說明100%正確無法確信可以達到100%足夠的軟件測試無法保證測試環境100%滿足測試要求概述—測試的作用2在給定的時限內盡可能多的發現缺陷和隱患測試公理測試無法說明軟件沒有缺陷局限軟件質量體現在多個方面,但首先要面對并必須解決的方面是軟件缺陷,在資源制約和技術限制的條件下,無法保證找到軟件中所有的缺陷概述—測試的作用3為軟件產品質量的評價提供依據測試公理發現的問題越多,那里潛在的問題也更多局限不可能通過測試獲得100%的質量信心無法確信測試系統(或環境)的正確性無法確信測試人員完全理解了軟件產品沒有足夠的資源徹底完成軟件測試概述—測試的發展歷程時間區間狀況-1956面向調試的階段1957-1978面向證實的階段1979-1982面向缺陷的階段1983-1987面向評價的階段1988-面向預防的階段概述—測試對象的特點軟件被廣泛應用,承擔許多關鍵與核心任務軟件是被開發或設計的,包括維護階段軟件是邏輯產品,可視性低軟件是復雜的,輸入空間無限大,可執行路徑特別多大多數軟件是定制的,可選標準構件少概述—軟件的缺陷屬性無法提供無缺陷的軟件,缺陷已成為軟件的固有屬性和特征各種研究報告表明,每寫1000行代碼會產生30到85個缺陷大多數缺陷可通過測試捕獲在大量的已完成測試的軟件中,每1000行代碼仍存在0.5~3缺陷軟件缺陷有可能會給系統質量尤其是可靠性帶來重大影響概述—缺陷與失效失誤(mistake)在軟件開發過程中軟件開發人員產生隱錯/缺陷(bug/defect)在軟件產品中軟件中存在設計者的錯誤行為(失誤)→導致軟件中留有錯誤的設計(缺陷)→導致軟件錯誤地執行(故障)→導致軟件的錯誤行為(失效)。故障(fault)在軟件運行中缺陷被激活失效(failure)在運行階段用戶的經歷概述—缺陷過濾器容錯(Defecttolerance)編譯失誤避錯(Defectavoidance)排錯(defectremoval)審查使用缺陷逃逸測試概述—缺陷解決策略避錯(Defectavoidance)第一次就做正確排錯(Defectremoval)早發現,早實施容錯(Defecttolerance)有缺陷,也能正確的完成任務恢復選用最佳恢復策略,失效后繼續工作概述—如何獲得高質量軟件軟件質量軟件工程方法正式技術評審度量與控制標準與過程測試SCM與SQA概述—驗證與確認驗證與確認是廣泛認可的質量保證方法和手段軟件測試是軟件驗證與確認的重要組成部分驗證是指對某項規定活動進行檢查的過程,以確保該活動實現了規定功能確認是指審查已建立的軟件產品是否符合客戶需要的過程驗證(Verification):

Arewebuildingtheproductright?確認(Validation):

Arewebuildingtherightproduct?概述—測試與調試測試不是調試,調試也不是測試,實際工作中人們常將測試與調試混為一談主要區別:測試是一種檢驗,調試是推理過程測試從已知條件開始,使用預先定義的規程并且有可預知的結果;調試的開始條件可能是不可知的,結果不可預見測試經常由非程序設計人員完成,調試必須由程序設計者完成概述—嵌入式軟件執行數據采集、控制等任務,邏輯復雜運行在資源受限系統上系統構成多樣化部署后不受人的控制修補困難多為實時系統多為關鍵系統既可能運行在芯片上,也可能運行與大型工業控制系統概述—嵌入式軟件測試對測試環境的要求高對專業測試的依賴程度高測試輸入和結果獲得需要專門的手段測試約束大軟件測試典型問題及對策軟件測試時機軟件測試層次軟件測試環境軟件測試管理軟件測試風險軟件測試復雜性軟件測試追溯性軟件測試終止準則問題及對策—測試時機測試的時機問題代碼出來了,甚至系統實現了,才開始測試文檔開發滯后,更新不及時,追蹤性差系統狀態不穩定,測試的效果無法體現主要對策在軟件開發過程中盡早開展軟件測試做好軟件設計評審和分析做好配置管理工作問題及對策—測試層次典型問題調試代替低層次測試,ATP代替高層次測試不測試無效和不期望的輸入不希望外部介入完全依賴外部測試主要對策開展第三方測試對開發過程中的測試提出明確要求問題及對策—測試環境典型問題過分關注測試執行,而忽視測試設計期望自動工具替代測試工程師期望靠測試自動化節約測試成本期望靠測試自動化改善測試質量相信錄制/回放工具是萬能的主要對策先建立流程,再實現自動化與實際需求相結合問題及對策—測試管理典型問題被測對象來自非受控渠道測試沒有文檔化的計劃、方案支持獨立測試組與開發組之間關系不協調主要對策建立測試過程,進行測試項目策劃、跟蹤與控制,開展測試的質量保證和配置管理將需求工程延伸到測試問題及對策—測試風險典型問題不使用風險分析技術,測試不關注風險開發時希望成關鍵,測試時希望成一般主要對策通過風險分析確定測試范圍、目標和策略將測試作為一種高風險活動進行管理問題及對策—測試復雜性典型問題認為測試工作很簡單,測試成為新程序員的過渡性工作/不合格程序員的歸宿認為軟件測試太復雜,投入很大,做了但是沒有效果進行無知的測試主要對策培訓,指派有經驗、富有創造性的人員承擔測試采用適當的技術、有效的方法進行測試設計完善動態仿真環境,掌握測試工具問題及對策—測試追溯性典型問題軟件需求規格說明太簡單、過時即興測試不創建和維護測試文檔主要對策測試應源于用戶需求維持完整的證據鏈進行可重復和可再現的測試問題及對策—測試終止準則典型問題測試組應對保證質量負責用發現缺陷數量評價測試業績測試到資源耗盡就結束主要對策明確定義測試結束的標準正確理解測試的作用和局限性提高和改善軟件設計質量級別—測試策略SRDCUIVST系統工程單元測試編碼軟件需求分析設計集成測試配置項測試系統測試級別—為什么要分級別?與軟件開發過程相適應為了說明軟件系統內單元/部件的互操作性需要進行三種基本的測試單獨單元/部件的測試測試單元/部件間互操作測試單元/部件結合成的軟件系統級別—單元測試的特點對象-模塊依據-軟件設計規格說明實現-串行或并行測試方法-白盒為主被測模塊測試用例結果測試工程師級別—單元測試內容靜態測試代碼走查代碼檢查靜態分析動態測試黑盒測試白盒測試基于數據結構的測試級別—單元動態測試焦點被測單元單元接口局部數據結構邊界條件獨立執行路徑錯誤處理的路徑測試用例級別—單元動態測試環境被測模塊驅動模塊結果測試用例模塊接口局部數據結構邊界條件獨立執行路徑錯誤處理的路徑樁1樁2樁n級別—單元測試工作產品單元測試計劃單元測試說明單元測試報告測試記錄問題報告與問題處理報告質量記錄級別—集成測試集成測試的對象是軟件部件軟件部件由軟件單元組成集成測試前,部件中的所有單元必須已經完成了單元測試級別—集成測試準備要求的文檔可提交軟件概要設計說明軟件接口設計說明被集成的軟件單元已通過單元測試被測試構件已納入配置管理中具備了滿足要求的集成測試環境和測試工具級別—集成測試內容單元間的接口測試全局數據結構測試軟件功能模塊的功能測試性能測試邊界和人為條件下的性能級別—集成測試焦點重點尋找與下述內容相關的缺陷軟件系統結構的設計和構造在子系統層次上被集成的功能或操作組件/模塊之間的接口和相互作用資源集成環境集成級別—集成測試通過準則單元間無錯誤連接滿足各項功能、性能要求對錯誤有正確的處理對測試中的異常有合理解釋接口正確級別—部件測試工作產品部件測試計劃部件測試說明部件測試報告測試記錄問題報告與問題處理報告質量記錄級別—配置項測試概念配置項測試的對象是計算機軟件配置項(CSCI)計算機軟件配置項,是能夠被獨立地進行配置管理的,并能夠滿足最終用戶功能的一組軟件級別—配置項測試的目的發現軟件配置項內存在的缺陷和問題驗證軟件配置項實現了所需的能力驗證軟件是否按軟件需求規格說明書中確定的軟件功能、性能、質量屬性、約束及限制等技術要求進行工作檢驗軟件配置項與相關的軟件/硬件配置項接口的正確性和互操作性級別—配置項測試依據測試要求任務書、合同、測試規范等對軟件測試有約束力的文件,規定了軟件測試的類型、程度、管理,等等被測對象的規格說明軟件需求規格說明書,等級別—配置項測試焦點功能(針對業務/任務需求,逐項)接口(關注通信需求與手段)配置項級的性能(關注容量、余量、瓶頸)質量屬性(關注質量設計的實現)設計約束(關注資源的利用率和余量)級別—配置項測試主要內容功能測試性能測試接口測試容錯測試安全性測試邊界測試安裝性測試文檔審查用戶操作特定條件下的行為與硬件配置項的集成與系統中其它軟件配置項的集成與協作級別—配置項測試環境要求配置項測試對測試環境的關注更關注環境的可控性,通常會在仿真或模擬環境下進行,要求高度的可控性和盡量的真實性對侵入式測試方法的支持級別—配置項測試工作產品配置項測試計劃配置項測試說明配置項測試報告測試記錄問題報告與問題處理報告質量記錄級別—系統測試概念軟件系統作為一個整體進行測試,檢驗系統各部分之間的協調情況,以證實在目標環境下軟件完成了全部系統功能和性能。系統測試是一系列不同測試的組合,這些測試目的不同,但都是為了整個系統成分能正常地集成到一起并完成分配的功能。級別—系統測試的目的發現軟件系統范圍內存在的缺陷和問題驗證軟件系統實現了所需的能力驗證軟件系統各部分之間的協調情況,以證實在目標環境下軟件系統完成了軟件任務書或系統/子系統設計文檔規定的全部軟件需求檢驗軟件系統能否與其他指定的系統成功地進行協同操作級別—系統測試的依據測試要求任務書、合同、測試規范等對軟件測試有約束力的文件,規定了軟件測試的類型、程度、管理,等等被測對象的規格說明軟件研制任務書系統/子系統需求規格說明系統/子系統設計文檔,等級別—系統測試焦點功能(針對高級系統需求,強調完整的業務/任務場景)接口(關注與其他系統的協同操作)性能(關注總體性能和資源競爭)質量屬性(關注因協同操作帶來的質量屬性問題)級別—系統測試主要內容功能測試性能測試接口測試容錯測試安全性測試邊界測試容量測試強度測試安裝性測試文檔審查用戶操作特定條件下的行為軟件與硬件的集成與協作軟件與外部軟件和系統的集成系統可用性測試級別—系統測試環境要求系統測試對測試環境的關注更關注環境的真實性對于嵌入式軟件,軟件運行環境較容易保證,但是通用測試工具環境缺乏對于非嵌入式系統,尤其是大型系統,軟件運行環境較難保證,而通用測試工具環境豐富級別—系統測試工作產品系統測試計劃系統測試說明系統測試報告測試記錄問題報告與問題處理報告質量記錄級別—回歸測試原因超過60%的對軟件系統的修改會無意中引入新的錯誤每修改6行代碼就會引入一個新的錯誤目標檢驗修改是否達到了預期的目的檢驗是否損害了原有的正常功能,從而造成系統的回歸級別—回歸測試級別—回歸測試流程識別變更,進行變更影響分析對原測試集進行維護,生成新的測試集從測試集中選擇回歸測試包用選擇的測試包進行回歸測試對回歸測試結果進行分析并報告級別—回歸測試用例集再測試全部用例基于風險選擇測試基于操作剖面選擇測試再測試修改的部分防火墻內再測試級別—更改的影響性分析通過跟蹤矩陣,確定缺陷更改關聯的范圍通過修改屬性(糾錯、適用、需求),確定受修改影響的范圍通過被修改工作產品內部關系,保證修改的內部一致性、正確性管理—典型測試過程測試要求測試策劃測試設計和實現測試執行測試總結需求管理

策劃管理跟蹤與控制質量保證

配置管理軟件測評項目管理

軟件測試過程管理—關于測試過程的說明過程和階段的設置與測試的組織形式有關獨立性測試組織的文化和成熟度在開發組織開展內部測試時軟件測評項目管理應與軟件開發管理活動融合,如需求管理、項目策劃、項目監督與控制、質量保證、配置管理管理—測試策劃確定測試策略確定測試項確定測試方法確定測試工作產品確定資源要求確定人員要求工作量估算風險分析確定結束條件確定評價準則和方法測試進度規劃確定度量及采集要求管理—測試設計和實現分解測試項根據測試項特征,

溫馨提示

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

評論

0/150

提交評論