在軟件測試中除了根據測試用例和測試說明書進行功能測試外,還需要進行隨機測試(Ad-hoc testing),隨機測試是沒有書面測試用例、記錄期望結果、檢查列表、腳本或指令的測試。主要是根據測試者的經驗對軟件進行功能和性能抽查。隨機測試是根據測試說明書執行測試用例的重要補充手段,是保證測試覆蓋完整性的有效方式和過程。
隨機測試主要是對被測軟件的一些重要功能進行復測,也包括測試那些當前的測試樣例(TestCase)沒有覆蓋到的部分。另外,對于軟件更新和新增加的功能要重點測試。重點對一些特殊點情況點、特殊的使用環境、并發性、進行檢查。尤其對以前測試發現的重大Bug,進行再次測試,可以結合回歸測試(Regressive testing)一起進行。
隨機測試主要是對被測軟件的一些重要功能進行復測,也包括測試那些當前的測試用例沒有覆蓋到的部分。另外,對于軟件更新和新增加的功能要重點測試。重點對一些特殊點情況點、特殊的使用環境、并發性、進行檢查。尤其對以前測試發現的重大Bug,進行再次測試,可以結合回歸測試(Regressive testing)一起進行。
理論上,每一個被測軟件版本都需要執行隨機測試,尤其對于最后的將要發布的版本更要重視隨機測試。隨機測試最好由具有豐富測試經驗的熟悉被測軟件的測試人員進行測試。對于被測試的軟件越熟悉,執行隨機測試越容易。只有不斷的積累測試經驗,包括具體的測試執行和對缺陷跟蹤記錄的分析,不斷總結,才能提高。
客戶端隨機測試思想
隨機測試是根據測試者的經驗隨機的選取功能點對軟件進行有針對性的測試。 這種測試沒有用例的指導,完全根據測試員自己的經驗和相關知識來測試。
一、作隨機測試之前的一些前提條件
1)熟悉產品的各項功能和產品的邏輯結果
2)熟悉測試用例
3)完整的執行過測試用例
4)熟悉在用例測試階段所發現的缺陷和缺陷的分布情況
5)測試人員具備一定的測試經驗,對缺陷有敏銳的洞察力。
二、隨機測試功能點的選取
1)根據用例測試階段對產品的了解選取缺陷比較密集的功能模塊。
在發現很多缺陷的地方,一定可以發現更多的缺陷。我們在做隨機測試的時候,首先會先統計一下,之前哪些模塊被發現的缺陷最多,那么接下來一定要重點的在那個模塊里發掘一下缺陷。
2)根據發現的一次性缺陷或重現率比較低的缺陷涉及的功能點選取隨即測試功能點。
缺陷產生的過程一定可以重現,重現率比較低的缺陷是隱藏比較深的缺陷,這些缺陷可能正是導致軟件無法上線的原因。因此重現這些隱藏缺陷是十分重要的工作。
3)與開發人員溝通了解軟件的缺陷。
首先可以了解到程序本身哪些地方最復雜,最薄弱,這些地方最容易發生什么錯誤,其次可以了解程序員最容易在哪些地方犯哪些錯誤。前者通過對程序的熟悉可以比較好的掌握,后者可以通過對缺陷的分析得到。
4)根據經驗選取功能點。積累了一定的測試經驗以后,有時測試就是一種感覺。
5)隨機選取功能點。經過上述四種情況對功能點進行篩選后,剩下的功能點可以隨機的選取。隨機選取功能點只是在隨機測試中選取功能點的一個方面,更多的時候還是要有針對行的選取功能點。
三、功能點的隨機測試
1)以測試用例為基礎。
首先要明確隨機測試是對功能點進行隨機測試而不是隨機測試功能點。因此每一個功能點都是測試對象,依照測試用例可以有效地覆蓋所有的功能點。
2)考慮操作前的狀態
3)操作過程中的狀態改變
4)考慮到其他功能對該功能點的影響
5)考慮該功能點直接對其他功能點的影響
6)考慮該功能點間接對其他功能點的影響
7)操作步驟地追蹤。
在測試中常常會出現這樣的情況,進行一系列復雜的操作之后缺陷突然呈現在眼前。這個時候如果能清晰地描述出具體的操作過程對于缺陷的重現是十分有利的,這也對最后的缺陷定位和簡化缺陷的重現步驟提供了保障。交互性的模塊追蹤步驟主要考慮自己操作步驟地最終和對方操作步驟地追蹤。有時缺陷的出現并不是完全是由自己的操作而發生的,別人的操作也有可能導致缺陷,只有綜合自己和對方的操作才能是完整的過程追蹤。
8)簡化缺陷重現步驟。
尋找缺陷要準確定位,開發和測試是一個整體,時間是等量的,時間不在你身上浪費,就是在他身上浪費。如果測試人員每次發現的缺陷 描述不清楚或者重現缺陷的過程非常復雜,并且多個問題潛在的錯誤原因是一個,雖然操作可能稍微有些變化。這樣開發人員在重現缺陷 的時候他要調試跟蹤判斷,很花費時間,而且效率低。如果測試人員發現缺陷 的時候多嘗試可以更加準確的定位缺陷 步驟和原因,給開發人員最精確的步驟和準確的描述,這樣整個團隊才能高效。簡化缺陷重現的步驟主要體現在減少涉及的功能點的操作上。
9)測試經驗的積累
經驗是來之不易的東西,我們需要在日常測試中不斷的積少成多,并且多和同行交換測試心得和測試經驗豐富自己的測試手段和測試角度。經驗在隨機測試中可以幫助我們少走彎路,讓我們的目標更加明確,更容易發現缺陷.
10)測試心態
做測試最重要的是心態,這里說的心態一方面指的是測試人員對程序的看法。作為測試人員,在拿到測試程序時,一定要保持悲觀的心態,認定這個程序有很多缺陷和錯誤,甚至認定這個程序很垃圾,想像微軟出來的程序都有很多缺陷,那我們的程序也一定需要我們去狠狠的去發掘缺陷。不能因為這個模塊已經被測試過好多遍,或者這個這個模塊非常小非常簡單就忽略了對這個模塊的測試。另一方面,要有足夠的耐心。首先,在作隨機測試之前比較明顯的缺陷和操作步驟比較簡單的缺陷已經基本上被找到,隨即測試主要是挖掘深層次的缺陷。相對用例測試操作步驟相對復雜,因此隨機測試可能會出現長時間找不到缺陷的情況,如果心浮氣躁可能放過對該模塊的測試,這時需要耐心的測試才能找到缺陷。
11)與程序員進行溝通
原文轉自:http://www.anti-gravitydesign.com