千鋒互聯(lián)軟件測試的總監(jiān)王老師曾經說過,測試人員作為產品質量控制的之后一環(huán),應當是以完善作品而非完成工作為目標。因此,不論是測試時的工作態(tài)度還是百歲在測試左右的測試流程,都應當有如測試這個工作本身一樣的嚴謹程度。在王老師的課程中,他分別列舉了兩種測試流程,并對這兩種流程加以分析,陳述利弊,在為同學們傳授知識和經驗的同時,也為同學們開展了一堂責任教育的課程。
一、簡陋的測試流程
先說說普通的中小型規(guī)模公司。這類公司往往要考慮到節(jié)約成本的問題,入職后各種項目往往都在進行當中,上面給新人的定位是并不完全融入到項目中去,而經過指派任務的方式進行工作。
下面是簡陋的流程圖:
需求分析與架構設計:
我們以某一移動公司內部使用的項目為例,需求分析與架構全部由項目經理完成,之后由項目經理給具體某個開發(fā)人員分配任務,具體對某個功能模塊的實現(xiàn)。這個對項目經理的經驗與技術要求很高,他既然擔任了需求分析師,又擔任架構師的角色。
程序員編碼:
因為較大眾的開發(fā)語言用的是JAVA 語言,IDE用myeclipse 中自帶的CVS版本管理工具,開發(fā)人員完成代碼后,提交到版本庫中。
測試:
進入正是測試任務后,入職后的第1個任務是搭建缺陷管理工具,禪道項目管理,經過推廣對發(fā)現(xiàn)的問題進行跟蹤。后來正明效果并不好,因為對于一個六七人的開發(fā)團隊項目,開發(fā)人員更喜歡測試人員能當面反饋,這樣更能提高效率。對一個小bug 經過當面交流的方式就可以將問題修復。
常見的簡陋的測試環(huán)境中,有時并沒有測試線。開發(fā)人員在本機上將項目進行部署運行。測試人員經過局域網訪問開發(fā)人員的機子進行訪問?;蛟跍y試人員本機上進行部署測試。這也是一個致命的缺點。因為開發(fā)人員測試人員使用的電腦存在太多不穩(wěn)定性,這些都會造成問題的出現(xiàn),有時候難以判定是系統(tǒng)問題還是環(huán)境問題。
上線:
經過測試人員測試過后,開發(fā)人員部署上線。
A程序員流程
你會發(fā)現(xiàn)在流程圖中,A程序員是先發(fā)上線之后,再進行測試。這是一個面向大眾用戶的網站,上面給于測試人員的定位是測試員兼用戶體驗員,測試員將發(fā)現(xiàn)的bug和體驗問題提交到缺陷管理系統(tǒng),由經理對問題進行分析,指派開發(fā)人員解決。定期對系統(tǒng)進行更新。
流程分析:
這個流程**的優(yōu)點,就是能快速的發(fā)現(xiàn)并修復問題。
缺點就非常多了,相信許多小軟件公司也有類似的流程。
這個流程中,項目經理是核心,如果項目經理也確實是有多年開發(fā)與項目經驗的牛人的話還好,但如果確實是一個尸位素餐的人的話……
(不過其實一般倒也不太可能,畢竟私企對員工的要求也不低,你出不來成績的話上面不會放過你的)
對于測試來說,需求很不明確,測試文檔與用例也是可有可無的產物,沒有需求文檔,或非常簡陋,根據(jù)需求文檔根本無法編寫用例。有時候只能收集一些通用的測試用例,如登錄、文件上傳下載、列表翻頁、日期選擇、輸入框驗證、搜索等有一些“通用型”用例,以便在測試過程中做參考。功能測試的多了,拿到一個功能,測試思路也就出來了。
規(guī)范的測試流程
放棄上份悠閑的工作吧,感謝那個帶你入行公司,我們還是學習一下真正的測試在公作中如何進行的。所以,離開舒適區(qū),來到了一家大公司。一般的大公司就有自己的團隊,專業(yè)(對當時的你來說)的流程,以及與開發(fā)等同的地位了。
現(xiàn)在的測試流程:
需求分析:
需求分析由產品人員制定,他們要做的不是一份簡單的文檔,而是細化每一個功能的細節(jié),每一個按鈕的位置,對于稍大或復雜一點的需求都進行建模。
需求評審:
這里會叫上所有參與項目人員進行,開發(fā)人員、測試人員、QA人員。測試人員提出需求,開發(fā)人員考慮功能實現(xiàn)的方案與可行性、當然開發(fā)負責也是要參與的。測試人員主要是對需求的理解提出疑問,以便才能根據(jù)需求寫用例。QA人員是對軟件質量進行驗證的極重要人員,所以也需求了解需求。
開發(fā)人員編寫排期:
開發(fā)人員需求根據(jù)需求功能點進行排期。然后將開計劃轉交給測試人員。
測試計劃排期:
測試人員根據(jù)開發(fā)計劃,對測試具體測試時間,也就是開發(fā)功能完成后的時間,進行幾輪測試等。然后,把項目的開發(fā)與測試計劃發(fā)送給各部門負責人及參與項目的所有人員。
編寫測試用例:
根據(jù)詳細的需求分檔,開始進行用例的編寫。
用例評審:
在用例進行評審之間,先以郵件形式將用例發(fā)送給相關人員,以便他們事先了解用例對哪些功能進行驗證以及驗證的細節(jié)。
然后,測試人員組進行用例評審,開發(fā)人員對用例與實際功能不符合有哪些,產品人員對會經過用例對功能的具體實現(xiàn)進行把握等等。
提交基線:
開發(fā)人員完成所有功能后,會對自己的功能進行一個自測。自測完成后提交測試人員進行基線。
具體測試流程:
開發(fā)人員對于基到測試線的功能進行測式,發(fā)現(xiàn)的問題經過缺陷管理工具進行反饋,開發(fā)人員對問題進行修復,然后,準備第二輪基。
測試人員完成第1輪測試后,需要寫測試結論,發(fā)到相關人員。然后對基線后的第二輪進行測試,第二輪會對第1輪中發(fā)現(xiàn)的問題進行重點回歸。
測試過后:
經過兩到三輪或四輪的測試后,直到沒發(fā)現(xiàn)新的問題,或暫時無法解決,或不緊急的問題。經過上級確認,可以過。編寫測試報告與驗收方案。
驗收方案是交由QA進行驗證的。在現(xiàn)公司的流程中是將測試與QA分開的,測試人員重點關注的是功能是否可以正常運行。QA關注的是整個流程的質量以及用戶的質量。有些公司QA與測試是不區(qū)分的,但這對測試的要求會更高,除了關心功能,還需要關心整體流程與質量。
流程分析:
對于剛接觸這個流程的我們來說,這個流程是規(guī)范的,測試真正融入了整個流程,而且還擔任了很重的角色,從而也有效的保證了軟件產品的整體質量。
那么這個流程是不是完美的呢?不,這個項目流程太強化各種文檔。我們來看測試的工作內容,測試計劃、測試用例、測試結論、測試報告、驗收方案、問題的提交跟蹤。其實,我們真用于測試的時間是非常少的,在一周的時間,也許只有一天或不到一天的時間是在進行測試的。測試人員只有在測試的時候才會體現(xiàn)出他的價值。而大部分工作卻不能體現(xiàn)他的價值。
當然,我這里會省略與測試主流程無關的東西,真正的測試工作中瑣事很多。
第1塊面板中是開發(fā)人員未實現(xiàn)的功能,第二塊面板中是開發(fā)完成功能,測試人員對其進行測試,發(fā)現(xiàn)不過的就放回未開發(fā)的面板中,測試過的將放到第三塊面板中。
應該看到,一個好的測試流程,固然在接觸之初會令人感到無比煩雜,但在實際應用中,卻會顯得高效異常。同時,我們也能看到,即使是再如何完備的測試流程,都必然會有其不足之處。而我們作為測試人員,正應當是一個發(fā)現(xiàn)缺點,指出缺點,改正缺點的人?;蛘哒f,不論是在程序中,還是在工作上,都要養(yǎng)成一個測試人員所應有的態(tài)度。
同時我們也能夠想到,王老師是一個如此嚴謹?shù)亩嗄贶洔y工程師,他所教授的課程想必也一定有質量保證啊!
王老師,10年以上年從業(yè)經驗,碩士學位,曾任某上市集團測試部門主管,中航集團開發(fā)部技術主管,具備多年開發(fā)及測試工作經驗。在性能測試、自動化測試及軟件質量管理等方面的人才培養(yǎng)上具有較高的建樹。
優(yōu)秀的老師,優(yōu)質的視頻課程,盡在千鋒互聯(lián)。
課程咨詢
咨詢老師:金老師
咨詢電話:010-64707530
在線咨詢:戳右邊詳詢 >>