當前位置:文思屋>社會工作>職位百科>

軟體測試工程師如何做好需求分析

文思屋 人氣:2W

什麼是需求?
需求是產品必須完成的事以及必須具備的品質。
功能性需求
功能性需求是產品必須完成的那些事,要求一定的功能和品質。
例子:培訓機構的班主任可以給所在班級學員打考勤
非功能性需求
非功能性需求是產品必須具備的屬性或品質。諸如觀感、可用性、安全性和法律限制等。
例子: 平臺使用者數為5萬人,每天登錄用戶數為10000左右,網路的頻寬為100M頻寬。在工作時間根據資料名稱條件進行搜尋,可以在3秒內得到搜尋結果。
這類需求通常在產品的功能確定之後(但並非總是如此)。也就是說,一旦知道了產品要做的事情,就可以確定它的行為方式,它需要具備什麼品質以及它的響應速度、可用性、可讀性和安全性。
限制條件
限制條件是全域性性的需求。它們可以是對專案本身的限制,或是對產品最終設計的限制。
例子:南京平臺必須在2010年開學的第一學期上線
客戶是在說,如果顧客不能在給定的時間前使用該產品,那麼它就沒有什麼用了。其效果是,需求分析師必須對需求進行限制,只包括那些在最後期限前能夠提供最大價值的需求。
需求分析的重要性
需求分析沒有做好的後果一般會有下列現象:
1、浪費時間和資源來滿足使用者並不需要的需求(過度實現一些功能);
2、開發出來的產品技術上先進,但不滿足使用者需求;
3、總是需要比較長的時間來達成對產品設計的共識;
4、在產品設計,開發和測試工作中對於使用者需求的解釋不一致;
5、員工會厭倦因需求不斷被重新解釋而導致的返工;
6、未說明的或不正確的需求會導致員工與使用者間的不滿;
7、不穩定的產品,使用者的不滿意對我們未來的市場造成損失;
8、浪費時間,增加成本,使得在一些投標的專案中不能低價;
1、如果你在編碼的時候發現某幾行有誤,那麼改掉這幾行就行了。而如果在編碼階段發現需求有誤,那麼你很可能需要改變所有程式碼來適應新的需求
2、在需求階段消除問題的代價最小,而如果需求問題等到產品釋出出去後才發現的話,那修復的成本就會N倍的增加。
3、穩定的需求是軟體開發的關鍵。有了穩定的需求,軟體開發工作可能從結構設計到詳細設計到程式碼到測試都會平穩順利的進行。
為什麼要做需求分析
1、“決策性”--要不要做這個產品,通過對市場需求的分析來決策專案是否需要立項;
2、“方向性”--良好的需求分析可以對專案人員明確方向,讓專案成員知道下面應該如何實施;
3、“策略性”--既然知道了為什麼要做需求分析,就需要了解什麼是需求分析,及如何做。需求分析並不是簡單的對與錯,比如說做一個產品,“做技術最先進的軟體,還是做最好賣的軟體”,這個需求有錯嗎,沒有,只能說需要從不同的地方去考慮,去定位。
如何進行需求分析
“ 需求分析”不代表“使用者要求什麼就是什麼”也不代表“我們能做什麼就做什麼”,做為需求人員,在進行需求分析的時候,首先應該明白使用者的需求,然後再加上 自己的分析處理過程,知道哪些我們現在能做,哪些我們做不了,哪些我們咬咬牙齒能做,需求人員在做需求分析的時候不能一味的成為客戶的傳話筒,要有自己的 分析。
一般可以從三個方面去考慮:
1、功能需求--產品應該完成哪些功能,即向用戶提供的功能,一般來說這個都是比較硬性的標準;
2、非功能性需求--使用者可能不能明確告訴你的一些需求,比如說效能達到什麼要求,可靠性方面,響應時間,擴充套件性,效能方面等,這塊的內容並不 是說使用者需要,而是說不知道需要做成什麼樣的,我們不能不做,做了只會對自己受益。要不然等到後期使用者使用感覺這慢,那不爽,那倒黴的還是是自己;
3、限制條件--在需求分析中需要考慮一些條件約束,規則等,比如客戶的約束,行業的約束,法律的約束以及自己的約束等,這些都需要在需求分析考慮清楚,要不然做出一款白人狂毆黑人的遊戲給黑人玩,那就慘了……
測試需求分析的步驟
1 、 熟悉需求背景及商業目標:
a) 瞭解清楚專案發起的原因,是為了解決使用者的什麼問題。
b) 當前的解決方案是不是最優的,為什麼會這樣做?
2 、業務模型法:
a) 考慮本專案與外部系統的互動,劃分系統邊界(除了本專案的需求中要求做的事情,其他的都可以是外部系統,本系統和外部系統之間的互動就是系統的邊界),可以參考系統分析說明書。
b) 確定測試範圍和關注點。系統的邊界是測試的重點,特別需要關注邊界互動時的資料互動。

軟體測試工程師如何做好需求分析