軟件評測師複習指導

軟件測試基本概念
  軟件質量與軟件測試:
  軟件測試是軟件質量保證工做的一個重要環節。軟件測試和軟件質量保證是軟件質量工程的兩個不一樣層面的工做。軟件測試只是軟件質量保證工做中的一個重要環節。質量保證(QA)的工做是經過預防、檢查與改進來保證軟件的質量,它所關注的是軟件質量的檢查和測量。軟件測試所關心的不是過程的活動,而是對過程的產物以及開發出的軟件進行剖析。
  軟件測試定義:
  軟件測試就是在軟件投入運行前對軟件需求分析、軟件設計規格說明和軟件編碼進行的查錯(包括代碼執行活動與人工活動)。軟件測試是爲了發現錯誤而執行程序的過程。軟件測試是根據軟件開發各階段的規格說明和程序的內部結構而精心設計一批測試用例(即輸入數據及其預期的輸出結果),並利用這些測試用例去運行程序,以發現程序的錯誤。是在軟件投入運行前,對軟件需求分析、軟件設計規格說明和軟件編碼的最終複審,是軟件質量保證的關鍵步驟。
  軟件測試目的:
  (1)測試是一個爲了尋找錯誤而運行程序的過程;
  (2)一個好的測試用例是指極可能找到迄今爲止未發現的錯誤的用例;
  (3)一個成功的測試是指揭示了迄今爲止還沒有發現的錯誤的測試。
  軟件測試的目標是可以以耗費最少時間與最小工做量找出軟件系統中潛在的各類錯誤與缺陷。
  測試只能證實程序中錯誤的存在,但不能證實程序中沒有錯誤。
  軟件測試原則:
  (1)儘早地並不斷地進行軟件測試;
  (2)程序員或程序設計機構應避免測試本身設計的程序;
  (3)測試前應當設定合理的測試用例;
  (4)測試用例的設計不只要有合法的輸入數據,還要有非法的輸入數據;
  (5)在對程序修改以後要進行迴歸測試;
  (6)充分注意測試中的羣集現象;
  (7)妥善保留測試計劃、所有測試用例、出錯統計和最終分析報告,並把它們做爲軟件的組成部分之一,爲軟件的維護提供方便;
  (8)應當對每個測試結果作全面檢查;
  (9)嚴格執行測試計劃,排除測試的隨意性。
  軟件測試對象:
  軟件的測試不只僅是程序的測試,軟件的測試應貫穿於整個軟件生命同期中。在軟件定義階段產生的可行性報告、項目實施計劃、軟件需求說明書或系統功能說明書,在軟件開發階段產生的概要測試說明書、詳細設計說明書,以及源程序等都是軟件測試的對象。
  軟件測試過程模型:V模型、W模型、H模型。
  軟件測試模型的使用:在實際軟件測試的實施過程當中,應靈活地運用各類模型的優勢,一般能夠在W模型的框架下,運用H模型的思想進行獨立的測試。當有變動發生時,按X模型和前置模型的思想進行處理。同時,將測試和開發緊密結合,尋找恰當的就緒點開始測試,並反覆進行迭代測試,以達到定期完成預約的目標。
  軟件問題分類:軟件錯誤、軟件缺陷、軟件故障、軟件失效。
 軟件測試類型:
  按開發階段分:單元測試、集成測試、確認測試(有效性測試)、系統測試、確認測試、驗收測試
  按測試實施組織分:開發方測試(驗證測試或alpha測試)、用戶測試(beta)、第三方測試(獨立測試)
  按測試方式分:動態測試、靜態測試
  按測試技術分:白盒測試、黑盒測試、灰盒測試
  軟件測試過程:
  用黑盒法設計基本的測試方案,再利用白盒法補充一些必要的測試方案。能夠用如下策略結合各類方法:
  (1)在任何狀況下都應該使用邊界值分析的方法;
  (2)必要時用等價劃分法補充測試方案;
  (3)必要時用錯誤推測法補充測試方案;
  (4)若是在程序的功能說明中含有輸入條件的組合,最好在一開始就用因果圖法,而後再按以上(1)、(2)、(3)步進行。
  (5)對照程序邏輯,檢查已設計出的設計方案。能夠根據對程序可靠性的要求採用不一樣的邏輯覆蓋標準,若是現有測試方案的邏輯覆蓋程度沒有達到要求的覆蓋標準,則應再補充一些測試方案。
  單元測試主要是對模塊的5個基本特性進行測試和評價:
  (1)模塊接口;(2)局部數據結構;(3)重要的執行路徑;(4)錯誤處理;(5)邊界測試。
  在集成測試時,要考慮的問題有:數據通過接口是否會丟失;一個模塊對另外一模塊是否形成不該有的影響;幾個子功能組合起來可否實現主功能;偏差不斷積累是否達到不可接受的程度;全局數據結構是否有問題。
  確認測試又稱爲有效性測試、合格測試或驗收測試。確認測試主要由使用用戶參加測試,檢驗軟件規格說明的技術標準的符合程度,是保證軟件質量的最後關鍵環節。
  系統測試是將經過確認測試的軟件,做爲整個基於計算機系統的一個元素,與計算機硬件、外設、某些支持軟件、數據和人員等其餘系統元素結合在一塊兒,在實際運行(使用)環境下,對計算機系統進行一系列的組裝測試和確認測試。系統測試實質上是由一系列不一樣測試組成的,其主要目的是充分運行系統,驗證系統各個部件是否都能正常工做並完成所分配的功能。
  系統測試包括:恢復測試、安全性測試、強度測試、性能測試等。
  驗收測試是以用戶爲主,軟件開發人員和質量保證人員也應參加的測試。由用戶參加設計測試用例。使用用戶界面輸入測試數據,並分析測試的輸出結果。驗收測試每每知系統測試完成後,項目最終交付前進行。
測試用例設計方法
  白盒測試基本技術:控制流圖、代碼覆蓋率分析(Code Coverage Analysis)。
  白盒測試方法:從整體上可劃分爲靜態測試和動態測試;按測試操做的實施方式劃分爲手工測試和藉助於工具的自動化測試等。
  白盒測試的靜態測試方法:代碼檢查法、靜態結構分析法、代碼質量度量法等。
  白盒測試的動態測試方法:功能確認與接口測試、邏輯覆蓋分析法、基本路徑測試法、性能分析、內存分析等。
  動態測試一般在靜態測試以後進行。
  其餘白盒測試方法:域測試(Domain Testing)、程序變異測試、符號測試、數據流測試、Z路徑測試。
  經常使用的黑盒測試用例設計方法有:等價類劃分法、邊值分析法、錯誤猜想法、因果圖方法等,其餘的一些測試方法還有斷定表驅動法、正交試驗法、功能圖法,以及場景法等。
  面向對象測試關注於設計合適的操做序列以測試類的狀態。
  測試用例設計方法的主要原則包括:
  (1)對每一個測試用例應當給予特殊的標識,而且還應當與測試的類有明確的聯繫。
  (2)測試目的應當明確。
  應當爲每一個測試用例開發一個測試步驟列表。這個列表應包括如下一些內容:
  (1)列出所要測試的對象的專門說明;
  (2)列出將要做爲測試結果運行的消息和操做;
  (3)列出測試對象可能發生的例外狀況;
  (4)列出外部條件;
  (5)列出爲了幫助理解和實現測試所須要的附加信息。
  軟件自動化測試
  自動化測試能夠幫助測試人員作到:
  (1)提升測試執行的速度;
  (2)提升運行效率;
  (3)保證測試結果的準確性;
  (4)連續運行測試腳本;
  (5)模擬現實環境下受約束的狀況。
  自動化測試不能作到的是:
  (1)全部測試活動均可以自動完成;(2)減小人力成本;(3)毫無成本的獲得;(4)下降測試的工做量。
面向對象軟件的測試
  面向對象技術主要包括6個核心概念:對象、消息、接口、類、繼承、多態。
  面向對象的開發模型實質是將軟件測試過程分紅3個階段,即面向對象分析(OOA)、面向對象設計(OOD)和麪向對象編程(OOP)。
  面向對象測試的類型分爲:面向對象分析的測試(OOA Test)、面向對象設計的測試(OOD Test)、面向對象編程的測試(OOP Test)、面向對象單元測試(OO Unit Test)、面向對象集成測試(OO Integration Test)、面向對象系統測試(OO System Test)。
  面向對象測試類型的另外一種劃分:模型測試、類測試(用於代替單元測試)、交互測試(用於代替集成測試)、系統(包括子系統)測試、接收測試、部署測試。
  傳統測試模式與面向對象的測試模式的最主要的區別在於,面向對象的測試更關注對象而不是完成輸入/輸出的單一功能,這樣的話測試能夠在分析與設計階段就先行介入,便得測試更好的配合軟件生產過程併爲之服務。
與傳統測試模式相比,面向對象測試的優勢在於:更早地定義出測試用例;早期介入能夠下降成本;儘早的編寫系統測試用例以便於開發人員與測試人員對系統需求的理解保持一致;面向對象的測試模式更注重於軟件的實質。
  面向對象測試的過程:
  (1)指定範圍;
  (2)指定深度;
  (3)指定已建立的被測試模塊的基本要求(上一個階段須要提供的接口);
  (4)以基本模型的內容爲輸入來設計測試用例做爲評估標準;
  (5)生成測試覆蓋度量標準;
  (6)試用測試清單執行靜態分析,確保被測模塊與基本模型的一致性;
  (7)執行測試用例;
  (8)若是覆蓋不足以檢測全部的活動,就須要分解測試工做,而且使用傳統測試用例的方式來警醒,或者中斷測試,從新測試傳統測試用例。
Web應用測試
  Web應用測試類型:功能測試、性能測試、可用性測試、兼容性測試和安全測試。
  根據測試對象的不一樣,Web功能測試又分爲連接測試、表單測試、Cookies測試、設計語言測試、數據庫測試。
  Web性能測試是要是確保Web應用系統達到要求的性能,通常用最大運行時間、吞吐率、響應時間描述。
  Web應用在極端條件下的性能測試又分爲負載測試和壓力測試。
  負載測試是爲了測量Web系統在某一負載級別上的性能,以保證Web系統的在需求範圍內能正常工做。負載級別能夠是某個時刻同時訪問Web系統的用戶數據,也能夠是在線數據處理的數量。
  壓力測試是指實際破壞一個Web應用系統時測試系統的反映。壓力測試是測試系統的限制和故障恢復能力,也就是測試Web應用系統會不會崩潰,在什麼狀況下會崩潰。壓力測試側重於肯定系統崩潰時的用戶負載量。壓力測試的區域包括表單、登陸和其它信息傳輸頁面等。
  Web性能測試:(1)鏈接速度測試;(2)負載測試;(3)壓力測試。
  Web可用性測試:(1)導航測試;(2)圖形測試;(3)內容測試;(4)總體界面測試。
  Web兼容性測試:(1)平臺測試;(2)瀏覽器測試。
  Web安裝性測試,就是測試Web應用防止未受權用戶訪問或故意破壞等狀況下的能力,其重點是測試SSL(安全套接字)配置、登陸模塊、事務完整性等方面。
  網絡測試
  網絡性能測試的主要依據是:(1)雙方在規劃設計階段共同承認的網絡性能指標;(2)有關的國家標準或行業標準。
  網絡性能測試的具體內容應以網絡設計方案爲準,但通常包括如下內容:
  (1)網絡容量測試:最大容量和有效容量;
  (2)網絡響應時間測試:檢測網絡系統完成一系列任務所需的時間;
  (3)網絡可靠性測試;
  (4)網絡吞吐量測試;
  (5)網絡配置規模測試;
  (6)網絡瓶頸測試;
  (7)衰減測試。
  網絡性能測試分類:(1)網絡可接受性測試;(2)網絡升級測試;(3)網絡設備評估測試。
  網絡性能測試的對象:(1)路由器、集線器、交換機和網橋;(2)網段;(3)全局網;(4)網絡操做系統;(5)文件服務器;(6)工做站。
  網絡應用測試的主要內容:(1)性能測試;(2)功能測試;(3)網絡應用負載測試;(4)應用系統響應時間測試;(5)應用系統升級測試。
安全測試
  軟件安全性是與防止對程序和數據的非受權的故意或意外訪問的能力相關的軟件產品屬性。軟件安全性的測試包括程序和數據安全性的測試。
  安全測試內容:用戶認證機制、加密機制、安全防禦策略、數據備份與恢復、防病毒系統。
  安全測試策略:
  (1)安全防禦體系:實體安全、平臺安全、數據安全、應用安全、通訊安全、運行安全、組織安全、管理安全。
  (2)安全保護國家標準:用戶自主保護級、系統審計保護級、安全標記保護級、結構化保護級、安全域級保護級。
  爲保證明體、數據、平臺、應用、運行等的安全,主要採用如下幾種安全防禦技術:防火牆、入侵檢測系統、漏洞掃描、安全審計、病毒防治、Web信息防篡改。
  安全測試方法:
  主動發現方法:功能驗證、漏洞掃描、模擬功能、偵聽技術。
  兼容性測試
  硬件兼容性測試:主機兼容性測試;板卡、配件及外設的兼容性測試。
  配置指標主要包括對CPU、內存和硬盤的要求。
  推薦配置就保證軟硬件構成的系統在正常業務的壓力負載下,CPU資源佔用率平均值不超過75%。
  軟件兼容性測試:操做系統兼容性測試、數據庫兼容性測試、中間件兼容性測試、與其餘軟件的兼容性測試。
  數據兼容性測試:編碼體系測試、數據標準符合性測試。
  新舊系統數據遷移測試:遷移準備、遷移實施、遷移驗證。
  平臺軟件兼容性測試:平臺軟件硬件、軟件、數據庫、文種兼容性測試。
易用性測試
  在2003年頒佈的GB/T16260-2003(ISO 9126-2001)《軟件工程 產品質量》質量模型中,提出易用性包含易理解性、易學習性和易操做性;即易用性是指在指定條件下使用時,軟件產品被理解、學習、使用和吸引用戶的能力。
  (1)易理解性;(2)易學習性;(3)易操做性;(4)吸引性;(5)依從性。
  易用性測試包括針對應用程序的測試,同時還包括對用戶手冊系統文檔的測試。一般採用質量外部模型來評價易用性。包括以下方面的測試:(1)易理解性測試;(2)易學性測試;(3)易操做性測試;(4)吸引性測試;(5)易用的依從性測試。
  易用性測試方法有:靜態測試;動態測試;動態和靜態結合測試。
  軟件質量模型將質量屬性劃分爲6種特性:功能性、可靠性、易用性、效率、維護性和可移植性。
  易用性與可靠性是正相關的;易用性與安全性(功能性的子特性)的某些方面是負相關的。
  安裝測試的主要工做(安裝的易用性):(1)安裝手冊的評估;(2)安裝的自動化程度測試;(3)安裝選項和設置的測試;(4)安裝過程的中斷測試;(5)安裝順序測試;(6)多環境安裝測試;(7)安裝的正確性測試;(8)修復安裝測試和卸載測試。
  功能易用性測試:(1)業務符合性;(2)功能定製性;(3)業務模塊的集成度;(4)約束性;(5)交互性;(6)系統信息與錯誤提示。
  界面總體測試指對界面的規範性、一致性、合理性等進行測試和評估。
  文檔測試
  國家有關計算機軟件產品開發文件編制指南()中共有14種文件,可分爲3大類。
  1. 開發文件:可行性研究報告、軟件需求說明書、數據要求說明書、概要設計說明書、詳細設計說明書、數據庫設計說明書、模塊開發卷宗。
  2. 用戶文件:用戶手冊、操做手冊。
  3. 管理文件:項目開發計劃、測試計劃、測試分析報告、開發進度月報、項目開發總結報告。
  用戶文檔分類:聯機幫助;樣例、示例和模板;包裝;宣傳與廣告;其餘。
  用戶文檔的做用:改善易安裝性;改善軟件的易學性與易用性;改善軟件可靠性;下降技術支持成本。
  用戶文檔測試方法:技術校對;功能測試;其餘輔助方式。
  用戶文檔測試要點:文檔的讀者羣;文檔的術語;文檔的正確性;文檔的完整性;文檔的一致性;文檔的易用性;樣例與示例;文檔的語言;印刷與包裝質量。
  用戶手冊、操做手冊的測試:「嚴格」地使用系統;「爲所欲爲」地使用系統;嘗試文檔中的每一個建議和注意事項;描述的準確性;從用戶角度看手冊。
  聯機幫助的測試:準確性、用戶的查詢;幫助主題的完整性;幫助的風格。
  測試項目管理
  軟件配置管理的做用:
  經過軟件配置管理,嚴格執行軟件開發過程控制,使軟件開發的各個過程階段()置於軟件配置管理控制之下,真實地記錄軟件生命週期內的所有過程活動,使軟件開發從無形變成有形,從沒法管理變成有章可循。
  經過軟件配置管理,嚴格執行軟件版本控制(),作到完整保存各類歷史軟件,有利於驗證和比較測試、聯試中出現的問題;嚴格執行軟件更改控制,嚴格審批更動過程。
  配置管理內容:確立基線;創建3庫(開發庫、受控庫、產品庫);出入庫管理和審計;狀態報告和查詢。
  測試管理組包括評審小組、測試小組和支持小組。
  軟件測試過程分紅4個階段:單元測試、集成測試、系統測試和驗收測試。
  軟件測試文檔描述要執行的軟件測試及測試的結果。
  測試文件的類型:測試計劃和測試分析報告。
  測試文件的重要性表如今:(1)驗證需求的正確性;(2)檢驗測試資源;(3)明確任務的風險;(4)生成測試用例;(5)評價測試結果;(6)再測試;(7)決定測試的有效性。
  軟件工程領域要考慮的風險類型:(1)項目風險;(2)技術風險;(3)商業風險。
  風險條目檢查表:(1)產品規模風險;(2)商業影響風險;(3)客戶相關風險;(4)過程風險;(5)技術風險;(6)開發環境風險;(7)與人員數目及經驗相關的風險。程序員

相關文章
相關標籤/搜索