




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
軟件測試方法和技術
-Ch.2軟件測試的基本概念和方法Zhu.Kerry@Zhu.Kerry@朱少民KerryZhu軟件測試方法和技術
-Ch.2軟件測試的基本概念和方法1第一章回顧Zhu.Kerry@軟件特點軟件開發的模型原型模型改進的V模型增量模型和迭代模型XP模型…測試的重要性第一章回顧Zhu.Kerry@軟件特點2第二章軟件測試的基本概念和方法Zhu.Kerry@2.1軟件質量就是客戶的滿意度2.2軟件缺陷(Bug)是什么2.3軟件測試的基本方法2.4軟件測試的分類和階段2.5軟件測試的工作范疇第二章軟件測試的基本概念和方法Zhu.Kerry@gmai3軟件質量的內涵軟件質量是客戶滿意度的體現客戶+
質+量?Zhu.Kerry@軟件質量的內涵軟件質量是客戶滿意度的體現客戶+質+4質量(Quality)質量是系統、部件或過程滿足明確需求客戶或用戶需要或期望的程度不同IEEE<<StandardGlossaryofSoftwareEngineeringTerminology>>軟件質量:軟件產品具有滿足規定的或隱含要求能力要求有關的特征與特征總和(ISO8492)軟件質量:軟件產品滿足 使用要求的程度
Zhu.Kerry@質量(Quality)質量是系統、部件或過程滿足Zhu.5軟件質量范圍-3AAccountability
(可說明性)–用戶可以基于產品或服務的描述和定義進行使用.
(例如:
市場需求說明書,功能設計說明書.)Availability(有效性)–產品或服務對于99.999%客戶總是有效的(例如:性能測試和恢復測試)Accessibility(易用性)–對于用戶,產品或服務非常容易使用并且一定是非常有用的功能.(例如:確認測試和用戶可用性測試)
Zhu.Kerry@軟件質量范圍-3AAccountability(可說明性6高質量的軟件應該是相對的無產品缺陷(BugFree)或只有極少量的缺陷,它能夠準時遞交給用戶并且所用的費用都是在預算內的并且滿足客戶需求,是可維護的。但是,有關質量的好壞最終評價依賴于用戶的反饋。“客戶”廣義定義
:內在的定義:下一個環節/工序的接收者,更廣的服務的對象,周圍有任何聯系或影響的團隊、人。 軟件的設計者,程序的檢測者,項目管理者,品質管理人員…-廣泛的定義:最終用戶,客戶管理,Zhu.Kerry@高質量的軟件應該是相對的無產品缺陷(BugFree)或只有7軟件質量不同的視點
先驗論觀點:質量是產品一種可以認識但不可定義的性質
用戶觀點:質量是產品滿足使用目的之程度;
制造者的觀點:質量是產品性能和規格要求的符合度
產品觀點:質量是聯結產品固有性能的紐帶;
基于價值觀點:質量依賴于顧客愿意付給產品報酬的數量Zhu.Kerry@軟件質量不同的視點先驗論觀點:質量是產品一種可以認識但不可8高質量軟件標準體系產品質量是人們實踐產物的屬性和行為,是可以認識,可以科學地描述的。并且可以通過一些方法和人類活動,來改進質量.質量模型:McCall模型,Boehm模型,ISO9126模型過程質量:
軟件能力成熟度模型
CMM(CapabilityMaturityModel).
國際標準過程模型
ISO9000
軟件過程改進和能力決斷
SPICE(SoftwareProcessImprovementandCapabilitydEtermination)
在商業過程中有關的質量內容:
培訓、成品制作、宣傳、發布日起、客戶、風險、成本、業務等
Zhu.Kerry@高質量軟件標準體系產品質量Zhu.Kerry@gmail.c9產品質量的標準-功能性
Functionality-可用性
Usability(簡單安裝;輕松使用;友好界面)-可靠性
Reliability(用戶使用的根本)-性能
Performance-容量
Capacity-可測量性
Scalability-可維護性
Servicemanageability-兼容性
Compatibility-可擴展性
ExtensibilityZhu.Kerry@產品質量的標準-功能性FunctionalityZhu.10軟件質量特征(ISO9126)
功能:與一組功能及其指定性質有關的一組屬性,這里的功能是滿足明確或隱含的需求的那些功能。
可靠:在規定的一段時間和條件下,與軟件維持其性能水平的能力有關的一組屬性。
易用:由一組規定或潛在的用戶為使用軟件所需作的努力和所作的評價有關的一組屬性。
效率:與在規定條件下軟件的性能水平與所使用資源量之間關系有關的一組屬性。
可維護:與進行指定的修改所需的努力有關的一組屬性。
可移植:與軟件從一個環境轉移到另一個環境的能力有關的一組屬性。
其中每一個質量特征都分別與若干子特征相對應。Zhu.Kerry@軟件質量特征(ISO9126)功能:與一組功能及其指定11Boehm軟件質量模型闡述性互用性數據公開性正確性可靠性效率完整性可用性可維護性可測試性靈活性可移植性重復性連貫性容錯性執行效率/儲存效率存取控制/存取檢查可訓練溝通良好簡單性易操作的工具自我操作性擴展性一般性模塊性軟件系統獨立性機器獨立性通訊公開性正確性可操作性Zhu.Kerry@Boehm軟件質量模型闡述性互用性數據公開性正確性可靠性效率12McCall模型設備獨立性易更改可靠性效率總體效用易用性可維護性可測試性人體工程學可移植性易懂性精確性完整性完全性可說明性
設備功效易操作性溝通良好自我操作性架構性簡明性易懂性可維護性模塊獨立性連續性Zhu.Kerry@McCall模型設備獨立性易更改可靠性效率總體效用易用13軟件過程質量軟件能力成熟度模型CMM(CapabilityMaturityModel).國際標準過程模型ISO9000軟件過程改進和能力決斷SPICE(SoftwareProcessImprovementandCapabilitydEtermination)Zhu.Kerry@軟件過程質量Zhu.Kerry@14質量保證的策略主要分三個階段:
以檢測為重:產品制成之后進行檢測,只能判斷產品質量,不能提高產品質量。
以過程管理為重:把質量的保證工作重點放在過程管理上,對制造過程中的每一道工序都要進行質量控制。
以新產品開發為重:在新產品的開發設計階段,采取強有力的措施來消滅由于設計原因而產生的質量隱患。Zhu.Kerry@質量保證的策略主要分三個階段:Zhu.Kerry@gmail15全面質量管理
(TQM)TQM=TotalQualityManagement全面質量管理
TQM是為了能夠在最經濟的水平上,并考慮到充分滿足用戶要求的條件下進行市場研究、設計、生產和服務,把企業內各部門研制質量、維持質量和提高質量的活動構成為一體的一種有效體系
TQM內容:全員參與質量管理全過程質量管理。
TQM的4個關鍵要素:關注客戶過程改進質量的人性化因素度量(即模型的測量和分析)Zhu.Kerry@全面質量管理(TQM)TQM=TotalQualit16質量管理發展五個階段1900手工操作者專職檢驗員1920過程統計技術1931全面質量管理1960以顧客為中心階段時間2000Zhu.Kerry@質量管理發展五個階段1900手工操作者專職檢驗員1920過程17什么是Bug?2.2軟件缺陷(Bug)是什么Anyproblem/disfigurement/limitationinproductdesign&development
Featureorfunctioncan’tworkUnreasonabledesignPartlyrealizationinfunctionDataerrorRunerrorLimitationinfeaturesDifferencebetweenactualresultsandexpectedresultsUnfriendlyUI,LowperformanceOthers任何程序、系統中的問題,和產品設計書的不一致性,不能滿足用戶的需求
Zhu.Kerry@什么是Bug?2.2軟件缺陷(Bug)是什么Anyp18問題出在哪里?項目沒有被很好地理解;計劃不周,最終導致進度拖延。沒有充分的文檔資料。人與人的交流比寫程序困難得多。軟件可靠性缺少度量的標準,質量無法保證。軟件難以維護、不易升級。Zhu.Kerry@問題出在哪里?項目沒有被很好地理解;計劃不周,最終導致進度拖19解決問題的想法Bettermanagement管理Differentteamorganizations組織Betterlanguages&tools語言和工具Uniformcodingconventions編程慣例必須意識到:“軟件”≠編程,它有自己的生命周期(lifecycle)。大型軟件系統的開發與其它工程項目如建造橋梁、制造飛機、輪船等的開發是同理的。Zhu.Kerry@解決問題的想法Bettermanagement管理Zh20實踐證明:對軟件進行充分的測試 才能夠有效的保證軟件質量軟件測試對軟件產品進行充分測試,找出其中的缺陷(Bug),并進行修復(Fix)。Zhu.Kerry@實踐證明:對軟件進行充分的測試軟件測試對軟件產品進行充分測試21缺點(defect)偏差(variance)謬誤(fault)失敗(failure)問題(problem)矛盾(inconsistency)錯誤(error)毛病(incident)異常(anomy)缺陷-BugZhu.Kerry@缺點(defect)偏差(v22軟件缺陷IEEE(1983)729軟件缺陷一個標準的定義:從產品內部看,軟件缺陷是軟件產品開發或維護過程中所存在的錯誤、毛病等各種問題;從外部看,軟件缺陷是系統所需要實現的某種功能的失效或違背。
軟件缺陷的主要類型/現象:功能、特性沒有實現或部分實現設計不合理,存在缺陷實際結果和預期結果不一致運行出錯,包括運行中斷、系統崩潰、界面混亂數據結果不正確、精度不夠用戶不能接受的其他問題,如存取時間過長、界面不美觀Zhu.Kerry@軟件缺陷IEEE(1983)729軟件缺陷一個標準的定23Zhu.Kerry@軟件缺陷的產生
技術問題算法錯誤,語法錯誤,計算和精度問題,接口參數傳遞不匹配團隊工作誤解、溝通不充分軟件本身文檔錯誤、用戶使用場合(userscenario),時間上不協調、或不一致性所帶來的問題系統的自我恢復或數據的異地備份、災難性恢復等問題Zhu.Kerry@軟件缺陷的產生技術問24軟件缺陷構成Zhu.Kerry@軟件缺陷構成Zhu.Kerry@25軟件缺陷在不同階段的分布Zhu.Kerry@在真正的程序測試之前,通過審查、評審會可以發現更多的缺陷。規格說明書的缺陷會在需求分析審查、設計、編碼、測試等過程中會逐步發現,而不能在需求分析一個階段發現軟件缺陷在不同階段的分布Zhu.Kerry@gmail.c26缺陷成本Zhu.Kerry@缺陷成本Zhu.Kerry@272.3軟件測試的基本方法Zhu.Kerry@根據G.J.Myers觀點--軟件測試的目:
軟件測試是為了發現錯誤而執行程序的過程一個好的測試能夠在第一時間發現程序中存在的錯誤一個好的測試是發現了至今尚未發現的錯誤的測試。軟件測試是質量控制的重要手段,保證客戶拿到或用戶使用高質量的軟件產品2.3軟件測試的基本方法Zhu.Kerry@gmail.co28軟件測試誤區誤區一:如果發布出去的軟件有質量問題,都是軟件測試人員的錯誤區二:軟件測試技術要求不高,至少比編程容易多了誤區三:有時間就多測試一些,來不及就少測試一些誤區四:軟件測試是測試人員的事,與開發人員無關誤區五:根據軟件開發瀑布模型,軟件測試是開發后期的一個階段軟件測試誤區誤區一:如果發布出去的軟件有質量問題,都是軟件29Zhu.Kerry@軟件測試的原則所有測試的標準都是建立在用戶需求之上。軟件測試必須基于“質量第一”的思想去開展各項工作,當時間和質量沖突時,時間要服從質量。事先定義好產品的質量標準,只有有了質量標準,才能根據測試的結果,對產品的質量進行分析和評估。軟件項目一啟動,軟件測試也就是開始,而不是等程序寫完,才開始進行測試。窮舉測試是不可能的。甚至一個大小適度的程序,其路徑排列的數量也非常大,因此,在測試中不可能運行路徑的每一種組合。Zhu.Kerry@軟件測試的原則所有測試30Zhu.Kerry@軟件測試的原則(2)第三方進行測試會更客觀,更有效。軟件測試計劃是做好軟件測試工作的前提。測試用例是設計出來的,不是寫出來的,所以要根據測試的目的,采用相應的方法去設計測試用例,從而提高測試的效率,更多地發現錯誤,提高程序的可靠性。對發現錯誤較多的程序段,應進行更深入的測試。一般來說,一段程序中已發現的錯誤數越多,其中存在的錯誤概率也就越大。重視文檔,妥善保存一切測試過程文檔(測試計劃、測試用例、測試報告等)Zhu.Kerry@軟件測試的原則(2)31Zhu.Kerry@軟件測試的原則(3)應當把“盡早和不斷地測試”作為測試人員的座右銘回歸測試的關聯性一定要引起充分的注意,修改一個錯誤而引起更多錯誤出現的現象并不少見測試應從“小規模”開始,逐步轉向“大規模”。不可將測試用例置之度外,排除隨意性。必須徹底檢查每一個測試結果。一定要注意測試中的錯誤集中發生現象,這和程序員的編程水平和習慣有很大的關系對測試錯誤結果一定要有一個確認的過程。Zhu.Kerry@軟件測試的原則(3)32測試方法黑盒子和白盒子靜態的和動態的文檔、代碼審查數據輸入邊界條件法等價劃分、數據流程圖狀態變換圖邏輯路徑法測試方法黑盒子和白盒子33黑盒子和白盒子功能測試數據驅動測試結構測試邏輯驅動測試
客戶需求事件驅動輸入輸出黑盒子和白盒子功能測試結構測試客戶需求事件驅動輸入輸出34靜態的和動態的主持人作者記錄員列席人員內審員技術專業人員用戶代表不正式正式互審
走讀審查會議運行程序靜態的和動態的主持人作者記錄員列席人員內審員技術專業人員用戶35自動測試和手工測試手工模擬用戶操作自動測試和手工測試手工模擬用戶操作36驗證和確認(V&V)
Verification:Arewebuildingtheproductright?是否正確地構造了軟件?即是否正確地做事,驗證開發過程是否遵守已定義好的內容。驗證產品滿足規格設計說明書的一致性Validation:Arewebuildingtherightproduct?
是否構造了正是用戶所需要的軟件?即是否正在做正確的事。驗證產品所實現的功能是否滿足用戶的需求驗證和確認(V&V)Verification:Are372.4軟件測試的分類和階段開發生命周期...維護需求定義應用定義應用開發修訂建立建立測試生命周期...執行.執行執行.測試計劃缺陷跟蹤測試開發測試設計評估2.4軟件測試的分類和階段開發生命周期...維護需求定38軟件測試分類方法目標/特性單元測試系統測試驗收測試性能測試強壯性測試功能測試白盒測試黑盒測試測試階段或層次適用性測試可靠性測試集成測試安全性測試軟件測試分類方法目標/特性單元測試系統測試驗收測試性能測試強39軟件測試階段階段輸入輸出需求分析需求定義,市場分析文檔,相關技術文檔市場需求分析會議記要,功能設計,技術設計設計審查市場需求文檔,技術設計文檔
測試計劃,測試用例功能驗證代碼完成文件包,功能詳細設計說明書最終技術文檔完整測試用例,完備的測試計劃,缺陷報告,功能驗證測試報告系統測試代碼修改后的文件包完整測試用例,完備的測試計劃
缺陷報告缺陷狀態報告項目階段報告確認測試代碼凍結文件包確認測試用例缺陷狀態報告缺陷報告審查版本審查版本發布代碼發布文件包測試計劃檢查清單當前版本已知問題的清單版本發布報告軟件測試階段階段輸入輸出需求分析需求定義,市40測試階段(SDLC)測試階段(SDLC)41單元測試單元測試的對象是程序系統中的最小單元---模塊或組件上,在編碼階段進行,針對每個模塊進行測試,主要通過白盒測試方法,從程序的內部結構出發設計測試用例,檢查程序模塊或組件的已實現的功能與定義的功能是否一致、以及編碼中是否存在錯誤。多個模塊可以平行地、對立地測試,通常要編寫驅動模塊和樁模塊單元測試一般由編程人員和測試人員共同完成單元測試單元測試的對象是程序系統中的最小單元---模塊或組件42集成測試集成測試,也稱組裝測試、聯合測試、子系統測試,在單元測試的基礎上,將模塊按照設計要求組裝起來同時進行測試,主要目標是發現與接口有關的模塊之間問題兩種集成方式:一次性集成方式和增殖式集成方式。集成測試集成測試,也稱組裝測試、聯合測試、子系統測試,在單元43功能測試功能測試一般須在完成集成測試后進行,而且是針對應用系統進行測試。功能測試是基于產品功能說明書,是在已知產品所應具有的功能,從用戶角度來進行功能驗證,以確認每個功能是否都能正常使用功能測試功能測試一般須在完成集成測試后進行,而且是針對應用系44系統測試系統測試是將軟件放在整個計算機環境下,包括軟硬件平臺、某些支持軟件、數據和人員等,在實際運行環境下進行一系列的測試,包括恢復測試、安全測試、強度測試和性能測試等系統測試系統測試是將軟件放在整個計算機環境下,包括軟硬件平臺45驗收測試&安裝測試驗收測試的目的是向未來的用戶表明系統能夠像預定要求那樣工作,驗證軟件的功能和性能如同用戶所合理期待的那樣安裝測試是指按照軟件產品安裝手冊或相應的文檔,在一個和用戶使用該產品完全一樣的環境中或相當于用戶使用環境中,進行一步一步的安裝操作性的測試驗收測試&安裝測試驗收測試的目的是向未來的用戶表明系統能夠462.5軟件測試的工作范疇2.5軟件測試的工作范疇47作業Zhu.Kerry@第二章
4、5作業Zhu.Kerry@第二章4、548Q&AZhu.Kerry@Q&AZhu.Kerry@49軟件測試方法和技術
-Ch.2軟件測試的基本概念和方法Zhu.Kerry@Zhu.Kerry@朱少民KerryZhu軟件測試方法和技術
-Ch.2軟件測試的基本概念和方法50第一章回顧Zhu.Kerry@軟件特點軟件開發的模型原型模型改進的V模型增量模型和迭代模型XP模型…測試的重要性第一章回顧Zhu.Kerry@軟件特點51第二章軟件測試的基本概念和方法Zhu.Kerry@2.1軟件質量就是客戶的滿意度2.2軟件缺陷(Bug)是什么2.3軟件測試的基本方法2.4軟件測試的分類和階段2.5軟件測試的工作范疇第二章軟件測試的基本概念和方法Zhu.Kerry@gmai52軟件質量的內涵軟件質量是客戶滿意度的體現客戶+
質+量?Zhu.Kerry@軟件質量的內涵軟件質量是客戶滿意度的體現客戶+質+53質量(Quality)質量是系統、部件或過程滿足明確需求客戶或用戶需要或期望的程度不同IEEE<<StandardGlossaryofSoftwareEngineeringTerminology>>軟件質量:軟件產品具有滿足規定的或隱含要求能力要求有關的特征與特征總和(ISO8492)軟件質量:軟件產品滿足 使用要求的程度
Zhu.Kerry@質量(Quality)質量是系統、部件或過程滿足Zhu.54軟件質量范圍-3AAccountability
(可說明性)–用戶可以基于產品或服務的描述和定義進行使用.
(例如:
市場需求說明書,功能設計說明書.)Availability(有效性)–產品或服務對于99.999%客戶總是有效的(例如:性能測試和恢復測試)Accessibility(易用性)–對于用戶,產品或服務非常容易使用并且一定是非常有用的功能.(例如:確認測試和用戶可用性測試)
Zhu.Kerry@軟件質量范圍-3AAccountability(可說明性55高質量的軟件應該是相對的無產品缺陷(BugFree)或只有極少量的缺陷,它能夠準時遞交給用戶并且所用的費用都是在預算內的并且滿足客戶需求,是可維護的。但是,有關質量的好壞最終評價依賴于用戶的反饋。“客戶”廣義定義
:內在的定義:下一個環節/工序的接收者,更廣的服務的對象,周圍有任何聯系或影響的團隊、人。 軟件的設計者,程序的檢測者,項目管理者,品質管理人員…-廣泛的定義:最終用戶,客戶管理,Zhu.Kerry@高質量的軟件應該是相對的無產品缺陷(BugFree)或只有56軟件質量不同的視點
先驗論觀點:質量是產品一種可以認識但不可定義的性質
用戶觀點:質量是產品滿足使用目的之程度;
制造者的觀點:質量是產品性能和規格要求的符合度
產品觀點:質量是聯結產品固有性能的紐帶;
基于價值觀點:質量依賴于顧客愿意付給產品報酬的數量Zhu.Kerry@軟件質量不同的視點先驗論觀點:質量是產品一種可以認識但不可57高質量軟件標準體系產品質量是人們實踐產物的屬性和行為,是可以認識,可以科學地描述的。并且可以通過一些方法和人類活動,來改進質量.質量模型:McCall模型,Boehm模型,ISO9126模型過程質量:
軟件能力成熟度模型
CMM(CapabilityMaturityModel).
國際標準過程模型
ISO9000
軟件過程改進和能力決斷
SPICE(SoftwareProcessImprovementandCapabilitydEtermination)
在商業過程中有關的質量內容:
培訓、成品制作、宣傳、發布日起、客戶、風險、成本、業務等
Zhu.Kerry@高質量軟件標準體系產品質量Zhu.Kerry@gmail.c58產品質量的標準-功能性
Functionality-可用性
Usability(簡單安裝;輕松使用;友好界面)-可靠性
Reliability(用戶使用的根本)-性能
Performance-容量
Capacity-可測量性
Scalability-可維護性
Servicemanageability-兼容性
Compatibility-可擴展性
ExtensibilityZhu.Kerry@產品質量的標準-功能性FunctionalityZhu.59軟件質量特征(ISO9126)
功能:與一組功能及其指定性質有關的一組屬性,這里的功能是滿足明確或隱含的需求的那些功能。
可靠:在規定的一段時間和條件下,與軟件維持其性能水平的能力有關的一組屬性。
易用:由一組規定或潛在的用戶為使用軟件所需作的努力和所作的評價有關的一組屬性。
效率:與在規定條件下軟件的性能水平與所使用資源量之間關系有關的一組屬性。
可維護:與進行指定的修改所需的努力有關的一組屬性。
可移植:與軟件從一個環境轉移到另一個環境的能力有關的一組屬性。
其中每一個質量特征都分別與若干子特征相對應。Zhu.Kerry@軟件質量特征(ISO9126)功能:與一組功能及其指定60Boehm軟件質量模型闡述性互用性數據公開性正確性可靠性效率完整性可用性可維護性可測試性靈活性可移植性重復性連貫性容錯性執行效率/儲存效率存取控制/存取檢查可訓練溝通良好簡單性易操作的工具自我操作性擴展性一般性模塊性軟件系統獨立性機器獨立性通訊公開性正確性可操作性Zhu.Kerry@Boehm軟件質量模型闡述性互用性數據公開性正確性可靠性效率61McCall模型設備獨立性易更改可靠性效率總體效用易用性可維護性可測試性人體工程學可移植性易懂性精確性完整性完全性可說明性
設備功效易操作性溝通良好自我操作性架構性簡明性易懂性可維護性模塊獨立性連續性Zhu.Kerry@McCall模型設備獨立性易更改可靠性效率總體效用易用62軟件過程質量軟件能力成熟度模型CMM(CapabilityMaturityModel).國際標準過程模型ISO9000軟件過程改進和能力決斷SPICE(SoftwareProcessImprovementandCapabilitydEtermination)Zhu.Kerry@軟件過程質量Zhu.Kerry@63質量保證的策略主要分三個階段:
以檢測為重:產品制成之后進行檢測,只能判斷產品質量,不能提高產品質量。
以過程管理為重:把質量的保證工作重點放在過程管理上,對制造過程中的每一道工序都要進行質量控制。
以新產品開發為重:在新產品的開發設計階段,采取強有力的措施來消滅由于設計原因而產生的質量隱患。Zhu.Kerry@質量保證的策略主要分三個階段:Zhu.Kerry@gmail64全面質量管理
(TQM)TQM=TotalQualityManagement全面質量管理
TQM是為了能夠在最經濟的水平上,并考慮到充分滿足用戶要求的條件下進行市場研究、設計、生產和服務,把企業內各部門研制質量、維持質量和提高質量的活動構成為一體的一種有效體系
TQM內容:全員參與質量管理全過程質量管理。
TQM的4個關鍵要素:關注客戶過程改進質量的人性化因素度量(即模型的測量和分析)Zhu.Kerry@全面質量管理(TQM)TQM=TotalQualit65質量管理發展五個階段1900手工操作者專職檢驗員1920過程統計技術1931全面質量管理1960以顧客為中心階段時間2000Zhu.Kerry@質量管理發展五個階段1900手工操作者專職檢驗員1920過程66什么是Bug?2.2軟件缺陷(Bug)是什么Anyproblem/disfigurement/limitationinproductdesign&development
Featureorfunctioncan’tworkUnreasonabledesignPartlyrealizationinfunctionDataerrorRunerrorLimitationinfeaturesDifferencebetweenactualresultsandexpectedresultsUnfriendlyUI,LowperformanceOthers任何程序、系統中的問題,和產品設計書的不一致性,不能滿足用戶的需求
Zhu.Kerry@什么是Bug?2.2軟件缺陷(Bug)是什么Anyp67問題出在哪里?項目沒有被很好地理解;計劃不周,最終導致進度拖延。沒有充分的文檔資料。人與人的交流比寫程序困難得多。軟件可靠性缺少度量的標準,質量無法保證。軟件難以維護、不易升級。Zhu.Kerry@問題出在哪里?項目沒有被很好地理解;計劃不周,最終導致進度拖68解決問題的想法Bettermanagement管理Differentteamorganizations組織Betterlanguages&tools語言和工具Uniformcodingconventions編程慣例必須意識到:“軟件”≠編程,它有自己的生命周期(lifecycle)。大型軟件系統的開發與其它工程項目如建造橋梁、制造飛機、輪船等的開發是同理的。Zhu.Kerry@解決問題的想法Bettermanagement管理Zh69實踐證明:對軟件進行充分的測試 才能夠有效的保證軟件質量軟件測試對軟件產品進行充分測試,找出其中的缺陷(Bug),并進行修復(Fix)。Zhu.Kerry@實踐證明:對軟件進行充分的測試軟件測試對軟件產品進行充分測試70缺點(defect)偏差(variance)謬誤(fault)失敗(failure)問題(problem)矛盾(inconsistency)錯誤(error)毛病(incident)異常(anomy)缺陷-BugZhu.Kerry@缺點(defect)偏差(v71軟件缺陷IEEE(1983)729軟件缺陷一個標準的定義:從產品內部看,軟件缺陷是軟件產品開發或維護過程中所存在的錯誤、毛病等各種問題;從外部看,軟件缺陷是系統所需要實現的某種功能的失效或違背。
軟件缺陷的主要類型/現象:功能、特性沒有實現或部分實現設計不合理,存在缺陷實際結果和預期結果不一致運行出錯,包括運行中斷、系統崩潰、界面混亂數據結果不正確、精度不夠用戶不能接受的其他問題,如存取時間過長、界面不美觀Zhu.Kerry@軟件缺陷IEEE(1983)729軟件缺陷一個標準的定72Zhu.Kerry@軟件缺陷的產生
技術問題算法錯誤,語法錯誤,計算和精度問題,接口參數傳遞不匹配團隊工作誤解、溝通不充分軟件本身文檔錯誤、用戶使用場合(userscenario),時間上不協調、或不一致性所帶來的問題系統的自我恢復或數據的異地備份、災難性恢復等問題Zhu.Kerry@軟件缺陷的產生技術問73軟件缺陷構成Zhu.Kerry@軟件缺陷構成Zhu.Kerry@74軟件缺陷在不同階段的分布Zhu.Kerry@在真正的程序測試之前,通過審查、評審會可以發現更多的缺陷。規格說明書的缺陷會在需求分析審查、設計、編碼、測試等過程中會逐步發現,而不能在需求分析一個階段發現軟件缺陷在不同階段的分布Zhu.Kerry@gmail.c75缺陷成本Zhu.Kerry@缺陷成本Zhu.Kerry@762.3軟件測試的基本方法Zhu.Kerry@根據G.J.Myers觀點--軟件測試的目:
軟件測試是為了發現錯誤而執行程序的過程一個好的測試能夠在第一時間發現程序中存在的錯誤一個好的測試是發現了至今尚未發現的錯誤的測試。軟件測試是質量控制的重要手段,保證客戶拿到或用戶使用高質量的軟件產品2.3軟件測試的基本方法Zhu.Kerry@gmail.co77軟件測試誤區誤區一:如果發布出去的軟件有質量問題,都是軟件測試人員的錯誤區二:軟件測試技術要求不高,至少比編程容易多了誤區三:有時間就多測試一些,來不及就少測試一些誤區四:軟件測試是測試人員的事,與開發人員無關誤區五:根據軟件開發瀑布模型,軟件測試是開發后期的一個階段軟件測試誤區誤區一:如果發布出去的軟件有質量問題,都是軟件78Zhu.Kerry@軟件測試的原則所有測試的標準都是建立在用戶需求之上。軟件測試必須基于“質量第一”的思想去開展各項工作,當時間和質量沖突時,時間要服從質量。事先定義好產品的質量標準,只有有了質量標準,才能根據測試的結果,對產品的質量進行分析和評估。軟件項目一啟動,軟件測試也就是開始,而不是等程序寫完,才開始進行測試。窮舉測試是不可能的。甚至一個大小適度的程序,其路徑排列的數量也非常大,因此,在測試中不可能運行路徑的每一種組合。Zhu.Kerry@軟件測試的原則所有測試79Zhu.Kerry@軟件測試的原則(2)第三方進行測試會更客觀,更有效。軟件測試計劃是做好軟件測試工作的前提。測試用例是設計出來的,不是寫出來的,所以要根據測試的目的,采用相應的方法去設計測試用例,從而提高測試的效率,更多地發現錯誤,提高程序的可靠性。對發現錯誤較多的程序段,應進行更深入的測試。一般來說,一段程序中已發現的錯誤數越多,其中存在的錯誤概率也就越大。重視文檔,妥善保存一切測試過程文檔(測試計劃、測試用例、測試報告等)Zhu.Kerry@軟件測試的原則(2)80Zhu.Kerry@軟件測試的原則(3)應當把“盡早和不斷地測試”作為測試人員的座右銘回歸測試的關聯性一定要引起充分的注意,修改一個錯誤而引起更多錯誤出現的現象并不少見測試應從“小規模”開始,逐步轉向“大規模”。不可將測試用例置之度外,排除隨意性。必須徹底檢查每一個測試結果。一定要注意測試中的錯誤集中發生現象,這和程序員的編程水平和習慣有很大的關系對測試錯誤結果一定要有一個確認的過程。Zhu.Kerry@軟件測試的原則(3)81測試方法黑盒子和白盒子靜態的和動態的文檔、代碼審查數據輸入邊界條件法等價劃分、數據流程圖狀態變換圖邏輯路徑法測試方法黑盒子和白盒子82黑盒子和白盒子功能測試數據驅動測試結構測試邏輯驅動測試
客戶需求事件驅動輸入輸出黑盒子和白盒子功能測試結構測試客戶需求事件驅動輸入輸出83靜態的和動態的主持人作者記錄員列席人員內審員技術專業人員用戶代表不正式正式互審
走讀審查會議運行程序靜態的和動態的主持人作者記錄員列席人員內審員技術專業人員用戶84自動測試和手工測試手工模擬用戶操作自動測試和手工測試手工模擬用戶操作85驗證和確認(V&V)
Verification
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教部編版三年級上冊第八單元26 手術臺就是陣地教案設計
- 2024四川石棉縣晟豐農業發展有限責任公司招聘配送員1人筆試參考題庫附帶答案詳解
- 人教部編版八年級下冊名著導讀 《鋼鐵是怎樣煉成的》:摘抄和做筆記教學設計
- 人教部編版一年級下冊古對今教案
- 2024四川新傳媒集團有限公司公開招聘6人筆試參考題庫附帶答案詳解
- 2024四川九州電子科技股份有限公司招聘技安管理等崗位3人筆試參考題庫附帶答案詳解
- 人教版九年級化學上冊教學設計
- 2024華能四川能源開發有限公司下屬單位招聘筆試參考題庫附帶答案詳解
- 人教版四年級上冊畫角教案及反思
- 學校優良作業評選方案
- 2025年中鐵快運股份有限公司招聘(98人)筆試參考題庫附帶答案詳解
- 2025年武漢數學四調試題及答案
- 職業病防護設施與個體防護用品的使用和維護
- 綠化養護服務投標方案(技術標)
- 2024年鄭州信息科技職業學院單招職業適應性測試題庫學生專用
- 中國紡織文化智慧樹知到期末考試答案2024年
- TB-T 3356-2021鐵路隧道錨桿-PDF解密
- (正式版)HGT 6313-2024 化工園區智慧化評價導則
- 棗莊防備煤礦有限公司“7.6”重大火災事故詳細分析
- 建筑裝飾專業中級職稱理論考試題庫
- 工程聯系單表格(模板)
評論
0/150
提交評論