軟件測試是干什么的及工作內容
第一、通過測試發現軟件中的缺陷或不足
軟件測試是干什么的呢?通過測試發現軟件中存在的不足是其中一個內容,測試軟件的技術分為兩種,一是黑盒測試,二是白盒測試。之后通過黑盒和白盒進行不同類型的測試比如有類弄分法、因果圖法以及白盒測試中的分支覆蓋等等,通過這些不同的測試可以發現軟件中存在的不足,以讓軟件開發工程師再次進行完善。
第二、軟件測試需要把發現的的問題整理成報告
軟件測試的工作還包括把發現的問題整理成報告上交,提交緣分開發工程師,當得到確認后再對軟件進行修復。對于軟件測試是干什么的問題,大家還需要了解,測試人員在整理報告的時候應使用專業的術語,同時要具備很好的文字表達能力以及較強的語言組織能力,也只有這樣才能把發現的缺點或不足詳細、清楚的表達出來,讓開發人員更好的對軟件進行修復。
第三、測試人員需要分析軟件的質量好壞
軟件測試是干什么的呢?包括哪些工作內容呢?除了要測試軟件的不足,還要分析軟件質量的好壞,需要根據測試的結果來分析,計算出軟件的缺陷率和缺陷分布的情況,以及提出對軟件修復的趨勢等。測試工程師需要給出軟件各種質量特性的具體度量,比如功能性、可靠性以及易用性等,并得出結論提交給軟件開發工程師。
軟件測試的類型
1.數據和數據庫完整性測試
數據與數據庫完整測試是指測試關系型數據庫完整性原則以及數據合理性測試。
數據庫完整性原即:
主碼完整性:主碼不能為空;
外碼完整性:外碼必須等于對應的主碼或者為空。
數據合理性指數據在數據庫中的類型,長度,索引等是否建的比較合理。
在項目名稱中,數據庫和數據庫進程應作為一個子系統來進行測試。在測試這些子系統時,不應將測試對象的用戶界面用作數據的接口。對于數據庫管理系統(DBMS),還需要進行深入的研究,以確定可以支1持測試的工具和技術。
2.白盒測試
白盒測試是基于代碼的測試,測試人員通過閱讀程序代碼或者通過使用開發工具中的單步調試來判斷軟件的質量,一般黑盒測試由項目經理在程序員開發中來實現。白盒測試分為動態白盒測試和靜態白盒測試。
3.功能測試
功能測試指測試軟件各個功能模塊是否正確,邏輯是否正確。
對測試對象的功能測試應側重于所有可直接追蹤到用例或業務功能和業務規則的測試需求。這種測試的目標是核實數據的接受、處理和檢索是否正確,以及業務規則的實施是否恰當。此類測試基于黑盒技術,該技術通過圖形用戶界面(GUI)與應用程序進行交互,并對交互的輸出或結果進行分析,以此來核實應用程序及其內部進程。功能測試的主要參考為類似于功能說明書之類的文檔。
4.UI測試
UI測試指測試用戶界面的風格是否滿足客戶要求,文字是否正確,頁面美工是否好看,文字,圖片組合是否完美,背景是否美觀,操作是否友好等等
用戶界面(UI)測試用于核實用戶與軟件之間的交互。UI測試的目標是確保用戶界面會通過測試對象的功能來為用戶提供相應的訪問或瀏覽功能。另外,UI測試還可確保UI中的對象按照預期的方式運行,并符合公司或行業的標準。包括用戶友好性,人性化,易操作性測試。UI測試比較主觀,與測試人員的喜好有關。
5.性能測試
性能測試主要測試軟件測試的性能,包括負載測試,強度測試,數據庫容量測試,基準測試以及基準測試。
6.安全性和訪問控制測試
安全性和訪問控制測試側重于安全性的兩個關鍵方面:
應用程序級別的安全性,包括對數據或業務功能的訪問
系統級別的安全性,包括對系統的登錄或遠程訪問。
7.故障轉移和恢復測試
故障轉移和恢復測試指當主機軟硬件發生災難時候,備份機器是否能夠正常啟動,使系統是否可以正常運行,這對于電信,銀行等領域的軟件是十分重要的。
故障轉移和恢復測試可確保測試對象能成功完成故障轉移,并能從導致意外數據損失或數據完整性破壞的各種硬件、軟件或網絡故障中恢復。
8.配置測試
又叫兼容性測試。配置測試核實測試對象在不同的軟件和硬件配置中的運行情況。在大多數生產環境中,客戶機工作站、網絡連接和數據庫服務器的具體硬件規格會有所不同。客戶機工作站可能會安裝不同的軟件例如,應用程序、驅動程序等而且在任何時候,都可能運行許多不同的軟件組合,從而占用不同的資源。
故障轉移測試可確保:對于必須持續運行的系統,一旦發生故障,備用系統就將不失時機地“頂替”發生故障的系統,以避免丟失任何數據或事務。
恢復測試是一種對抗性的測試過程。在這種測試中,將把應用程序或系統置于極端的條件下(或者是模擬的極端條件下),以產生故障(例如設備輸入/輸出(I/O)故障或無效的數據庫指針和關健字)。然后調用恢復進程并監測和檢查應用程序和系統,核實應用程序或系統和數據已得到了正確的恢復。一定要注意主備定時備份。
軟件測試的測試工具
TestPlatform軟件測試平臺,簡稱TP,是業界唯一的對軟件測試全過程進行支撐的軟件測試工具。
業界已有的軟件測試工具基本上都局限在測試執行階段,只能支撐測試執行階段的活動,而測試分析、測試設計、測試實現這三個前期階段的活動缺乏有效的測試工具支撐,直接影響了軟件測試的完整性和充分性,從而影響最終研發的軟件質量。David.yuan這樣說:企業使用了博為峰TP測試平臺,整個軟件測試過程的測試覆蓋率提高到前所未有的高度和廣度,可以極好的達成軟件在安全性、健壯性、穩定性和功能、性能方面的要求,即使是沒有很多年測試經驗的管理和測試人員,通過TP測試平臺就可以完成智能化地管理、設計、分析、執行整個測試過程,達到一流測試管理專家所做到的效果。
引入缺陷分析
在業界首先將各種有效的缺陷分析模型引入到該軟件平臺中,包括ODC分析、Gompertz分析、Rayleigh分析、四象限分析、缺陷注入分析、DRE/DRM等工程方法,幫助管理者建立軟件研發過程的質量基線、測試能力基線,并幫助管理者將項目實際缺陷、能力數據和基線數據進行對比分析,發現軟件過程中的改進點,判斷測試是否可以退出、軟件是否可以發布,并對軟件中殘留缺陷數進行預測;
利用理論分析
建立了測試分析和設計的理論框架和一整套工程方法,能夠很好的支撐測試的輔助分析和設計;
建立測試關系
建立“開發需求項-》測試項-》測試子項-》測試用例-》缺陷”的測試跟蹤關系,能夠及時的反應開發需求和設計的變更對測試的影響范圍,保證軟件的一致性和測試的充分性,從而保證軟件的質量;
使用管理工具
能夠全面的管理軟件質量工作,具有高度的集成性,一款TestPlatform能夠完成多款其他各類的相關質量管理工具集成在一起才能完成的軟件質量管理工作。它集成了需求跟蹤、靜態測試、動態測試、測試人員管理、測試環境管理、測試計劃管理、測試用例管理、缺陷管理、缺陷分析等軟件質量相關的流程。
AutoRunner是國內第一款自動化測試工具,可以用來完成功能測試、回歸測試、每日構建測試與自動回歸測試等工作。是具有腳本語言的、提供針對腳本完善的跟蹤和調試功能的、支持IE測試和Windowsnative測試的自動化測試工具。
TestCenter是一款功能強大測試管理工具,它可以幫助您:實現測試用例的過程管理,對測試需求過程、測試用例設計過程、業務組件設計實現過程等整個測試過程進行管理。實現測試用例的標準化即每個測試人員都能夠理解并使用標準化后的測試用例,降低了測試用例對個人的依賴;提供測試用例復用,用例和腳本能夠被復用,以保護測試人員的資產;提供可伸縮的測試執行框架,提供自動測試支持;提供測試數據管理,幫助用戶同意管理測試數據,降低測試數據和測試腳本之間的耦合度。
TAR(TerminalAutoRunner)適用于VT100、VT220等標準的應用系統,支持命令行模式和窗口模式(使用Cursors編寫的應用程序),支持自動錄制腳本、所見即所得的資源和腳本編輯,穩定的自動同步功能。是目前國內最好的銀行業務測試工具。
TestDirector是全球最大的軟件測試工具提供商MercuryInteractive公司生產的企業級測試管理工具,也是業界第一個基于Web的測試管理系統,它可以在您公司內部或外部進行全球范圍內測試的管理。通過在一個整體的應用系統中集成了測試管理的各個部分,包括需求管理,測試計劃,測試執行以及錯誤跟蹤等功能,TestDirector極大地加速了測試過程。
軟件測試的5個基本流程
一、單元測試
單元測試又稱為模塊測試,是針對軟件設計的最小單位程序模塊進行正確性檢查的測試工作,單元測試需要從程序內部結構出發設計測試用例,多個模塊可以平行地獨立進行單元測試。
(一)單元測試的內容:
1、模塊接口測試
應對通過所測模塊的數據流進行測試
調用所測模塊時的輸入參數與模塊的形式參數的個數、屬性和順序是否匹配
所測模塊調用子模塊時,輸入子模塊的參數與子模塊的形式參數在個數、屬性和順序上是否匹配。
輸出給標準函數的參數的個數、屬性和順序是否正確。
全局變量的定義在各個模塊中是否一致。
當模塊通過外部設備進行輸入/輸出操作,文件屬性是否正確、open和close語句是否正確,規定的I/O格式說明與I/O語句是否匹配;緩沖區容量是否與記錄長度匹配,在讀寫之前是否打開了文件,讀寫之后是否關閉了文件,對I/O錯誤是否做了處理。
2、局部數據結構測試
局部數據結構是最常見的錯誤來源
不一致的數據類型
不正確或不一致的數據說明
使用尚未賦值或尚未初始化的變量
錯誤的初始值或錯誤的缺省值
3、路徑測試
運算的優先次序、常見的比較和控制流
4、錯誤處理測試
遇見出錯的條件,并設置適當的出錯處理
5、邊界測試
例如循環的次數,最大或最小值
(二)單元測試步驟:
利用設計文檔設計測試用例;
創建被測模塊的樁模塊或驅動模塊;
利用被測試模塊、驅動模塊和樁模塊來建立測試環境,進行測試
驅動模塊:相當于所測模塊的主程序,它接收測試數據,把這些數據傳送給所測模塊,最后再輸出實際結果
樁模塊:用以代替所測模塊調用的子模塊。
二、集成測試
又稱為組裝測試或聯合測試,在單元測試的基礎上,需要將所有模塊按照概要設計說明書和詳細設計說明書的要求進行組裝。
在把各個模塊連接起來的時候,穿越各個模塊的接口的數據時候會丟失
一個模塊的功能是否會對另一個模塊的功能產生不利的影響
各個子功能組裝完成后,能否達到預期的父功能
全局數據結構是否有問題
單個模塊產生的誤差累計起來是否會放大
模塊組裝成系統的方式:一次性組裝方式和增殖式組裝方式
(一)一次性組裝方式
先對模塊分別進行測試,再把所有模塊組裝進行測試
缺點:發現錯我不容易定位
(二)增值式組裝測試
先對一個個模塊進行模塊測試,然后將這些模塊逐步組裝成系統,分為兩種方式:自頂向下的增殖方式和自底向上的增殖方式
1、自頂向下的增殖方式(不需要驅動模塊)
將模塊銨系統程序結構,嚴控制層次自頂向下進行組裝。
首先以主模塊作為被測模塊兼驅動模塊,所有直屬主模塊的下屬模塊全部用樁模塊代替,對主模塊進行測試。再采用深度優先或廣度優先的策略,用實際模塊代替樁模塊,再用樁模塊代替它們的直接下屬模塊,與已經測試的模塊構成新的子系統。然后進行回歸測試。
2、自底向上的增殖方式(不需要驅動模塊)
由驅動模塊控制最底層模塊的并行測試。
3、混合增殖式
自頂向下增殖方式:
優點:能夠較早的發現主要控制方面的問題
缺點:需要建立樁模塊,增加了一些附加的測試,涉及算法和輸入輸出的模塊一般在底層,這些底層模塊要到組裝和測試的后期才能發現。一旦發現問題就會出現過多的回歸測試。
自底向上增殖方式:
優點:不需要建立樁模塊,建立驅動模塊要比建立樁模塊要簡單得多,同時涉及到算法已近輸入輸出的模塊要先測試,把最容易出現問題的部分在早期解決。
缺點:程序一直未能作為一個實體存在,直到最后一個模塊加上才能形成一個實體,控制方面最后才能接觸。
(三)集成測試完成的標志
1、成功執行了測試計劃中規定的所有集成測試
2、修改了所發現的錯誤
3、測試結果通過專門小組的評審
4、集成測試需要提交的測試報告:
5、集成測試計劃、集成測試規格說明書以及集成測試分析報告
三、確認測試
確認測試的目標是驗證軟件的功能和性能以及其他特性是否與用戶的要求一致。確認測試一般包括有效性測試和軟件配置復查。一般有第三方測試機構進行。
(一)進行有效性測試
現軟件確認要通過一系列黑盒測試。確認測試同樣需要制訂測試計劃和過程,測試計劃應規定測試的種類和測試進度,測試過程則定義一些特殊的測試用例,旨在說明軟件與需求是否一致。
無是計劃還是過程,都應該著重考慮軟件是否滿足合同規定的所有功能和性能,文檔資料是否完整、準確人機界面和其他方面(例如,可移植性、兼容性、錯誤恢復能力和可維護性等)是否令用戶滿意。
確認測試的結果有兩種可能,一種是功能和性能指標滿足軟件需求說明的要求,用戶可以接受;
另一種是軟件不滿足軟件需求說明的要求,用戶無法接受。項目進行到這個階段才發現嚴重錯誤和偏差一般很難在預定的工期內改正,因此必須與用戶協商,尋求一個妥善解決問題的方法
(二)軟件配置復查
保證軟件配置的所有成分齊全,質量都符合要求。應該遵守用戶手冊和操作手冊中的規定步驟。
四、系統測試
軟件作為計算機系統的一部分,與硬件、網絡、外設、支撐軟件、數據以及人員結合在一起,在實際或模擬環境下,對計算機系統進行測試,
目的在于與系統需求比較,發現問題
五、驗收測試
以用戶為主的測試,軟件開發人員和質量保證人員參加,由用戶設計測試用例。
不是對系統進行全覆蓋測試,而是對核心業務流程進行測試。
-
軟件測試
+關注
關注
2文章
221瀏覽量
18515
發布評論請先 登錄
相關推薦
評論