本站小編為你精心準(zhǔn)備了軟件測試技術(shù)在鐵路產(chǎn)品開發(fā)中的作用參考范文,愿這些范文能點(diǎn)燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。

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