軟件測試中制定合理的軟件測試流程
首先向大家介紹一下我理解的測試流程是什么,流程在詞典上的解釋是“工藝程序,從原料到制成品的各項工序安排的程序”,那測試流程就是指從軟件測試開始到軟件測試結束經過的一系列準備、執行、分析的過程。所以我認為測試流程并不是只存在于有完整測試團隊的公司,它分布在每一個對軟件執行測試的公司中,哪怕這個公司只有一個測試人員。
軟件測試想要在一個公司中從無到有進而逐步完善,也需要公司上層領導、開發人員等人從接受到理解、支持到尊重的一個過程。要想完成這個目標并不容易,需要公司外部整個軟件測試行業和公司內部軟件測試工作的雙重影響。而整個軟件測試行業實際上又是由各個公司內部的軟件測試團體組成的,歸根結底要讓大家都接受軟件測試還是要靠每個公司內部軟件測試工作的影響。只有合適的測試流程才能快速的顯示出測試工作的作用,才能讓大家更快的接受測試工作,主動配合測試工作,進而完善測試工作,達到良性循環的作用。
制定合理的測試流程需要考慮的因素很多,畢竟它是大家進行測試工作的依據,又需要理清和需求人員、開發人員、市場人員等多方人員的關系,而且公司不同側重點又有所不同,所以在這里不可能面面俱到列出所有因素,只是根據自己的經驗列出認為比較重要的幾點。
制定測試流程首先要清楚自己所在的公司正處在什么發展階段,是處在最初的創業期還是已經度過了創業期希望通過測試來提高產品質量,以便取得更多的業務創造更大的效益?赡苡械耐袝X得奇怪,我們軟件測試是做技術的只管做好本職工作,為什么制定流程時要這么重視公司的發展情況呢。其實公司的情況和制定測試流程有非常大的聯系,公司的情況直接決定著公司對產品的要求,而測試部門一般來說是產品投入市場的最后一個關口,這也就等于公司的發展情況決定了公司對測試部門的要求。開發軟件前要先了解軟件的需求,制定測試流程前當然也要了解清楚公司對測試部門的需求。了解了公司的情況和要求后,就要根據這些要求結合制定者的測試知識和經驗,制定即符合公司要求又能起到軟件測試目的的軟件測試流程。當然這樣做并不是說讓軟件測試向公司的一些不利于開展軟件測試工作的現實情況妥協,只是根據公司的實際情況制定一些可以馬上改變公司測試工作現狀的流程。
一般正在創業期的公司面臨的是公司生存的問題,它需要和其他公司搶市場,這時公司為了配合市場的要求不光要求軟件產品的質量更要求整個項目的進度,但是對一些在軟件測試過程需要的文檔和產生的文檔卻不是特別在意。而且這樣的公司開發人員往往都是測試人員8倍10倍,經常是軟件代碼已經快寫完了,測試人員才會進入項目。這樣我們在制定測試流程時就要注意軟件測試工作的重點是執行測試,雖然前期的一些測試準備對以后的執行測試工作有很大的指導性作用,但前期準備工作如測試用例的寫作等也會增加軟件測試的時間,尤其是軟件測試人員在軟件已經開發出來才進入項目的時候,如果還要花大量時間去準備軟件測試,更會讓不了解軟件測試的人誤認為是軟件測試拖延了整個項目的進度,讓軟件測試的推廣工作受到更多的阻礙。這樣我們就可以適當刪減一些前期的準備工作,如減去用例評審工作,減少一些測試文檔的寫作工作,對一些測試文檔的寫作要求適當放寬等,更具體的就是我們可以不要求測試用例將操作步驟描述的很詳細,但是要記錄測試的思路可以簡化為測試方案,達到對測試工作的跟蹤目的就可以。但測試用例最好不要省略因為這個文檔可以為以后再測試類似功能的產品做好經驗的積累。
如果公司已經度過最初的生存期,這時公司會對產品的質量有更高的要求并且體現到對軟件開發過程的要求。而且公司從軟件開發計劃制定、進度跟蹤、項目管理等都有了一定的經驗也有了一些歷史數據可以參考。這樣對軟件測試的一些前期準備工作也會有所考慮,并適當滿足,這時軟件測試流程可以加強前期測試準備工作、后期測試分析工作。具體可以要求軟件測試從需求介入以便盡早了解產品,制定獨立的軟件測試計劃并將軟件測試時間納入整個項目進度中,細化測試用例寫作的力度,增加后期對缺陷分析的工作進而逐步提高整個軟件測試團隊的技術力量,讓軟件測試滲透到整個軟件過程中。
其實公司內軟件測試一片空白或者測試流程比較完善的公司流程制定和執行相對來說都會比較容易一些,如果是一片空白你可以完全按照自己的想法去建立軟件測試流程,剩下的困難只是如何去說服領導和開發配合這個流程。如果軟件測試流程已經比較完善,大家對軟件測試已經有了一定的支持和理解并且現階段運行良好,你只需要在一些小節上進行一些修改,如果的確有利于工作會得到大多數人的支持。最難制定的是軟件測試剛剛起步有了一些不成型的測試流程,也許不太符合你的想法也許不太適合公司的實際情況但的確在公司運行了一段時間,如果想改變不光要說服測試部門以外的人還要說服測試工作人員,增加了工作的難度,如果公司是這種情況請大家在制定軟件測試流程前更要慎重考慮,詳細了解公司的情況。
制定軟件測試流程時可以參照一些比較完善的軟件測試流程,但切忌不可照搬這些流程。我們經常會遇到這樣的情況,如果在測試工作過程中碰到一些問題有人會說如果在微軟或IBM公司是這樣處理的,我們也可以這樣。但是我們的工作環境和這些公司是不一樣的,測試的思想已經深入貫穿到他們開發的每一個步驟中,而我們目前大多數公司的軟件開發過程并沒有達到這樣的程度,我們大多需要解決的是在測試思想還沒有貫徹徹底的公司我們怎么處理這個問題。無論是軟件測試剛剛起步還是已經有了一定軟件測試團隊規模有多年軟件測試經驗的公司,都有一些屬于自己公司特定的測試方法和流程,就是完善的軟件測試流程也各有各的不同,IBM和微軟在測試流程肯定是有所差別的。如果將他們的流程照搬過來,沒有給公司同事一個慢慢接受消化的過程,很容易適得其反甚至引起公司同事的抵觸情緒。這里并不是說這些測試流程不好,只是這些測試流程也不是一開始就建立起來的,而是通過多年的經驗和教訓逐步完善一步一步慢慢建立的,并且現在它們仍在進一步完善中。我們不僅要學習這些完善的軟件測試流程是什么樣的,我們更要學習為什么制定這套軟件測試流程。給人金子不如給人點金術,也就是這個道理。那些軟件測試流程比較完善的公司走在了我們的前面,我們就要學習他們這一路走來的經驗和教訓,避免走他們走過的彎路,縮短完善公司流程的時間。
制定軟件測試流程要明確測試部門的職責。經常會有測試人員抱怨自己在公司里就是一個打雜的,什么工作都要做,其實這就是職責不明確引起的問題,這樣會很大程度打擊測試人員的工作積極性影響工作情況進而影響大家對軟件測試工作的看法。一些如寫用戶手冊、給用戶培訓等工作在公司里如果沒有專門的部門來做,就很容易推給軟件測試人員來做,但是都沒有明文規定而且在對軟件測試人員進行工作考核時又很容易疏忽這些工作,而且這些工作有時候看起來不太起眼,但是需要耗費大量的時間。所以我們要明確制定軟件測試部門的職責、軟件測試人員擔任的工作內容,其他一些工作如果由測試人員來做,就要在制定軟件測試計劃中明確寫出這些工作需要的時間,以防止這些工作占用測試時間,使測試人員陷于被動之中。
制定軟件測試流程不光要制定軟件測試部門內部的工作流程,更要制定與開發部門、需求部門等外部部門的接口工作的流程,一旦項目在進度、功能上有了變化要及時和測試部門溝通,不要讓測試部門成為最后一個知情人。
文章來源于領測軟件測試網 http://www.kjueaiud.com/