註冊 | 登入 | RSS Feeds
ZDNet | Taiwan.CNET.com |

廣告:
2003/11/17 07:00:38
如何做好測試工作?
IBM軟體事業處Rational業務協理 吳佳惠
PlurkFacebook
   
上篇文章談到「為何測試總是做不好」的原因,也知道它們其實都歸結於傳統軟體開發流程設計不當,而利用RUP(Rational Unified Process)的往復式(Iterations)流程法,可以徹底解決這些問題。接下來就要看看在RUP準則裡,應該在測試階段做到哪些工作,才能讓產品合乎「品質」要求。

「品質」這個名詞在許多領域都會被提到,也沒有完全相等與嚴謹的定義。不過在RUP所規範的軟體開發領域裡,我們認為「品質」應該滿足以下條件:一、產品應該按預定計畫流程完成生產;二、產品應該滿足或超越預定需求;三、前述需求應該可以被預定的方法予以衡量。

上一篇文章談的主要是生產流程,也就是「測試」在整個開發流程裡所扮演的角色與介入方式。這篇文章要介紹該用什麼方法或衡量工具,才能讓產品滿足或超越預定需求。

測試的五個面向

「測試在大多數人的認知中,大概就是測試「軟體產品的功能」罷了,而且由於時間有限,約莫只要把「功能測試」確實做完也就很不錯了。不過,在RUP準則裡,我們認為合乎「品質」的測試應該做到下述五個面向的工作:分別是功能測試、可靠度測試、效能測試三個基本測試工作,及使用性測試與支援性測試兩個延伸性的測試工作。

  • 功能測試(Functional testing):這是最基本的測試。主要目的在於精確檢測系統在各種使用環境(usage scenarios)中的運作與反應行為,驗證產品是否確實符合預定需求。此外,它也包括對系統特性(features)及安全性(security)的測試。

  • 可靠度測試(Reliability testing):這是第二個測試面向,目的在檢測系統在預設環境下的運作是否正常與穩定。例如,有些系統會隨著運作時間拉長而產生漸次延遲等各種不正常的現象,測試人員必須找出導致異常的原因,確保系統運作是「完全可靠,不會傾向失誤(包括系統崩潰、回應停擺、佔用記憶體等)情形」。 以下是建議進行的檢測工作項目,包括系統結構測試(測試程式碼的語法及處理程序是否正常、簡潔,而且不會造成延遲或瓶頸)、壓力測試(以嚴酷環境來檢測出系統的運作上限)、競爭測試(同時有兩個以上要求被提出時,系統面對這種競爭要求的真實反應情形)、容量測試(系統處理大量資料的反應行為)等。

  • 效能測試(Performance testing):目的在於檢測當系統運作於上述兩個條件(功能與可靠度)的環境下,其面對平均負載與尖峰負載時的真實反應能力。簡言之,就是測試系統的真正效能表現。效能測試包括標竿測試(benchmark tests)、負載測試(load tests)與效能表現測試(performance profile tests)。

    上述三種測試面向,是我們認為要完成一項「品質產品」最基本的測試工作。此外,也建議再進行以下兩種測試。

  • 使用性測試(Usability testing):目的是檢測系統是否可以讓最終使用者覺得方便好用。因此這項測試會從使用者角度出發,評估系統在人類行為、美觀、操作介面、文字說明、輔助與導覽工具、訓練教材等涉及使用者操作行為方面的表現。

  • 支援性測試(Supportability testing):為檢測系統是否可以部署在預設的環境,並評估其在被使用時的維護與後續支援能力。此外,這個測試也包括安裝測試(installation tests)與環境調校測試(configuration tests),可以檢測系統在什麼樣的硬體環境下會運作得更好。

    從上述五個面向的測試可以清楚看出,RUP準則幾乎把所有「設想之內」與「意料之外」的情形與環境都納入測試工作範圍。目的就是要透過一套嚴謹的程序品質(Process Quality)規範,確保產品品質(Product Quality)。

    測試工作相當多樣且複雜,要完全做好並不簡單;訣竅就在於善用工具。

    善用工具

    大家都清楚善用工具的好處。例如,使用電錶而不是自己的手去測量電壓或電流,或是當朋友之間爭論到底誰比較胖,除了找第三者提供「目測答案」,還會利用「體重計」或「脂肪儀」來做精準的量測,如此才能取得有公信力的答案。

    上述都是使用工具的範例。同樣的,軟體測試工作也必須運用合適的工具。測試是相當繁瑣複雜、且不容出錯的工作,測試人員需要模擬、檢測、追蹤、報告的各種環境與控制變因之龐雜,其實已經超出人類大腦的想像與運算能力,而且任何一項測試行為都可能因為缺少嚴謹控制的環境或變因而被扭曲,甚至導致完全相反的結果。此時唯有具備精準控制與監視能力,而且不會疲勞、偷懶、發脾氣、生病的科學性與專門工具,才能完全勝任這些工作。

    測試的真諦

    「合格的測試」才能確保合格的產品,而且也唯有合格的產品才是開發團隊與客戶所冀求的,這就是測試工作的真諦。所以,當你花了一千億美元經費建造一艘太空梭之後,請不要以一千美元的草率測試方法毀了它。

  •  
     

    thumbs Upthumbs Down
    +1
    推薦
    1/1 票
     

     
    加入我的圖書館 訂閱關鍵字
    加入網路書籤> 加入funP | 加入Google書籤 | 加入Yahoo!奇摩分享書籤 | 加入twitter | 加入facebook | 加入plurk |
    友善列印 | 轉寄朋友

    回應   對本則報導有任何意見或看法嗎?歡迎留言
    1.Monkey 於 2004/07/31 23:39 回應
    看似四平八穩
    知道是吳女士執筆的文章時, 頗感訝異.
    或許對吳女士的印象還停留在幾年前惠普
    時期,所以現在看她對軟體開發流程洋洋
    灑灑的論述. 總覺得哪怪怪的... 不過,
    這些年似乎世道就是如此.. 去年還聽過
    "惠普其實是個不錯的軟體公司"

    Rational在軟工界地位挺高的, RUP除名聲顯赫外
    更是學界業界討論爭議的題目之一. 或許看習慣
    了"點空間"之類的文章, 對於吳女是這幾篇看似
    專業和深入的文章, 老覺得頭皮發麻....
    直覺上. 還是覺得這些較有深度的問題, 還是請一些
    有紮實經驗與研發背景的前輩來執筆的好.

    不過, "花花轎 人抬人". 請吳女士來此也算是
    "天經地義"吧...

    唉! 或許台灣在軟體環境上還難以擺脫次殖民地的地位
    讚?讚1 個人喜歡這個留言
     


    留下你的意見
    會員 * 帳號:
    * 密碼:
    1. 欄位可選填,若全不填,則顯示為「匿名」。
    2. 不支援html語法
    非會員

    *姓名:
    *E-Mail:

    Blog:
      重新載入驗證碼
    * 驗證碼: 記住我