本站小編為你精心準備了軟件測試技術在鐵路產品開發中的作用參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
按照軟件特征分類,軟件測試可分為:功能測試和性能測試。功能測試是黑盒測試的1個方面,它檢查實際軟件功能是否符合用戶的需求。一般分為:邏輯功能測試、易用性測試、安裝測試和兼容性測試等。性能測試主要有時間性能測試和空間性能測試2種。通常還包括:一般性能測試、可靠性測試、負載測試、壓力測試。其它分類還包括:回歸測試、冒煙測試、隨機測試?;貧w測試是指對軟件的新版本測試時,重復執行上一版本測試時的用例。冒煙測試是指對一個新版本進行系統大規模的測試之前,先驗證一下軟件的基本功能是否實現,是否具備可測性。隨機測試是指測試中所有的輸入數據都是隨機產生的,其目的是模擬用戶的真實操作,并發現一些邊緣性的錯誤。
軟件測試過程一般來說,軟件測試工作從立項后就開始了,主要經歷以下幾個主要環節,如圖1所示。需求分析是軟件測試的1個重要環節,測試人員對這一環節的理解程度將直接影響后續測試工作的開展。一般而言,需求分析包括軟件功能需求分析,測試環境需求分析,測試資源需求分析等。測試計劃的依據主要是項目開發計劃和測試需求分析結果而制定,測試計劃指導整個測試過程。測試設計在測試活動的各個階段,對測試策略、測試方法、測試用例進行制定和編寫。測試環境搭建要盡可能模擬實際應用場景,滿足項目的設計要求,從而達到理想的測試效果。測試執行和測試記錄由測試工程師完成,主要是查找軟件的錯誤和缺陷,并記錄測試活動中出現的問題。缺陷管理是對測試活動中出現的BUG進行管理和跟蹤,保證每個BUG得到及時修復。軟件評估是在測試活動的最后,對軟件進行全面地分析和總結。
鐵路產品開發過程中容易忽視軟件測試
鐵路產品供應商普遍重視占領市場份額,追求利益的最大化,提升產品的服務質量,但是卻容易忽視保證產品質量的軟件測試,這給鐵路安全運輸帶來巨大安全隱患。項目的開發過程通常是確定項目負責人和項目參與人、項目的方案以及項目需要完成的時間,然后投入項目的開發。研發過程中采用團隊協作,項目分工到人,經過程序編寫、調試,最后集成為產品,并在實驗室和現場環境下進行測試實驗。對于項目進展情況的掌握是通過不定期的召開會議和單獨詢問主要開發人員以及研發人員匯報來實現的。
在這種開發模式下,因為項目的開發過程中沒有系統和獨立的測試過程,所進行的測試也是以正向思維為主,重點驗證軟件是否實現了相應的功能,而不是軟件在異常情況下的響應和處理。軟件開發和軟件測試本來就是不同的活動,開發人員的工作目標是創建相應模塊,實現特定功能,從而會不自覺地朝這個方向努力,挑選那些使程序出錯可能性較小的測試數據和手段,無法保證軟件被全方位進行測試,會給項目帶來隱患。正是認識到這一情況,才大力主張產品開發應進行科學和規范性管理,加強軟件測試隊伍建設,任命專職人員從事測試工作。利用軟件領域中的相關技術,對軟件進行科學、合理的測試。
如何在企業內部實施軟件測試
企業想要在產品開發過程中,對產品軟件展開相關測試,首先應建立合適企業特點和開發模式的測試流程;其次,對不同測試階段和不同產品的軟件和硬件的特點,擬采用不同的測試技術和策略。另外,在產品開發過程中,項目的配置管理、質量保證的等方面都應形成明確的制度。
1測試流程
企業應全面規范項目開發管理流程,對項目進展的各個階段進行明確劃分。軟件測試是建立在軟件開發的成果之上,即測試的對象就是軟件開發的階段性成果,如設計文檔、程序代碼和可執行的程序。
軟件測試和硬件測試的側重點有所不同。對于軟件測試,采用比較通用的測試流程,如圖2所示。軟件項目的開發從項目立項開始,測試人員介入項目組,明確需求分析階段的用戶需求,針對不同測試階段的工作重點,制定各階段的測試計劃。在設計測試階段,測試人員需要確定各測試階段的測試方法和必要的測試工具,搭建測試環境,編寫相應的測試用例。接下來,按照測試計劃分別進行單元測試、集成測試和系統測試,形成各階段的測試報告,對測試過程中發現的缺陷進行跟蹤,保證缺陷得到及時修復。為了保證軟件在現場環境下能夠正常運行,測試人員針對現場實際情況,制定現場驗收計劃,確定現場驗收策略,對軟件進行現場驗收和評估。當軟件通過了各階段的測試,且全部缺陷得到修復,將進入到軟件的階段。軟件階段通過對軟件版本的管理和控制,實現軟件、維護和升級等。
對于硬件測試,需要面向硬件編程,即在硬件環境下,編寫代碼,實現采集、控制、通訊等功能。由于硬件產品的開發不能脫離硬件環境,因此,測試活動與硬件產品開發、過程調試、硬件聯調都是密不可分的,軟件測試作為硬件產品開發過程中的重要環節,“驗證”和“確認”產品滿足項目的設計需求,硬件產品開發流程如圖3所示。硬件產品的開發,首先要明確硬件需求,預計產品達到的效果。在硬件總體設計階段,獲取硬件需求,并根據功能進行模塊劃分,定義模塊之間的接口。在詳細設計階段,對各模塊進行編程,搭建相應的硬件電路。過程調試可分為:軟件過程調試和硬件過程調試兩種,軟件過程調試指的是在硬件電路的環境下,進行軟件調試的過程,保證軟件能夠正確控制硬件電路和讀取相應數據;硬件過程調試指的是產品電路部分的調試過程,驗證電子器件之間邏輯是否符合系統設計要求,保證硬件產品穩定、可靠,不受干擾。各硬件功能模塊調試成功后,需要進行整體硬件聯調,各硬件模塊被連接成1個整體,形成產品的雛形,在此階段,主要驗證各模塊之間的接口是否符合設計要求,是否能夠實現系統設計的各項功能。硬件產品經過整體聯調后,形成樣機。測試工程師根據產品的硬件需求說明,制定測試計劃,確定測試方案和測試方法,并搭建測試環境,對樣機進行硬件測試,確認產品符合硬件產品設計要求。
2軟件測試技術在各階段的運用
在軟件測試實施的各個階段,所采用的測試方法和測試策略也各不相同。下面對于測試過程的各階段進行分別敘述。
2.1設計和代碼審查
設計審查是由項目組和測試組成員組成評審組對軟件設計和開發的輸出進行評價,以判斷確定設計和開發的輸出能否實現軟件產品預先定義的規格,同時通過審查標識出與項目需求之間的偏差。設計審查按《項目計劃》所規定的評審點進行。因臨時變更引起的突發性的評審隨時進行。代碼審查實際上屬于靜態測試。在代碼審查之前,首先要對代碼進行靜態分析,其目的是通過對源程序分析、目測,但不執行程序,找出源代碼中可能存在的錯誤和缺陷,對程序設計的結構屬性,如分支、路徑、轉移等進行審查,盡可能地掌握程序的結構,為單元測試的測試用例的設計和執行提供信息。代碼審查的目的是檢查源程序編碼是否符合詳細設計的編碼規定,確保編碼與設計的一致性和可追蹤性。檢查的方面主要包括:書寫格式、子程序或函數的入口和出口,數據,參數,程序語言的使用,存儲器的使用,可讀性,邏輯表達式的正確性,代碼結構合理性等。靜態分析和代碼審查通??梢酝瑫r進行,通過靜態分析掌握源程序結構,通過代碼審查,盡量減少書寫錯誤和隱含的邏輯錯誤,為單元測試提供比較穩定的環境。
2.2單元測試
單元測試是軟件測試的基礎,集成測試、系統測試都是建立在單元測試之上。單元測試是用來檢驗每個軟件單元能否正確地實現其功能,滿足性能和接口要求,還要驗證程序和詳細設計說明的一致性。從廣義上來講,單元測試包括靜態測試和動態測試。靜態測試就是上面介紹的“代碼審查”,而動態測試則是通過測試用例、測試工具來執行程序,檢驗程序是否存在缺陷的過程。單元測試一般采用白盒測試方法,手工測試和自動測試相結合,針對程序內部的結構和邏輯來展開,單元測試工具一般針對不同編程語言和開發環境而設計開發的,種類很多。我們利用白盒測試進行代碼測試,利用黑盒測試進行功能性測試,利用回歸測試保證維護代碼的完整性。單元測試工具固然有用,更重要的是測試策略,以及測試用例的設計。這也提醒我們在做單元測試的過程中,不可避重就輕,要抓住項目核心,進行科學、有效的測試,只有這樣才能達到事半功倍的效果。
2.3集成測試
集成測試階段采用白盒測試和黑盒測試相結合的方式,將每個獨立的功能模塊進行關聯和集成,便于進行功能測試、界面測試、結構測試、數據正確性測試等。在進行集成測試前,測試工程師要搭建測試所需的硬件和軟件環境,盡量模擬設備實際的工作環境。結合項目的不同特點,測試過程可以采用手工或自動測試。在進行多次重復測試和回歸測試的情況下,可采用自動化測試工具對軟件進行功能性檢測。
2.4系統測試
在系統測試階段,不僅要進行功能測試,還要對系統的性能、安全性、兼容性和可靠性等進行測試,系統測試涉及人機交互和復雜邏輯,因此系統測試多采用黑盒測試的手工測試方法。系統兼容性測試要考慮軟、硬件的兼容性。項目開發的硬件和軟件要在指定的環境下,進行多次反復的安裝和反安裝測試,以驗證接口數據調用和驅動程序是否達到設計標準。安全性測試和軟件的安全策略密切相關,安全性測試主要包括:用戶訪問權限、數據庫安全性、文件安全性等。性能測試、負載測試等必須借助測試工具來實現。過分強調測試工具的作用,極力追求各種軟件測試工具,是軟件測試本末倒置的表現。實際上,測試過程中80%以上的缺陷是手工測試發現的,僅有不到20%的缺陷是靠工具測試發現的,而且這還得要求測試人員合理地使用工具。
3采用的測試模型
企業對產品開發應重點關注產品開發的過程控制,以及測試、管理。保證產品質量從源頭開始。因此,測試過程更適合采用W模型,如圖4所示。在W模型中,測試過程和開發過程都貫穿項目開發過程的整個生命周期,兩者同時開始,同時結束,相輔相成、始終保持著同步的關系。這樣做的原因是:測試工作盡早介入,軟件存在問題的可能性就會降低。項目正式立項后,測試人員既可參與到項目組中,通過學習和閱讀相關文檔,加強對項目的了解,對項目有個整體認識,形成初步的測試思路。同時測試越早介入項目就能夠越早發現問題,解決問題所花費的成本越小。如果在軟件的最后階段進行測試,發現功能設計不合理或性能不好,需要修改需求和設計,不得不返工到系統設計或需求定義階段,會造成很大的代價,所以有必要將軟件測試延伸到需求、設計階段,對需求、設計進行驗證。有資料表明,60%以上的軟件錯誤不是程序錯誤,而是分析和設計錯誤。若把軟件分析、設計上的問題遺留到后期,可能造成設計、編碼的部分甚至全部返工,從而增加軟件開發成本及延長開發周期等后果。同時,需求和設計階段所產生的缺陷具有放大效應,嚴重地影響軟件質量。因此,為了更早地發現并解決問題,降低修改錯誤和缺陷的代價,有必要將測試延伸到需求分析和設計階段中去,使軟件測試貫穿于整個生命周期,提倡軟件生命周期測試的理念,即軟件測試是對軟件形成過程中的所有工作產品(包括程序以及相關文檔)進行的測試,而不僅僅是對程序的運行進行測試。測試在對需求和設計階段的測試活動主要是通過需求評審和設計評審來實現,可以更早發現問題,及時修改問題。即對軟件開發階段中的階段性產品進行評審、走讀或者回憶評審,發現其中的問題,是一種靜態測試。通過靜態測試,可以更早地發現問題,把問題消滅在萌芽中,將每個階段產生的缺陷及時清除。
總結
軟件測試作為專業性比較強的技術在我國起步較晚,受重視程度不夠,但它是保證軟件質量的終極手段,目前越來越受到了人們的關注。鐵路行業的生產企業,認真做好產品質量把關,合理運用相關檢測技術,將軟件缺陷消滅在萌芽階段,保證鐵路運輸和人們生命財產的安全。
作者:朱劍輝單位:哈爾濱鐵路局科學技術研究所