當前位置:學問君>人在職場>職位百科>

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

學問君 人氣:1.99W

什麼是需求?
需求是產品必須完成的事以及必須具備的品質。
功能性需求
功能性需求是產品必須完成的那些事,要求一定的功能和品質。
例子:培訓機構的班主任可以給所在班級學員打考勤
非功能性需求
非功能性需求是產品必須具備的屬性或品質。諸如觀感、可用性、安全性和法律限制等。
例子: 平臺用戶數爲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) 確定測試範圍和關注點。系統的邊界是測試的重點,特別需要關注邊界交互時的數據交互。

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