⑴ 如何提高測試效率
1.盡早參與到項目中
測試盡早介入項目詳細了解項目的業務需求,做好測試的前期准備:目前來說,可能大家都有類似的感受,接觸到的大多數的項目,都是測試周期比較短,開發人員耽誤了時間,為了不拖延項目進度,留給測試人員做測試的時間都非常緊張。如果項目測試的前期了解業務需求、了解產品屬性和准備測試數據不充分,往往測試效率很低,測試時間變長,測試效率急劇下降。
2.合理的測試計劃
首先要有一個合理的詳細的測試計劃:沒有詳細的測試計劃,測試部的每個成員都在那兒盲無目的測試,何談提高測試效率?當然測試計劃也不能夠太細,太細了,編寫測試計劃同樣浪費時間,做到時可而止。最好是測試任務盡量能細化到測試的功能較為理想。
3.要做好測試文檔的評審
測試負責人認真做好測試文檔的評審:測試經理一定要認真做好測試用例的評審,盡量使用較少的測試用例,發現較多的Bug,無疑是最佳提高效率的一種方式。很多時候,經驗較少的測試人員在設計測試用例的時候,寫了很多的測試用例,測試時幾乎沒有發現缺陷。還有一種:比如說等價類的測試,只要具備代表性就可以了,如果寫了很多測試用例,執行了半天,臃腫的測試用例,未發現任何問題,也很不值。這些主要是靠測試用例評審的時候,測試Leader去把握了。盡量做到在滿足需求的情況下,精簡測試用例數量,提高測試覆蓋率。很多時候,測試人員寫好用例就自己測試,根本沒人評審,有些地方理解有偏差,測試點沒測試到,導致發給客戶版本被退回,給公司也會帶來巨大經濟損失。
4.提高測試接受的標准,減少測試版本送測次數:
大部分公司的開發人員都有一種惰性,一旦公司成了測試部,他們自己測試時,都不會那麼認真,以為有了測試人員,就自己就解放了。很多時候都是調試編譯通過,實際上開發人員沒有做完整的自測,就拿到測試部進行測試。如果測試部門有嚴格的測試接受標准,一旦發現有重大問題,立即拒絕測試,送回開發人員修改。可以減少很多次反復測試,重復測試,明顯提高了測試效率。
5.發揮主觀能動性,積極溝通
測試工作是一項溝通要求比較高的工作,一般需要同項目經理、產品經理、開發人員、業務人員、客戶溝通。很多時候,由於測試介入較晚,測試時間短,測試初期測試人員了解需求不及開發人員,為了迅速熟悉需求,需要項目組成員之間相互培訓和溝通。測試人員為了利於測試工作,平時也需要主動和開發團隊溝通項目的進度、項目存在的問題、項目的需求變更等等情況。與團隊成員溝通得越充分、對項目的信息收集和把握得越及時、越准確,我們的測試工作才可能做得越順利,才可能提高測試效率。我們絕不能消極等待或一味埋怨開發人員的不理解和不重視。我們首先需要正視自己、改進自己,通過自身的不斷努力讓開發人員,真正體會到測試的價值。同時,也需要理解並配合開發人員的工作。只有這樣,才能贏得開發人員的支持。互相配合、互相促進,項目成員之間形成良性循環,彼此感情加深了、配合默契了、工作效率和工作質量也就自然提高了。
6.按照項目的性質大小不同,引入自動化測試工具和自動化測試腳本
是否引入自動化的測試工具,主要取決於測試的時間長短和測試的輪次。一般來說,測試周期較長、版本升級平凡和回歸測試次數較多的項目,引用測試工具可以提高測試效率。如果測試周期較短,本來測試周期只有兩三個月,開發測試腳步就要花費大量時間,引入自動化測試工具,用的次數較少,結果得不喪失,勞民傷財!
7.對測試項目前景充滿信心,調整最佳心態,保持愉悅的工作心情:
一般來說,如果大家認為測試的項目沒什麼發展前景,當然測試也不會很賣命,測試效率不用說。如果某個測試人員碰到什麼不順心的事,當天的工作效率肯定比平常低。所以,要保證測試效率,測試負責人要察言觀色,及時找不開心的下屬談心,了解並幫忙消除部分員工的不良情緒,讓員工有更好的心情投入到測試工作中去。
8.提高測試人員的專業技能和工作能力:
由於測試技術的不斷成熟和完善,許多的新技術陳出不窮,作為測試人員需要不斷提高自己的專業技能和工作技能。不斷的給自己充電,補充測試理論知識,讓自己工作技能力去彌補專業技能的不足。這樣,你的工作同樣可以做到最棒,效率自然很高。一段時間過去,回過頭來一看,自己確實進步不少,沒有虛度光陰呀!
⑵ 如何更高效地進行軟體測試的方法探討
From:檸檬班學習群:333782754
在實際工作中,可通過以下幾個途徑提高軟體的可測試性:減少並控制需求的變更;加強軟體可測試性的設計;重視並規范技術文檔的編寫。
1 減少並控制需求的變更
用戶需求可分為如下三個層次:基本需求、預期需求和擴展需求三類。其中預期需求是明示的,而基本需求和擴展需求是非明示的。所謂擴展需求是指這些特徵在用戶的期望范圍之外,並且當其存在時將是非常令人滿意的。由於種種原因,軟體的需求不確定性是客觀存在的,是不可避免的,軟體規模越大,研製周期越長,需求的不確定性就越大。軟體需求不確定性原因主要包括:用戶在表述需求時常常帶有不確定性與模糊性;隨著開發進程的推進,用戶對所建應用系統理解的不斷深入,對原來模糊的或非明示的需求有了新的認識,隨時會提出需求的變更;由於開發人員的領域知識的局限性,導致引發對需求的誤解;用戶需求的獲取過程與描述形式往往採用非形式化的自然語言,以及自然概念中存在的本質矛盾,使需求的規范描述發生困難。
(1)識別項目需求
識別項目需求是項目成功的關鍵,為了減少需求的不確定性,首先應充分認識確定需求的重要性,通過與用戶的溝通,使用戶能充分認識到軟體需求的變更對軟體質量、進度和成本的影響,積極參與到確定軟體需求的活動中,達到在進行軟體設計前盡量確定軟體需求的目的。同時在識別項目需求時,除了用戶明示的需求外,還需關注用戶基本需求,用戶基本需求常常體現在項目的領域知識、項目所在行業的相關標准等方面。實踐證明,開發人員對領域知識掌握的程度直接影響到項目需求的確定,開發人員通過對領域知識的積累有助於項目需求的確定。
(2)需求文檔化及需求評審
按照軟體工程化要求,用戶應該向研製方正式提交需求文檔,研製方根據用戶需求進行需求分析形成產品需求,用戶需求及產品需求均需文檔化並經過評審,以盡早發現不合理的需求。
(3)需求管理、需求變更的控制
在系統研製過程中應對需求進行管理,首先建立需求庫及需求跟蹤矩陣,在需求跟蹤矩陣中反映研製各階段工作產品與需求的對應關系,並對需求進行需求的雙向跟蹤。
(4)採用軟體需求管理工具
採用需求管理工具,可以提高需求管理工作流程的自動化程度,使需求管理可以在項目實施過程中得到有效地推行。需求管理工具可以在整個項目生命周期內,幫助團隊有效地協作,將需求的變更信息及時傳送到團隊的每個成員,可以使跨項目團隊的所有成員都能掌握必要的需求詳細信息,並對軟體項目規劃、項目跟蹤與監督實施管理。
2 加強軟體可測試性設計
在項目設計階段應注重對軟體可測試性的設計。項目負責人可根據項目具體情況對軟體可測試性提出具體要求,對軟體注釋率、軟體模塊規模、模塊圈復雜度、基本圈復雜度、操作數的個數以及過程出口個數等進行規定,在軟體設計及編程階段嚴格按照規范執行,可有效地提高軟體測試效率。實踐證明,如果在項目設計階段不進行軟體可測試性的設計,待軟體完成後再根據可測試性要求對腔皮指軟體進行修改完善常常需要花費巨大的人力和物力,同時大量修改對軟體質量也會帶來不利影響。
3 重視並規范技術文檔的編寫
技術文檔不僅是開發人員進行信息交流的手段,也是測試人員進行測試的依據。所以軟體相關文檔應描述明確詳細,組織合理,並根據需求和設計的變更及時更新。同時為了給獨立測試人員提供更多的信息,在技術文檔中可增加各軟體模塊的重要程度、重用性及測試歷史等信息,使得獨立測試人員可以合理分配精力,對重要軟體進行重點測試,減少不必要的重復勞動,提高測試效率。
3、軟體測試方法與組織
3.1 軟體測試方法
軟體模塊級測試分為白盒測試和黑盒測試。黑盒測試注重於測試軟體的伍配功能性需求,試圖發現功握爛能缺陷或遺漏、界面錯誤、數據結構或外部資料庫訪問錯誤、性能錯誤及初始化和中止等類型的錯誤。白盒測試依賴對程序細節的嚴密檢驗,對軟體的邏輯路徑進行測試,在不同的程序點檢驗「程序的狀態」以判定預期狀態或待驗證狀態與真實狀態是否相符。在軟體測試中,常常結合黑盒和白盒兩種測試方法,相互補充。
3.2 軟體測試人員
軟體測試可由軟體開發人員、獨立測試人員或用戶進行。在組織軟體測試時,可根據不同人員的特點進行組織,使得各類測試相互補充。
軟體開發人員熟悉軟體需求及被測軟體,清楚各軟體模塊的重要程度和相互關系,了解各軟體模塊以前的測試及修改等歷史情況,可以有針對性地進行測試;軟體開發人員和用戶交流較為方便,在測試中能夠發現與需求不一致的軟體錯誤。但是開發人員急於證明他們的程序是毫無錯誤的,是按照用戶的需求開發的,而且完全能夠按照預定的進度和預算完成,這將影響開發人員完成相關測試任務。
獨立測試人員應具備較強的測試理論水平和測試經驗,熟練掌握軟體測試工具,並知悉被測軟體的功能需求才能夠對軟體進行系統全面的測試。但獨立測試人員有時會缺乏相應領域的專業知識,主要測試依據是用戶的技術要求及開發人員在軟體研製過程中形成的文檔,一方面這些文檔中缺乏對用戶基本需求的描述;另一方面,獨立測試人員常常需通過開發人員來進行需求的理解,因此在軟體測試中有時無法發現軟體不滿足需求方面的錯誤。但這種錯誤往往從用戶角度來看是最嚴重的。同時,獨立測試人員由於對各軟體模塊的重要性及相互關系了解不深。有時會影響測試效率。
在條件允許的情況下,軟體完成後可提交用戶試用。用戶在試用中根據實際使用需求進行操作,其中包括各種正常操作流程和非正常操作流程。用戶試用可有效檢驗軟體是否滿足用戶需求,同時在用戶試用中對軟體的可靠性等方面也同步進行了測試。因為用戶試用方式同實際使用方式非常接近,所以通過用戶試用獲得好評的軟體基本可以滿足今後的實際使用要求。
3.3 提高軟體測試效率的方法
為了提高軟體測試效率,測試人員需要熟悉掌握軟體涉及的領域知識,了解軟體各項功能的重要程度和成熟程度,掌握測試理論和工具;用戶是驗證需求正確性的主導力量,應充分發揮用戶的積極作用。
在組織軟體測試時,可通過以下幾個方面提高軟體測試效率:
根據不同測試人員的特點進行測試分工,單元測試應以軟體開發人員為主進行,以保證每個單元能夠完成設計的功能。在很多情況下,集成測試也可以開發人員為主進行。當軟體體系結構完成後,獨立測試機構介人;
軟體測試人員應注重與用戶的溝通,及早發現需求分析、理解不合理的問題,避免今後花費大量的資源和時間進行改正;
對於軟體開發人員,需加強測試方法的培訓,提高自我測試的效率;
在選擇獨立測試人員時,盡量選擇比較熟悉了解被測軟體相關領域知識的人員;
獨立測試人員應該在軟體開發的需求階段就參與項目的研製,以便更好地制定測試計劃、確定測試目標及編寫測試用例。通過找出項目中關鍵的模塊和出錯率高的模塊,可使測試首先集中在最重要的部分,避免發生把過多時間花費在非重要模塊的測試而沒有時間測試重要的模塊的情況;
被測軟體在測試中發現了問題,要進行有組織的分析研究,然後權衡利弊進行規范化修改,避免反復修改,反復測試;
規范軟體配置管理,通過管理及技術手段,對軟體和文檔版本進行控制,保障軟體測試的有效性。
4、結束語
實踐證明,通過提高被測軟體的可測試性,以及合理組織軟體測試工作,可以有效地提高軟體測試效率。隨著軟體測試的重要性得以承認,軟體測試階段在整個軟體開發周期中所佔的比重也日益增大。為了將缺陷和錯誤消滅在萌芽之中,軟體測試將逐步發展成為軟體開發每一階段都要進行而且需要反復進行的活動。軟體測試中大量的工作是機械的、重復的、枯燥的和非智力的,但逐步加強軟體自動化測試的研究和推廣將是今後軟體產業的發展趨勢。