qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          探索性測試(四):探索性測試并不是快速測試

          快速測試也是一種測試的方法,它既可以照本宣科的進行,亦可以探索的方式進行。盡管一個使用高度探索性方法進行測試的測試員可能會執行很多快速測試,而快速測試也通常是運用探索性測試方法時的重要因素。但是,快速測試和探索性測試并不是一樣的。

            快速測試是需要少量時間或一點精力去準備和執行的廉價測試。這類測試甚至不需要具備與待測試的應用程序相關的大量知識或相關的業務領域知識,但它們有助于快速地獲取新的信息。快速測試不是強調廣泛和完整,它的目的是用最低的成本快速揭示信息。

            快速測試是了解產品、識別區域風險及薄弱環節和困惑部分的一個好方法。一個測試員幾乎總是在某個測試活動中同時進行一兩個其它測試活動。作為最開始的活動,一組快速測試有助于一個冒煙測試或正確測試的進行。幾輪相對無計劃、非正式的快速測試可以幫助你發現或制定出一個更全面或更正式的測試計劃。

            在快速軟件測試類別中,James Beach 和我提供了許多快速測試的例子。你將會注意到其中的一些例子被成為旅行。注意,并不是所有的旅行都是快速進行的,而且并非所有的快速測試都是旅行。

            幸福的路徑

            以你預計的、終端用戶可能進行的方式,從開始到結束完整地執行一個任務。以最簡單的、用戶最可能的方式、最直截了當的方式使用該產品,正如最樂觀的程序員或設計師想象的用戶可能進行的方式。尋找可能使一個通情達理的人困惑、遲緩或不快的任何問題。Cem Kaner 有時稱這種測試為“認同測試”。 傾向于去了解該產品,而不是發現故障。如果你的確發現明顯的問題,那能對于該產品來說是個壞消息。

            變化的旅行

            使用一個產品,尋找可變因素并使其發生改變。使其在每個層面盡可能不同。如果你使用快速檢測的方法來了解,那就要尋找和把重要的變量歸類。尋找他們潛在的關系。當我們第一次接觸一個產品時,識別和探索變化是我們測試基本結構的一部分。

            抽樣數據旅行

            利用任何你能用到的所有的抽樣數據。對于某一種類型的快速測試,最好使用一個簡單的值,它的效果是容易理解或計算的。而對于另一種類型的快速測試,選擇復雜的或者極端的數據集。觀察數據輸入的單元或者格式,并且試圖改變它們。挑戰程序設計器認為會拒絕或者不恰當的數據。一旦你關于合理或者中度質疑數據得到處理,你可以選擇嘗試去做。。。。。。

            攻擊性輸入

            發現輸入的來源并企圖違反限制的輸入。嘗試一些異常數據的例子:期望大批輸入卻輸入零;期望正數卻使用負數;期望大小合適的數卻輸入巨大的數;僅支持處理數字的地方使用字母;反之亦然。在一個領域使用幾何擴展字符串。雙倍長度直到產品崩潰。以不同于你想“正常”或“預期”想法的使用字符。給系統注入任何類型的噪音,看看會發生什么。

            人們偏向去討論非常多的攻擊性輸入?;蛟S是由于攻擊性輸入被黑客使用來破壞系統;或許由于攻擊性輸入相對更直截了當?;蛟S由于它相對比較容易描述?;蛟S由于攻擊性輸入會產生巨大的意想不到的結果。然而它們絕不是唯一一種快速測試,當然也不是使用探索性方法去測試的唯一方法。

            文檔旅行

            查閱聯機幫助或用戶手冊,并找到一些關于如何完成一些有趣活動的使用說明。明確的做這些。然后通過使用說明即興發揮并嘗試去做。如果你的產品有一個用戶說明,那就按照說明操作。你可能發現產品或者文檔的問題。無論哪種方式,你已經發現一個潛在的很重要的不一致性。即使你不暴漏一個問題,你仍然會了解這個產品。

            文件旅行

            看看存在exe 文件的文件夾。檢查目錄結構,包含的分支。尋找Read ME、幫助文件、日志文件、安裝腳步、conf 、ini 、rc文件。審視DLLs的名字,并推斷它們可能包含的功能或它們的缺失可能會破壞應用程序的方式。使用任何你有的輔助材料來引導和集中你的行為。另一種為這類測試收集信息的方法是:使用工具去監控這個安裝,把工具的輸出作為一個起點。

            復雜的旅行

            使用一個產品,尋找最復雜的特性、最有挑戰的數據集、最大的依賴關系。不僅要尋找隱藏的角落和縫隙,而且要尋找程序類似的主要交通區域,繁忙市場,辦公大樓,火車站,這些地方有大量的互動,bug 可能混跡于人群之中。

            菜單、窗口和會話旅行

            使用一個產品并尋找所有的菜單(主菜單和上下文菜單)、菜單選項、窗口、工具欄、圖標和其它的控制欄,把所有的都運行一遍,對它們進行分類,或者構建一個思維導圖。

            鍵盤和鼠標旅行

            使用一個產品,尋找所有你需要用到鼠標和鍵盤的地方。在鍵盤上敲擊所有的鍵,敲擊所有f鍵,Enter 鍵、Tab 鍵、Esc 、Backspace; 通過字母順序運行,結合每個鍵與轉變Ctrl 、Alt、 Windows鍵CMD或其它選項,在其它平臺上,歐洲的AltGr鍵。單擊(右,左,左右同時,雙擊,三重)任何東西。按鍵的時候與shifted一起按。

            中斷

            開始一個活動并在中途停止它們。在不合適的時候終止它們。使用Cancle按鈕,O/S級中斷(ctrl-alt-delete或任務管理器)。安排其他程序中斷(比如屏幕保護程序或病毒檢查)。同時嘗試暫停一個活動并返回。把你的筆記本電腦進入睡眠或休眠模式。

            破壞

            當系統在一個正常的狀態,開始使用一個功能,然后改變其狀態。當文件處于編輯狀態時刪除它;彈出磁盤;拔出網線或電源線,通過類似的方法獲得機器的不正常狀態。這和中斷相似,除非你期望功能自己通過檢測不再能安全運行來自我中斷。

            調整

            設置一些參數到一個特定的值,然后,在隨后的任意時候,在沒有重置或重新創建包含文檔或數據結構的情況下,重置那個值為其它別的東西。程序員通常期待通過GUI進行對配置和變量進行調整。黑客和有創見的人希望找到其他方法來改變這些值。

            機器打樁

            不管你在做什么,做更多的事,以及在這些事情上做其它的標注。獲得更多的過程;嘗試建立更多目前同時存在的狀態。調用對話框和非模式對話框嵌套。在多用戶系統情況下,讓更多的人使用該系統或使用工具模擬這種狀態。如果你的測試似乎引發奇怪的行為,在同一個地方堆積,直到讓這個異常變得更極端。

            連續的使用

            測試時,不要重啟系統。讓窗口和文件打開,讓磁盤和內存使用量掛載。你希望隨著時間的推移,系統表現出失去了對任務的跟蹤或者陷入了困境。

            功能相動

            發現各個功能互動或共享數據交互的地方。尋找任何相互依賴性。探索它們,開發它們和給它們加壓。尋找程序重復的地方或允許你在不同的地方做同樣的事情的地方。例如,對于數據顯示在不同的方法和不同的地方,尋找不一致性。再比如,把所有的表單中的字段設置到它們的最大值,然后遍歷報告生成器。

          召喚幫助

            在一些操作或活動中使用調出上下文相關的幫助功能。查看這個文件的幫助文件是否有效地解答了問題,或者是否它通過在屏幕的簡單重述低估了用戶的智商;甚至這種幫助是否切實可用。

            瘋狂點擊

            你有沒有注意到一只貓或一個孩子可以輕松是系統崩潰?測試不只是“敲打鍵盤”,但這句話也并非空穴來風。試著去敲打鍵盤。盡量到處點擊。屏幕上每平方厘米都要點擊到,直到你找到一個秘密按鈕。

            鞋測試

            對于一個非常廉價的壓力測試,使用鍵盤上的自動重復鍵。尋找按一個鍵可用進行的對話框,例如,另一個對話框(可能是一個錯誤消息),這個對話框的按鍵與能返回到第一個對話框的按鍵相關。給鍵盤穿上鞋并讓其行走。讓這種測試運行一個小時,如果有一個資源或內存泄露,這種測試可以暴漏它。注意,一些輕量級的自動化可你為你提供虛擬的鞋。

            閃爍測試

            找出產品的某一個方面,這個方面能產生大量的數據或能夠迅速進行一些操作。瀏覽一個長日志文件過瀏覽數據庫記錄,故意滾動太快而看不到細節。注意線長度的趨勢,或數據的外觀及形狀。使用Excel 的條件格式特征來突出數據細胞之間的有趣的差異。軟化你的注意力。如果你有一個具有銀行顯示器的測試實驗室,掃描或瀏覽它們;不正常的行為模式能出人意外的容易識別。

            錯誤消息的遺留

            實現功能是對程序員的獎賞。而由于一些錯誤或例外會導致一個心理問題:標簽本身表明某處出錯了。人們往往會主動避免思考故障或錯誤,因此,程序員有時會糟糕地處理一些錯誤。這時候,使錯誤信息發生并仔細檢測。注意錯誤和正常路徑之間的細微的行為差異。使用自動化使相同的錯誤出現成千上萬次。

            資源匱乏

            逐步降低內存、磁盤空間、顯示分辨率和其他資源。保持產品資源匱乏,直至它崩潰,或者優雅的降低功能(這是我們希望的)

            多個實例

            同時運行大量的應用實例。開放、使用、更新和保存相同的文件。在不同的窗口操作。注意對資源的競爭和配置。

            瘋狂配置

            用非標準的或非默認的方式來修改操作系統的配置。這種操作在安裝這個產品之前或之后都可以進行。打開“高對比度”可訪問性模式,或改變本地話默認。改變系統硬盤的字母。把東西放在分默認目錄。使用注冊表編輯器(用于注冊中心條目)或文本編輯器(用于初始化文件)的方式來破壞你程序的設置,這都將引發一個錯誤消息,恢復或引出一個正常的默認行為。

            重述:快速測試有可能是高度探索性的,但它們只是探索性測試的一個種類。不要輕信快速測試或某些類型的快速測試都是探索性測試。

          相關鏈接:

          探索性測試(一):探索性測試不是游覽

          探索性測試(二):探索性測試不是終結性測試

          探索性測試(三):探索性測試并不是不使用工具的測試

          posted on 2013-03-08 15:08 順其自然EVO 閱讀(212) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

          <2013年3月>
          242526272812
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 望城县| 禄丰县| 乡宁县| 泌阳县| 天长市| 永胜县| 岑溪市| 龙陵县| 望都县| 凌海市| 方山县| 东宁县| 南京市| 富阳市| 奉贤区| 吴桥县| 四平市| 石家庄市| 石景山区| 西乡县| 县级市| 行唐县| 沾化县| 呼玛县| 曲麻莱县| 屏山县| 饶河县| 兰州市| 信宜市| 稷山县| 平顶山市| 墨脱县| 晋中市| 铁力市| 句容市| 金寨县| 江门市| 固始县| 广州市| 淮安市| 清河县|