1. 程式人生 > >軟體測試相關概念以及原則(二)

軟體測試相關概念以及原則(二)

敏捷測試:1、強調從客戶角度進行測試

     2、重點關注迭代測試新功能,不再強調測試階段

     3、儘早測試,不間斷測試,具備條件即測試

     4、強調持續反饋

     5、預防缺陷重於發現缺陷

敏捷測試 VS 傳統測試

傳統測試:1、測試是質量的最後保護者

     2、嚴格的變更管理

     3、預先的計劃和細節的準備

     4、重量級文件

敏捷測試:1、開發和測試人員是緊密合作,大家都有責任對軟體負責

     2、變更是可接受的,擁抱變更

     3、計劃隨著進展時常調整

     4、只需要絕對必要的文件

 

基於指令碼的測試:

Script-based Testing:先做測試設計再做測試

Script Testing(ST)

Exploratory Testing(ET):探索式測試;比較流行的測試方法。通過探索我們的被測系統,帶著問題來使用我們的被測系統,並在探索的過程中發現測試的要點,找出我們被測系統的問題,在測試過程當中測試設計和測試執行原則是並行的,對於測試人員來說更加自由,更加依賴測試人員的責任。

1、完全拋開測試指令碼的測試

2、它是一種測試風格,思維,而不是一種測試技術

ST VS ET

ST:1、系統性強

   2、容易管理,控制

   3、設計在先,執行在後

   4、主要是驗證自己的思路

   5、可預見性

ET:1、自由靈活的

   2、和ST是互補的

   3、執行和設計(思考)並行

   4、不斷和系統互動,帶著問題測試

   5、學習的過程

探索式測試的優點:1、更能激發測試人員的創造性和工作樂趣

         2、增加了發現新的或較深入bug的可能性

         3、在較短時間內找到更多bug以及對SUT做一個快速的評估

         4、有利於更加有效的實施自動化

         5、更加適用於敏捷專案

         6、減少了在簡單,繁複上用例的無謂編寫時間

      缺點:1、測試管理上有侷限性,膠南協調和控制

         2、對於bug的重複利用和中時尚作用有限

         3、對測試人員的測試技能和業務知識深度依賴較大

         4、只有在被測系統已完全可用的前提下才更有作用

         5、ET的生產率很難定義,測試的過程和測試完成度很難度量

         6、ET本身較難進行自動化,更多的是看測試人員

---------

區域性探索式測試:

輸入:接受輸入,產生輸出,儲存資料,進行運算。從輸入順序,輸出內容,輸出異常幾個角度來考慮我們的測試要點

狀態:臨時狀態和永久狀態。執行時有效,階段有效這種相對臨時的狀態。資料庫儲存、檔案儲存為永久狀態。狀態的資訊它可以協助我們來更加有效的判斷我們的測試輸入和輸出

程式碼路徑:更多指程式碼覆蓋

使用者資料:更多的應該採用真實使用者資料

執行環境:軟體作業系統、跟系統互動的第三方系統、系統的配置資料、執行系統的硬體裝置

--------

全域性探索式測試:漫遊測試法

商業區:軟體從啟動到關閉這期間使用者可能使用到的功能

旅館區:軟體在休息,也就是沒有在執行時的一些功能,一般指執行在後臺的或者一些定時任務

歷史區:軟體版本歷史遺留程式碼當中的一些功能或者在以前測試中發現的較多問題的功能

旅遊區:比較關注的功能。新手指引、新使用者註冊

娛樂區:系統功能之外,輔助的特性、功能

破舊區:廢棄的功能

 

執行探索性測試:

know you mession:需要了解測試任務的重點

learning session:詳細的學習和探索被測系統,瞭解系統的業務邏輯,具體功能

coverage session:實施階段,完成主要功能點的測試驗收,覆蓋測試

deep session:在上一階段的基礎上來進行深入發散式探索式測試,挖掘深層次問題

close session:總結,整理測試過程中出現的資訊,分析測試過程是不是有遺漏

缺陷大掃除:針對資訊進行大掃除

 

基於風險的測試---RBT

定義:一種基於對軟體失效的風險評估並以此知道測試計劃、設計、執行、結果評價的軟體測試型別

 

哪些是風險?

質量風險:軟體功能、應用性、效能、軟體功能缺失、資料轉換

管理風險:人員技能不足、人力不足、測試環境不具備、被測系統的需求不清晰

 

優點:1、有限測試高風險,所以版本質量更加有保障

   2、對專案識別風險的人要求較高,對功能和資料比較詳細,如果準確率達不到要求,很容易產生風險評估率的偏差

 


按測試型別分類:功能測試,效能測試,相容性測試,部署測試,易用性測試,文件測試,本地化測試,安全測試,無障礙測試,可靠性測試

----------

功能測試:根據產品特性,操作描述和使用者方案,測試一個產品的特性和可操作行為以確定他們滿足設計要求。簡單來說,就是對提供給使用者的軟體功能進行驗證

針對的問題:功能錯誤或遺漏、介面問題、效能錯誤、資料及訪問錯誤、初始化及終止錯誤

功能測試工具:QTP/winrunner:使用較多

       silkTest、Rational、robot

開源:selenium、watir、sikuli

--------

效能測試:驗證軟體系統的效能,開源滿足需求規格給定的指標要求

衍生出:負載測試。在我們測試過程中來逐步增加負載,並且記錄下被測系統相應的效能表現,最終確定出我們系統在正常的指標範圍下最大的負載

--------

壓力測試:測試系統在極限情況下的壓力情況,測試在什麼樣的負載壓力下會導致系統的失效,不能夠正常執行,測試系統所能承受的最大極限 

--------

穩定性測試:稍大於正常業務量的一個負載,對系統進行持續的、長時間的測試

效能指標:併發使用者數、每秒事務數、系統響應時間、裝置效能

效能測試工具:LoadRunner:使用較多,silkperformer,jmeter,webload

靜態效能評估(重點):開發web應用時,基於一系列web應用頁面效能優化的最佳實踐對web應用的應用進行靜態分析,並給出評估結果的效能分析方法

        工具:yslow,pagespeed

        應用效能管理:APM,提供對系統的實時監控以實現效能管理、故障管理的解決方案

   聽雲:www.tingyun.com

---------

安全測試:對軟體產品進測試以確保其符合產品需求和質量標準

安全測試工具:Appscan、webinspect、nessus、nmap、metasploit、webscarab、fortify(白盒測試)、W3AF

-------

滲透測試:通過模擬對軟體系統的惡意攻擊行為來評估系統安全性的一種測試

滲透測試 VS 安全測試

滲透測試:攻擊。目的就是攻破我們的軟體系統以證明系統存在的問題。------關注“點”

安全測試:防。對整個系統防禦的功能進行系統的考慮來驗證。------關注“面”

--------

相容性測試:軟體本身的相容性,不同平臺軟體對執行裝置的相容性,軟體互操作性(比如開發的軟體是否與微信、qq等其他第三方軟體一起使用),瀏覽器核心

瀏覽器相容性測試工具:Browsershorts、Browser  Sandbox、Google瀏覽器相容性測試外掛

效能知識庫網址:www.w3help.org

---------

文件測試:針對軟體產品的交付品,配套的文件類部件的測試。如使用者手冊、使用說明、使用者幫助文件等

關注要點:完整性、正確性、一致性、易瀏覽性、易理解性

--------

可靠性測試:軟體可靠性、硬體可靠性

-------

易用性測試:指測試使用者使用軟體時是否感覺方便,是否能保證使用者使用體驗的測試型別

-------

本地化測試:針對軟體的本地化版本實施的針對性測試(比如中文、英文)

主要測試內容:語言、書寫習慣、時區、日期格式、貨幣、當地風俗、法律法規、政治敏感內容

--------

部署測試:也稱安裝測試,主要驗證系統部署過程,並確保軟體經過安裝測試後可以正常使用

主要測試內容:在不同環境下的部署驗證,參照部署文件執行,過程的合理,正確性,基礎資料

-------

無障礙測試:可訪問性測試,是指軟體需要提供便於特殊人群使用的功能,包括視障、聽障、老年人、身體殘疾使用者等

------

迴歸測試:軟體功能修改後,對軟體進行重新測試以確認修改沒有引入新的錯誤或導致其他部分產生錯誤。迴歸測試的中心在關鍵模組和重點功能元件

------

冒煙測試:來自於硬體板卡驗證術語。軟體上則用於確認程式碼中的更改會按預期執行,切不會破壞整個版本的穩定性

------

A/B測試:多用於網際網路行業。通過為頁面提供兩個版本給使用者使用並記錄相關使用者行為資料,來確定更優化設計的一種方案

A/B測試實施要點:1、多個方案並行

         2、每次測試僅改動一個變數

         3、按照某種規律進行優勝劣汰

測試工具:visual website optimizer 視覺化網站優化器

&n