前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇軟件測試報告范文,相信會為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。
由權(quán)威調(diào)查機(jī)構(gòu)的《2014年軟件測試從業(yè)人員調(diào)查報告》顯示,軟件測試行業(yè)呈現(xiàn)出以下幾大特征:
一、軟件測試行業(yè)人才缺口大
數(shù)據(jù)顯示,被調(diào)查測試人員所屬公司中,互聯(lián)網(wǎng)行業(yè)及金融行業(yè)分別占42.81%和18.15%,綜合占比超過六成,這也印證了經(jīng)濟(jì)結(jié)構(gòu)調(diào)整的成果,目前互聯(lián)網(wǎng)行業(yè)和金融行業(yè)受到了投資者和個人的青睞,企業(yè)需求急劇上升,軟件測試人才缺口巨大。
二、軟件測試人員稀缺
然而,在被調(diào)查者所在公司中,測試人員與開發(fā)人員的比例在1:4及以上的高達(dá)55.13%。在這些公司中,49.66%的公司每年對測試人員進(jìn)行的培訓(xùn)次數(shù)為0。也就是說,將近一半的軟件測試人員在工作后沒有進(jìn)行培訓(xùn)學(xué)習(xí)的機(jī)會,這就要求想從事軟件測試的人員在入職前培訓(xùn)相關(guān)的技能,確保工作可以順利開展。
三、軟件測試行業(yè)前景光明
在被調(diào)查者中,進(jìn)行了一年左右軟件測試工作的人員占據(jù)了72.26%。其中,大專學(xué)歷及本科學(xué)歷的比例分別為34.93%和58.22%,他們的薪資在6000元及以上的占據(jù)了53.43%,軟件測試工程師薪酬高成為不爭的事實。
【關(guān)鍵詞】計算機(jī)軟件;軟件測試;生命周期;BSS系統(tǒng);IT系統(tǒng)
1 引言
通信行業(yè)通常有三個相對獨立的IT系統(tǒng):OSS運(yùn)營支撐系統(tǒng)、BSS業(yè)務(wù)支撐系統(tǒng)、管理支撐系統(tǒng)。其中,BSS是通信行業(yè)對外向客戶直接服務(wù)的系統(tǒng),管理著企業(yè)的各類客戶資料,為各類客戶提供業(yè)務(wù)受理和計費(fèi)服務(wù)。BSS系統(tǒng)做得好壞,直接牽涉到最終用戶對通信業(yè)務(wù)的使用。要保證BSS系統(tǒng)的質(zhì)量,就需要在BSS系統(tǒng)的各個環(huán)節(jié)把好質(zhì)量關(guān)。
本文的研究任務(wù)就是通過軟件測試環(huán)節(jié)提高BSS系統(tǒng)軟件的效率,從而大大提高企業(yè)的信息化服務(wù)水平,使業(yè)務(wù)支撐部門對業(yè)務(wù)部門進(jìn)行強(qiáng)有力的支撐。
2 軟件測試研究基礎(chǔ)
軟件測試就是利用測試工具按照測試方案和流程對產(chǎn)品進(jìn)行功能和性能測試,甚至根據(jù)需要編寫不同的測試工具,設(shè)計和維護(hù)測試系統(tǒng),對測試方案可能出現(xiàn)的問題進(jìn)行分析和評估。軟件測試貫穿整個軟件系統(tǒng)的生命周期中,為保證服務(wù)質(zhì)量,軟件測試要經(jīng)過開發(fā)過程中的單元測試,集成測試,以及軟件交付后的確認(rèn)測試,系統(tǒng)測試,驗收測試,還有軟件使用后的回歸測試。如圖所示:
2.1 單元測試
單元測試是在軟件開發(fā)過程中要進(jìn)行的最低級別的測試活動,在單元測試活動中,軟件的獨立單元將在與程序的其他部分相隔離的情況下進(jìn)行測試。單元測試不僅僅是作為無錯編碼一種輔助手段在一次性的開發(fā)過程中使用,單元測試必須是可重復(fù)的,無論是在軟件修改,或是移植到新的運(yùn)行環(huán)境的過程中。
2.2 集成測試
集成測試,也叫組裝測試或聯(lián)合測試,是單元測試的邏輯擴(kuò)展。在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計要求組裝成為子系統(tǒng)或系統(tǒng),進(jìn)行集成測試。實踐表明,一些模塊雖然能夠單獨地工作,但并不能保證連接起來也能正常的工作。
2.3確認(rèn)測試
確認(rèn)測試又稱有效性測試。有效性測試是在模擬的環(huán)境下,運(yùn)用黑盒測試的方法,驗證被測軟件是否滿足需求規(guī)格說明書列出的需求。任務(wù)是驗證軟件的功能和性能及其他特性是否與用戶的要求一致。
2.4 系統(tǒng)測試
系統(tǒng)測試是將已經(jīng)確認(rèn)的軟件、計算機(jī)硬件、外設(shè)、網(wǎng)絡(luò)等其他元素結(jié)合在一起,進(jìn)行信息系統(tǒng)的各種組裝測試和確認(rèn)測試,其目的是通過與系統(tǒng)的需求相比較,發(fā)現(xiàn)所開發(fā)的系統(tǒng)與用戶需求不符或矛盾的地方。
2.5 驗收測試
驗收測試是系統(tǒng)開發(fā)生命周期方法論的一個階段,這時相關(guān)的用戶和獨立測試人員根據(jù)測試計劃和結(jié)果對系統(tǒng)進(jìn)行測試和接收。它讓系統(tǒng)用戶決定是否接收系統(tǒng)。驗收測試是部署軟件之前的最后一個測試操作。驗收測試的目的是確保軟件準(zhǔn)備就緒,并且可以讓最終用戶將其用于執(zhí)行軟件的既定功能和任務(wù)。
2.6 回歸測試
伴隨著軟件生命周期中的任何一個階段,還有一個重要的測試環(huán)節(jié)是回歸測試。只要軟件發(fā)生了改變,就可能給該軟件帶來問題。軟件的改變可能是源于發(fā)現(xiàn)了錯誤并做了修改,也有可能是因為在集成或維護(hù)階段加入了新的模塊。
3 案例分析及研究
3.1 驗收測試在通信行業(yè)BSS系統(tǒng)中的應(yīng)用研究
本案中,軟件上線前,要經(jīng)過初驗和終驗,初驗是對軟件的初次驗收,根據(jù)合同要求,初驗時一般要滿足的條件是,軟件程序在一定的范圍內(nèi)上線試運(yùn)行,并在試運(yùn)行過程中故障率不超過一定的范圍。初驗過程中,使用人員對軟件進(jìn)行充分的使用,盡量多的遍歷所有的分支點,對軟件開發(fā)商提出更詳細(xì)的需求改造要求,軟件廠家在此階段都會盡可能快地做出修改,并提交給使用人員。這樣重復(fù)多次,直到達(dá)到初驗要求,項目會繼續(xù)推廣到更大的范圍。大范圍使用后,使用人員會隨之增多,必將會碰到更大更多的問題,在經(jīng)過軟件廠家的修改優(yōu)化,達(dá)到軟件程序穩(wěn)定運(yùn)行的效果,此時,項目才滿足終驗條件。終驗后,軟件廠家會維護(hù)一段時間,簽訂長期的維護(hù)合同。
根據(jù)這種情況,驗收測試是在軟件程序的初驗和終驗都要涉及到的。測試目的都是盡量查找軟件的漏洞以便得以修改,測試的方法是功能測試涉及較多一點。BSS系統(tǒng)驗收測試的目的是確認(rèn)系統(tǒng)是否滿足產(chǎn)品需求規(guī)格說明和技術(shù)合同的相關(guān)規(guī)定,繼而能否滿足企業(yè)應(yīng)用需求。一般需要通過實施預(yù)定的測試計劃和測試執(zhí)行活動,確認(rèn)系統(tǒng)的功能需求、性能需求和文檔需求。BSS系統(tǒng)是較復(fù)雜的大規(guī)模系統(tǒng),其驗收測試具體包括:安裝測試、功能測試、界面測試、性能測試、文檔測試、負(fù)載壓力測試、恢復(fù)測試、安全性測試、兼容性測試等。
BSS系統(tǒng)的驗收測試一般由使用人員來做,且必須做到對每個細(xì)節(jié)和關(guān)鍵指標(biāo)的反復(fù)測試。它的測試技術(shù)方法不僅有上述提到的幾種測試,還需要一些白盒測試,避免實現(xiàn)當(dāng)前功能的情況下影響到其他模塊。它的測試用例,需要反復(fù)推算,尋找到最佳用例,以盡多的遍歷各測試節(jié)點,對程序、數(shù)據(jù)、文檔都要做到細(xì)致的測試。
根據(jù)以上分析,驗收測試涉及BSS系統(tǒng)的各環(huán)節(jié)內(nèi)容。其中,最主要要審核的內(nèi)容就是根據(jù)軟件的需求分析,檢驗要交付的軟件系統(tǒng)是否滿足需求分析中的內(nèi)容。具體來說,根據(jù)驗收測試方法和它所屬的狀態(tài)及重要性,在BSS系統(tǒng)中,驗收測試的審核內(nèi)容,可以用以下文檔驗收來體現(xiàn)。
軟件開放商應(yīng)向企業(yè)項目組成員提供以下文檔:《軟件需求分析書》、《驗收測試計劃》和《項目驗收準(zhǔn)則》、《測試用例設(shè)計》、《測試環(huán)境標(biāo)準(zhǔn)》、《測試報告》、《測試結(jié)果分析》、《缺陷報告》、《驗收測試報告》、《使用說明》或《操作文檔》、《試運(yùn)行報告》。另外,使用人員根據(jù)軟件廠家提供的上述文檔,挑選重要的測試項,組織使用人員重新編寫測試用例并進(jìn)行測試,編寫客戶方自己的《驗收測試計劃》、《驗收測試報告》、《驗收測試結(jié)果及分析》。根據(jù)《驗收測試結(jié)果及分析》組織項目成員討論是否驗收此項目。
驗收測試流程圖:
根據(jù)上述要求,在本案例中,驗收測試方面存在以下不足:
第一、《驗收測試計劃》和《項目驗收準(zhǔn)則》沒有專門的文檔。如果我們能在需求分析書完成后能夠定制獨立的《驗收測試計劃》和《項目驗收準(zhǔn)則》,則更有利于我們做好驗收測試工作,做好終驗工作。第二、沒有《缺陷報告》,程序的開發(fā)總要伴隨著缺陷的產(chǎn)生,雖然開放人員在逐漸的解決這些缺陷問題,但總有一些問題解決不了。第三、甲方對驗收測試重視不足,沒有獨立的《驗收測試計劃》、《驗收測試報告》、《驗收測試結(jié)果及分析》,沒有獨立的驗收文檔,對結(jié)果也沒有做分析。第四、在驗收測試整個過程中,甲方過于依賴乙方。整個流程以乙方提供驗收文檔為主,甲方雖驗收了文檔等資料,但并沒有根據(jù)資料編制驗收測試方案,也沒有做驗收測試報告及分析,只是在乙方提供驗收測試文檔中根據(jù)驗收測試用例進(jìn)行了測試。
在實際運(yùn)用中,首先要重視軟件測試的重要性,另外不能過于依賴軟件開發(fā)商,要建立企業(yè)自己的IT人員測試組,對軟件進(jìn)行詳盡的各方面的測試。
3.2 回歸測試在通信行業(yè)BSS系統(tǒng)中的應(yīng)用研究
實際工作中,回歸測試需要反復(fù)進(jìn)行,當(dāng)測試者一次又一次地完成相同的測試時,這些回歸測試將變得非常令人厭煩,為了支持多種回歸測試策略,可以運(yùn)用自動測試工具,以便滿足達(dá)到不同回歸測試目標(biāo)的要求。
通信行業(yè)BSS系統(tǒng)的回歸測試特別頻繁,每月的應(yīng)用變更幾十例,有新增的功能,也有變更的功能,還有修復(fù)的功能。這些變更都需要回歸測試來驗證功能是否達(dá)到需求的要求。根據(jù)軟件特性,進(jìn)行的回歸測試大都需要結(jié)合軟件模塊自身的功能,手工完成驗證,并且不同的模塊的回歸測試方法也可能不同。進(jìn)行回歸測試時,不但檢驗新增模塊的功能是否實現(xiàn),還要驗證是否影響了周邊其他模塊的功能,同時檢查整個大的模塊的功能是否正常,也就是考察軟件自身的功能和兼容性。
4總結(jié)與展望
實踐證明:將軟件測試的方法引入通信行業(yè)的BSS系統(tǒng)中,在軟件測試的各個環(huán)節(jié)都能夠詳細(xì)和規(guī)范的記錄測試相關(guān)信息,使管理層能夠方便的掌握到整個軟件的問題、配置、變更、等環(huán)節(jié)的信息,為領(lǐng)導(dǎo)決策提供了強(qiáng)有力的支持,達(dá)到了軟件使用的目的。大幅提高了系統(tǒng)的軟件維護(hù)效率和整個BSS系統(tǒng)的準(zhǔn)確性,使BSS系統(tǒng)對企業(yè)的業(yè)務(wù)能夠快速高效的支撐。
參考文獻(xiàn)
[1](美)馬瑟著.王峰,郭長國,陳振華等譯.軟件測試基礎(chǔ)教程[M].北京:機(jī)械工業(yè)出版社,2011.
[2]陳能技.軟件測試技術(shù)大全[M].北京:人民郵電出版社,2011.
關(guān)鍵詞:嵌入式軟件;GJB2725A;軟件測試;過程模型
0 引言
隨著信息化軍事技術(shù)的不斷深入,嵌入式軟件已在航空武器裝備軟件中得到了廣泛的應(yīng)用,相應(yīng)的,對其進(jìn)行軟件測試的要求也越來越重要。目前,大部分軟件測試項目主要由事件驅(qū)動完成,存在流程不清晰、被動性高、效率低下等問題,影響了測試質(zhì)量,其嚴(yán)重后果就是沒有及時發(fā)現(xiàn)軟件產(chǎn)品缺陷,導(dǎo)致產(chǎn)品失效。
總裝備部于2001年了GJB2725A《測試實驗室和校準(zhǔn)實驗室通用要求》[1],其目的就是為了指導(dǎo)軟件測試活動,提高軟件測試過程管控能力。因此提出了一種嵌入式軟件測試過程模型,該模型能夠依據(jù)軍標(biāo),以流程驅(qū)動的方式對軟件測試進(jìn)行全過程管控,具有很好的工程應(yīng)用價值,提高了研制效率。
1 嵌入式軟件測試過程模型
在型號軟件研制中,測試是一項復(fù)雜而繁瑣的工作,是一門綜合性學(xué)科,涉及技術(shù)、方法、資源以及管理等諸多方面[2],現(xiàn)有流行軟件測試模型,如V模型、W模型和H模型[3],并不能完全適用于實際測試工作,而應(yīng)由研制單位牽頭,建立本地化的軟件測試過程模型。
根據(jù)工程經(jīng)驗,將嵌入式軟件測試過程劃分為5個階段,即測試需求分析、測試策劃、測試設(shè)計與實現(xiàn)、測試執(zhí)行和測試總結(jié),每個階段實現(xiàn)不同的測試活動,前一個階段是后一個階段的輸入,后一個階段是前一個階段的驗證,以流程為驅(qū)動力,逐步實現(xiàn)所有活動,通過不斷地對流程再優(yōu)化,實現(xiàn)模型的持續(xù)改進(jìn)[4],逐步趨近實際工程應(yīng)用。
1.1 測試需求分析
該階段的輸入為軟件測評合同或軟件研制任務(wù)書,以明確被測項目的范圍、目標(biāo)、約束及要求。
同時,確定需要完成的測試類型,如功能測試、性能測試、邊界測試、接口測試、可靠性測試等,并明確每一個測試類型的具體要求,例如:
1)功能測試:每一個軟件測試項輸入的每一個正常等價類和異常等價類都至少被一個用例覆蓋;
2)性能測試:對軟件的精度、時間和適應(yīng)性進(jìn)行測試,以確認(rèn)是否符合規(guī)定的性能要求;
3)接口測試:測試所有外部接口,每一個外部輸入/輸出接口應(yīng)進(jìn)行正常和異常情況測試。
確定測試類型后,可制定測試策略,包括白盒和黑盒測試,并對具有特殊要求的被測項進(jìn)行具體描述。同時,確定測試充分性和終止要求,避免項目無法結(jié)束。
測試需求分析最重要的工作就是依據(jù)軟件設(shè)計文檔,確定測試的顯性需求和隱形需求,并分解為測試項,為后續(xù)測試用例提供設(shè)計依據(jù),本階段的輸出為《軟件測試需求規(guī)格說明》。
1.2 測試策劃
本階段在測試需求分析的基礎(chǔ)上,完成如下工作:
1)確定測試技術(shù),如等價類劃分法、邊界值分析法和猜錯法等;
2)明確定性評價準(zhǔn)則,包括文檔、設(shè)計和實現(xiàn)等方面;
3)數(shù)據(jù)采集要求,主要指被測軟件、用例、缺陷和管理數(shù)據(jù)等;
4)制定軟件測試環(huán)境,包括軟/硬件環(huán)境,確保測試順利開展;
5)明確測試人員的角色與職責(zé),合理分工,確保進(jìn)度;
6)根據(jù)要求進(jìn)行風(fēng)險分析,如技術(shù)、人員和資源風(fēng)險,并制定措施。
本階段的輸出為《軟件測試計劃》。
1.3 測試設(shè)計與實現(xiàn)
本階段的主要內(nèi)容就是依據(jù)測試需求,設(shè)計測試用例,單元、部件測試采用“先功能后邏輯”的測試策略,即先滿足基于功能的測試(功能測試覆蓋100%),再滿足基于邏輯的測試(語句、分支、調(diào)用覆蓋率100%),配置項、系統(tǒng)測試采用基于功能的測試策略,測試用例主要包括名稱、標(biāo)識、初始化、前提和約束、輸入、預(yù)期輸出、通過準(zhǔn)則、追蹤關(guān)系、終止條件、用例類型和設(shè)計人員等信息,本階段的輸出為《軟件測試說明》。
1.4 測試執(zhí)行
本階段的主要內(nèi)容就是在實際測試環(huán)境下執(zhí)行測試用例,記錄測試結(jié)果,將期望結(jié)果與實測結(jié)果進(jìn)行比對,如不一致,則進(jìn)行深入分析,確認(rèn)為軟件缺陷,則填寫軟件問題報告單,本階段的輸出為《軟件測試記錄》和《軟件問題報告單》。
1.5 測試總結(jié)
本階段的主要內(nèi)容就是依據(jù)測試結(jié)果,統(tǒng)計與分析測試數(shù)據(jù),包括用例執(zhí)行率、用例通過率、代碼缺陷率、功能覆蓋率等指標(biāo),進(jìn)而對被測軟件產(chǎn)品做出客觀、公正、獨立的評價,為改進(jìn)軟件產(chǎn)品質(zhì)量提供支撐,本階段的輸出為《軟件測試報告》。
2 模型應(yīng)用
被測軟件為某型嵌入式軟件,要求完成軟件測試,出具測試報告。
2.1 測試需求分析
根據(jù)測試要求,定義被測項目的范圍、目標(biāo)、約束及要求。
范圍:單元、部件和配置項測試。
目標(biāo):單元測試完成語句、分支100%覆蓋,部件測試完成調(diào)用100%覆蓋,配置測試完成需求100%覆蓋。
策略:單元、部件測試采用白盒測試,配置項測試采用黑盒測試。
測試需求:經(jīng)分析,單元測試共有272個測試需求,部件測試共有36個測試需求,配置項測試共有16個測試需求,27個測試項。
2.2 測試策劃
軟件測試主要采用等價類劃分法和邊界值分析法進(jìn)行測試。
2.3 測試設(shè)計與實現(xiàn)
依據(jù)軟件設(shè)計文件設(shè)計測試用例,單元測試共設(shè)計1869個測試用例,部件測試共設(shè)計266個測試用例,配置項測試共設(shè)計168個測試用例。
2.4 測試執(zhí)行
經(jīng)測試,并對測試結(jié)果進(jìn)行分析、確認(rèn),共計發(fā)現(xiàn)56個軟件問題,提交設(shè)計進(jìn)行優(yōu)化改進(jìn)。
2.5 測試總結(jié)
測試結(jié)果總結(jié)如表4所示。
測試用例均能100%覆蓋測試需求,配置項測試的用例執(zhí)行率為95%,其原因是有些硬件環(huán)境不能滿足測試要求,如破壞性測試,單元和配置項測試的用例通過率均不到100%,說明這兩種測試是發(fā)現(xiàn)軟件缺陷的重要手段,通過對56個問題的歸零處理,軟件問題得到解決,提高了軟件產(chǎn)品的質(zhì)量。
3 總結(jié)
采用流程驅(qū)動式的嵌入式軟件測試過程模型能夠很好的解決測試工程化問題,通過實際運(yùn)用,提高了測試管控能力,確保了測試充分性,發(fā)現(xiàn)了軟件問題,提高了軟件的質(zhì)量和可靠性。
參考文獻(xiàn):
[1] 閆宇華,李誼,黃寧等.GJB 2725A-2001,測試實驗室和校準(zhǔn)實驗室通用要求[S].北京:中國人民總裝備部,2001.
[2] 金先仲,任宏光,李建軍等.空空導(dǎo)彈研制系統(tǒng)工程管理[M].北京:國防工業(yè)出版社,2007.
【摘要】信息是現(xiàn)代咨詢的基礎(chǔ),工程咨詢業(yè)俗稱為“頭腦加工信息”的行業(yè)。工程咨詢信息系統(tǒng),滿足了工程咨詢對信息化的需求,在開發(fā)一套好的工程咨詢信息系統(tǒng)過程中,軟件的測試是非常重要的,它對信息系統(tǒng)能否投入運(yùn)行起著至關(guān)重要的作用,在軟件的測試中,一定要針對工程咨詢的特點,做好軟件的測試。
【關(guān)鍵詞】工程咨詢信息系統(tǒng)軟件測試
信息是現(xiàn)代咨詢的基礎(chǔ),工程咨詢業(yè)俗稱為“頭腦加工信息”的行業(yè)。在信息化建設(shè)不斷推進(jìn)的條件下,工程咨詢作為智力服務(wù)型企業(yè),對信息化的需求日益增長。為了把咨詢業(yè)務(wù)做精、做強(qiáng)、做大,必須依靠現(xiàn)代科技手段和信息處理技術(shù),建立企業(yè)內(nèi)部信息庫,挖掘信息資源,改變信息管理方式。把零散的、隨機(jī)的信息管理,轉(zhuǎn)變?yōu)橄到y(tǒng)的、可持續(xù)性的、能夠便捷查詢和充分共享的信息管理,實現(xiàn)咨詢依據(jù)可靠、信息來源充分、方法科學(xué)的現(xiàn)代咨詢發(fā)展目標(biāo)。工程咨詢信息系統(tǒng),滿足了工程咨詢對信息化的需求,實現(xiàn)了項目管理及圖書等資料借閱的自動化管理方式,建立的競爭情報管理系統(tǒng)實現(xiàn)了目標(biāo)信息的定時抓取,上傳企業(yè)內(nèi)部公告等多種功能。在開發(fā)一套好的工程咨詢信息系統(tǒng)過程中,軟件的測試是非常重要的,它對信息系統(tǒng)能否投入運(yùn)行起著至關(guān)重要的作用,軟件測試環(huán)節(jié)是保障軟件質(zhì)量的最后一道關(guān)鍵性關(guān)口。在軟件的測試中,一定要針對工程咨詢的特點,做好軟件的測試。
一、工程咨詢的特點
工程咨詢業(yè)是智力服務(wù)性行業(yè),運(yùn)用多種學(xué)科知識和經(jīng)驗、現(xiàn)代科學(xué)技術(shù)管理方法,遵循獨立、科學(xué)、公正的原則,為政府部門和投資者對經(jīng)濟(jì)建設(shè)和工程項目的投資決策與實施提供咨詢服務(wù),以提高宏觀和微觀的經(jīng)濟(jì)效益。工程咨詢具有以下特點:工程咨詢業(yè)務(wù)范圍彈性很大,可以是宏觀的、整體的、全過程的咨詢,也可以是某個問題、某項內(nèi)容、某項工作的咨詢;每一項工程咨詢?nèi)蝿?wù)都是一次性的、單獨的任務(wù)、只有類似,沒有重復(fù);工程咨詢是高度智能化的服務(wù),需要多學(xué)科知識、技術(shù)、經(jīng)驗、方法和信息的集成及創(chuàng)新;工程咨詢牽涉面廣;許多工程咨詢成果具有預(yù)測性、前瞻性;工程咨詢提供智力服務(wù),咨詢成果屬非物質(zhì)產(chǎn)品。
二、軟件測試的目的
軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;測試是為了證明程序有錯,而不是證明程序無錯誤;一個好的測試是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;一個成功的測試是發(fā)現(xiàn)了至今為止未發(fā)現(xiàn)的錯誤的測試。
軟件測試的目的不僅僅是為了發(fā)現(xiàn)程序中存在的錯誤,它還是軟件質(zhì)量保證至關(guān)重要的一個環(huán)節(jié)。軟件測試不同于程序員在代碼編寫完成后簡單的使用、調(diào)試,軟件測試需要遵循一定的原則,軟件測試的原則大致包括以下內(nèi)容:確定預(yù)期輸出是測試必不可少的一部分,程序員應(yīng)避免測試自己編寫的程序,程序設(shè)計機(jī)構(gòu)不應(yīng)測試自己的程序,徹底檢查每一個測試結(jié)果,對非法的和非預(yù)期的情況也要象對合法的預(yù)期輸入一樣編寫測試用例,檢查程序是否做了要它做的事僅僅是成功的一半,另一半是程序是否做了不要它做的事,除了真正沒有用的程序外,一定不要扔掉測試用例,一段程序中存在錯誤的概率與在這段程序中已發(fā)現(xiàn)的錯誤成比例,在規(guī)劃測試時,不要設(shè)想程序中不會查出錯誤,所有的測試都應(yīng)當(dāng)追溯到用戶需求,應(yīng)該在測試工作真正開始前就開始計劃測試,測試應(yīng)該從“小規(guī)?!遍_始逐步轉(zhuǎn)到“大規(guī)模”,測試發(fā)現(xiàn)錯誤中80%的錯誤屬于20%的程序模塊,窮舉測試是不可能的,但充分覆蓋程序邏輯是可能的,測試是一件非常復(fù)雜,具有創(chuàng)造性的和需要高度智慧的挑戰(zhàn)性任務(wù)。
三、軟件測試幾點看法
軟件測試作為軟件上線的最后關(guān)口,應(yīng)得到高度重視。但由于思想意識和歷史原因,出現(xiàn)重開發(fā)輕測試的現(xiàn)象,軟件測試成為制約軟件成功上線運(yùn)行的瓶頸。由于對軟件測試的重要性理解不夠,很多人認(rèn)為程序能夠運(yùn)行基本上就已經(jīng)成功,沒有必要進(jìn)行專門的測試,這些都是錯誤的觀點。
軟件測試分為:單元測試(模塊測試),集成測試。在進(jìn)行所有的測試前,一定先要認(rèn)真閱讀各種相關(guān)文檔,同時制定測試計劃,同時進(jìn)行測試用例設(shè)計,在設(shè)計測試用例時,要對待測軟件進(jìn)行分析,設(shè)計合理的模型,制定測試用例。在測試進(jìn)行過程中,要根據(jù)實際情況修改或增加測試用例。
在測試完成后,要根據(jù)測試結(jié)果填寫《軟件測試問題跟蹤單》,在整個軟件測試完成后,要分析測試結(jié)果并編寫測試報告。在測試報告中要說明本次測試的結(jié)果,如各個等級的BUG的數(shù)目,在各個模塊中的分布情況及評語。在整個項目完成后,將測試工作所產(chǎn)生的所有文檔交文檔管理員歸檔。
軟件測試是為了擬制缺陷。作為衡量和評價的手段,測試是質(zhì)量控制的核心環(huán)節(jié),除發(fā)現(xiàn)問題外,測試還有預(yù)防的潛力。
關(guān)鍵詞:軟件測試;認(rèn)知誤區(qū);嵌入式;單元測試流程
1 軟件測試簡述
軟件測試是在軟件投入商用前,對軟件需求分析報告、設(shè)計規(guī)格說明書和編碼的最終復(fù)查,是軟件質(zhì)量保證的關(guān)鍵方法,軟件測試并不等于程序測試。它貫穿于軟件定義和開發(fā)的整個過程,因此,軟件需求分析、軟件概要設(shè)計、軟件詳細(xì)設(shè)計和程序編碼等各階段所得到的文檔,包括需求規(guī)格說明書、概要設(shè)計說明書、詳細(xì)設(shè)計說明書,以及源代碼都是軟件測試的測試對象。隨著軟件規(guī)模的不斷擴(kuò)大,以及軟件設(shè)計復(fù)雜程度不斷的提高,軟件開發(fā)中出現(xiàn)失誤或缺陷的概率越來越大。隨著市場對軟件質(zhì)量重要性的認(rèn)知程序的提高,因此軟件測試在軟件項目實施過程中的重要性尤為突出。軟件測試將會成為一個具有很大發(fā)展前景的行業(yè),市場將需要更多具有豐富測試技術(shù)和先進(jìn)管理經(jīng)驗的測試技術(shù)員和項目經(jīng)理。
2 軟件開發(fā)項目測試的誤區(qū)
軟件測試從1990年左右進(jìn)入中國,目前國內(nèi)大的測評中心、大型企業(yè)已經(jīng)完全掌握了軟件測試的測試策略和測試方法。小企業(yè)普遍存在測試人員不懂什么是單元測試,怎樣進(jìn)行單元測試,很少能看懂代碼的細(xì)節(jié)。而開發(fā)人員很少能夠提供完整的詳細(xì)設(shè)計報告、需求報告。導(dǎo)致單元測試,以拼湊測試報告為目的。
認(rèn)知誤區(qū)一:軟件測試是軟件開發(fā)的最后一道步驟,工程師們一般認(rèn)為,軟件實際項目要經(jīng)過下面六個階段:需求分析,概要設(shè)計,詳細(xì)設(shè)計,軟件編碼,軟件測試,軟件。因而,認(rèn)為軟件測試只是編碼后的一個孤立的階段,這就是不了解軟件測試流程的認(rèn)知偏差。軟件測試是一個系列的活動過程,是一個開放的體系,包括軟件測試需求分析,測試計劃設(shè)計,測試用例設(shè)計,執(zhí)行測試。從而,軟件測試應(yīng)當(dāng)貫穿于軟件項目的整個生命周期,并不是軟件開發(fā)后最后一道步驟。認(rèn)知誤區(qū)二:軟件商用后如果發(fā)現(xiàn)質(zhì)量問題,就武斷認(rèn)為是軟件測試人員的工作失誤。這種認(rèn)識很狹隘,很是打擊軟件測試人員的工作積極性。軟件測試只能確認(rèn)軟件存在錯誤,不能保證軟件沒有錯誤。因為從根本上講,軟件測試不可能發(fā)現(xiàn)全部錯誤,軟件后的錯誤可能來自軟件項目中的各個過程。認(rèn)知誤區(qū)三:軟件測試對測試人員技術(shù)要求不高,任何人都可以做。很多工程師認(rèn)為軟件測試就是安裝并運(yùn)行程序,按按鍵盤的重復(fù)性工作。隨著軟件測試技術(shù)的不斷改進(jìn)和完善,新測試方法、新流程、新工具都在不斷被開發(fā)出來。這就需要軟件測試工程師掌握和學(xué)習(xí)很多專業(yè)測試新理念和新技能。認(rèn)知誤區(qū)四:只有編寫程序的高手才是軟件專家,而軟件測試沒有前途。由于我國軟件行業(yè)整體研發(fā)能力比較低,軟件開發(fā)過程不規(guī)范。不少軟件項目的開發(fā)都還停留在“累加堆疊“階段。項目開發(fā)依靠個別程序員決定,他們一人負(fù)責(zé)總體設(shè)計和代碼編寫,給人的印象是程序員是真正的牛人,完成了所有的軟件項目開發(fā)工作。但在微軟等世界知名軟件企業(yè)里,軟件測試人員的待遇和數(shù)量與一般程序員沒有多少差異,優(yōu)秀測試人員的待遇甚至比普通程序員要高的多。
3 嵌入式軟件單元測試流程
單元測試是指對軟件中的最小可測試單元進(jìn)行檢查和驗證。單元是規(guī)格說明書中的最小單元,包括函數(shù)、子程序、程序。單元測試關(guān)注獨立的函數(shù)功能,是測試過程中最低級別的測試活動。需要開發(fā)一個或多個測試用例執(zhí)行單元測試。把代碼問題縮小范圍在開發(fā)階段鎖定Bug是單元測試的主旨要求,以下將介紹一種容易操作的嵌入式單元測試實戰(zhàn)流程。
第一階段,制定測試記錄表,記錄測試過程,和測試情況。測試記錄表包含:源文件名,子函數(shù)名,用例標(biāo)號,用例名稱,用例個數(shù),用例通過個數(shù),語句覆蓋率,分支覆蓋率,MC/DC覆蓋率,測試結(jié)果,問題描述,測試人員,測試時間。針對第一階段的測試結(jié)果,此時需要大家分析出問題的代碼,各抒己見,總結(jié)問題,給出解決方法。
第二階段,解決部分測試用例failed問題,找出阻止生成用例的共性。常見問題匯總:局部變量未初始化,調(diào)用函數(shù)未聲明,局部變量直接賦值,結(jié)構(gòu)體嵌套、結(jié)構(gòu)體指針、聲明問題、聲明位置問題,函數(shù)指針,大循環(huán)、死循環(huán),絕對地址,指針變量,C語言程序中帶有g(shù)oto語句。解決辦法:局部變量聲明后,需要賦初值再使用。調(diào)用函數(shù)未聲明,該問題發(fā)生在隔離測試階段,屬于代碼書寫不規(guī)范問題。解決方法:自定義的函數(shù)都需要在頭文件中做統(tǒng)一聲明。局部變量直接賦初值:該問題發(fā)生在測試用例無法生成階段,屬于代碼書寫不規(guī)范問題。解決方法,結(jié)構(gòu)體局部變量,指針變量需要先聲明后賦初值。結(jié)構(gòu)體嵌套、結(jié)構(gòu)體指針、聲明問題、聲明位置問題:該問題也屬于代碼書寫不規(guī)范問題。解決方法:根據(jù)MISRA代碼書寫規(guī)范,結(jié)構(gòu)體需要放在頭文件中統(tǒng)一聲明。大循環(huán)、死循環(huán):單元測試需要有程序結(jié)束的出口。解決方法:把大循環(huán)改為小循環(huán),注釋掉死循環(huán)(if(1)、for(; ;),while(1))。絕對地址:單元測試不連接真實的硬件設(shè)備。遇到寄存器等絕對地址時,需要對寄存器做變量處理。指針變量:需要聲明一個同類的數(shù)組,然后把數(shù)組的首地址,賦給指針變量。函數(shù)指針:需要虛構(gòu)一個函數(shù)實體,取函數(shù)地地址賦給函數(shù)指針,完成映射。C語言程序中帶有g(shù)oto語句:需要改變程序結(jié)構(gòu),增加判斷語句,去除所有的goto語句,以便確保C語言程序的穩(wěn)定性。
測試第三階段:基本圈復(fù)雜度高于MISRA閥值要求的函數(shù),先考慮把復(fù)雜函數(shù)改為幾個小函數(shù)。改不了的由開發(fā)人員寫聲明以及具體原因,再按照路徑分支來設(shè)計測試用例。匯總測試結(jié)果,提交測試問題報告單,并提交行業(yè)標(biāo)準(zhǔn)測試報告。
4 結(jié)束語
文章簡述了軟件測試的基本概念,澄清了軟件測試工程實踐中的幾個誤區(qū),依據(jù)單元測試實踐的具體案例,介紹了一種高效、容易操作的嵌入式單元測試的流程。
參考文獻(xiàn)
[1]胡丹,杜新華.基于目標(biāo)機(jī)的嵌入式軟件單元測試[J].電子測量技術(shù),2006(2).
[2]趙正海,王寧.跟蹤雷達(dá)“指示引導(dǎo)”功能軟件測試方法研究[J].現(xiàn)代電子技術(shù),2013(36).
[3]于園園.軟件測試技術(shù)與測試管理研究[J].江蘇科技信息,2016(7).
[4]王琨.嵌入式計算機(jī)軟件測試關(guān)鍵技術(shù)探討[J].科技創(chuàng)新與應(yīng)用,2016(7).
[5]張金環(huán),田洪濤.淺析設(shè)備軟件測試與質(zhì)量保證[J].電子工業(yè)專用備,2016,45(1).
作者簡介:張軍(1988-),男,陜西武功人,工學(xué)碩士,助理工程師,主要研究方向:雷達(dá)信號處理算法、數(shù)字中頻收發(fā)機(jī)和嵌入式軟件測試。
軟件技術(shù)方案 軟件考察報告 軟件管理論文 軟件管理 軟件項目總結(jié) 軟件專業(yè)論文 軟件工程 軟件畢業(yè)論文 軟件開發(fā)論文 軟件項目管理 紀(jì)律教育問題 新時代教育價值觀