在敏捷專案中,測試扮演的角色是什麼?

2021-09-30 09:23:59 字數 2416 閱讀 9286

敏捷實踐中,「

測試」毫無疑問地是乙個經常談論的話題。然而,它也是經常被過分談論的術語,所以,當我們想討論「測試的種類」時,應該先了解一些細節。

在敏捷開發中,測試以很多不同的方法扮演著同樣的角色,而且不同的測試種類扮演著不同的角色。為了說明這些角色,你需要敏捷開發中一些基本思想作為基礎。

為什麼要測試?

測試是得到反饋的乙個重要方法。測試對於確保**做了它應該做的事是非常有用的,對於**的修改反過來可以影響功能也是很有用的。測試也是開發人員知道什麼時候算完成他所開發的乙個特性。現在,我們有兩個原則作為判斷乙個特性是否被描述的足夠詳細:

1、開發人員可以提供乙個相當準確的估計

2、測試人員可以寫出乙個接受性測試

不但測試種類有所不同,產生測試的方法也不盡相同。

我們如何測試?

測試包括手工測試和自動化測試。關鍵要注意在開發過程中,每種技術所扮演的不同角色。儘管我們需要盡可能多地進行自動化測試,但並不意味著所有的手工測試就不再需要啦。因為即使軟體通過了所有的自動化測試,它在使用者剛開始使用時也可能出現錯誤。

根據敏捷原則(做聰明的事),要確保能用自動化測試的事情決不要用手工測試。同時要做到適合手工測試的內容決不要花高昂地成本做成自動化測試。另外,不要因為某方面不能自動化測試而不做測試。

你應該做哪些種類的測試?

我想,沒有「放之四海皆準」的策略。象敏捷開發中的每個事情一樣,測試也需要你用你的大腦!下面有一些測試的種類及它們在開發過程中扮演的角色,或者說是目的。

單元測試:一般是開發者在編寫他們被分派的特性時建立的。目的是確保**所完成的功能在任何變化時都是正確的。另外,單元測試的乙個附加作用就是當作軟體api的使用說明文件。

驗收測試(或叫接受性測試):用於確保具體的功能是否正常工作。特別地,驗收測試是乙個具體的客戶場景,用於完成使用者所期望的功能。

ui測試:一般包括一些頁面流,提供已知輸入並把得到的結果和期望的結果進行對照。有些ui測試是使用bitmap進行對比。

可用性測試:這可以說是另乙個領域的測試,它常常需要人的參與!在這裡不多陳述,但是可用性經常是做為「make-or-break」的驗收條件。某些專案從自動化測試中得到了收益,這些自動化測試確保軟體遵守了ui標準。

效能測試:對於很多應用來說,執行一套測試來確保多個非功能度量要求得到滿足是非常關鍵的。如果你的應用需要很嚴格的效能度量要求,在初始的架構和設計階段,你需要跟蹤這些要求是否滿足。在構建整個應用時,你要確保效能要求得到滿足。通常,效能測試至少要在每個主構建時自動執行-也許你每星期五做一次或每次迭代做一次。

什麼樣的測試技術是有用的?

雖然自動化是乙個關鍵,但它並不是唯一的一種測試!我更願意使用手工與自動化相結合的測試。你可以自己定義自動化測試的頻率的執行時間。 下面是幾種不同型別的測試以及在敏捷專案中扮演的角色!

「smoke」測試:不可缺少的一小撮關鍵測試,用於確保基本的構建功能正常執行。其中一部分是自動化的,還有一些是手工的。執行「smoke」測試很容易的話,可以幫助開發團隊了解每日構建是有用的。當需要一些手工測試時(一般來說成本比較昂貴),應該把它放在主構建中,也就是有質量保證人員參與的較為正試的構建。要避免做代價很大而沒有太多意義的「bad」構建。

test harness: 對於粗粒度的功能(特別是對於驗收測試和主要的系統場景)進行制度化地測試來說,testharness常常是乙個好方法。將乙個testharness作為新的功能加入到原有的測試套裝中是很容易的。您可根據捕獲的使用者輸入、正確的輸出建立乙個testharness並使其自動化。每個捕獲的測試用例都被加入到測試資料庫中,並與後面的回歸測試相配合。

自動化壓力測試「機械人」:如果你做了分層式的架構設計,且各層之間較為有清晰的界線的話,你可以構建一些自動化的測試「機械人」。此時,對於那些基礎服務的系統是非常容易地。你可以使用基於xml的配置檔案來控制這些測試的執行。你可以執行針對某一層來建立自己的測試,並讓它重複執行(ui這一層的部分測試,使用工具也可以做到)。這些測試可以分布在不同的地方進行。這樣也就相當於做了非常簡單的併發測試。這樣做的前提是:讓配置檔案來控制測試的全過程。

手工測試:被認為一定要用手工才能對系統的某個方面進行測試的那部分內容。讓測試人員集中精力於那些很難進行自動化測試的複雜的部分。

執行於構建伺服器上的所有測試結果都應該以某種總結式的結果描述呈現出來,並可以根據需要對總結進行鑽取(drilldown)。乙個好的方法就是在wiki上使用乙個特別的位置來顯示當前的構建結果。當新一輪的構建完成以後,我們還要傳送email通知大家,特別是那些**中有錯誤的開發人員,並自動建立需要修改的bug列表。有很多任務具可以幫助我們來實現這個發布過程。

在敏捷專案中,測試扮演的角色是什麼?

在敏捷 實踐中,測試 毫無疑問地是乙個經常談論的話題。然而,它也是經常被過分談論的術語,所以,當我們想討論 測試的種類 時,應該先了解一些細節。在敏捷開發中,測試以很多不同的方法扮演著同樣的角色,而且不同的測試種類扮演著不同的角色。為了說明這些角色,你需要敏捷開發中一些基本思想作為基礎。為什麼要測試...

測試工程師在敏捷專案中扮演什麼角色?

敏捷團隊中的測試人員主要負責執行各種測試,以滿足 已完成 的定義,從而為團隊在重複迭代中努力交付的持續價值創造做出貢獻。對於測試人員來說,擁有敏捷的心態是至關重要的,如果沒有敏捷的思維方式,他們可能就不能果斷地計畫 劃分優先順序並執行他們的任務,因此會無意中影響團隊滿足迭代目標的能力。敏捷的思維方式...

ERP專案中不同角色扮演者對實施難點的詮釋

企業 erp系統 實施是乙個龐大的系統工程,如何在企業erp系統實施這條布滿溝溝坎坎的大道上一路走好,是眾多企業越來越迫切需要解決的問題。而erp在實施過程中,什麼最難呢?請看專案實施過程中不同角色扮演者的詮釋。專案經理 功能明確是關鍵 在erp系統實施過程中,最難駕馭的就是 產品功能 如果產品功能...