如何開展測試?


如何開展測試?

1、需求測試

對需求設計的正確性、合理性、實施性進行測試,盡早發現需求中的問題並跟進解決。

 

 

2、設計測試

測試人員的設計除了常規的測試計划、測試用例、測試准備等工作外,應包含對系統的設計。設計測試應注重檢查系統設計的3個特性,必要性、正確性、最優性。

 

 

3、過程測試 

 

 (1)分層測試

  分層測試強調的是測試的層次感。讀者可能有過這種感覺,有層次感的面包比一般的面包口感更好。筆者所在的部門通過分層測試的思想將整個被測系統按照DATA層、API層、UI層進行分割,這樣做的優勢是什么呢?   

  測試提前介入是所有項目都提倡的,目的是把問題攔截在前期,降低問題修復成本。分層測試不依賴於完整系統,可以通過直接調用底層接口進行測試,這樣就不需要等到整個系統開發完成才能測試。其實,分層測試的思想和自底向上的系統開發模式是不謀而合的;分層測試同時能夠體現出精准:我們都知道,離問題產生的地方越近,就越容易觸發問題。分層測試的切入點就是層與層之間的接口,從機制上更接近出問題的地方,因此也更容易命中目標,也能直接或間接地降低修復成本。   分層測試中的分層示意圖如圖1-4所示。   

  1)DATA層測試:數據層測試首先對數據庫中原始數據及聚合數據的准確性進行驗證,如精度、數量、存儲有無丟失等,在保證這一層質量后進入下一層測試。   

  2)API層測試:首先需要強調,接口測試也是功能測試的一部分,通過接口調用驗證服務器返回數據是否准確,服務端可能會將數據進行運算后返回,通過接口層驗證保證數據傳輸的准確性,保證接口層通過后進入下一層測試。   

  3)UI層測試:通過覆蓋系統所有邏輯路徑保證數據展示層的正確。  

(2)外部解耦

  外部依賴有時是阻礙測試進度的一個主要原因,但是一個系統的運行往往離不開外部系統的依賴,如網絡環境、消息依賴和數據依賴等。測試過程中如何降低系統間的耦合度是能否高效進行測試的關鍵。筆者所在部門通過MQ(Message Queue, 消息隊列)消息自動發送組件模擬外部依賴消息,可以解決消息依賴,降低耦合度,該工具適用整個筆者所在部門的業務,如利用該工具模擬機票業務出退票消息,成功擺脫消息依賴,使測試效率及准確性大大提升。   

(3)流程仿真

  在系統測試過程中,往往有些極端情景或流程很難模擬,或者由於測試環境、數據量不足等原因導致無法進行模擬,但是這些情景或流程有時又非常重要,這就造成測試覆蓋不全的情況發生。筆者所在部門通過穿線測試理論得到靈感,將流程主信息進行標記追蹤,根據不同情況將流程引導至我們設定的極端情況中,覆蓋極端情況,驗證系統處理能力,很好地解決了這一難題。  

4.界面測試   

  界面是電商網站與用戶交互的最直接的層,界面的好壞決定用戶對網站的第一印象。而設計良好的界面能夠引導用戶自己完成相應的操作,起到向導的作用。同時界面如同人的面孔,具有吸引用戶的直接優勢,設計合理的界面能給用戶帶來輕松愉悅的感受和成功的感覺,相反,設計失敗的界面,讓用戶有挫敗感,再實用強大的功能都可能在用戶的畏懼與放棄中"付諸東流"。既然界面的好壞如此重要,那么在測試過程中界面的測試就變得不可或缺。在具體的工作中,界面的測試應該關注哪些點呢?界面測試如圖1-5所示。  

(1)導航測試   

  導航一般位於頁面頂部或側邊區域。導航的作用是鏈接站點內的各個頁面。導航測試可以從以下4個方面進行。  

  1) 導航是否直觀?是否易於導航?   

  2) 導航、鏈接、頁面的結構和風格是否一致?   

  3) 導航文字是否用詞准確?意義表達是否簡單和准確?   

  4) 鏈接的頁面是否准確?   

(2)圖片測試   

  圖片測試包含圖片、動畫、邊框、顏色、字體、背景和按鈕等。圖片的測試可以從以下3個方面進行。   

  1) 需要保證圖片有明確的用途,如廣告宣傳作用,不能存在沒有意義的圖片。   

  2) 所有頁面中的字體和顏色及頁面的設計格式要保持一致。   

  3) 圖片的質量與大小也是需要關注的點。   

(3)內容測試   

  內容測試是檢驗頁面內提供的信息的准確性、正確性與相關性。內容測試可以從以下兩個方面進行。   

  1) 要驗證傳輸的信息是可靠的。   

  2) 要驗證傳輸的信息語法和拼寫是否正確。   

(4)展示測試   

  展示正確性測試是檢驗頁面上所有展示的內容是否正確,大小是否合適,是否符合普適的行為習慣。展示正確性測試可以從以下4個方面進行。   

  1) 驗證提示語是否合理、正確。   

  2) 驗證窗口調整大小后展示是否正確。   

  3) 驗證本地化是否正確。   

  4) 驗證標題、錯別字檢查。   

(5)合理性測試   

  合理性測試可以從以下3個方面進行。   

  1) 驗證頁面布局是否合理。   

  2) 驗證各控件是否合理、是否可編輯。   

  3) 驗證提示頁面是否合理。   

5、執行正式測試

5.1 功能測試

Web系統功能測試:

  A) 控件測試:對於單個邏輯功能,需關注其是否正確實現了需求定義的功能性需求,並需明確該需求是否確實應該在需求中體現。例如,登錄功能,需關注其能否正確實現合法數據能夠登錄,而非法數據拒絕登錄。

    控件測試-編輯框:需考慮其默認焦點、輸入長度、輸入內容類型(字母、漢字、特殊符號、腳本代碼等)、輸入格式限制、能否粘貼輸入、能否刪除文本等因素。例如,“用戶名”字段,測試時需考慮其用戶名長度、組成、格式限制、是否重名等情況,測試用例設計時,可利用等價類、邊界值方法詳細設計。

    控件測試-按鈕:常規按鈕提交請求或實現功能跳轉,也可能使用圖片或其他控件實現按鈕功能。對於按鈕而言,一般需考慮其默認焦點、按鈕視圖、按鈕功能、腳本觸發等方面。

HTML中的按鈕有三種屬性:Button[關注本身不具備數據提交傳遞功能,需綁定腳本]、Submit[關注的是自動提交數據信息]、Reset[關注光標是否位於第一個必填項,且功能實現]。

<input   type="button"   value="彈出窗口"   onclick = " window.open(’/test.hmtl’','_blank')">

<input name="Submit" type="submit" value="" class="us_Submit_reg">

    控件測試-圖片:圖片測試包括圖片內容、大小、顯示、Alt屬性、鏈接等幾個方面。

控件測試-音頻[驗證自動播放功能是否正常實現,音頻文件是否正確,播放插件能否正常啟用]、視頻[視頻除了測試播放控制、播放插件、鏈接安全性之外,還需考慮視頻的壓縮格式、數據緩沖情況]、下拉列表[關注其列表值是否正確,是否有重復,選中后能否正確傳遞、是否可以多選]

    控件測試-單選按鈕[關注單選按鈕是否有默認設置以及選中后能否保存數據]、復選框[多選后能否實現期望的業務功能,如批量設置、批量刪除,能否在提交請求時,觸發應該觸發的腳本代碼]、Flash插件

  B) 鏈接測試:被測對象包含很多鏈接,則可利用Xenu鏈接測試工具進行。

  C) 緩存測試-Cookie:當用戶訪問一個Web系統后,服務器為了在下一次用戶訪問時,判斷該用戶是否為合法用戶、是否需要重新登錄,或者希望客戶端記錄某些數據信息時,可設計Cookie以某種具體的數據格式記錄在客戶端硬盤中。

通常情況下,Cookie可記錄用戶的登錄狀態,服務器可保留用戶信息,在下一次訪問時可顯示該用戶上一次訪問時間,對於購物類網站,也可利用Cookie實現購物車功能。進行Cookie測試時需關注Cookie信息的正確性(服務器給出信息格式),當用戶主動刪除Cookie信息后,再次訪問時,驗證能否無須重新登錄。電子商務類網站可添加商品信息后刪除Cookie,刷新后查看購物車中的商品能否成功清除。

  緩存測試-session:會話,在Web系統中表示一個訪問者從發出第一個請求到最后離開服務,這個過程維持的通信對話時間。當然,Session除了表示時間外,還可能根據實際的應用范圍包含用戶信息和服務器信息。當某個用戶訪問Web系統時,服務器將在服務器端為該用戶生成一個Session,並將相關數據記錄在內存或文件中,某個周期后,如果用戶未做任何操作,則服務器將釋放該Session。為了識別每個用戶會話,服務器生成Sessionid來標識。

  從安全性角度考慮,用戶使用軟件系統進行業務操作時,除了需提供正確的帳號信息外,還可能需要提供正確的Sessionid,服務器將會對帳號及Sessionid進行驗證。以QQ郵箱為例,用戶登錄成功后,服務器將會產生一個sid來保證該用戶的安全性。

  緩存測試-Cache:Web系統將用戶或系統經常訪問或使用的數據信息存放在客戶端Cache(緩存)或服務器端Cache中,以此來提高響應速度。與Cookie和Session不同,Cache是服務器提供的響應數據,為了提高響應速度,存放在客戶端或服務器端。用戶發出請求后,首先根據請求的內容從本地讀取,如果本地存在所需的數據,則直接加載,減輕服務器的壓力,若本地不存在相關數據,則從服務器的Cache中查詢,若還不存在,則進行進一步的請求響應操作。很多時候,服務器用Cache提高訪問速度,優化系統性能。在Web系統前端性能測試時,需關注Cache對測試結果的影響。

 

  D) 文件上傳下載

測試時需考慮文件上傳格式、上傳內容、上傳后能否正確打開、上傳過程中如果出現異常是否有信息提示。對於文件下載則需考慮下載的文件能否正確打開使用、下載過程中能否中斷、中斷后可否續傳、下載保存的文件名是否正確等。

如果上傳完成后存在預覽功能,測試工程師應當驗證該預覽是否實現,並且預覽的圖片是否清晰,軟件系統如果對上傳的圖片進行壓縮,測試工程師需保證壓縮后的照片清晰可用

  E) 表格測試:表格測試一般關注數據顯示、翻頁、附加功能等幾個方面。

數據顯示:主要涉及標題欄、數據內容、字符編碼、列寬等幾個方面。

  F) 查詢測試:考慮條件組合、結果顯示兩個方面。

條件組合:正交試驗進行用例設計,然后再進行測試。

  G) 測試經驗庫:主要分為功能設計、信息提示、系統交互、容錯處理、數據邊界等幾個部分。

5.2 流程測試

  流程測試:被測對象的各個功能通過業務流程貫穿起來運行,模擬真實用戶實際的工作流程,從而驗證流程的正確性。絕大多數的業務系統由用戶管理、權限管理、工作流管理、基礎數據維護四大核心組件構成。

  流程測試通常分為三個步驟:流程需求分析、流程測試設計、流程測試執行。

5.3 安全測試

  安全測試常見的測試關注點以目錄設置、口令驗證、授權驗證、日志文件、Session與Cookie安全、異常操作、SQL注入等為主。

5.4 兼容測試

Web兼容性測試一般分為平台、分辨率、瀏覽器三個測試方向。

主流PC分辨率為1280*1024 、1366*768、1920*1080等,測試工程師進行PC分辨率測試時可參考此類數據。

分辨率測試是為了保證被測對象在不同分辨率的應用環境下,顯示正常,不會出現顯示錯亂、菜單丟失等現象。

常見的瀏覽器兼容性缺陷一般有以下幾種:

  • Javascript無法執行,導致功能失效;
  • 字體大小標准不一致,導致不同瀏覽器字體顯示錯誤;
  • 顏色標准不一致,導致不同瀏覽器顏色顯示不一致;
  • HTML標簽不支持,導致顯示錯誤;
  • 格式控制不支持,導致圖形顯示位置錯亂。

5.5 前端性能測試

  Web系統前端性能通常關注頁面容量、資源數量、傳輸壓縮、本地緩存、請求數量等方面。

    頁面容量:頁面設計規范,如“非首頁靜態頁面含圖片字節不超過60KB、全尺寸banner不超過14KB、豎邊廣告130×300 25KB”等。

5.6 接口測試

  接口測試:測試系統組件間的交互,以驗證接口間數據傳遞的正確性與性能是否符合用戶需求的測試過程。根據交互類型不同,分為系統內部接口、系統外部接口等兩個方面。

  系統內部接口:即系統內部各個組件間的數據交互,如用戶通過瀏覽器發送注冊信息到服務器,服務器進行驗證,以便完成注冊過程,這就是一個典型的系統內部接口處理過程。

  系統外部接口測試:主要包括第三方登錄、支付、物流等方面。系統外部接口測試主要關注接口數據傳遞的正確性、性能及安全性。

 6、軟件測試基本功

 

  結合筆者所在團隊的實際情況,團隊的目標是要能夠快速反應,支持業務快速迭代,同時要把測試人員從繁重的重復工作中解放出來,為內外提供賦能,提供好的測試平台、好用的測試工具和高效的測試方法等,這就對測試人員提出了一些新的要求。   

 

1.代碼   

 

  具備編寫代碼能力能夠提高測試效率,獨立或者輔助開發人員定位問題,而不是只報告問題,這也有助於幫助測試人員了解程序過程,完善思維方式,提升測試形象。在測試過程中懂程序的人更能夠深入地把程序測試好,通過走讀代碼發現邏輯上的缺陷、寫法上的繁瑣帶來的性能問題等,達到事半功倍。系統與數據庫打交道,程序部署在中間件上,中間件運行在操作系統上,即要懂數據庫知識、中間件知識、操作系統知識、硬件知識等內容。 

2. 需求

  根本在於實現用戶的業務需求,客戶或者產品的需求變化引起的系統需求的頻繁變更。首先應該確定計算機要做什么,需要達到什么樣的效果。

 

3. 工具思維與工具開發能力-運維

 

  具有工具思維可以幫助測試人員敏銳地發現可以節省人力的工作點,具備工具開發能力可以真正實現在繁重的重復工作中解放自己。 測試自動化是一個趨勢,不僅包括功能測試自動化,也包括性能測試自動化及測試環境自動化(持續集成),掌握運維手段也很重要。

 

4. 持續的學習能力,學會思考   

 

  持續學習不僅僅是一種態度,更是一種能力。持續學習新的技術和新的思想,了解新的動態趨勢等,能夠幫助測試人員更好地適應變化,擁抱變化。學會思考這個話題很寬泛,包括規避風險、項目推進、問題解決等測試人員需要的很多其他認知的過程。但是,如果測試人員不能持續學習,那么他的思考也會被限制。只有持續學習,不斷思考,才能知道在不可知的未來我們能夠提供什么,價值該如何體現。

 

5. 強大的內心   

 

  測試工作是一個不斷質疑與被質疑的過程。每天會面對很多繁重的工作,隨時隨地都可能被別人挑戰,還有可能在工作中遭遇質疑及誤解,想要將工作進行下去,強大的內心對測試人員來說極其重要。   

 

6. 測試思維   

 

  測試思維決定了測試人員能在測試這條路上走多遠。測試的核心技能不是測試理論,也不是測試工具,而是測試分析、測試設計、測試架構和測試規划等。"思維主導、技術輔助"一直是筆者所在團隊提倡的。學會分析任務,分清優先級,具備統一規划能力,能夠使工作達到事半功倍的效果。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM