天天看點

章16 缺陷轟炸和beta測試

版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/1517424

章16 缺陷轟炸和beta測試

利用軟體測試軟體是加快工作進展的絕佳方式,有助于找出其它方式可能遺漏的軟體缺陷。

成為高效測試員的另一條途徑是借助他人的力量。

一、讓他人測試你的軟體

1)讓其他人檢查軟體有助于打破殺蟲劑怪現象;

2)人們互相之間不僅看到的不同,而且測試方法也不同;

3)讓别人幫忙測試有助于消除煩躁心情;

4)觀察别人解決問題的方式是學習新測試技術的上佳方法。

人們很容易落入希望自己單獨負責測試軟體的陷阱中,不要這樣做。

二、測試共享

可能的話,除非軟體項目特别小,否則至少有幾個測試員來測試軟體。

一個常用方法是在一定時間内簡單互換測試任務。

至少可以讓他人花時間審查等價劃分和測試用例,他們可以根據自身經驗為測試提供新的或不同的思路。

共享測試任務的有趣方法是安排缺陷轟炸(bug bash)。

缺陷轟炸:是在一段時間(一般為幾個小時)内整個測試小組停下指定的正常測試任務,參加轟炸。

在缺陷轟炸中,選擇軟體中某一區域,所有測試員集中測試這個區域或者這組特性。

選擇區域可能是軟體缺陷聚集之處,看是否還有更多潛伏的問題;也可能是懷疑不存在軟體缺陷的區域。

利用缺陷轟炸可以确定普通測試是否會遺漏軟體缺陷,代碼編寫品質如何。

選擇區域雖然有不少内在規則,但是最終要用缺陷轟炸讓許多人從特定的軟體區域尋找軟體缺陷。

請求協助尋找軟體缺陷的最佳夥伴是産品支援或者客戶服務小組——他們在客戶打電話或者通過電子郵件咨詢問題時與客戶交談。

注意:産品支援人員接到的最常見求援電話可能是易用性問題。許多打來電話的人隻是想知道軟體怎樣使用,是以較好的做法是讓産品支援小組在設計早期協助測試,以指出和修複易用性軟體缺陷。

三、beta測試

另一種讓他人驗證和确認軟體的常用過程稱為beta測試(beta testing)。

beta測試是用于描述外部測試過程的術語。在該過程中,軟體分發給標明的潛在客戶群,讓他們在實際環境中使用軟體。

beta測試一般在産品開發周期行将結束時進行。理想情況下隻是确認軟體準備向實際客戶釋出。

beta測試的目标可能很廣泛,從讓新聞媒體報道軟體初期使用印象倒使用者界面确認到最後一步尋找軟體缺陷。

軟體測試員要讓管理beta測試的人知道beta測試的目标。

考慮以下幾個問題:

1)誰是beta測試者?

2)怎樣知道beta測試者使用過軟體?

3)beta測試可以成為尋找配置和相容性軟體缺陷的好方法;

4)易用性測試是beta測試能有所作為的另一個領域;

5)撇開配置、相容性和易用性,beta測試在尋找軟體缺陷方面竟然出人意料的差。

注意:試圖依靠beta測試來代替實際測試是軟體産品開發的主要誤區之一,不要這樣做。如果這樣做可行,為什麼軟體設計和程式設計不這樣做呢?

6)beta測試程式會耗費測試員大量的時間。

測試新手的常見任務是與beta客戶一起,幫助解決他們的問題,回答提問,确認他們找到的軟體缺陷。

經證明,beta測試是使獨立、翔實的測試資料回歸軟體的好方法,但是必須正确定義和管理才有效——幾乎可以說這也需要測試。

四、外包測試

許多公司的一種常用做法是向擅長各方面軟體測試的其它公司外包或送出部分測試工作。

配置和相容性測試通常是外包測試的理想選擇,這些測試一般需要擁有衆多不同硬體和軟體組合的大小測試實驗室,以及一些人員來管理。

本地化測試是另一個通常被外包測試的例子。除非擁有相當龐大的測試小組,否則配備能懂産品支援的各種語言的測試員是不可能的。

作為測試新手,雖然不要求決定外包哪些測試任務,但是如果外包的測試是你負責測試的軟體部分,你就需要與外包公司一起工作。

外包任務的成敗很大程度上取決于軟體測試員。考慮:

1)測試公司究竟要咨詢哪些測試任務?誰來定義?誰來準許?

2)他們遵守哪個進度?誰來制定進度?如果超過最後期限會怎樣?

3)為測試公司提供哪些内容?

4)測試公司提供哪些内容?至少要提供他們找出的軟體缺陷。

5)如何與測試公司聯系?

6)怎樣知道測試公司是否滿足期望?他們怎樣知道是否滿足期望?

以上課題在匆忙外包測試任務時常常被忽視。

五、總結

應該使用任何方式使測試更加有效。

1)是決定使用技術;

2)是要求增加人手;

3)是靠蠻力手工測試。

每一個軟體測試問題都是唯一的,每次測試都能夠學到新知識。