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