1. 程式人生 > >測試理論學習

測試理論學習

標準 特定 響應 日誌文件 coo 執行 程序 功能 只讀

一、功能測試

1、鏈接測試

鏈接是Web應用系統的一個主要特征,它是在頁面之間切換和指導用戶去一些不知道地址的頁面的主要手段。鏈接測試可分為三個方面。首先,測試所有鏈接是否按指示的那樣確實鏈接到了該鏈接的頁面;其次,測試所鏈接的頁面是否存在;最後,保證Web應用系統上沒有孤立的頁面,所謂孤立頁面是指沒有鏈接指向該頁面,只有知道正確的URL地址才能訪問。

鏈接測試可以自動進行,現在已經有許多工具可以采用。鏈接測試必須在集成測試階段完成,也就是說,在整個Web應用系統的所有頁面開發完成之後進行鏈接測試。

2、表單測試

當用戶給Web應用系統管理員提交信息時,就需要使用表單操作,例如用戶註冊、登陸、信息提交等。在這種情況下,我們必須測試提交操作的完整性,以校驗提交給服務器的信息的正確性。例如:用戶填寫的出生日期與職業是否恰當,填寫的所屬省份與所在城市是否匹配等。如果使用了默認值,還要檢驗默認值的正確性。如果表單只能接受指定的某些值,則也要進行測試。例如:只能接受某些字符,測試時可以跳過這些字符,看系統是否會報錯。

3、Cookies測試

Cookies通常用來存儲用戶信息和用戶在某應用系統的操作,當一個用戶使用Cookies訪問了某一個應用系統時,Web服務器將發送關於用戶的信息,把該信息以Cookies的形式存儲在客戶端計算機上,這可用來創建動態和自定義頁面或者存儲登陸等信息。

如果Web應用系統使用了Cookies,就必須檢查Cookies是否能正常工作。測試的內容可包括Cookies是否起作用,是否按預定的時間進行保存,刷新對Cookies有什麽影響等。

4、設計語言測試

Web設計語言版本的差異可以引起客戶端或服務器端嚴重的問題,例如使用哪種版本的HTML等。當在分布式環境中開發時,開發人員都不在一起,這個問題就顯得尤為重要。除了HTML的版本問題外,不同的腳本語言,例如Java、JavaScript、 ActiveX、VBScript或Perl等也要進行驗證。

5、數據庫測試

在Web應用技術中,數據庫起著重要的作用,數據庫為Web應用系統的管理、運行、查詢和實現用戶對數據存儲的請求等提供空間。在Web應用中,最常用的數據庫類型是關系型數據庫,可以使用SQL對信息進行處理。

在使用了數據庫的Web應用系統中,一般情況下,可能發生兩種錯誤,分別是數據一致性錯誤和輸出錯誤。數據一致性錯誤主要是由於用戶提交的表單信息不正確而造成的,而輸出錯誤主要是由於網絡速度或程序設計問題等引起的,針對這兩種情況,可分別進行測試。

二、性能測試

1、連接速度測試

用戶連接到Web應用系統的速度根據上網方式的變化而變化,他們或許是電話撥號,或是寬帶上網。當下載一個程序時,用戶可以等較長的時間,但如果僅僅訪問一個頁面就不會這樣。如果Web系統響應時間太長(例如超過5秒鐘),用戶就會因沒有耐心等待而離開。

另外,有些頁面有超時的限制,如果響應速度太慢,用戶可能還沒來得及瀏覽內容,就需要重新登陸了。而且,連接速度太慢,還可能引起數據丟失,使用戶得不到真實的頁面。

2、負載測試

負載測試是為了測量Web系統在某一負載級別上的性能,以保證Web系統在需求範圍內能正常工作。負載級別可以是某個時刻同時訪問Web系統的用戶數量,也可以是在線數據處理的數量。例如:Web應用系統能允許多少個用戶同時在線?如果超過了這個數量,會出現什麽現象?Web應用系統能否處理大量用戶對同一個頁面的請求?

3、壓力測試

負載測試應該安排在Web系統發布以後,在實際的網絡環境中進行測試。因為一個企業內部員工,特別是項目組人員總是有限的,而一個Web系統能同時處理的請求數量將遠遠超出這個限度,所以,只有放在Internet上,接受負載測試,其結果才是正確可信的。

進行壓力測試是指實際破壞一個Web應用系統,測試系統的反映。壓力測試是測試系統的限制和故障恢復能力,也就是測試Web應用系統會不會崩潰,在什麽情況下會崩潰。黑客常常提供錯誤的數據負載,直到Web應用系統崩潰,接著當系統重新啟動時獲得存取權。

壓力測試的區域包括表單、登陸和其他信息傳輸頁面等。

三、可用性測試

1、導航測試

導航描述了用戶在一個頁面內操作的方式,在不同的用戶接口控制之間,例如按鈕、對話框、列表和窗口等;或在不同的連接頁面之間。通過考慮下列問題,可以決定一個Web應用系統是否易於導航:導航是否直觀?Web系統的主要部分是否可通過主頁存取?Web系統是否需要站點地圖、搜索引擎或其他的導航幫助?

在一個頁面上放太多的信息往往起到與預期相反的效果。Web應用系統的用戶趨向於目的驅動,很快地掃描一個Web應用系統,看是否有滿足自己需要的信息,如果沒有,就會很快地離開。很少有用戶願意花時間去熟悉Web應用系統的結構,因此,Web應用系統導航幫助要盡可能地準確。

導航的另一個重要方面是Web應用系統的頁面結構、導航、菜單、連接的風格是否一致。確保用戶憑直覺就知道Web應用系統裏面是否還有內容,內容在什麽地方。

Web應用系統的層次一旦決定,就要著手測試用戶導航功能,讓最終用戶參與這種測試,效果將更加明顯。

2、圖形測試

在Web應用系統中,適當的圖片和動畫既能起到廣告宣傳的作用,又能起到美化頁面的功能。一個Web應用系統的圖形可以包括圖片、動畫、邊框、顏色、字體、背景、按鈕等。圖形測試的內容有:

(1)要確保圖形有明確的用途,圖片或動畫不要胡亂地堆在一起,以免浪費傳輸時間。Web應用系統的圖片尺寸要盡量地小,並且要能清楚地說明某件事情,一般都鏈接到某個具體的頁面。

(2)驗證所有頁面字體的風格是否一致。

(3)背景顏色應該與字體顏色和前景顏色相搭配。

(4)圖片的大小和質量也是一個很重要的因素,一般采用JPG或GIF壓縮。

3、內容測試

內容測試用來檢驗Web應用系統提供信息的正確性、準確性和相關性。

信息的正確性是指信息是可靠的還是誤傳的。例如,在商品價格列表中,錯誤的價格可能引起財政問題甚至導致法律糾紛;信息的準確性是指是否有語法或拼寫錯誤。這種測試通常使用一些文字處理軟件來進行,例如使用Microsoft Word的”拼音與語法檢查”功能;信息的相關性是指是否在當前頁面可以找到與當前瀏覽信息相關的信息列表或入口,也就是一般Web站點中的所謂”相關文章列表”。

4、整體界面測試

整體界面是指整個Web應用系統的頁面結構設計,是給用戶的一個整體感。例如:當用戶瀏覽Web應用系統時是否感到舒適,是否憑直覺就知道要找的信息在什麽地方?整個Web應用系統的設計風格是否一致?

對整體界面的測試過程,其實是一個對最終用戶進行調查的過程。一般Web應用系統采取在主頁上做一個調查問卷的形式,來得到最終用戶的反饋信息。

對所有的可用性測試來說,都需要有外部人員(與Web應用系統開發沒有聯系或聯系很少的人員)的參與,最好是最終用戶的參與。

四、客戶端兼容性測試

1、平臺測試

市場上有很多不同的操作系統類型,最常見的有Windows、Unix、Macintosh、Linux等。Web應用系統的最終用戶究竟使用哪一種操作系統,取決於用戶系統的配置。這樣,就可能會發生兼容性問題,同一個應用可能在某些操作系統下能正常運行,但在另外的操作系統下可能會運行失敗。

因此,在Web系統發布之前,需要在各種操作系統下對Web系統進行兼容性測試。

2、瀏覽器測試
Web應用的測試內容都包括哪些方面
瀏覽器是Web客戶端最核心的構件,來自不同廠商的瀏覽器對Java,、JavaScript、 ActiveX、 plug-ins或不同的HTML規格有不同的支持。例如,ActiveX是Microsoft的產品,是為Internet Explorer而設計的,JavaScript是Netscape的產品,Java是Sun的產品等等。另外,框架和層次結構風格在不同的瀏覽器中也有不同的顯示,甚至根本不顯示。不同的瀏覽器對安全性和Java的設置也不一樣。

測試瀏覽器兼容性的一個方法是創建一個兼容性矩陣。在這個矩陣中,測試不同廠商、不同版本的瀏覽器對某些構件和設置的適應性。


  五、安全性測試

Web應用系統的安全性測試區域主要有:

(1)現在的Web應用系統基本采用先註冊,後登陸的方式。因此,必須測試有效和無效的用戶名和密碼,要註意到是否大小寫敏感,可以試多少次的限制,是否可以不登陸而直接瀏覽某個頁面等。

(2)Web應用系統是否有超時的限制,也就是說,用戶登陸後在一定時間內(例如15分鐘)沒有點擊任何頁面,是否需要重新登陸才能正常使用。

(3)為了保證Web應用系統的安全性,日誌文件是至關重要的。需要測試相關信息是否寫進了日誌文件、是否可追蹤。

(4)當使用了安全套接字時,還要測試加密是否正確,檢查信息的完整性。

(5)服務器端的腳本常常構成安全漏洞,這些漏洞又常常被黑客利用。所以,還要測試沒有經過授權,就不能在服務器端放置和編輯腳本的問題。


1.怎麽做好文檔測試?
仔細閱讀,跟隨每個步驟,檢查每個圖形,嘗試每個示例,檢查文檔的編寫是否滿足文檔編寫的目的,內容是否齊全,正確,完善.標記是否正確.

軟件測試分哪2種方法?分別適合什麽情況?

軟件測試分2種:白盒測試和黑盒測試。白盒測試又稱為結構測試、邏輯驅動測試或基於程序本身的測試,它著重於程序的內部結構及算法,通常不關心功能與性能指標;黑盒測試又稱功能測試、數據驅動測試或基於規格說明的測試,它實際上是站在最終用戶的立場,檢驗輸入輸出信息及系統性能指標是否符合規格說明書中有關功能需求及性能需求的規定
2.白盒測試有幾種方法?
總體上分為靜態方法和動態方法兩大類。
靜態:關鍵功能是檢查軟件的表示和描述是否一致,沒有沖突或者沒有歧義
動態:語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆蓋、條件組合覆蓋、路徑覆蓋。

3.系統測試計劃是否需要同行審批,為什麽?
需要,系統測試計劃屬於項目階段性關鍵文檔,因此需要評審。

4.Alpha測試與beta的區別?
Alpha測試在系統開發接近完成時對應用系統的測試;測試後仍然會有少量的設計變更。這種測試一般由最終用戶或其它人員完成,不能由程序或測試員完成。
Beta測試當開發和測試根本完成時所做的測試,最終的錯誤和問題需要在最終發行前找到。這種測試一般由最終用戶或其它人員完成,不能由程序員或測試員完成。

5.比較負載測試,容量測試和強度測試的區別?
負載測試:在一定的工作負荷下,系統的負荷及響應時間。
強度測試:在一定的負荷條件下,在較長時間跨度內的系統連續運行給系統性能所造成的影響。
容量測試:容量測試目的是通過測試預先分 析出反映軟件 系統應用特征的某項指標的極限值(如最大並發用戶數、數據庫記錄數等),系統在其極限值狀 態下沒有出現任何軟件故障或還能保持主要功能正常運行。容量測試 還將確定測試對象在給定時間內能夠持續處理的最大負載或工作量。容量測試的目的是使系統承受超額的數據容量來發現它是否能夠正確處理。容量測試是面向數據的,並且它的目的是顯示系統可以處理目標內確定的數據容量。

6.測試結束的標準是什麽?
用例全部測試。
覆蓋率達到標準。
缺陷率達到標準。
其他指標達到質量標準

7.描述軟件測試活動的生命周期?

測試周期分為計劃、設計、實現、執行、總結。其中:
計劃:對整個測試周期中所有活動進行規劃,估計工作量、風險,安排人力物力資源,安排進度等;
設計:完成測試方案,從技術層面上對測試進行規劃;
實現:進行測試用例和測試規程設計;
執行:根據前期完成的計劃、方案、用例、規程等文檔,執行測試用例。
總結:記錄測試結果,進行測試分析,完成測試報告。
8.軟件的缺陷等級應如何劃分?
A類—嚴重錯誤,包括以下各種錯誤: 1. 由於程序所引起的死機,非法退出 2. 死循環 3. 數據庫發生死鎖 4. 因錯誤操作導致的程序中斷 5. 功能錯誤 6. 與數據庫連接錯誤 7. 數據通訊錯誤
B類—較嚴重錯誤,包括以下各種錯誤: 1. 程序錯誤 2. 程序接口錯誤 3. 數據庫的表、業務規則、缺省值未加完整性等約束條件
C類—一般性錯誤,包括以下各種錯誤: 1. 操作界面錯誤(包括數據窗口內列名定義、含義是否一致) 2. 打印內容、格式錯誤 3. 簡單的輸入限制未放在前臺進行控制 4. 刪除操作未給出提示 5. 數據庫表中有過多的空字段
D類—較小錯誤,包括以下各種錯誤: 1. 界面不規範 2. 輔助說明描述不清楚 3. 輸入輸出不規範 4. 長操作未給用戶提示 5. 提示窗口文字未采用行業術語 6. 可輸入區域和只讀區域沒有明顯的區分標誌

9. 當開發人員說不是BUG時,你如何應付?
開發人員說不是bug,有2種情況,一是需求沒有確定,所以我可以這麽做,這個時候可以找來產品經理進行確認,需不需要改動,3方商量確定好後再看要 不要改。二是這種情況不可能發生,所以不需要修改,這個時候,我可以先盡可能的說出是BUG的依據是什麽?如果被用戶發現或出了問題,會有什麽不良結果? 程序員可能會給你很多理由,你可以對他的解釋進行反駁。如果還是不行,那我可以給這個問題提出來,跟開發經理和測試經理進行確認,如果要修改就改,如果不 要修改就不改。其實有些真的不是bug,我也只是建議的方式寫進TD中,如果開發人員不修改也沒有大問題。如果確定是bug的話,一定要堅持自己的立場, 讓問題得到最後的確認。

10.你為什麽想離開目前的職務?
因為公司運作情況並不理想,公司需要調整部門體系,公司考慮到縮減部門人員,所以大批量的裁員(有6,7個),這是我的第一份工作,對公司也有較深的 感情,因為在這裏我找到了職業理想(就是測試),所以公司需要精簡人員,我自願退出。雖然很舍不得,但我將會有新的發揮能力的舞臺。

11.您認為做好測試用例設計工作的關鍵是什麽?
白盒測試用例設計的關鍵是以較少的用例覆蓋盡可能多的內部程序邏輯結果
黑盒法用例設計的關鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。不可能做到完全測試,以最少的用例在合理的時間內發現最多的問題

12. 請試著比較一下黑盒測試、白盒測試、單元測試、集成測試、系統測試、驗收測試的區別與聯系。
黑盒測試:已知產品的功能設計規格,可以進行測試證明每個實現了的功能是否符合要求。
白盒測試:已知產品的內部工作過程,可以通過測試證明每種內部操作是否符合設計規格要求,所有內部成分是否以經過檢查。
軟件的黑盒測試意味著測試要在軟件的接口處進行。這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序內部的邏輯結構和內部特性,只依據程序 的需求規格說明書,檢查程序的功能是否符合它的功能說明。因此黑盒測試又叫功能測試或數據驅動測試。黑盒測試主要是為了發現以下幾類錯誤:
1、是否有不正確或遺漏的功能?
2、在接口上,輸入是否能正確的接受?能否輸出正確的結果?
3、是否有數據結構錯誤或外部信息(例如數據文件)訪問錯誤?
4、性能上是否能夠滿足要求?
5、是否有初始化或終止性錯誤?
軟件的白盒測試是對軟件的過程性細節做細致的檢查。這種方法是把測試對象看做一個打開的盒子,它允許測試人員利用程序內部的邏輯結構及有關信息,設計 或選擇測試用例,對程序所有邏輯路徑進行測試。通過在不同點檢查程序狀態,確定實際狀態是否與預期的狀態一致。因此白盒測試又稱為結構測試或邏輯驅動測 試。白盒測試主要是想對程序模塊進行如下檢查:
1、對程序模塊的所有獨立的執行路徑至少測試一遍。
2、對所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測一遍。
3、在循環的邊界和運行的界限內執行循環體。
4、測試內部數據結構的有效性,等等。
單元測試(模塊測試)是開發者編寫的一小段代碼,用於檢驗被測代碼的一個很小的、很明確的功能是否正確。通常而言,一個單元測試是用於判斷某個特定條件(或者場景)下某個特定函數的行為。
單元測試是由程序員自己來完成,最終受益的也是程序員自己。可以這麽說,程序員有責任編寫功能代碼,同時也就有責任為自己的代碼編寫單元測試。執行單元測試,就是為了證明這段代碼的行為和我們期望的一致。
集成測試(也叫組裝測試,聯合測試)是單元測試的邏輯擴展。它的最簡單的形式是:兩個已經測試過的單元組合成一個組件,並且測試它們之間的接口。從這 一層意義上講,組件是指多個單元的集成聚合。在現實方案中,許多單元組合成組件,而這些組件又聚合成程序的更大部分。方法是測試片段的組合,並最終擴展進 程,將您的模塊與其他組的模塊一起測試。最後,將構成進程的所有模塊一起測試。
系統測試是將經過測試的子系統裝配成一個完整系統來測試。它是檢驗系統是否確實能提供系統方案說明書中指定功能的有效方法。(常見的聯調測試)
系統測試的目的是對最終軟件系統進行全面的測試,確保最終軟件系統滿足產品需求並且遵循系統設計。
驗收測試是部署軟件之前的最後一個測試操作。驗收測試的目的是確保軟件準備就緒,並且可以讓最終用戶將其用於執行軟件的既定功能和任務。
驗收測試是向未來的用戶表明系統能夠像預定要求那樣工作。經集成測試後,已經按照設計把所有的模塊組裝成一個完整的軟件系統,接口錯誤也已經基本排除了,接著就應該進一步驗證軟件的有效性,這就是驗收測試的任務,即軟件的功能和性能如同用戶所合理期待的那樣。

測試理論學習