qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          120度視角看PD

           跟著師傅做了幾個(gè)日常,參加了幾次需求的討論,漸漸感覺(jué)到做需求還是需要花費(fèi)不少精力的。如果說(shuō)對(duì)原來(lái)的業(yè)務(wù)非常熟悉,相對(duì)來(lái)說(shuō)做起來(lái)就輕松一些,而要是從來(lái)都沒(méi)接觸過(guò)這塊內(nèi)容,就會(huì)感覺(jué)有點(diǎn)像丈二和尚摸不著頭腦:知道用戶想要什么,但是卻不知道如何跟現(xiàn)有的系統(tǒng)更好的結(jié)合起來(lái),我們到底能夠提供什么?用戶的需求是否合理?做需求分析,不能跟著用戶的感覺(jué)走,因?yàn)檫@樣的話,只能是用戶說(shuō)一你做一,而如果用戶不能很好的提煉需求的時(shí)候,我們就會(huì)進(jìn)入一個(gè)死循環(huán)了。在和用戶討論的時(shí)候,我們首先要知道用戶為什么會(huì)提出這個(gè)需求?能夠幫助他解決什么樣的問(wèn)題?希望達(dá)到什么樣的效果?并不是所有的用戶都能正確的表達(dá)自己所想要的東東的。

            一個(gè)比較典型的例子:最近跟一個(gè)營(yíng)銷平臺(tái)的PD在聊用戶一般會(huì)怎么樣來(lái)提需求的時(shí)候,談到曾經(jīng)做過(guò)的一個(gè)營(yíng)銷活動(dòng)的推廣需求,運(yùn)營(yíng)人員為了推廣某一項(xiàng)活動(dòng),往往會(huì)比較糾結(jié)在頁(yè)面上這個(gè)按鈕應(yīng)該如何放置,需要新增加幾個(gè)顯示字段才能達(dá)到這次活動(dòng)的效果,那這是用戶最根本的需求嗎?不是,實(shí)際上他真正需要的是應(yīng)該給他提供幾個(gè)維護(hù)活動(dòng)的界面:類似什么樣的活動(dòng)時(shí)應(yīng)該出現(xiàn)下拉的選擇框進(jìn)行維護(hù),什么樣的活動(dòng)應(yīng)該給他提供幾個(gè)選項(xiàng)項(xiàng)。他們習(xí)慣上只會(huì)關(guān)注到現(xiàn)在他需要什么樣的功能,在下次需要新的功能的時(shí)候,又會(huì)來(lái)提新的需求,所以對(duì)于類似這樣的問(wèn)題,PD的作用就顯現(xiàn)出來(lái)了:透過(guò)現(xiàn)象看本質(zhì),要善于抓住用戶描述問(wèn)題的過(guò)程,引導(dǎo)他拋出隱含在這個(gè)需求背后的衍生內(nèi)容,復(fù)述一下用戶所說(shuō)的目前存在的問(wèn)題,了解一下用戶可能會(huì)用的方式有哪些?并說(shuō)明對(duì)流程的理解,再結(jié)合流程中的不明確點(diǎn)設(shè)計(jì)要詢問(wèn)的問(wèn)題,并將客戶的反饋記錄下來(lái),然后與客戶確認(rèn)一下是否有遺漏的內(nèi)容,增加這些屬性是否就都已經(jīng)覆蓋了他所想要的所有功能了?

            我想這其實(shí)也就是需求分析的價(jià)值所在吧。這步工作如果沒(méi)有做好,往往就會(huì)導(dǎo)致考慮得不夠充分而引起新的需求變更,甚至關(guān)系到開發(fā)出來(lái)的軟件產(chǎn)品能否得到用戶的認(rèn)可,客戶能否真正運(yùn)用我們的產(chǎn)品幫助他們解決業(yè)務(wù)或管理上的問(wèn)題。當(dāng)然要做到這一點(diǎn),也不是一兩天就能搞定的,需要一個(gè)逐漸積累的過(guò)程,學(xué)會(huì)如何巧妙的向客戶提問(wèn)也是一門非常值得我們?nèi)ニ伎嫉膶W(xué)問(wèn)。業(yè)務(wù)方在需求的提出方面起著主導(dǎo)作用,但PD必須要能夠?qū)蛻舻男枨筮M(jìn)行過(guò)濾,要在非常了解原有系統(tǒng)功能,架構(gòu)設(shè)計(jì)的基礎(chǔ)上來(lái)給出建議,這樣才有可能在需求階段規(guī)避掉一些具有比較大業(yè)務(wù)風(fēng)險(xiǎn)、技術(shù)風(fēng)險(xiǎn)的需求。

            我們與運(yùn)營(yíng)方討論的過(guò)程中會(huì)收集到一些新的需求,回來(lái)后一般需要對(duì)用戶繁雜的業(yè)務(wù)進(jìn)行流程的提取,把那些分布在各個(gè)部門的同一種業(yè)務(wù)提取出來(lái)進(jìn)行初步的整理和分析, 把大致的功能點(diǎn)整理一下,遇到不明確的、有疑問(wèn)的再咨詢師傅,必要的時(shí)候還要跟開發(fā)進(jìn)行討論實(shí)現(xiàn)上是否可行。整體的思路是這樣的:業(yè)務(wù)的目標(biāo)是什么?用戶需要怎么做才能完成業(yè)務(wù)目標(biāo)?系統(tǒng)要能為用戶提供哪些支持?系統(tǒng)必須符合哪些規(guī)則?展現(xiàn)的形式可以包括:用例的分析,業(yè)務(wù)流程和活動(dòng)輸入輸出的分析,業(yè)務(wù)操作規(guī)則的整理,通過(guò)確定用戶的任務(wù),每項(xiàng)用戶任務(wù)的步驟,定義對(duì)業(yè)務(wù)具有重要意義的數(shù)據(jù)并確定已有的邏輯關(guān)系。在確保業(yè)務(wù)描述基本沒(méi)什么問(wèn)題的前提下,邀請(qǐng)開發(fā)和業(yè)務(wù)方進(jìn)行評(píng)審,并對(duì)業(yè)務(wù)流程上不對(duì)的地方進(jìn)行修改。經(jīng)過(guò)幾次來(lái)回的交流,最終才能取得較全面的需求。需求分析關(guān)注的目標(biāo)應(yīng)該是“做什么”,而不是“怎么做”,所以在描述需求的時(shí)候,表述的方式應(yīng)該是“實(shí)現(xiàn)什么”,而不是“如何實(shí)現(xiàn)”。

            做需求分析的過(guò)程,其實(shí)跟我們的測(cè)試分析工作有非常相似之處:我們?cè)跍y(cè)試活動(dòng)中,也都是從理解業(yè)務(wù)的需求開始的,首先需要明確測(cè)試需求(What),才能決定怎么測(cè)(How),通過(guò)了解這個(gè)項(xiàng)目具體是做什么的,完成一個(gè)什么樣的業(yè)務(wù),哪些功能是最常用的?哪些功能是重點(diǎn)?還有就是用戶在處理實(shí)際業(yè)務(wù)時(shí)都要作些什么,多個(gè)業(yè)務(wù)之間的先后順序是怎樣的,用戶在處理業(yè)務(wù)時(shí)對(duì)于哪些地方有特別的要求,等等。這部分規(guī)則,就是我們的測(cè)試需求中最基本的一部分。測(cè)試需求不明確,只會(huì)造成獲取的信息不正確,無(wú)法對(duì)所測(cè)項(xiàng)目有一個(gè)清晰全面的認(rèn)識(shí),活在自己世界里的人是可悲的。

            測(cè)試需求并不等同于軟件需求,它是以測(cè)試的觀點(diǎn)根據(jù)項(xiàng)目需求整理出一個(gè)checklist,作為測(cè)試該項(xiàng)目的主要工作內(nèi)容。根據(jù)所測(cè)的功能點(diǎn)進(jìn)行分析、分解,從而得出著重于某一方面的測(cè)試,如界面、業(yè)務(wù)流、接口、數(shù)據(jù)等等。理解項(xiàng)目需求,需要從整體到局部,從局部到細(xì)節(jié)。測(cè)試人員不要總只了解自己模塊的內(nèi)容,要先從整個(gè)項(xiàng)目的業(yè)務(wù)流程入手,然后再到自己的功能模塊,這樣的好處是,測(cè)試人員了解上下游的交易功能,更加的能夠了解業(yè)務(wù)的實(shí)現(xiàn)方法。經(jīng)過(guò)一番狂轟亂炸式的深入理解之后,再將自己負(fù)責(zé)的模塊有條有理的整理出來(lái),然后講解給項(xiàng)目組成員,這樣也有利于模塊之間的整合理解,再由他們提出各種各樣的問(wèn)題,若能很輕松的回答出各種各樣的問(wèn)題,說(shuō)明你對(duì)項(xiàng)目的理解已經(jīng)很到位了,而如果在提問(wèn)的過(guò)程中有很多的問(wèn)題,都是你之前沒(méi)有考慮到的,那說(shuō)明測(cè)試的需求分析做的還不夠到位,這時(shí)你就需要好好總結(jié)一下,是因?yàn)樽约航?jīng)驗(yàn)方面的問(wèn)題,還是由于其他方面的原因。總結(jié)起來(lái)測(cè)試需求的內(nèi)容大致如下:

            1、理解系統(tǒng)的流程:整理出業(yè)務(wù)的常規(guī)邏輯,一項(xiàng)一項(xiàng)列出各種可能的測(cè)試場(chǎng)景,同時(shí)借助于需求文檔資料,來(lái)確定該場(chǎng)景應(yīng)該導(dǎo)致的結(jié)果

            2、進(jìn)行功能的分解:系統(tǒng)包含哪些主要的功能,每個(gè)功能的期望值是什么;各個(gè)模塊處理哪些業(yè)務(wù),各子系統(tǒng)模塊之間的數(shù)據(jù)接口關(guān)系,基礎(chǔ)數(shù)據(jù)從哪里進(jìn)入,通過(guò)哪些處理生成哪些結(jié)果等等。在做完以上步驟之后,將業(yè)務(wù)流中涉及的各種結(jié)果以及中間流程分支回顧一遍,確定是否還有其他場(chǎng)景可能導(dǎo)致這些結(jié)果,以及各中間流程之間的交互可能產(chǎn)生的新的流程,從而進(jìn)一步補(bǔ)充與完善測(cè)試需求。

            以上只是個(gè)人對(duì)如何進(jìn)行需求的捕獲以及怎么樣做好需求理解的一些看法,同時(shí)也是對(duì)我自己前段時(shí)間的工作做的一點(diǎn)梳理,希望大家能多多交流,共同進(jìn)步,把我們的測(cè)試工作做的更好。

          posted on 2011-11-17 15:55 順其自然EVO 閱讀(133) 評(píng)論(0)  編輯  收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄

          <2011年11月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 青河县| 满洲里市| 巴里| 墨玉县| 汽车| 文登市| 赤城县| 宁陵县| 潞城市| 密山市| 柳州市| 吉隆县| 巍山| 迁安市| 北辰区| 肥乡县| 隆尧县| 横山县| 江津市| 博白县| 东阳市| 长治市| 富民县| 莱州市| 朔州市| 常宁市| 海兴县| 韶山市| 洪泽县| 蒲江县| 保亭| 长春市| 大英县| 平陆县| 商城县| 石门县| 两当县| 教育| 太谷县| 平乡县| 孝义市|