軟件測試的“道”與“術” - 軟件測試新觀察(轉載崔啓亮的文章)

 軟件質量是指軟件的功能和性能滿足用戶需求和期望的程度。隨着IT技術在各個行業的廣泛深入地應用,軟件質量成爲普遍重視的因素。如何有效地提高軟件質量,增強軟件產品的競爭力,是軟件企業管理和技術人員共同面對的問題。


軟件質量重於泰山

軟件質量重於泰山,軟件質量是核心競爭力之一。現在和未來軟件企業的競爭力不僅體現在產品類型的多樣性,產品功能的先進性,更多的體現在產品質量的穩定性和可靠性。軟件應用的領域不斷深入,設計的複雜程度逐步擴大,開發的週期不斷縮短,質量的要求水漲船高,軟件企業面臨着巨大挑戰。

用戶對軟件產品質量的要求不斷提高,促使軟件企業把提高軟件質量作爲增強競爭力的策略。提高軟件質量要素在哪裏?可以通過採用軟件設計技術,加強軟件過程管理,實施軟件測試等方法。從提高軟件質量的顯著程度、投資回報率和可實施性等方面比較,實施有效的軟件測試,提高軟件測試的效率,是保證軟件質量的最顯著方法。

軟件測試是通過技術、流程、工具、人員以及管理手段,檢測軟件文檔、軟件中間產品和最終產品,查找和報告軟件缺陷、錯誤以及隱患的專業技術。通過跟蹤缺陷、錯誤及隱患的修正過程,確保軟件產品、中間產品和文檔符合軟件工程過程需求和用戶的最終需求。

軟件測試創新之道

軟件測試在國內仍處於起步階段,各種軟件測試的方法、技術和標準都還在探索階段。國內軟件行業普遍規模偏小,缺乏大型軟件產品經驗,開發過程不夠規範,這決定了國內軟件質量和測試行業,必須根據國內行業現狀,確定軟件質量目標和測試策略方法,而不是照搬照抄國外成熟軟件企業的測試方法。

1.觀念創新

提高軟件質量的決定因素不是軟件測試技術,而是對軟件質量和測試的思想觀念。只有把提高軟件質量上升到企業戰略發展的高度,才能從根本上解決問題。長期以來,國內軟件行業對軟件質量重視程度不足,對於軟件測試的作用認識不夠,造成項目因質量問題造成進度推遲甚至失敗。

爲了徹底改變這種被動現象,企業高層管理人員必須從管理思想、資源支持等方面爲軟件質量和測試部門提供全力支持。軟件項目經理必須堅持軟件開發和軟件測試並行處理並且互相協調。軟件開發人員重視和配合軟件測試人員。
觀念創新不要僅停留在口頭上,而要落實在具體行動上,通過軟件質量和測試的有效流程進行推動,通過過程改進進行提高。通過有效組織管理,形成以重視軟件質量爲榮,以輕視軟件質量爲恥的工作氛圍。

2.流程創新

測試流程決定軟件質量。軟件測試如同軟件開發一樣,需要經過收集測試需求、確定測試策略、設計測試、執行測試、分析測試等流程。軟件測試不是軟件開發的最後階段,而是貫穿於軟件項目的整個生命週期。決定軟件測試成敗的關鍵是軟件測試需求是否完整、準確,測試策略是否有效和實用,測試設計是否覆蓋了測試需求。

軟件測試流程既不是僵化的生搬硬套,也不是隨機的增添取捨。軟件企業的質量管理部門和項目開發團隊需要根據公司技術、資源現狀,針對項目的特點和客戶需求,從保證軟件質量、項目進度和測試成本等方面,進行優化設計並且不斷改進流程管理。對於項目週期長、應用領域廣、對質量要求高的軟件,必須制定和遵守嚴格的測試流程。

測試流程創新的目標是在公司內部制定和執行完善的項目質量管理體系。優化項目生產方式,跟蹤和度量生產過程和產品,使得生產過程和各階段產品處於可控制和可度量狀態,保證產品符合客戶的功能和進度需求。

3.技術創新

軟件測試是一項軟件工程領域的專業技術,而不是簡單的把軟件測試認爲隨便找個人運行幾次軟件,就可以發現全部的軟件問題。前文已經提到,軟件測試需求和測試設計是決定軟件測試效果的關鍵因素,因此,加強測試技術創新的重點是在測試需求和設計設計的創新。

在軟件測試技術創新方面,要避免陷入過渡追求自動化測試技術的誤區。自動化測試確實可以在某些方面顯著提高測試效率和準確性,但是自動化測試只適合測試軟件的某些方面的質量(例如性能測試,迴歸測試等),80%左右的軟件缺陷是靠測試人員手工測試發現的。

對於某些特別需要自動化測試的軟件特性,需要加強開發軟件測試工具,而不是全部依賴市場上的現有測試工具。這是因爲商業工具功能繁多,價格昂貴,培訓和學習週期很長,選擇不當就會造成巨大浪費。

4.管理創新

軟件測試管理的目標是實現軟件質量、進度、成本之間的最佳平衡。有效的測試管理需要企業管理層、軟件開發團隊、質量保證與測試團隊通力合作,採用計劃、組織、領導、控制等手段,組建高效團隊,制定完善的測試流程,做好測試設計,有效執行測試,加強過程跟蹤,從而順利完成質量保證和測試任務。

測試管理創新的核心是軟件質量和測試的團隊建設,軟件質量和測試是技術密集型活動,團隊的知識結構、創造力和凝聚力是保證測試流程、測試技術充分實施的基礎。質量和測試團隊建設的重點是設置和培養各類技術和管理人才,進行有效交流,形成良好的評估和促進機制。

測試管理創新的另一個重點是測試管理平臺建設。包括構建測試項目管理的集成系統,實現公司產品和項目數據信息的有效管理和順序控制,使項目數據透明化,技術知識有效傳承,項目質量和進度數據化、圖形化。可以根據公司的現狀,購買軟件測試管理的商業工具,也可以內部開發軟件測試管理工具。

軟件測試技術路線圖

如果把軟件測試之道稱爲測試戰略,要發揮測試戰略的現實意義,需要把測試戰略轉化爲測試戰術。測試的“道”與“術”的無縫集成,才能顯著地、持續地、逐步地提高軟件產品質量。實施軟件測試的戰術是一系列過程的組合,涉及測試團隊建設、流程設計、測試平臺、測試管理等多個方面。

1.測試團隊建設

測試團隊可以是測試部,也可以是測試組。公司規模決定了測試團隊的大小和組織形式。測試團隊建設需要執行兩個原則:第一,測試團隊必須獨立於開發團隊,而不是附屬於開發團隊,實現測試的獨立性和公正性;第二,測試團隊必須具有明確的工作目標,即發現和報告軟件缺陷,推動和確認缺陷修正,協助軟件開發的過程改進,提高軟件整體質量。

軟件測試團隊根據規模可以設置多個職位,每個職位具有明確的崗位職責,例如,測試部門經理、測試項目經理、測試組長、測試架構師、高級測試工程師、測試工程師等。對於剛剛成立的測試團隊,可以一個人兼任多個職位,完成多項測試任務。測試人員的總數應該與開發人員相適應,最好在1:1到1:2之間。

2.流程設計

測試流程設計必須與軟件設計流程相對應,基本測試流程包括測試需求分析,測試計劃設計、測試用例設計、測試執行、測試評價、測試總結等。

根據軟件需求和軟件設計規格說明進行測試需求分析,測試需求分析的目的是明確需要測試的對象、特徵、範圍和方法,從而制定測試計劃,確定測試策略。

測試計劃設計是爲了有效配置測試過程、人員和工具,充分利用現有的資源,按照項目計劃進度,組織有效的測試。測試計劃設計的輸出結果是測試計劃文檔,它是指導軟件測試活動的綱領性文檔。

測試用例設計是指導具體測試內容和方法的關鍵內容,如果需要執行自動化測試,還需要依靠測試用例設計生成對應的測試腳本。測試用例設計的輸出結果是不同類型的測試用例,這些測試用例必須以標準的、一致的形式設計、評審、存儲、更新。

測試執行是發新和報告軟件缺陷的階段,根據軟件計劃的進度,分配測試內容,構建測試環境,依靠測試用例運行測試程序和程序文檔。測試執行的輸出結果是缺陷報告,測試進度報告等。

測試評價是度量軟件測試執行效率和有效性的過程。測試評價的輸入是測試用例的執行情況,軟件缺陷的報告數據。測試評價的輸出包括測試用例的有效性分析,軟件缺陷的類型和有效性分析等,測試進度和有效性分析等。

測試總結包括測試過程每天或者每週的過程總結,也包括測試項目結束後的測試項目總結。測試總結的輸出是測試總結報告,總體評價軟件質量,指出測試存在的問題,提出改進的方法和進程,總計測試的有效經驗。

3.測試平臺設計

測試平臺設計包括測試技術平臺設計和測試管理平臺設計。測試技術平臺包括設計測試環境,設計或設置測試工具等。測試管理平臺設計包括測試文檔系統設計、測試版本配置管理、缺陷數據庫設計、測試進度和質量分析系統設計。

測試技術平臺設計需要根據測試計劃的測試內容和測試環境要求,組織軟件、硬件、數據庫和網絡等,這經常是一項較爲耗時的工作,同時它影響着測試的正確性,必須儘快在測試開始階段完成,最好採用有效的方法把搭建的測試環境進行備份保存,以便今後可以快速恢復,重複利用。

測試管理平臺設計,影響測試管理的複雜度,好的測試管理平臺可以使測試管理人員,方便的跟蹤、查詢、分析測試進度,評估測試人員的工作績效,評價測試的總體質量。對於測試技術人員而言,可以方便的尋找測試對象和測試文檔,報告和輸出測試結果,共享測試數據,提高測試效率。

4.測試管理

測試管理關注人員、過程、產品三要素的互動與變化,測試管理包含項目計劃和組織結構管理,測試階段管理,時間、資源和質量管理,文檔管理和團隊管理等。測試部門經理、測試項目經理和測試組長是測試管理的主要執行者,需要與測試團隊成員、開發人員、公司管理人員密切配合。

爲了加強測試管理,需要確保測試數據信息流通暢,使測試團隊、開發團隊、質量保證團隊之間有效交流。測試管理的其他內容包括團隊成員參與各種培訓,客觀積極的績效評估,識別項目測試風險,實現人盡其才,信息共享,進度可控,規避風險,降低成本,提高質量。

結論

提高軟件質量是提高產品競爭力的重要因素,加強軟件測試創新是顯著改善軟件質量的實用方法。軟件測試創新是循序漸進的過程,從建立完整的質量管理體系入手,通過團隊建設、優化流程、技術創新,加強管理,實現人員、流程和技術的和諧統一,提高軟件質量的可預測試性和可控制性。

長按識別二維碼加關注

更多遊戲視頻、福利等着你哦


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章