qileilove

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

          敏捷測試?yán)碚撘约皩?shí)踐(5)

           以前在《結(jié)合工具來實(shí)現(xiàn)敏捷開發(fā)》這篇文章中,我已經(jīng)談到了我們公司目前的開發(fā)情況,在這里也不再重復(fù)介紹了,反正主要就是用 TechExcel的 DevSuite 系統(tǒng)來進(jìn)行管理整個流程。至于很多人可能會問,既然敏捷了為啥還要用工具,其實(shí)我是這么想的,敏捷開發(fā)/測試,如果對于簡單的項(xiàng)目而言,用工具反而會效率下降,因?yàn)榫瓦@么幾行代碼,這么幾個功能,一下子就可以弄好了,弄個工具反而浪費(fèi)時間。

            但是對于稍微大的項(xiàng)目而言,可能不用工具就沒法很好地管理項(xiàng)目了,比如說好了,一個團(tuán)隊(duì)在一個迭代周期中做了10個功能,測試人員一天發(fā)現(xiàn)了40個Bug,但是修的人(由于部分人還在做功能)每天最多只能修20個,那剩下的20個Bug怎么辦,當(dāng)然是延遲到下一天修了,一個迭代周期往往是一周到二周,假設(shè)兩周好了,如果每天都能多余20個Bug的話,就累積了200個未修的Bug,假設(shè)沒有缺陷管理工具的話,我這些Bug可能只用Excel文檔管理一下,Excel對于單個用戶而言,保存信息其實(shí)做得很不錯,報表也很Ok,但是想想這么多開發(fā)和測試需要打開同一個Excel文件,做查看,做更新,我相信Excel數(shù)據(jù)會被搞亂,而且Excel沒法做跟蹤,沒法設(shè)置流程,也就是比如說我想知道這個Bug經(jīng)歷過幾個狀態(tài),經(jīng)歷過幾個人的處理,我應(yīng)該是沒法找到的。

            所以工具有用么,我覺得還是有用,對于大中型項(xiàng)目,既然想用敏捷,我還是建議用工具,不然的話,這個敏捷最后肯定會變成不敏捷的。 就像乘坐公交車一樣,如果就是100米的路,我勸你還是走路(敏捷)算了,因?yàn)楣卉囘€要起步、停車和等紅綠燈了,也許你走得都比它快;如果是10公里的路,您當(dāng)然會選擇公交車(工具)。對于敏捷而言,因?yàn)槭怯泻芏嗟芷诮M成,每個迭代周期其實(shí)相當(dāng)于一個100米,但是很多迭代周期組合在一起就變成了10公里了。真正的敏捷,它只是一種指導(dǎo)思想,沒規(guī)定你必須怎么做(也就出現(xiàn)各式各樣的實(shí)現(xiàn)方式),所以,在正常的工作中,我們需要根據(jù)每個公司的實(shí)際情況來搭配符合你們實(shí)際情況的敏捷模式。

            大家在百度上,只要搜索“敏捷測試”,我相信可以找到一大堆的內(nèi)容,有概要的,有詳細(xì)的,仔細(xì)看看,大家會發(fā)現(xiàn)很多人認(rèn)為敏捷肯定是這樣子的,那樣子是不對的,當(dāng)然大家對于“這樣子“的描述又都不是太相同,分析一下,無非就是兩種原因,一種純粹是自己瞎想的,可能稍微有點(diǎn)底子,但是沒實(shí)際用過,就按自己的想法,亂分析一番;另外一種就是真正在用的,所以就用自己公司的情況來解釋一下敏捷。當(dāng)然,我其實(shí)也是結(jié)合自己公司的情況在說敏捷,所以我不會苛求大家一定要采用我的理論,只是希望大家能從我的文章里發(fā)現(xiàn)一點(diǎn)對你們來說有用的知識,那我就很開心了。

            好了,閑話少說了,不管您有沒有理解為什么要用工具,我還是繼續(xù)下去了(有問題可以私聊)。

            對于TechExcel的DevSuite,以前也介紹過,也一直用到現(xiàn)在,感覺挺好用,不過在這里也不多介紹了,就給個圖和然后把我們會用到的產(chǎn)品做個交代,不然之后萬一提到某個產(chǎn)品,大家可能不知道是啥了。

            其中對于敏捷測試而言,需要用到的主要是以下三個產(chǎn)品:

            1、DevSpec:需求管理,用于測試人員(設(shè)計測試人員)檢查功能的設(shè)計

          3、DevTest:測試管理工具,用于管理測試用例,以及用測試用例來生成測試計劃并且實(shí)施測試(包括自動化測試)

            這三個產(chǎn)品可以集成在一起用,也可以分開單獨(dú)用,當(dāng)然我們是集成起來用的。

            接下來我就按照測試的實(shí)際流程來介紹一下敏捷測試在我們公司的具體實(shí)現(xiàn)情況。

            1、需求設(shè)計階段:

            我們公司也是開發(fā)產(chǎn)品的,主要是開發(fā)CRM方面的產(chǎn)品,和其他軟件企業(yè)也一樣,我們每個版本的發(fā)布首先是需要先收集客戶需求開發(fā)相應(yīng)功能、自己研發(fā)出新功能以及查看研究并超越競爭對手的功能。

            這部分的工作主要是在DevSpec進(jìn)行,DevSpec是主要用來管理需求和分配需求讓開發(fā)去開始做的,它會對每個功能(不管是客戶的,自己的,或者研究競爭對手得出的)新建一個條目項(xiàng),每個條目都會有自己的屬性,包括標(biāo)題,負(fù)責(zé)人,狀態(tài)等,反正你想加什么屬性都可以自定義的。然后負(fù)責(zé)人登錄系統(tǒng)就可以看到分配給他的條目,他處理完了就必須把狀態(tài)改到下一個狀態(tài),并且分配到適當(dāng)?shù)钠渌?fù)責(zé)人。對于測試而言,我們設(shè)置有一個狀態(tài)叫做“測試審核”狀態(tài),一般一個需求點(diǎn)到了這個狀態(tài),咱們設(shè)計測試人員就會去處理這個需求,處理的方式,一般就是從原始的文檔入手,去看看現(xiàn)在的設(shè)計是不是符合原始的文檔,如果有出入的話,他就會去和設(shè)計人員交流一下,然后把這個條目打回“需要重新設(shè)計”狀態(tài),設(shè)計人員弄完就會重新更改狀態(tài),最后測試人員審核通過后,就可以進(jìn)入“待開發(fā)“狀態(tài)了。

            這里強(qiáng)調(diào)一點(diǎn),在這個階段,所謂的設(shè)計測試人員,并不一定必須是專職的,他可能是項(xiàng)目經(jīng)理或者是其他人,但是他一定是一個有能力來判斷設(shè)計思路是否符合要求并且有權(quán)力讓設(shè)計人員重新去設(shè)計的人。

            這就是需求設(shè)計階段,測試人員要做的事情。下面貼個DevSpec的圖作為今天文章的結(jié)尾。(未完待續(xù))

          posted @ 2011-11-18 14:56 順其自然EVO 閱讀(154) | 評論 (0)編輯 收藏

          量化項(xiàng)目管理案例:缺陷趨勢預(yù)測利器(8)

               摘要: 理論知識終于告一段落啦。接下來要和大家分享的是S型曲線模型中的重要模型——Gompertz模型和Logistic模型在公司內(nèi)部實(shí)際項(xiàng)目中的應(yīng)用。下面的數(shù)據(jù)都是來自于公司內(nèi)部實(shí)際項(xiàng)目,應(yīng)用主要分4個場景:進(jìn)入測試階段前、測試階段過程中、測試退出時、以及其它的應(yīng)用。下面將依據(jù)場景,從測試階段開始一直到結(jié)束,分階段介紹S型曲線的應(yīng)用。  ● 進(jìn)入測試階段前的缺陷發(fā)現(xiàn)目...  閱讀全文

          posted @ 2011-11-18 14:54 順其自然EVO 閱讀(612) | 評論 (2)編輯 收藏

          軟件測試目標(biāo)——“整個場面我Hold住!”

           在學(xué)術(shù)家族樹beta版本中,我們將重視軟件開發(fā)中的測試

            OBJECTIVE

            我們的目標(biāo)呢,就是經(jīng)過測試之后軟件的質(zhì)量得到有效的保證,在已經(jīng)考慮到的所有場面都可以“Hold住”。

            As much as I concern,

            1、所有設(shè)計中的功能都能實(shí)現(xiàn)
            2、代碼經(jīng)過review
            3、用戶界面經(jīng)過用戶的試用
            4、系統(tǒng)的反應(yīng)時間可以忍受
            5、發(fā)現(xiàn)的bug或者都已解決,或者下一個iteration解決
            6、各種極端情況都可以Handle
            7、數(shù)據(jù)可靠
            8、Last but not least, 不存在版權(quán)問題

            下面我們詳細(xì)說一下各個部分。

            1、所有設(shè)計中的功能都能實(shí)現(xiàn)

            UI在開發(fā)之前就是有設(shè)計藍(lán)圖的,所以具體應(yīng)該實(shí)現(xiàn)什么功能是非常確定的,這個也比較方便檢查。UI開發(fā)人員在完成開發(fā)的時候就可以確定這些功能是否都已實(shí)現(xiàn)。為了減少差錯,可以再由測試人員進(jìn)行double check。原始的用戶也可以報告bug。

            2、代碼經(jīng)過review

            為了提高代碼質(zhì)量,review是非常有必要的。既是對代碼的double check,也驗(yàn)證了寫出的代碼確實(shí)能夠比較容易地被今后的維護(hù)人員讀懂。

            3、用戶界面經(jīng)過用戶的試用

            這個在1中已經(jīng)闡述。

            值得提出的一件事就是,關(guān)于國際化(Internationalization的測試),即使保證我們的產(chǎn)品也可以被全世界的用戶可以方便使用。除了界面的文字語言問題,還涉及到東西放思維差異等等。

            比較幸運(yùn)的是,我們的開發(fā)人員中就有一位歐洲瑞士的同學(xué),我們的Daily Scrum也是使用英語的。從而使得我們的產(chǎn)品和國際化并不遙遠(yuǎn)。為了保證這方面的質(zhì)量,還可以找一些國際友人來進(jìn)行使用并反饋。

            4、系統(tǒng)的反應(yīng)時間可以忍受

            在去年的一個版本中,查詢和反應(yīng)時間非常緩慢,到了一種難以忍受的情況。

            所以今年我們要格外重視這方面的情況。

            具體在做好了之后,我們會在不同的網(wǎng)絡(luò)環(huán)境(公司內(nèi)部、北京市電信網(wǎng)絡(luò)、美國雷德蒙德總部網(wǎng)絡(luò)、安徽合肥中科大教育網(wǎng)絡(luò))進(jìn)行使用測試,確保我們的反應(yīng)時間得到用戶滿意的迅捷成都。

            5、發(fā)現(xiàn)的bug或者都已解決,或者下一個iteration解決

            測試的階段不可避免要發(fā)現(xiàn)很多bug,發(fā)現(xiàn)bug多不是壞事,發(fā)現(xiàn)的少也不一定是好事。

            關(guān)鍵的是,盡可能暴露出所有存在的問題,并且盡我們最大的努力進(jìn)行改進(jìn),fix the bug.

            6、各種極端情況都可以Handle

            各種邊界條件往往是出問題的地方。

            在我們beta版本上周剛剛demo,在準(zhǔn)備數(shù)據(jù)的過程中我們就特意準(zhǔn)備了各種極端條件的數(shù)據(jù)。

            比如說:

            A)老師數(shù)量為0, 或?qū)W生數(shù)量為0

            B)老師數(shù)量最多(4), 學(xué)生數(shù)量最多(79)

            C)還有學(xué)生分屬很多不同的工作機(jī)構(gòu)的情況

            確保我們的系統(tǒng)在不同情況下都可以得到一個比較美觀、可靠的界面。

            7、數(shù)據(jù)可靠

            我們所挖掘到的師生關(guān)系對是需要經(jīng)過驗(yàn)證的。

            暫時由于數(shù)量龐大,而我們?nèi)藛T有限,往往采用抽樣人工驗(yàn)證的方法。

            在條件具備的情況,我們會編寫腳本、測試程序等對關(guān)心的內(nèi)容進(jìn)行機(jī)器驗(yàn)證。

            8、Last but not least, 不存在版權(quán)問題

            確保我們的代碼都是原創(chuàng),或者沒有使用本公司外的代碼。

          posted @ 2011-11-18 14:50 順其自然EVO 閱讀(168) | 評論 (0)編輯 收藏

          談測試體系規(guī)范的推行

           這幾天在考慮這么一個問題:測試被慢慢認(rèn)可了之后,為什么測試的價值還得不到體現(xiàn)?為什么測試體系還是得不到廣泛的推廣?以下是我個人的一些分析。

            1、測試體系的整體概念

            一直以來,我都覺得這個問題挺概念化的,就是說出來后讓人抓不住重點(diǎn)的感覺。要說某個具體的技術(shù)細(xì)節(jié),很明確。比如說Weblogic的調(diào)優(yōu),可能會有人很快聯(lián)想到:連接池、JVM、線程數(shù)等等。但是測試體系是什么?有點(diǎn)虛。

            在多次聽測試人員的報怨之后,我覺得現(xiàn)有規(guī)范可能是影響測試體系建設(shè)的第一要素。當(dāng)然,領(lǐng)導(dǎo)還要強(qiáng)力支持。先說測試規(guī)范,后面再說其他因素的影響。

            首先,要把軟件測試和質(zhì)量保證分開來。盡管現(xiàn)在大部分公司把測試人員叫做QA工程師,盡管這一叫法是錯的(個人認(rèn)為是錯的),還是被一些人屁顛屁顛接受并推廣去了。好吧,這些概念性的問題,我們先不認(rèn)真的追究了。測試體系在我的意識里是:為了盡可能找到系統(tǒng)的缺陷的和評估系統(tǒng),對應(yīng)測試需求,使用相應(yīng)的管理方式,按照流程和方法進(jìn)行系列的測試動作,并最終產(chǎn)生符合規(guī)范的測試產(chǎn)品的過程描述。在這一過程中,有幾個詞是要體現(xiàn)在測試體系里的,就是:管理、流 程、規(guī)范、方法。

            要推廣測試體系,首先要求的個人素質(zhì),就是要有整體的體系概念。這樣說起來好像有點(diǎn)太正式了,有點(diǎn)累。換個角度說:現(xiàn)在有沒有太多的人有測試體系的整體概念?如果有,知道不知道自己在這個體系中處在什么位置?職責(zé)是什么?

            曾經(jīng)看到一些公司和人生套CMMI、RUP、ISO之類的規(guī)范標(biāo)準(zhǔn)(這幾套東西的角度是不一樣的),但是由于推廣的方式太生硬而導(dǎo)致人的意識轉(zhuǎn)換不過來。最后不了了之。盡管過了什么認(rèn)證,也是推倒重來,恢復(fù)舊制。理由很簡單:這些體系不適合我們,還是我們自己對體系比較清楚。測試體系也同樣如此。精髓沒有領(lǐng)會到,就生套,是不可能推廣開的。記得有人說,進(jìn)一家公司是一個“固化—僵化—優(yōu)化”的過程。而我覺得大部分人連固化還沒走出第一步,就覺得回頭才是岸了。

            前一陣子為一個客戶推行測試體系,其實(shí)從技術(shù)角度來說,基本上都可以實(shí)現(xiàn)了。但是通過反復(fù)溝通,才知道客戶想要的體系只是要一個可控制的PDCA過程,于是我把體系整個給縮小了,客戶才覺得這是他要的。實(shí)際上很多內(nèi)容已經(jīng)刪減了。如果做一個項(xiàng)目的話,我覺得客戶要的這種是可以直接和做事相關(guān)的。而如果要為一個公司建立一套完整的體系,顯然這樣只能留下記錄,而留不下體系中其他的關(guān)鍵部分。

            要讓相關(guān)人員有測試體系的整體概念。向與推行體系必然相關(guān)的人培訓(xùn)體系概念,闡述體系的優(yōu)點(diǎn)。當(dāng)然也會有缺點(diǎn),所以才需要變更流程。

            2、利潤驅(qū)動的影響

            無可厚非,追求利潤永遠(yuǎn)是公司的第一要務(wù)。在很多時候,我們不得不為利潤讓路。有時候就是因?yàn)橐恢笔沁@樣,才導(dǎo)致了我們的測試體系不可能完全建立起來。我們只能繞著客戶轉(zhuǎn)。

            最近大領(lǐng)導(dǎo)組織開了一個會,就是建立一套完整的測試體系。在這個體系的各個部分,都有相應(yīng)的文檔來支持。當(dāng)時我畫了一個大概的思維框架圖,包括的內(nèi)容很廣泛;其中有每個職位上的人在什么樣的階段、按照什么流程和規(guī)范、做什么樣的事情、做成什么樣子,等等。都有相關(guān)的模塊來維護(hù)其完整性。領(lǐng)導(dǎo)一看,覺得不錯。接下來就要提到如何落地。在參考了很多意見之后,決定落實(shí)成為一種可以按時間推移而實(shí)行的方法。但后來實(shí)際情況是:做事是需要時間的,在某些時候,一個人要兼顧好幾個事情,就不得不為與客戶有關(guān)的事情讓路。自從年后,我畫了一個小范圍內(nèi)的PDCA流程圖之后,就開始為客戶的一個方案而不停打字。這件事情,也就此放下。

            這是暫時現(xiàn)象,還是大部分時候都是這樣?我想在其位的人一定深有體會。我們經(jīng)常可以看到聽到或者親身經(jīng)歷需求經(jīng)常變更的事情,不僅是業(yè)務(wù)需求,測試需求也是這樣。做事情的人不知道上層的人怎么想的,但是只有做事情的人知道怎么才能做得更完善。有時,有些客戶只是要一個自己認(rèn)為重要的結(jié)果。其實(shí)對整個系統(tǒng)來說,這個結(jié)果意義并不大。我曾經(jīng)做過一些以客戶為核心的業(yè)務(wù)。比如,客戶只需要知道系統(tǒng)在當(dāng)前配置下的性能狀態(tài)。也許客戶只需要響應(yīng)時間,認(rèn)為用戶數(shù)是很關(guān)鍵的數(shù)據(jù)。于是他們迫切地想得到這個數(shù)據(jù),但是沒有考慮到整個系統(tǒng)的性能表現(xiàn)應(yīng)該是從不同角度來關(guān)注的。在這個過程中,其實(shí)我們可以關(guān)注一下如何做得更完善,從而逐步豐富體系。

            如果僅從當(dāng)前項(xiàng)目出發(fā),個人認(rèn)為:從長遠(yuǎn)的發(fā)展來看,這種做法是會降低利潤的。當(dāng)然,沒有完整的體系。很多時候,我們做一件事情,可能重復(fù)了好多次,前后都沒有歷史資源可以借鑒。其實(shí)是有的,只是沒有人去整理。沒有形成知識管理庫。大部分公司以目錄式的結(jié)構(gòu)來管理文檔,這也沒有什么。但是文檔散亂得不成樣子,就讓人接受不了了。如果下定決心去做一個體系的建立,可能會導(dǎo)致當(dāng)前的事情會有些滯后,但是會讓后面的工作順利進(jìn)行。可能有人提出異議,認(rèn)為即使這樣也不見得能提高多少工作效率,于是舉出N個例子來說明。我只能說:創(chuàng)建的體系有問題,要變更。利潤驅(qū)動的一個最大誤區(qū)就是:太關(guān)注眼前的利益而放棄了長遠(yuǎn)的利益。這和人生的規(guī)劃如出一轍。有些人花了四年的時候,好好學(xué)習(xí)大學(xué)課程,畢業(yè)后找工作,可以很快上手;而有些人玩了四年,出來后,找工作處處碰壁。

            所以個人認(rèn)為,在利潤驅(qū)動時,不要忘記長遠(yuǎn)的利益規(guī)劃。在近期利潤可以平衡的前提下,應(yīng)該盡量以長遠(yuǎn)的眼光來看事情,一點(diǎn)一點(diǎn)積累。按流程說明來控制近期要做的事情,往往也不會增加太多工作量。只是需要在平時工作中灌輸體系控制的思想。

            3、領(lǐng)導(dǎo)支持不力

            和朋友聊天時,說到公司里的測試人員不足,測試不被重視的現(xiàn)象,這是老生常談的話題。有很多人報怨:領(lǐng)導(dǎo)是如何如何不理解測試,如何如何不理解測試的重要性,等等。有個問題他們沒有描述到的是:測試帶來的直接和間接的利潤究竟是多少?這是個比較難確定的問題。但是如果這個問題回答不好,讓領(lǐng)導(dǎo)們感覺不到利潤的提升,想讓他們重視測試還是比較難的。還有一個大環(huán)境的問題:我們都知道測試行業(yè)的發(fā)展沒有幾年,或者說普遍認(rèn)識到測試的重要性還沒有幾年,以前只有少數(shù)人在做,而現(xiàn)在大部分人都意識到了應(yīng)該做測試。但僅是意識到而已,并沒有形成測試必做的傳統(tǒng)。那就意味著:可能是意識到了,但不知如何發(fā)展下去。

           80年左右的人現(xiàn)在也差不多30歲左右了,這些人接受的教育和工作時做的測試可能稍微多一些,但是他們大部分是中層領(lǐng)導(dǎo)(普遍情況),或者說更多的是干活的人。中層領(lǐng)導(dǎo)要想推廣測試體系幾乎是不可能的事情。他們能做的只是局部更新。這是不是意味著,只有這一代中有測試體系的概念、并且身體力行的人做了上層領(lǐng)導(dǎo)后,才有可能推動全面的測試體系?果真如是,恐怕還要等幾年了。商鞅變法成功是因?yàn)橛星匦⒐闹С郑匦⒐莻€天才領(lǐng)袖。而測試的天才領(lǐng)袖在哪兒?同樣有了天才領(lǐng)袖和可堪大用的人,還是要面對老世族的攻擊。而這場戰(zhàn)爭至少要打兩代人的時間。軟件測試體系如果要推行,縱然有人可以做,在大部分的企業(yè)里,估計也要等到媳婦熬成婆。

            在其職,有其能,才能謀其事。所以這個要求的是個人的機(jī)會和能力。

            4、執(zhí)行不力

            這個問題出現(xiàn)的前提是第3點(diǎn)中的描述已經(jīng)不是問題。執(zhí)行碰到的最大問題是與舊制度的沖突。要知道,讓人改變一種習(xí)慣是很難的事情。要讓一個企業(yè)改變習(xí)慣,就更難。還記得在以前公司里推行ISO這個體系時,開始時,每個人學(xué)按照ISO來做些事情還可以。但突然改變以前的習(xí)慣很難受。終于到了不能承擔(dān)的時候,還是恢復(fù)了舊制度。ISO相關(guān)的內(nèi)容成了公司在市場上的一個說辭。但是為了滿足這個體系,公司每到要再次評審的時候,要耗費(fèi)大量人力來再次修正。

            執(zhí)行不力的另一個大問題是意識不到體系的重要性。從而得不到廣泛的支持。很多人在報怨的同時,沒有考慮到一個本質(zhì)的問題:就是自己處在什么樣的位置上,應(yīng)該負(fù)什么樣的責(zé)任,這件事情是這個職位上做得了的事情嗎?這一點(diǎn)我反復(fù)強(qiáng)調(diào),就是因?yàn)楝F(xiàn)在很多職位的責(zé)任不清晰。直接導(dǎo)致了很多人都覺得做了自己不應(yīng)該做的事。這一點(diǎn)在體系中會通過角色職責(zé)做清楚的描述。所以要讓每個人理解到整個體系存在的必要性,再來理解個人的角色職責(zé)就不會出現(xiàn)這個問題。這樣使體系的執(zhí)行也就更有中堅(jiān)基礎(chǔ)。

            這個問題要依賴第3點(diǎn)中的問題解決。就是要有相應(yīng)權(quán)力的人推行。這是最直接的。要不然還是比較麻煩。

            5、人治還是體系方法治?

            此部分只講述軟件測試方面的內(nèi)容,不妄言公司的全面管理。

            我們知道具體的技術(shù)細(xì)節(jié)是有方法可以參考的,比如測試用例的覆蓋率,是可以從技術(shù)角度來計算出來的(計算需要時間和相應(yīng)知識支撐)。但是,在大部分情況下,我們碰到的現(xiàn)象還是:領(lǐng)導(dǎo)分配哪個模塊讓誰來負(fù)責(zé)測試,這個測試人員只從業(yè)務(wù)角度來寫瀑布似的用例描述,最后執(zhí)行這個測試用例。這樣的覆蓋率是沒辦法計算的。而有些人還妄圖從這樣的執(zhí)行結(jié)果中去計算覆蓋率。最后只能不了了之。這里導(dǎo)致了一個后果就是測試的充分性得不到保障,發(fā)布后的系統(tǒng)又出現(xiàn)新問題并且沒有人為此承擔(dān)責(zé)任。這就是拍腦袋形成的現(xiàn)象。

            我們知道,人治是一種主觀的判斷。我覺得你不行,我是領(lǐng)導(dǎo),你就是不行。這樣的描述讓人清晰地感覺到:一個人的職位和他的主觀判斷嚴(yán)重影響到后續(xù)的質(zhì)量。我記得看過一句話:一個公司的老板的個人素質(zhì)決定了這個公司的企業(yè)文化和前途。暫不說這句話的合理性,應(yīng)該有很多人同意這句話說的是對的。所謂仁政、周禮、井田制,已經(jīng)在很多人的潛意識里扎下了根。

            那體系方法治呢,明確了一些扯不清的職責(zé),也讓人在項(xiàng)目的各個階段中,知道了自己應(yīng)該做什么,做成什么樣子。做不到,要么是能力不行,要么是規(guī)范有問題,需要變更。在經(jīng)過裁決之后,如果是前者,可以通過換人、培訓(xùn)等手段解決;如果是后者變更體系方法就好了。不會出現(xiàn)頭腦一暈、停滯不動的現(xiàn)象。也不會出現(xiàn)像有些人說的,我現(xiàn)在腦子都大了,不知道領(lǐng)導(dǎo)到底要我做什么,也不知道做成什么樣子,才算是領(lǐng)導(dǎo)滿意了。這里說的是公司內(nèi)部,如果涉及到客戶,其判斷的規(guī)范標(biāo)準(zhǔn)就是客戶的滿意度。從大結(jié)構(gòu)上理解各個層面,然后去做,這是我認(rèn)為有效的控制質(zhì)量的辦法。

            那是不是說體系治就萬無一失了呢?當(dāng)然不是,因?yàn)槭率侨俗龅模婕暗饺耍償?shù)就很大的。還是需要人治的輔助。靈活綜合運(yùn)用,才能見實(shí)效。建議固化體系制度為根本。當(dāng)形成強(qiáng)大的體系傳統(tǒng)時才考慮人治參與其中,但一定要有所側(cè)重,并在見到實(shí)效后立即回歸體系制度。

            6、什么是適合的體系?

            在交流中我發(fā)現(xiàn)很多人把體系看得很死,好像說到CMMI就應(yīng)該按初始級、管理級、已定義級、量化管理級、最佳化級一層層發(fā)展上去,或者說到RUP就得按照先啟、精化、構(gòu)造、移交這樣的步驟來做。我想說的是,如果你要過CMMI的認(rèn)證,完全有按照要求做的必要。而要是我們覺得都不適合,完全可以自己去制定一個體系,借鑒是沒有問題的,只要符合就行。并且,這些建議采納不采納,也是我們自己決定的。要做,就落到實(shí)地來做。別空擺一個架子。而有些人有潛意識 里的排斥心理:我們要有自己的流程,我們不按照任何成熟的流程來做。好像自己拍拍腦袋,體系就出來了。搞到最后,依舊是不了了之。從規(guī)劃到實(shí)現(xiàn),不管是對的錯的,如果只有規(guī)劃沒有實(shí)現(xiàn),是如何也無法落地的。

            所以有畫餅的能力,也要有把餅做成的能力。

            7、總結(jié)

            當(dāng)有了整體的測試體系概述之后,即使有利潤驅(qū)動,也應(yīng)該與此同時關(guān)注一下體系的建立。因?yàn)榭蛻魧镜臏y試需求也是在測試體系之內(nèi)的。再加上有領(lǐng)導(dǎo)的支持和一批有執(zhí)行力的人推廣整個體系,測試體系才會有可能發(fā)展起來。而在這一過程中,盡可能避免人治的手段。只有這樣才能使體系有生存的空間,否則將使苦心建立的體系很快就蕩然無存。


          posted @ 2011-11-18 14:49 順其自然EVO 閱讀(157) | 評論 (0)編輯 收藏

          B/S架構(gòu)測試環(huán)境搭建_SQLServer篇(Win32系統(tǒng))

          前言:此篇講解在Win32系統(tǒng)下SQLServer創(chuàng)建數(shù)據(jù)庫和用戶(建立測試環(huán)境必需),順帶講下用戶和登錄名的區(qū)別,不對之處,歡迎拍磚。

            一、創(chuàng)建數(shù)據(jù)庫:

            (1)SQLServer安裝過程中有一個需要注意的地方,設(shè)置各個系統(tǒng)的賬戶和密碼,見下圖:

          圖1 設(shè)置所有的賬戶和密碼

            其他的沒什么需要留意的了,只需按照提示一步步走完就算安裝成功了。

            (2)SQLServer安裝完成后,在“開始”--“程序”--“SQLServer”--“SQLServer Management Studio”中打開SQLServer的管理頁面,系統(tǒng)會彈出連接DB的對話框,選擇對應(yīng)數(shù)據(jù)庫引擎、服務(wù)器名稱、連接方式和對應(yīng)的用戶名和密碼(有個默認(rèn)的sa用戶,初始密碼為空,登陸成功后可以修改)。

          圖2 SQLServer登陸頁面

            (3)連接成功后可以查看當(dāng)前連接的對象資源管理器,此時系統(tǒng)中的數(shù)據(jù)庫只有系統(tǒng)默認(rèn)的,我們測試時候需要新建對應(yīng)的數(shù)據(jù)庫,一方面是為了不影響系統(tǒng)數(shù)據(jù)庫的結(jié)構(gòu),另一方面測試也需要一個純凈的環(huán)境。

            (4)右鍵數(shù)據(jù)庫,選擇新建數(shù)據(jù)庫,輸入數(shù)據(jù)庫名稱,此時可以選擇該數(shù)據(jù)庫的Owner(系統(tǒng)當(dāng)前存在的登錄名),如果不選擇,系統(tǒng)默認(rèn)將Owner設(shè)定為當(dāng)前登錄的登錄名。設(shè)置該DB的數(shù)據(jù)庫文件,初始大小,自增等變量,以及對應(yīng)的存放位置,此處和create database Database_Name On primary(...) Log On(...)這種語法是一致的,需要指定的話填寫對應(yīng)的內(nèi)容,不需要的話系統(tǒng)會保持默認(rèn)。

           (5)接下來是創(chuàng)建用戶,展開該DB,在“安全性”欄中右鍵“用戶”,輸入對應(yīng)的用戶名,并選擇映射的登錄名,選擇對應(yīng)的架構(gòu)和角色成員(個人覺得ddladmin一般情況下就可以了,害怕權(quán)限小了影響使用可以選擇owner,每個角色對應(yīng)的權(quán)限幫助文檔中有詳細(xì)的說明),至于用戶名和登錄名之間的映射關(guān)系放在下一段中講。

            (6)用戶建立完成后可以使用測試工具或?qū)懘a測試連接,user/password是登陸名。登錄名的CRUD在對象資源管理器的“安全性”的“登錄名”下,創(chuàng)建的時候選擇映射的用戶(第三欄)和選擇默認(rèn)的DB。不選擇系統(tǒng)將默認(rèn)處理。(SQLServer默認(rèn)端口號是1433,占用了可以用命令netstat -a -o -n查看)。

          圖3 測試SQLServer連接

            二、登錄名和用戶名:

            (1)登錄名顧名思義是用來登錄SQLServer系統(tǒng)的,用戶名是數(shù)據(jù)庫的user,在SQLServer中,兩者之間是一種多對多的映射關(guān)系。

            (2)需要使用系統(tǒng)的時候,登錄名是必須的,沒有登錄名就無法使用SQLServer系統(tǒng),但是登陸成功后你能夠有多少權(quán)限使用某個數(shù)據(jù)庫,取決于該登錄名映射的用戶名的權(quán)限。一個登錄名可以映射不同數(shù)據(jù)庫的多個用戶,同理一個用戶也可以映射多個登錄名,但是在同一個數(shù)據(jù)庫中,一個登錄名只能有一個用戶與之映射。

            (3)在創(chuàng)建數(shù)據(jù)庫時,如果不指定owner,系統(tǒng)會把當(dāng)前登錄名設(shè)置成該DB的owner,那么當(dāng)前的登錄名就會映射到該DB創(chuàng)建時默認(rèn)的用戶dbo上,其他的登錄名在未手動設(shè)置關(guān)聯(lián)用戶時關(guān)聯(lián)該DB中默認(rèn)guest用戶。owner可以使用該DB的任何功能。guest用戶的權(quán)限則小的多。

            暫時先總結(jié)這么多,基本的測試環(huán)境搭建,SQLServer功能很強(qiáng)大,算是入門級的,希望對大家有幫助。






          posted @ 2011-11-18 14:46 順其自然EVO 閱讀(543) | 評論 (0)編輯 收藏

          軟件測試人員如何寫軟件測試求職簡歷

          有個測試同仁讓我?guī)退纯此暮啔v,看完簡歷后我的直覺就是“這位測試同仁兩年的測試白干了”。簡歷是一塊敲門石,但這塊敲門石是什么材質(zhì)的,恐怕人見人智,然而什么樣的簡歷才能是一塊金質(zhì)敲門石呢,下面是我的一個些個人見解,希望能給正在或正準(zhǔn)備尋找更好發(fā)展機(jī)會的測試同仁們有所幫助。

            針對在測試行業(yè)中已經(jīng)有所感悟的人-凸現(xiàn)項(xiàng)目經(jīng)驗(yàn)優(yōu)勢:在公司允許的范圍內(nèi),把你參與的項(xiàng)目做一個簡單的介紹。比如你參與的項(xiàng)目的體系結(jié)構(gòu),實(shí)現(xiàn)技術(shù)等等。這些東西能在一定程度上體現(xiàn)你對測試項(xiàng)目了解的程度,熟知程度,從而也能體現(xiàn)出你的經(jīng)驗(yàn)到底有哪些。比如,我們可以在我們的項(xiàng)目介紹中告訴對方我們采用的4層架構(gòu):數(shù)據(jù)庫 ,中間件,webservice,客戶端,采用的c/s模式等等,如果你覺得可以,我們列舉我們的數(shù)據(jù)庫采用的是什么,中間件采用的是什么等等,在簡單描述了項(xiàng)目之后,你可以非常坦誠的告訴你所求職的公司,在這個項(xiàng)目中你主要負(fù)責(zé)的部分,比如主要負(fù)責(zé)哪個層次的測試,主要負(fù)責(zé)的是測試執(zhí)行還是測試設(shè)計等等。

            對測試能力的描述。這一塊很多人喜歡一概羅列,其實(shí)在我看來這是個大忌。一概羅列通常并不能體現(xiàn)出一個人的能力,有些人走得是測試管理路線,他擅長的一定是流程流程方面的掌控能力,有些人是走性能測試路線,他擅長的一定是具體的某個或者某些工具的使用。千萬不要把自己描述成一個無所不能的,這在我看來,往往是一個無所特長的人。

            如果可以,請加入一些測試方面的獨(dú)特見地。我非常不喜歡的就是一旦問什么,都是書上的一套東西搬出來了,其實(shí)書本與現(xiàn)實(shí)有時有很大的差別,適時的表現(xiàn)出自己的獨(dú)特見地,能證明你是一個活學(xué)活用的人,這樣的人在任何一個單位都非常的吃香。

            針對測試新人,切記“誠實(shí)的原則”:有些人可能沒有吸引人眼球的學(xué)歷,畢業(yè)院校,但請你大方的寫出來,大膽的告訴你求職的公司,只有你認(rèn)可自己,才能希望別人認(rèn)可你,如果你加入這家公司,你也可以硬氣的工作。學(xué)歷,畢業(yè)院校可能成為你面試過程中的一點(diǎn)障礙,可是學(xué)歷,畢業(yè)院校只能證明你的過去,并不能代表你的未來。現(xiàn)在大部分公司更認(rèn)可一個人的能力,學(xué)歷,畢業(yè)院校只是你一點(diǎn)出彩的地方而已。

            有些人明明對測試這個行業(yè)并不熟悉,卻喜歡在簡歷中吹噓自己的精通這,精通那,其實(shí)即使你獲得了面試的機(jī)會,但面試的過程中,我自信你一定洋相百出,最終的結(jié)果依然是淘汰。所以,請你大大方方的告訴你求職的公司,你是一個新人,你現(xiàn)在的測試能力到底在一個什么樣的程度,很多公司需要自己培養(yǎng)適合自己的測試工程師 ,你的坦誠能為你收獲更多。

          posted @ 2011-11-18 14:45 順其自然EVO 閱讀(172) | 評論 (0)編輯 收藏

          你不是一個人在戰(zhàn)斗——軟件項(xiàng)目團(tuán)隊(duì)模型

          摘要:

            俗話說“三個臭皮匠勝過諸葛亮”,但實(shí)際工作情況往往是“三個諸葛亮不如一個臭皮匠”!

            軟件開發(fā)是智力型團(tuán)隊(duì),如何發(fā)揮每個人的作用,并將所有人的力量扭成一股強(qiáng)大的項(xiàng)目團(tuán)隊(duì)?wèi)?zhàn)斗力,這是項(xiàng)目團(tuán)隊(duì)模型要重點(diǎn)解決的問題。

            大綱:
            1、傳統(tǒng)項(xiàng)目團(tuán)隊(duì)模型
            2、實(shí)際項(xiàng)目團(tuán)隊(duì)模型
            3、MSF的項(xiàng)目團(tuán)隊(duì)模型
            4、實(shí)用團(tuán)隊(duì)模型
            5、什么才是合適的項(xiàng)目團(tuán)隊(duì)模型?

            正文:

            傳統(tǒng)項(xiàng)目團(tuán)隊(duì)模型

            什么是項(xiàng)目團(tuán)隊(duì)模型?簡單地說就是項(xiàng)目以怎樣的方式組建團(tuán)隊(duì),軟件開發(fā)項(xiàng)目團(tuán)隊(duì)的傳統(tǒng)團(tuán)隊(duì)模型如下:

            項(xiàng)目組在項(xiàng)目經(jīng)理的帶領(lǐng)下,各角色協(xié)調(diào)工作,為項(xiàng)目成功而努力!

            各角色的具體職責(zé)如下:

            項(xiàng)目經(jīng)理:整體協(xié)調(diào)項(xiàng)目,編制計劃及保證計劃執(zhí)行,推動項(xiàng)目成功。

            系統(tǒng)分析員:分析系統(tǒng)需求,保證系統(tǒng)需求既滿足客戶要求,同時保證技術(shù)可行性;指導(dǎo)項(xiàng)目技術(shù)方案及系統(tǒng)架構(gòu)設(shè)計。

            軟件設(shè)計師:細(xì)化系統(tǒng)設(shè)計。

            程序員:編碼實(shí)現(xiàn)設(shè)計。

            測試工程師:測試系統(tǒng),保證系統(tǒng)滿足需求。

            實(shí)施工程師:部署、調(diào)試系統(tǒng),培訓(xùn)客戶,協(xié)助客戶推動系統(tǒng)上線運(yùn)行。

            配置管理員:對整個項(xiàng)目周期中的工作產(chǎn)品實(shí)施配置管理。

            QA:質(zhì)量保證工程師,保證開發(fā)過程按照既定的要求進(jìn)行,保證工作產(chǎn)品符合既定的規(guī)范。

            這個傳統(tǒng)團(tuán)隊(duì)模型有兩大特點(diǎn):

            1、一個團(tuán)隊(duì)總有一個頭(這也是我們的慣性思維),這個頭就是項(xiàng)目經(jīng)理。

            2、假設(shè)各種專業(yè)的角色能協(xié)調(diào)工作,并能各自發(fā)揮所長。

            我們希望項(xiàng)目團(tuán)隊(duì)能有一個強(qiáng)大的頭領(lǐng),加上一班專業(yè)人才,共同為項(xiàng)目成功而努力。

            但實(shí)際情況有這么理想嗎?

            項(xiàng)目經(jīng)理會埋怨手下能力不夠、不主動報告工作、不主動承擔(dān)責(zé)任......

            而項(xiàng)目組成員會埋怨項(xiàng)目經(jīng)理不夠強(qiáng),只會叫他干活,不授權(quán),更加不會傳授知識......

            實(shí)際項(xiàng)目團(tuán)隊(duì)模型

            我們實(shí)際項(xiàng)目的團(tuán)隊(duì)結(jié)構(gòu),往往是這樣的:




           實(shí)際情況與理想的傳統(tǒng)模型比較,有以下重大差異:

            1、項(xiàng)目經(jīng)理身兼多職。

            很多項(xiàng)目往往沒有專職的系統(tǒng)分析員和軟件設(shè)計師,項(xiàng)目經(jīng)理兼任需求分析與軟件設(shè)計的工作,甚至還需要負(fù)責(zé)編碼的工作。

            圖中系統(tǒng)分析員、軟件設(shè)計師這兩個角色都是虛線框,意思就是表示這兩個角色往往只是虛位,難以落實(shí)具體的專職的人員。

            項(xiàng)目經(jīng)理要做的事情太多了,往往沒有辦法專注項(xiàng)目管理,項(xiàng)目計劃相關(guān)的文檔能免則免,項(xiàng)目設(shè)計文檔能少則少。

            2、測試工程師、實(shí)施工程師低人一等。

            很多公司公司的測試工程師、實(shí)施工程師會“低人一等”,開發(fā)人員有天生的優(yōu)越感,而項(xiàng)目經(jīng)理往往是由開發(fā)人員升任的,項(xiàng)目經(jīng)理會有意無意地將測試工程師、實(shí)施工程師擺低一級。各角色如果不能平等的工作,項(xiàng)目團(tuán)隊(duì)?wèi)?zhàn)斗力自然大受影響。

            造成這種不平等的原因主要有兩個:一就是開發(fā)人員的天生優(yōu)越感,二就是整體來說我們的測試工程師、實(shí)施工程師水平確實(shí)還不夠

            在我們公司其實(shí)也有這樣的“不平等”情況,我花了很多時間營造“平等”的氛圍,我的主要辦法有:

            1)通過各種途徑不斷強(qiáng)調(diào)項(xiàng)目團(tuán)隊(duì)各專業(yè)人才的重要性。

            2)想盡辦法提高測試工程師與實(shí)施工程師的水平。

            3、配置管理員、QA再低人一等,甚至可有可無。

            圖中這兩種角色是灰色的,這兩者可能是整個項(xiàng)目團(tuán)隊(duì)中最“慘淡”的角色了!

            好一點(diǎn)的公司都會有配置管理員,但往往被當(dāng)作文員來看待,而有些公司甚至沒有專職的配置管理員,項(xiàng)目經(jīng)理甚至沒有想到要配置管理這回事。QA是一個四面不討好,到處惹人非議的角色,可以說是項(xiàng)目組中最“差”的職位了。

            造成這局面原因也主要有兩個:一就是大家的習(xí)慣性思維認(rèn)為這兩個職位就是最不重要的,二就是我們的配置管理員、QA的水平還不夠的問題。

            對于配置管理工作,其實(shí)實(shí)質(zhì)就是項(xiàng)目生命周期中各種工作產(chǎn)品的管理工作,我認(rèn)為項(xiàng)目經(jīng)理應(yīng)該發(fā)揮更大的作用,而我們的配置管理員應(yīng)該嵌入到項(xiàng)目的具體中去完成工作,而不要只抱著配置管理的大道理來工作。

            QA確實(shí)是最痛苦的職位,優(yōu)秀的QA需要有資深的項(xiàng)目經(jīng)驗(yàn),但有資深項(xiàng)目經(jīng)驗(yàn)的人大都不愿意做QA,這是多么矛盾和痛苦啊!

            簡單地說,實(shí)際的項(xiàng)目團(tuán)隊(duì)結(jié)構(gòu)有以下嚴(yán)重問題:

            1、團(tuán)隊(duì)的頭不能專職項(xiàng)目管理。

            2、項(xiàng)目團(tuán)隊(duì)中各專業(yè)人才要么缺失、要么嚴(yán)重不平等。

            MSF的項(xiàng)目團(tuán)隊(duì)模型

            MSF,全稱是Microsoft Solution Framework,微軟解決方案框架,是微軟進(jìn)行研發(fā)活動的方法論。

            MSF的團(tuán)隊(duì)模型非常特別,它沒有團(tuán)隊(duì)的頭領(lǐng):

          此圖來自MSF的官方資料

            微軟的團(tuán)隊(duì)是沒有項(xiàng)目經(jīng)理的,由6類角色組成,分別是產(chǎn)品經(jīng)理(Product Management)、程序經(jīng)理(Program Management)、開發(fā)(Development)、測試(Test)、發(fā)布管理(Release Management)、用戶體驗(yàn)(User Experience)。

           各類角色負(fù)責(zé)的職責(zé)如下:

            該模型的幾個重要特點(diǎn):

            1、沒有所謂的項(xiàng)目經(jīng)理。

            程序經(jīng)理這個角色可以說是最接近項(xiàng)目經(jīng)理的了,他需要編制計劃及跟蹤計劃執(zhí)行,但在行政級別上,他不是大家的頭,大家都是平等的,大家只是處在不同專業(yè)的角度來負(fù)責(zé)工作。

            2、強(qiáng)調(diào)項(xiàng)目團(tuán)隊(duì)是由各專家組成的。

            軟件開發(fā)活動是高強(qiáng)度高挑戰(zhàn)的智力活動,我們需要由各類專家共同負(fù)責(zé)協(xié)調(diào)工作,每位專家都是同等重要的。

            3、用戶體驗(yàn)是我們常常忽略的部分。

            用戶體驗(yàn)簡單地說就是用戶使用軟件時的感覺,軟件的顏色、布局、文字、行為等等會直接影響用戶使用軟件的滿意度。目前我們國內(nèi)的項(xiàng)目組,往往沒有用戶體驗(yàn)設(shè)計環(huán)節(jié),也沒有專職的用戶體驗(yàn)設(shè)計師。

          我第一次學(xué)習(xí)MSF團(tuán)隊(duì)模型時讓我很震動,該模型體現(xiàn)了以人為本的開發(fā)模式,讓團(tuán)隊(duì)中的每個人都極受鼓舞,但該模型在實(shí)際工作中很難完全應(yīng)用,主要原因如下:

            1、各專業(yè)人才水平參差不齊。

            我的個人感覺國內(nèi)以上六類角色的水平由高到低排列,大致這樣:開發(fā)、程序經(jīng)理、產(chǎn)品管理、測試、發(fā)布管理、用戶體驗(yàn),而用戶體驗(yàn)基本是空白。各專業(yè)人才能力不相當(dāng),就無法組成“無頭領(lǐng)”的團(tuán)隊(duì),充分發(fā)揮各種角色的作用。

            2、各專業(yè)人才水平全部沒達(dá)到要求。

            哪怕是水平最高的開發(fā)角色,我們的平均水平跟微軟的相比還是相差太遠(yuǎn),那就更加不需要提其他角色了。

            3、團(tuán)隊(duì)協(xié)助能力差。

            我們的團(tuán)隊(duì)基本不會“team work”,我們從小到大的教育就基本沒有“team work”的教育。

            MSF常常也被人以“太理想化”質(zhì)疑,MSF所描述的世界只是軟件開發(fā)的烏托邦而已。難道我們的現(xiàn)實(shí)情況就決定了我們的項(xiàng)目團(tuán)隊(duì)水平嗎?我們沒有辦法建立一種實(shí)用的項(xiàng)目團(tuán)隊(duì)模型,讓我們的項(xiàng)目團(tuán)隊(duì)能持續(xù)進(jìn)步嗎?

            實(shí)用團(tuán)隊(duì)模型

            我?guī)ьI(lǐng)過很多團(tuán)隊(duì),其中不少是帶領(lǐng)應(yīng)屆生或者是工作經(jīng)驗(yàn)還不多的工程師,團(tuán)隊(duì)中每個人的能力如果還不能塑造好,確實(shí)無法讓團(tuán)隊(duì)高效運(yùn)作。而項(xiàng)目初期我做的很多事情,都是通過項(xiàng)目具體工作來訓(xùn)練大家、提高每個人水平的事情。

            我們的計算機(jī)相關(guān)教育并沒有訓(xùn)練出合格的各類專業(yè)人才,但我們這般計算機(jī)從業(yè)者都是充滿激情和追求進(jìn)步的,基于這樣的現(xiàn)狀,我覺得應(yīng)該有合適的團(tuán)隊(duì)模型能讓我們的項(xiàng)目團(tuán)隊(duì)自學(xué)習(xí),然后逐步發(fā)揮各專業(yè)人才的作用。

            我們光抱怨我們的教育制度是沒有用的,我們需要實(shí)用的團(tuán)隊(duì)模型來解決當(dāng)前的實(shí)際問題。我在實(shí)際項(xiàng)目中的項(xiàng)目團(tuán)隊(duì)模型,通常是這樣的:




           角色和人并一定是一一對應(yīng)的,一個人可以戴多個角色的帽子,一種角色也可能由多個人擔(dān)當(dāng)。

            上述模型有8種角色:項(xiàng)目經(jīng)理、產(chǎn)品經(jīng)理、軟件設(shè)計師、用戶體驗(yàn)設(shè)計師、測試工程師、實(shí)施工程師、配置管理員、QA。

            前面六種角色分別與MSF的程序經(jīng)理、產(chǎn)品經(jīng)理、開發(fā)、用戶體驗(yàn)、測試、發(fā)布管理角色類似。

            我基本上是很認(rèn)可MSF的項(xiàng)目管理思想的,但為了適應(yīng)實(shí)際情況,我做了一些必要的調(diào)整。

            1、讓綜合能力比較強(qiáng)的人擔(dān)當(dāng)項(xiàng)目經(jīng)理。

            這個人不一定非常強(qiáng),但只要他是項(xiàng)目組所有人中綜合能力最強(qiáng)的人就可以了。項(xiàng)目經(jīng)理除了領(lǐng)導(dǎo)項(xiàng)目團(tuán)隊(duì),他需要更關(guān)注項(xiàng)目成員的成長。項(xiàng)目經(jīng)理進(jìn)行相關(guān)決策的時候,應(yīng)該充分發(fā)揮大家的參與性。

            2、各角色是同等重要的。

            無論是測試工程師、實(shí)施工程師、配置管理還是QA,他們都和開發(fā)人員是平等的。哪怕是項(xiàng)目經(jīng)理也不是高高在上的,項(xiàng)目經(jīng)理只是比大家稍微高級別一點(diǎn),之所以這樣也是因?yàn)楦鹘巧乃竭€不是很夠,我們需要一個項(xiàng)目帶領(lǐng)人。

            3、持續(xù)總結(jié)與進(jìn)步。

            犯錯不可怕,只需要能不斷學(xué)習(xí)不斷總結(jié)不斷進(jìn)步就可以了。整個項(xiàng)目小組是學(xué)習(xí)型成長型的團(tuán)隊(duì),要人人勇于承擔(dān)責(zé)任,不怕犯錯,遇到問題一起來總結(jié)進(jìn)步!

            4、強(qiáng)調(diào)用戶體驗(yàn)的重要性。

            用戶體驗(yàn)其實(shí)是很重要的工作,但往往被我們忽視,而現(xiàn)實(shí)情況是我們基本沒有用戶體驗(yàn)方面的高校教育,各公司在這方面的基礎(chǔ)也比較薄弱。我在實(shí)際工作中,會把用戶體驗(yàn)的責(zé)任落實(shí)到實(shí)施工程師與測試工程師頭上,要求他們多從客戶的角度來思考軟件應(yīng)該如何設(shè)計。另一方面,我會要求項(xiàng)目組成員或者我自己親自編寫出用戶體驗(yàn)設(shè)計文檔,讓整個項(xiàng)目小組來評審。希望通過這系列的工作,培養(yǎng)出公司自己的用戶體驗(yàn)設(shè)計師。

            什么才是合適的項(xiàng)目團(tuán)隊(duì)模型?

            其實(shí)沒有固定的標(biāo)準(zhǔn),各種項(xiàng)目管理理論都會有它自己的見解。無論是傳統(tǒng)的團(tuán)隊(duì)模型,還是MSF的團(tuán)隊(duì)模型,各種理論都會基于某些假設(shè),我們實(shí)際工作中應(yīng)用這些知識時,應(yīng)充分認(rèn)識當(dāng)前我們的水平和存在的問題,針對性地調(diào)整模型將其轉(zhuǎn)化為合適的情況,并在實(shí)際工作中持續(xù)改善它。

            從我的經(jīng)驗(yàn)看來,以下幾點(diǎn)是很重要的:

            1、項(xiàng)目中的每個人盡管水平和能力不一致,但應(yīng)該都被平等的對待,所有人對項(xiàng)目同等重要。

            2、水平和能力較高的人,應(yīng)該承擔(dān)更多責(zé)任,并且有責(zé)任推動項(xiàng)目組人員提高水平。

            3、“學(xué)習(xí)、總結(jié)、進(jìn)步”,是每個項(xiàng)目團(tuán)隊(duì)?wèi)?yīng)該具備的基本特點(diǎn)。

            4、項(xiàng)目各角色的劃分其實(shí)是靈活的,但項(xiàng)目所有人員的整體能力和水平,應(yīng)該能覆蓋實(shí)用項(xiàng)目團(tuán)隊(duì)模型的8種角色。如果缺失某種角色,或者某種角色的水平較低,項(xiàng)目組則應(yīng)該有計劃地去增強(qiáng)這部分的水平。

            5、項(xiàng)目組中所有人承擔(dān)的工作負(fù)荷和責(zé)任應(yīng)該大致均等。

            通過本文,希望能為各位打造高效的項(xiàng)目團(tuán)隊(duì)帶來有益的啟發(fā)。

          posted @ 2011-11-18 14:43 順其自然EVO 閱讀(199) | 評論 (0)編輯 收藏

          Java流緩沖區(qū)問題

               摘要: 聽著張孝祥老師關(guān)于緩沖區(qū)知識的課,發(fā)現(xiàn)還是有一些沒有掌握,動手試了一下,果然發(fā)現(xiàn)了問題。  先講一下關(guān)于java緩沖區(qū)的知識,應(yīng)用程序和IO設(shè)備之間存在一個緩沖區(qū),一般流是沒有緩沖區(qū)的,但是如果存在緩沖區(qū),就會發(fā)現(xiàn)很大的問題。  錯誤代碼如下:為了確保問題發(fā)生,我使用了BufferedOutputStream,使得手動構(gòu)造出了一個緩沖區(qū)。import java.io.*; &n...  閱讀全文

          posted @ 2011-11-18 14:37 順其自然EVO 閱讀(1028) | 評論 (0)編輯 收藏

          !!!!!!!Unbuntu中Java安裝配置

          Sun JDK的安裝基本上有兩種方式: 

            1. 通過Ubuntu提供的包管理工具進(jìn)行安裝 

          Ubuntu在其包倉庫里都包括有JDK的安裝,只要sources.list設(shè)置正確,通過apt-get, aptitude, Synaptic Package Manager等都能安裝,而且相關(guān)的設(shè)置也容易得多;在Ubuntu的新  發(fā)布版本里都帶了JDK5.0,和JDK6.0的安裝支持,而且版本都比較高,和Sun官方的發(fā)布沒有很大的 版本落差.以Ubuntu7.10來說,提供的JDK5的版本為:1.5.0.13,JDK6的版本是1.6.03,算是很新的版本了. 

          這種安裝方式缺點(diǎn)是:對JDK具體版本的可選擇性不是很靈活,你若是想安裝最新的JDK版本,或由于特殊的原因必須安裝特定的JDK版本,可能就比較費(fèi)勁了。 

          所以,若以此種方式安裝JDK,請先通過apt-cache search, aptitude, Synaptic Package Manager等工具查詢你的Ubuntu發(fā)行版本可安裝的JDK版本是否能符合你的開發(fā)要求;具體安裝 步驟請看參閱部分提供的文檔。 

          2. 通過Sun網(wǎng)站提供的自解壓包進(jìn)行手動的安裝 

          這種方式顯然有它的好處: 可自由選擇JDK版本,能進(jìn)行靈活的配置。其實(shí)JDK的配置是很簡單的:能讓系統(tǒng)找到JDK所在的目錄(JAVA_HOME),以便調(diào)用其目錄中bin目錄下的相關(guān)命令腳本。 

          在此以Ubuntu7.10系統(tǒng),Sun JDK 6.0 update 4為例說明一下具體的安裝方式: 

          2.1.  從Sun站點(diǎn)下載jdk 6.0.4的Linux自解壓文件 jdk-6u4-linux-i586.bin; 

          2.2. 安裝配置 

          cd /usr/local/lib 
          sudo cp /home/jdk-6u4-linux-i586.bin ./ 
          sudo chmod +x jdk-6u4-linux-i586.bin 
          sudo ./jdk-6u4-linux-i586.bin
           
          執(zhí)行最后一步命令后便在當(dāng)前目錄下多了一個“jdk1.6.0_04“的目錄,里面是jdk-6u4-linux-i586.bin解壓后JDK的全部文件; 
          由于Ununtu本身帶了gij的JVM實(shí)現(xiàn),所以當(dāng)你在Terminal輸入:  "java -version"時會顯示: 
          java version "1.5.0" 
          gij (GNU libgcj) version 4.2.1 (Ubuntu 4.2.1-5ubuntu5)
           
          的相關(guān)信息。也就是系統(tǒng)中有兩個JVM實(shí)現(xiàn),而且gij JVM還被其它的Ubuntu工具或軟件使用;所以這種情況下就得使用 Debian提供的“update-alternatives“工具來完成程序多版本實(shí)現(xiàn)的選擇了: 
          sudo update-alternatives --display java 
          發(fā)現(xiàn)系統(tǒng)只列舉了gij  JVM;因?yàn)閖dk6是通過手動解壓安裝的。 
          現(xiàn)在輸入下面的兩行命令: 
          sudo update-alternatives --install /usr/bin/java java /usr/local/lib/jdk1.6.0_04/bin/java 60 
          sudo  update-alternatives --install /usr/bin/java java /usr/bin/gij-4.2 40 

          注意1,2行尾的60,40是優(yōu)先級;現(xiàn)在把JDK6設(shè)為了首選; 
          輸入: ls -l /etc/alternatives/java 發(fā)現(xiàn)JVM已經(jīng)指向了jdk6的解壓目錄: 
          lrwxrwxrwx 1 root root 35 2008-01-25 17:55 /etc/alternatives/java -> /usr/local/lib/jdk1.6.0_04/bin/java 

          cd /usr/bin 
          sudo cp java java.bak 
          sudo ln -sf /etc/alternatives/java . 


          現(xiàn)在再執(zhí)行: 
          java -version 

          java version "1.6.0_04" 
          Java(TM) SE Runtime Environment (build 1.6.0_04-b12) 
          Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing) 


          若想變更JVM實(shí)現(xiàn),輸入: 
          sudo update-alternatives --config java 
          進(jìn)行配置; 

          2. 3. 設(shè)置環(huán)境變量 

          在/etc/profile中加入如下的內(nèi)容: 

          JAVA_HOME=/usr/local/lib/jdk1.6.0_04 
          JRE_HOME=/usr/local/lib/jdk1.6.0_04/jre 
          CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib 
          export JAVA_HOME JRE_HOME CLASSPATH 


          okey, JDK安裝配置完成。 


          安裝與配置IDE 

            1. Eclipse的安裝與配置 

          1.1 從eclise.org下載Eclipse開發(fā)平臺 
          如類似以下的文件:eclipse-java-europa-fall2-linux-gtk.tar.gz. 

          1.2 解壓文件 
          sudo mkdir /usr/local/dev 
          sudo mkdir /usr/src/dev 
          sudo cp eclipse-java-europa-fall2-linux-gtk.tar.gz /usr/src/dev/ 
          cd /usr/src/dev 
          tar zxvf eclipse-java-europa-fall2-linux-gtk.tar.gz  -C /usr/local/dev
           

          1.3 建立一個Eclipse可執(zhí)行文件 
          sudo touch /usr/bin/eclipse 意思是新建立一個空文件,因?yàn)樵?usr/bin下面沒有eclipse這個文件的。
          sudo chmod 755 /usr/bin/eclipse 意思是讓這個空文件可以被所有人讀寫的權(quán)限
          sudoedit /usr/bin/eclipse
            這就相當(dāng)于Windows下面的快捷方式一樣
          內(nèi)容如下: 
          #!/bin/sh 
          export ECLIPSE_HOME="/usr/local/dev/eclipse" 
          $ECLIPSE_HOME/eclipse $*
           

          然后按ctrl+x退出;

          現(xiàn)在打開Terminal,執(zhí)行"eclipse"應(yīng)該能打開Eclipse了。 

          1.4 添加Eclipse到Gnome菜單中 
          sudoedit /usr/share/applications/eclipse.desktop 
          內(nèi)容如下: 
          [Desktop Entry] 
          Encoding=UTF-8 
          Name=Eclipse 
          Comment=Eclipse IDE 
          Exec=eclipse 
          Icon=/usr/local/dev/eclipse/icon.xpm 
          Terminal=false 
          Type=Application 
          Categories=GNOME;Application;Development; 
          StartupNotify=true
           

            2. Netbeans的安裝與配置    

          2.1 從netbeans.org下載Netbeans開發(fā)平臺 
          如類似以下的文件: netbeans-6.0-javase-linux.sh. 

          2.2 安裝文件 
          sudo cp netbeans-6.0-javase-linux.sh /usr/src/dev/ 
          cd /usr/src/dev 
          sudo chmod 755 netbeans-6.0-javase-linux.sh 
          sudo ./netbeans-6.0-javase-linux.sh 

          執(zhí)行最后一步后,出現(xiàn)安裝界面,選擇安裝目錄和JDK的位置,確定后完成安裝,在當(dāng)前目錄生成了“netbeans-6.0"目錄,里面是Netbeans的內(nèi)容。 

          2.3 建立一個Netbeans可執(zhí)行文件 
          sudo touch /usr/local/bin/netbeans 
          sudo chmod 755 /usr/local/bin/netbeans 
          sudoedit /usr/local/bin/netbeans
           
          內(nèi)容如下: 
          #!/bin/sh 
          #!/bin/sh 
          export NETNEANS_PATH="/usr/local/dev/netbeans-6.0/bin" 
          $NETNEANS_PATH/netbeans $* 



          2.4 添加Netbeans到Gnome菜單中 
          sudoedit /usr/share/applications/netbeans.desktop 
          內(nèi)容如下: 
          [Desktop Entry] 
          Encoding=UTF-8 
          Name=NetBeans6.0 
          Comment=Sun Netbeans IDE 
          Exec=netbeans 
          Icon=/usr/local/dev/netbeans-6.0/nb6.0/netbeans.png 
          Terminal=false 
          Type=Application 
          Categories=GNOME;Application;Development; 
          StartupNotify=true
            

            3. IntelliJ Idea的安裝與配置  

          3.1 從jetbrains.com下載IntelliJ開發(fā)平臺 
          如類似以下的文件:idea-7.0.2.tar.gz. 

          3.2 解壓文件 
          sudo cp idea-7.0.2.tar.gz  /usr/src/dev/ 
          cd /usr/src/dev 
          sudo tar zxvf idea-7.0.2.tar.gz   -C  /usr/local/dev 
          sudo mv idea-7590 idea 


          3.3 更改/etc/profile 
          IntelliJ Idea啟動將JAVA_HOME命名為"IDEA_JDK"  或"JDK_HOME",所以需在/etc/profile中添加JDK_HOME設(shè)置,更改后的/etc/profile為: 

          JAVA_HOME=/usr/local/lib/jdk1.6.0_04 
          JDK_HOME=/usr/local/lib/jdk1.6.0_04 
          JRE_HOME=/usr/local/lib/jdk1.6.0_04/jre 
          CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib 
          export JAVA_HOME JDK_HOME JRE_HOME CLASSPATH 
                 
          之后重啟系統(tǒng); 

          3.4 建立一個Idea可執(zhí)行文件 
          sudo touch /usr/bin/idea 
          sudo chmod 755  /usr/local/bin/idea 
          sudoedit  /usr/local/bin/idea
           
          內(nèi)容如下: 
          #!/bin/sh 
          export IDEA_PATH="/usr/local/dev/idea/bin" 
          $IDEA_PATH/idea.sh$*
           

          3.5 添加IntelliJ Idea到Gnome菜單中 
          sudoedit /usr/share/applications/eclipse.desktop 
          內(nèi)容如下: 
          [Desktop Entry] 
          Encoding=UTF-8 
          Name=Idea 
          Comment=IntelliJ Idea 7 
          Exec=idea 
          Icon=/usr/local/dev/idea/bin/idea32.png 
          Terminal=false 
          Type=Application 
          Categories=GNOME;Application;Development; 
          StartupNotify=true
           

            4. Emacs下的配置  
          請參考我寫的另一篇文章: Emacs下配置Java開發(fā)環(huán)境 

          參閱資料: 

          1.  到Sun java站點(diǎn)下載JDK實(shí)現(xiàn)。 

          2. 請參考Ubuntu Java文檔中通過包管理工具的實(shí)現(xiàn)。 

          3. serios.net中有關(guān)于Debian, Ubuntu下安裝配置JRE,JDK的精彩說明。 

          4. 參考How to Install Sun Java on Debian的另外一種安裝方式。 

          5. 參考update-alternatives的文檔,看相關(guān)命令的操作。 

          6. 到Eclipse站點(diǎn)下載Eclipse IDE for Java Developers. 

          7. 看Ivar Abrahamsen關(guān)于Ubuntu下配置Elipse的精彩說明. 

          8. 到Netbeans站點(diǎn)下載Netbeans IDE. 

          9. 到Jetbrains站點(diǎn)下載IntelliJ IDEA.

          posted @ 2011-11-18 11:19 順其自然EVO 閱讀(1149) | 評論 (0)編輯 收藏

          深入了解HTML5

          http://www.comsharp.com/GetKnowledge/zh-CN/It_News_K701.aspx

          posted @ 2011-11-18 10:11 順其自然EVO 閱讀(552) | 評論 (0)編輯 收藏

          僅列出標(biāo)題
          共394頁: First 上一頁 362 363 364 365 366 367 368 369 370 下一頁 Last 
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 垫江县| 汾西县| 营口市| 阿拉善左旗| 万山特区| 南宁市| 竹溪县| 民勤县| 县级市| 惠水县| 灌云县| 桐柏县| 黔东| 铜鼓县| 白河县| 沁源县| 锡林郭勒盟| 太白县| 山阳县| 马公市| 武川县| 娱乐| 台东县| 伊通| 阿拉尔市| 昌图县| 桃园市| 库伦旗| 台东县| 安化县| 鄂托克旗| 广宗县| 大埔县| 建昌县| 南丰县| 都匀市| 阿合奇县| 香河县| 阿鲁科尔沁旗| 运城市| 厦门市|