時間:2023-03-20 16:25:30
引言:易發表網憑借豐富的文秘實踐,為您精心挑選了九篇軟件測試論文范例。如需獲取更多原創內容,可隨時聯系我們的客服老師。
1高效軟件測試團隊建設的可行性策略
1.1軟件測試團隊的特質建設
軟件測試團隊的素質建設對于整個軟件工程質量而言具有非常重要的作用,人是測試工作中最具價值也是最重要的資源。因此,應該積極構建合格的、高質量的合作團隊。(1)軟件測試以及軟件工程開發都需要程序員具備足夠的自信心,對軟件檢測結構以及程序的缺陷要如實匯報。對于軟件項目工程中出現的各種問題要認真處理,以此減少客戶可能遇到的種種問題。(2)軟件測試人員還要具備足夠的懷疑精神,對可能存在的漏洞性錯誤要及時予以檢測和糾正,進而提高其自我創造力。(3)軟件測試團隊要積極構建溝通協調能力。可以通過與客戶進行必要的溝通來及時發現軟件運行中存在的不足之處,其中測試者可以針對模擬環境下用戶對于軟件環境的應用情況進行科學分析,以此對軟件編寫過程和總結文檔進行反復檢查檢測,提高軟件的運行效率和正確性。(4)必備的檢測技術能力。軟件測試團隊必須具備重要的專業技能,需要精通數據庫、通信、網絡、GUI測試、測試工具、自動化測試腳本和相關業務領域等,以此全面提升他們的測試能力和測試積極性。
1.2軟件測試團隊的制度性建設舉措
一個優秀的軟件測試團隊必定擁有一套完善的團隊管理制度,擁有明確的職責分工和高端測試人員,通過不斷規范團隊管理制度,做到揚長避短,及時提升整體測試質量。其中,軟件測試團隊需要不斷加強匯報制度建設、工作總結制度建設、獎懲制度建設、測試審核制度建設、會議制度建設等,通過科學合理地分配職責關系來進一步強化團隊成員的素質建設。在此過程中,還要注重對于資深測試人員的正確引導和建設,加強彼此間的溝通交流,不斷豐富團隊的測試知識庫,通過科學吸收先進的測試管理知識來提升整體測試技能和技巧,以此減少開發團隊協同工作中的一些領域瓶頸。
2結語
1.1測試設計重點偏離使用QC軟件測試發現bug統計,如表1所示。根據表1工作量統計,25人/日為5個中級測試工程師一周的工作量,但是根據測試用例發現的bug數量僅占bug總量的44.18%,該比例顯示測試用例的設計重點嚴重出現偏離。需要在測試用例設計的方向上進行調整。
1.2測試過程不可控QC軟件測試計劃中測試執行階段為2013.3.8-2013.3.27,執行三輪測試;實際測試時間為2013.3.23-2013.4.20,執行測試三輪,計劃完成時間嚴重偏離,表2為原計劃與實際計劃的對比。表2顯示測試計劃進行了較大調整,計劃截止時間比原計劃延遲23天。延遲原因經分析主要為開發提交測試時間延遲,開發提交版本問題較多,測試計劃安排不合理,在兩輪測試間為安排開發修改bug時間等。想要解決該問題,不僅需要對測試過程進行管理,同時也需要對開發提交的測試版本質量進行管理。
2軟件質量管理改進對策
2.1需求工程管理軟件開發過程中,需求不明確會帶來需求的頻繁變更,浪費了很多時間。針對此項問題,可對需求相關的活動進行統一管理,其需求管理結構圖如圖2所示。加強需求開發和需求管理的有機結合,不僅減少了需求的變更次數,還解決了工程師對需求不能理解到位的問題。需求開發和需求管理同樣重要,只有兩者互相配合才能做出用戶滿意的產品。
2.2立項管理為了使有限的資源發揮更高的價值,公司可通過立項管理流程進行立項管理,立項管理流程分為立項建議、立項評審和立項籌備三個階段,其具體流程圖3所示。
2.3測試流程管理針對測試流程中發現的問題,可對整體的測試流程做如下的改變:(1)測試部門可進行需求學習及需求討論,對理解不清楚及有疑問的需求,由研發設計部門進行解答,研發設計部門不能解答的由其聯系用戶確認后作出解答;(2)需求確認后,針對系統功能和性能等指標,由測試工程師進行測試測用例的設計,設計從兩個方面進行,一方面測試工程師根據需求進行測試用例的編寫,另一方面測試工程師可根據用戶反饋問題進行分析匯總;(3)使用QC功能測試工具對應用軟件兼容性、操作系統兼容性進行測試,以便于使用測試工具完成多種環境下的功能和兼容性測試;(4)進行自由測試以便于對系統測試用例進行補充,分析測試用例未覆蓋問題的原因;(5)定期分析缺陷庫中的問題,分析問題產生的原因,進行測試用例的修改。
3結論
1Web應用程序性能測試實驗
這部分實驗目的是使學生熟練掌握使用Jmeter測試Web應用程序的一般流程和方法。實驗任務測試績效考核子系統中的評分模塊。評分人登錄系統后進入評分環節,選擇其未完成的評分項目(若有多個未評分項,則需要全部對其評分)。每個評分項中包含對多個部門的評分,部門數大于等于3個時需符合正態分布,如可評出優秀3個、良好6個、合格4個、基本合格2個,否則可任意評分。按照循序漸進的原則,設計了3個步驟:一是Jmeter的基本應用,包括腳本錄制、添加http請求、添加斷言以及查看測試結果等;二是Jmeter的邏輯控制結構,如分支和循環等;三是Jmeter的高級應用,如參數值可變以及參數個數可變等。
1.1Jmeter的基本應用
Jmeter可以手工添加腳本,但更方便的是使用腳本錄制軟件Badboy[9]。Badboy錄制的腳本可以保存為Jmeter格式,然后在Jmeter中直接打開和修改。腳本主要是一系列的http請求,其中可以設置請求的URL,請求方法(get/post)及請求參數等,如圖1所示。通過添加斷言(如是否含有特定字符串)檢查請求是否返回正確結果。添加查看結果樹并運行測試腳本查看程序的測試結果。
1.2Jmeter的控制結構
Jmeter具有豐富的邏輯控制結構,包括控制器,switch控制器,while控制器以及forEach控制器等。實驗重點練習控制器和forEach控制器。控制器判斷Jmeter變量是否滿足給定條件,若滿足則執行其包含的測試元素,否則不執行。ForEach控制器對Jmeter變量的每一個取值都執行一遍其包含的測試元素。圖2是一個控制器,其條件為變量COUNT小于10且變量VAR等于字符串“abcd”。圖2Jmeter的控制器圖Jmeter的變量引用使用${變量名}的方式,變量一般提取自返回頁面中的某些信息,如滿足特定條件記錄的行數或某個特定位置的字符串取值等。變量提取可采用正則表達式或Xpath進行匹配,講解其匹配原則并現場演示。圖3利用正則表達式提取需評選優秀的單位個數,其中引用名稱youxiu就是變量名。匹配失敗則取設置的缺省值0。如對于頁面中返回的html代碼“…您當前可以評出優秀<spanid="ltYSMsg">3</span>個…”可提取出優秀個數為3。
1.3Jmeter的高級應用
本部分著重解決實際測試過程中的一些常見問題,如參數內容可變及參數個數可變等。測試登錄環節時需模擬不同的用戶登錄行為,即圖1的http請求中txtUserName一項的值應是變化的。Jmeter提供的CSVDataSetConfig可解決這一問題,如圖4所示。將所有評分人的信息存儲在一個CSV文件中,把其中的列名填入VariableNames項,之后將圖1中的txtUserName值改為userAccount(即CSV文件的第1列)實現參數值的動態變化。進入評分項后需根據情況選擇優秀和良好等的個數,且要反映在http請求的參數中。由于參評單位的個數因評分人和評分項各異,因此無法在GUI界面中一一添加。需動態添加的參數包括評分列表中的name及其value,value的取值從優秀到基本合格依次為1234。為簡單起見,我們按順序對單位進行評分。如系統要求評出3個優秀,則測試中前3個部門打優秀,其余依次類推。由于同一部門的優秀良好等單選按鈕的name值相同(如圖5所示),我們選擇提取該組唯一的ID號,然后將其轉換為name,其對應關系是用$代替下劃線(如ID號為gbBSCExamList_ctl02_rbExamerLevel,name為gbBSCExamList$ctl02$rbExamerLevel)。Jmeter的Beanshellpreprocessor可在提交http請求前動態調整參數個數及參數值。下面給出了Beanshellpreprocessor的代碼。其中ExamerLevel_matchNr為Jmeter的系統變量,提供了正則表達式匹配項ExamerLevel匹配成功的個數(即參評單位的個數)。如前所述匹配數量小于3時可任意評分,為簡單起見我們均將其評為優秀。N=Integer.parseInt(vars.get("ExamerLevel_match-Nr"));(N>=3){YX=Integer.parseInt(vars.get("youxiu"));LH=Integer.parseInt(vars.get("lianghao"))+YX;HG=Integer.parseInt(vars.get("hege"))+LH;BHG=Integer.parseInt(vars.get("jibenhege"))+HG;for(i=1;i<=N;i++){item=vars.get("ExamerLevel_"+i);item=item.replace("_","$");(i<=YX){sampler.addArgument(item,"1");}else(i<=LH){sampler.addArgument(item,"2");}else(i<=HG){sampler.addArgument(item,"3");}else(i<=BHG){sampler.addArgument(item,"4");}}}else{for(i=1;i<=N;i++){item=vars.get("ExamerLevel_"+i);item=item.replace("_","$");sampler.addArgument(item,"1");}}設計了含35個并發線程的線程組,模擬實際35個評分人的評分過程。全部線程在1秒鐘之內啟動,比實際情況更嚴格。得到聚合報告如圖6所示,其中點擊考核評分頁面響應時間最長,為335毫秒。且測試過程中無錯誤發生,說明系統評分模塊可靠。
2數據庫性能優化實驗
除應用程序外,數據庫設計的優劣亦影響系統性能。這部分實驗目的是使學生熟練掌握使用SQLServer測試數據庫性能的一般流程和方法,并進行簡單的數據庫調優。為減少復雜性,設計一個簡單的由三張表組成的人員組織結構數據庫:user、or-gan及userorgan表。其中user表含4586條記錄,or-gan表含1722條記錄,userorgan表含6804條記錄(一人可在多部門任職)。實驗任務根據賬號查詢其姓名及所在單位信息。
2.1SQL語句執行計劃對應用程序中頻繁執行的SQL語句檢查執行計劃非常重要。初始時,三張表均未建立任何索引,下面SQL語句的執行計劃如圖7所示。由圖7知,三張表均采用全表掃描的方式。對大表全表掃描可能涉及多次磁盤I/O,非常費時,應盡力避免此種情況。SQLServer報告由于缺少索引影響了查詢性能,并給出了相關建議。selectA.vcAccount,A.vcName,C.vcNamefromtest.dbo.[user]Ainnerjointest.dbo.[useror-gan]BonA.vcAccount=B.cnvcempidinnerjointest.dbo.organConB.cnvcorgid=C.nNodeIDwhereA.vcAccount='testuser'為表格建立以下索引:indexIND_USERACCOUNTontest.dbo.[user](vcAccount)clusteredindexPK_ORGANontest.dbo.[organ](nNodeID)indexIND_USERORGANontest.dbo.[userorgan](cnvcempid,cnvcorgid)再次運行后顯示執行計劃如圖8所示。可見所有表掃描均已替換為相應的索引查找,且SQLServ-er未報告缺少索引影響查詢性能。兩次執行查詢的磁盤I/O和CPU時間見表1,可見為表添加正確的索引可提高查詢性能。
2.2索引建立原則總結
建立索引的一般滿足原則如下[10](篇幅所限,未給出實例):(1)為主鍵所在的列創建索引。為經常進行連接但未指定為外鍵的字段建立索引。(2)在頻繁進行排序或分組的字段上建立索引。(3)在條件表達式中經常用到的不同值較多的字段上建立索引,在不同值較少的字段上不建立索引,如性別字段。不在查詢很少引用的列上創建索引。(4)若經常同時使用多個字段排序,可在這些字段上建立復合索引。要盡量使關鍵查詢形成索引覆蓋,其前導字段一定是使用最頻繁的字段。(5)查看索引并刪除不使用的索引。需頻繁進行數據查入操作的數據庫應有較少的索引,需頻繁進行讀取操作的數據庫應有更多的索引。(6)在聚集索引中,避免包括不必要的列,盡可能使用較小的數據類型。(7)在支持排序和范圍查詢的字段上考慮使用聚集索引。(8)具有高選擇性的列是索引的好候選列,具有高密度的列是索引最糟糕的候選列。
3結語
在數據或信號通信網絡中,按照一種鏈路協議的技術要求連接多個數據站的通訊設施,成為數據鏈路。數據鏈路一般包括傳輸的物理媒介、鏈路通訊協議、相關設備等,但不包括提供數據信號的功能設備和接收數據信號的功能設備。數據鏈路通常根據不同的用途或特定的需求來研制的,各種數據鏈路都有其相應的標準與編號,例如美軍有link13、link14等多種數據鏈路。本文提到的數據鏈簡稱J鏈和U鏈,它是根據我國實際的用途和需求,定義了專用的傳輸協議,將處于不同地理位置的作戰平臺,實現緊密的戰術鏈接,組合為完整戰術共同體。
2軟件概述
2.1總述
數據鏈測試系統軟件安裝在數據鏈測試系統的計算機系統上,驅動整個測試系統硬件系統,完成對測試工作的控制、數據分析處理、測試結果的判斷與顯示。為了給用戶友好的操作界面,測試系統的計算機操作系統采用基于圖形界面的WindowsXP操作系統。測試軟件的開發,利用當今流行的可視化編程語言VisualC++6.0編制出一個完全圖形化的用戶操作界面,設計出操作方便的集成化數據鏈測試系統軟件結構設計。
2.2功能簡介
數據鏈測試系統軟件主要實現以下功能:(1)與電子飛行儀表系統建立通信。(2)模擬指揮儀系統發送J鏈和U鏈的數據鏈信息;基于VC的數據鏈測試系統軟件設計文/蔡軍本文主要論述了在VC++6.0環境下進行的數據鏈測試系統軟件設計。數據鏈測試系統軟件是為測試、驗證某電子飛行儀表系統的數據鏈功能而研制的軟件,該軟件在某綜合測試系統上配套使用,是一款用于模擬大批量數據鏈信息,并實現與電子飛行儀表系統建立通信的軟件。數據鏈測試系統軟件可完全模擬指揮儀系統發送J和U數據鏈交聯數據信息,并實時接收電子飛行儀表系統對自由文電信息的應答。摘要(3)接收電子飛行儀表系統的自由文電應答信息;(4)打印輸出RS422數據的封裝結果;(5)多視圖方式實現雙鏈多事件型數據界面的切換;(6)通過配置文件一次性裝載、修改多批目標數據。
2.3層次劃分
分層的設計思想有利于實現設計的模塊化,減小模塊間的耦合度,從而有利于提高系統可靠性和方便升級維護。從層次結構上講,整個測試系統可以包括三個層次:硬件層、硬件接口層以及軟件層,從軟件設計的角度看,測試系統軟件可認為由三部分組成:硬件驅動層、軟件支持層和用戶應用層。系統層次關系如圖1所示。各層功能劃分如下:
2.3.1硬件層即為了實現具體測試的各數據采集科和總線接口卡,它們將插在測試主機上,實現測試主機與被測系統的互連和通訊;
2.3.2物理接口層該層是軟件和硬件的結合層,主要指主機內插卡提供的可通過ISA或PCI總線訪問的板卡上的資源。
2.3.3硬件驅動層提供上層軟件訪問板卡硬件的方法,是軟硬件通訊的橋梁。
2.3.4軟件支持層在本系統里包括對硬件訪問功能封裝的API函數,以及對測試系統軟件界面支持的導出類。對于硬件功能封裝,也將按照接口統一的理念,比如初始化,中斷句柄傳遞,重置,執行等等,以實現統一的函數調用;對于對測試系統軟件界面支持的導出類,主要是為了實現界面增強的功能,使測試界面更加人性化,更直觀。動態連接庫的設計也是模塊化設計思想的具體體現。
2.3.5用戶應用層即提供給用戶的控制測試流程和觀察測試結果的可視化視圖界面。為了方便用戶使用,減少誤操作以及無效操作,測試系統軟件采用了多視圖的構架,將視圖客戶區主要分成兩個部分:視圖選擇按鈕和為多視圖,每次只有一個視圖處于頂層激活狀態。測試需求所要的所有功能都是在功能視圖中完成,對于J鏈測試、U鏈測試等視圖采用了基于FormView的視圖類,對于測試結果則采用了ListView作為基類,對于幫助文檔采用了HtmlView作為基類。多視圖的形式解決了為了實現不同需求功能,而測試界面不同的要求,使測試界面更簡潔,用戶更容易操作,同時也使代碼更加模塊化。
3軟件設計
3.1軟件模塊數據鏈測試系統軟件采用模塊化、分層的設計思路以保證系統本身的健壯性和有效管理繁雜的測試數據。測試軟件具體功能由8個相互聯系的模塊實現,各模塊具體組成和結構如圖2所示。
3.2驅動程序模塊驅動程序模塊通過串口通信控件MSComm控件實現,本模塊采用了事件驅動法,主要是考慮MSComm控件在接收到數據事件發生時能及時相應并獲取緩沖區中的數據,而且可靠性高。
3.3應用程序類模塊在MFC框架里,在工程的其他類實現文件CPP中,只需要利用AfxGetApp()函數就可以很方便的獲得應用程序入口類指針。
3.4框架類模塊在應用程序框架類中管理所有與測試框架有關的東西,包括加載菜單,加載工具欄,加載狀態欄,組織多視圖等等,同時還將管理中斷的傳遞,以及測試板卡的指針(長整型)。在本測試軟件中,主程序采用了MFC生成向導里面的單文檔視圖結構,為顯示測試結果,視圖基類為ClistView。不選擇多文檔視圖,是因為在測試過程中,任何一個時刻J鏈數據發送、U鏈數據發送,這兩者中只能一個處于激活狀態,這是由測試需求中測試項目選擇決定的,因此就不存在同時開啟多個測試界面,用單文檔視圖結構是適合的。測試系統的菜單采用了動態連接庫封裝的CpicMenu類,以支持圖形化菜單,工具欄為部分菜單功能的映射。在CstatusBar派生類中重載OnCreate函數,創建一個靜態文本框用來顯示圖片,其中風格設置成WS_CHILD|WS_VISIBLE|SS_ICON|SS_CENTERIMAGE,表示靜態文本框是子框架、可見、圖表顯示、圖片居中。
3.5文檔類模塊文檔和視圖分離是MFC推薦的一種程序結構,在這種結構下,視圖類處理跟界面有關的東西,而文檔類處理跟存儲有關的東西,兩者通過GetDocument函數相關聯。這樣處理給程序編程帶來了很多好處,首先這種方法強調了模塊化的思想,兩個類中分別處理各自的事情,而需要數據交換時再相關,而這種情況往往是打開文檔或者保存文檔時發生,因此提高了程序的模塊化;其次兩個類中都有很多各自的支持類和函數,特別是視圖類,這樣就便于各自編程,而不互相影響,最大方便的實現每個類。在本測試系統中也采取了這種文檔視圖分離的結構。
3.6視圖類模塊數據鏈測試系統軟件將顯示界面劃分為三塊,左1右2,左邊加載的是具有Outlook風格的窗口,它可以通過鼠標單擊選擇右邊是J鏈視圖還是U鏈視圖;右邊上面是數據輸出視圖(J鏈或U鏈),右邊下面是數據輸入視圖,它顯示的電子飛行儀表系統的心跳和自由文電的應答信息。
4主要技術難點
4.1多線程技術數據鏈測試系統最大可支持的為同時在J鏈發送200批/400ms,U鏈發送100批/400ms,二十多個事件型數據不定期的發送,周期數據每批最多有65個字節,事件型數據最多有240個字節。要完成這么大數據量的輸出,一般的在定時器里設置400ms時間輸出是無法實現該功能的。為此該軟件采用了多線程技術,分別創建了J鏈目標數據輸出線程和U鏈目標數據輸出線程,在線程里設置400ms等待時間。
4.2配置文件裝載數據鏈測試系統有空中、水面、陸地、電子戰等目標數據,該數據在J鏈時最多有200批目標,每批目標最多有30多個屬性,包括目標編識號、目標屬性、目標位置等,如此多的目標完全手動輸入的話,測試工作量太大了。為此,該軟件建立配置文件,測試人員可以通過修改配置文件,一次性將目標屬性全部輸入,同時能夠將目標屬性保存進配置文件,可供下次調用。
4.3數據結果的打印輸出為了更好的調試產品軟件,數據鏈測試系統軟件里增加了輸出RS422數據的打印顯示功能,將已經輸出的RS422數據按數據類型打印在TXT文檔里,通過比較每個字節數據,可以很好的驗證產品軟件,協助產品軟件自測試和軟件排故。
5小結
1.1階段劃分
軟件的生命周期主要由軟件定義、軟件開發和軟件維護三部分組成。對于軟件的各個不同階段,盡可能地將軟件的開發設計工作劃分為具體的任務,并且使任務之間的關聯性降低,盡可能地相互獨立,從而可以有效地降低軟件開發的復雜性,利于軟件開發工作的組織管理,簡化其工作流程。
1.2軟件定義時期
對軟件進行定義的主要目的是明確軟件開發工作的總目標和該軟件工程的可行性,分析軟件系統需要實現的具體功能及采取何種手段實現該功能,并對整個系統所需要的成本和資源進行初步的估算,設計出工程的進度表。該階段的工作主要由系統分析員完成,其主要工作有:
(1)問題描述和可行性分析。
進行此階段分析時,主要由軟件系統的需求方和軟件開發方相互協商,明確軟件系統的目標及可行性。問題描述主要是明確需要解決什么問題,對問題進行準確的定位,將問題的困難程度、性質、規模及目標等內容以書面的形式進行描述,并上報給上級主管部門。對軟件需求方的使用者進行走訪,對問題的理解進行扼要的描述,并將寫好的報告反饋給用戶,查看問題的描述是否準確,統一雙方的意見,直至達到最終的協議。對于可行性的分析,當前對于該定義并沒有給出明確的定義,其主要目的是描述該系統是否值得去做,是否有合適的技術能夠解決此問題。在該階段的可行性相對比較簡短,只是從總體上進行分析,并不涉及具體的問題。
(2)分析需求。
明確軟件系統可行之后,就需要對軟件的功能進行詳細的分析,即:為了達到使用者的要求,軟件系統必須能夠做什么和具備哪些具體的功能。另外,用戶當進行軟件操作時,必須有個清晰的認識,利用該軟件系統要達到哪個具體的目標。開發人員和使用者必須進行詳細的、準確的溝通,利用數據模型、數據字典、數據流圖及算法設計出整個軟件系統的邏輯模型。在該階段,必須讓用戶參加,并給出具體的意見。
1.3軟件開發時期
對于軟件的開發,主要由計劃、設計、編碼和測試四部分組成,計劃和設計是系統設計,編碼和測試是系統實現。軟件的開發由計劃開始,完善的計劃可以為軟件的開發節省大量的時間和精力;設計是在計劃的基礎上,進一步的完善,給出問題的每一個步驟,是對整個系統功能的完整描述;系統設計完成后,開始進行編碼操作,即對問題的具體實現,在編碼中,要符合編寫規范的要求,保證程序的易讀易維護;沒有一個軟件是一次編寫成功的,需要反復的測試才行,當前的測試從小到大,分別是單元測試、集成測試和驗收測試,每次測試都要進行詳細的記錄,為以后軟件的維護打好基礎。
1.4軟件維護時期
如果說前面的步驟是軟件的實現過程,那么軟件的維護時期就是軟件的使用過程,軟件的維護時期最長,由于軟件隨著使用環境的不斷變化,軟件的功能逐漸不能滿足用戶的需求和無法正常使用,為了延長軟件的使用壽命,必須對軟件進行維護處理。對于軟件的維護活動主要分為4類,分別是:改正性維護、完善性維護、適應性維護和預防性維護。根據維護的情況不同,每個維護都要有詳細的報告,通過報告來進行制定維護計劃、修改軟件設計、代碼修改和測試等一系列的過程。
2測試自動化
開發人員設計好程序之后,無法直接投入使用,需要對代碼進行測試,而軟件測試是一個非常煩瑣的過程。據統計,軟件工程人員無法及時交付軟件的主要原因是在規定的時間內沒有對軟件進行完整的測試和修訂。21世紀,時間就是金錢,時間就是企業的生命,軟件投入市場越早,就越有可能提前掌握先機,從而獲得更高的利潤。傳統的軟件測試方法無疑已經無法適應當前IT行業的發展,自動化測試軟件可以使測試流水化,使得在較短的時間內充分對軟件進行測試,現在,越來越多的軟件企業選擇測試自動化。
2.1測試自動化的定義
當前,對于測試自動化的定義比較多,但總結起來為:能夠通過自動化的測試工具,針對軟件測試,在預設條件下運行系統或應用程序,評估運行結果,預先條件應包括正常條件和異常條件。從而達到減輕手工測試的勞動量,節省測試時間的目的。測試自動化在很多情況下都具有非常大的使用價值,例如在進行腳本測試時,可以產生許多重復調用的代碼,在進行壓力測試時,可重用很多次該腳本。如果利用手工測試方式進行壓力測試,那么可能要花費相當長的時間,而且有時有些軟件的缺陷還不能及時地發現,測試自動化保證了軟件的穩定性和準確性。
2.2測試自動化的生命周期
進行自動化測試的工具也是一種軟件,有其自身的生命周期,主要分為需求分析、計劃、設計、實現、集成、維護和終結等過程。對于需求分析階段,主要是對測試的用例進行詳細的分析,明確測試用例的可行性,考察用例是否可以重復利用,對測試有何價值;在計劃階段,設計測試的進度和生成相關的文檔;設計主要是描述自動化測試的模塊,而描述是對這些模塊的實現;對寫好的軟件模塊進行集成,生成相應的具有特定功能的測試包;最后對軟件的測試自動化工具進行維護,隨著時間的推移,結束自動化測試生命周期。
3測試自動化軟件的實現
3.1需求分析階段
在該階段,測試工程師和手機終端使用者要一起參加需求分析的討論,分析測試的環境和過程,測試不同的環境下手機的使用情況。在進行手機通信測試的需求分析里,假定使用300個測試用例,分析其自動化測試的流程,形成書面的需求規格說明文檔,并進行專門的評審,對測試用例進行審查。
3.2計劃階段
主要完成計劃進度表的建立。例如整個手機終端測試需要五周時間完成,計劃和設計需要半周,開發和執行需要三周,測試需要一周半。在規劃測試計劃時,在對每一次進行操作進行相關文檔的說明,其中文檔的完成工作也需要在計劃時間以內,建立和維護一個測試環境文檔是非常重要的。
3.3設計階段
對于手機通信系統來說,軟件的升級不會帶著新的錯誤,即功能是不變的,由于測試的腳本具有共用性,模塊化的設計是非常有必要的。在設計的過程中,要注重命名規則,以免發生混淆,使得模塊發生混亂。
3.4實現和集成階段
實現主要是在設計的基礎上,進行編碼,最終完成軟件,每次代碼更改運行要記錄初始狀態和運行后狀態,及時進行備份。對軟件進行集成分塊測試,將生成的測試包提交給組裝集成測試人員,對其進行評審和驗證,詳細記錄其結果。
3.5維護和終結階段
軟件自動化測試生成后,要根據使用環境和用戶的不同進行維護處理,并不斷對其進行改進,這個過程可以通過問題跟蹤工具來完成。隨著新技術的來臨,軟件會越來越不適應企業的要求,就要對其進行終結,重新研發新的測試軟件。
4結語
1 關于計算機軟件測試的介紹
1.1 軟件測試的概念
軟件測試是指在軟件運行之前,對軟件的產品介紹和代碼進行審核,從而保障軟件的正常運行。軟件測試不僅代表軟件系統出現問題的可能性,同時還表示軟件能夠完成預定功能的程度,這兩部分對于軟件測試都有重要的意義。
1.2 軟件測試的特點
1.2.1軟件測試的動態性
軟件測試是在規定輸入值的情況下運行的,是一種動態的檢測軟件的運行狀態的過程。
1.2.2軟件測試的有限性
在對軟件進行測試的過程中,測試的次數是有限的,不可能無限制的測試下去,同時,整個測試過程還要具有可管理性,即在測試時需要平衡測試需求與測試資源之間的關系。
1.2.3軟件測試的預測性
進行軟件測試之前,應該判斷測試的結果是否妥當,常常采用預示程序來預測運行的可能結果,但預測程序也是軟件測試技術的一大難點。
2 軟件測試技術的過程分析
2.1軟件測試的方案
在進行軟件測試之前,都需要制定一個合適有效的軟件測試方案,以確定軟件測試的目的和過程,為軟件測試的完成提供一個清晰有效的目標。
2.2 軟件測試的開發設計
軟件測試設計就是在軟件開發的過程中進行的軟件質量測試工作,在測試時需要提供規范的應用說明、程序設計情況,同時,軟件測試設計在軟件測試過程中有著重要的作用。測試設計的基本步驟為:首先利用先進的技術手段設計分析樣式,然后討論測試結果,并做成有效的測試方案,最后確定每一項測試任務都完成了,從而保障測試結果的有效性。
2.3 軟件測試的準備
在測試方案開始前,需要先進行測試準備,列舉測試方案中所需要的重點問題,這些問題常常有測試數據集、驅動程序和實際執行測試所需的軟件等,同時需要為整個測試過程尋找合適的測試環境和測試工具。
2.4 軟件測試的實施
參照之前設計的軟件測試方案,利用測試用例對軟件測試的項目進行全面有效的測試,并將測試情況與實際運行情況對比起來研究,從而判斷測試是否成功,并進行下一步測試工序。在測試的過程中對軟件的質量問題進行記錄,并進行有效的修改,修改之后再按照之前的測試步驟重新進行測試,觀察問題是否會再次出現,從而確保軟件的質量。同時,應制定合適的測試計劃,定期將軟件運行測試,以保障之前測試的問題不會在出現。每完成一個測試部分,比較整個運行結果與測試方案的不同之處,并針對不同之處進行有效的調整。
2.5 軟件測試的報告
將軟件測試階段得到的運行結果拿來觀察和處理,觀察測試觀點是否完整,確認方法是否有效,并依次評定軟件測試過程中的測試用例和軟件質量等級,并進行測試報告總結。
3 軟件工程中存在的測試問題
軟件工程出現后,軟件的運行質量越來越受到人們的關注,軟件測試技術也開始慢慢發展,但在軟件工程中常常出現一些測試問題,導致軟件的質量受到影響。下面筆者就軟件工程中常見的測試問題進行闡述。
(1)目前很多軟件開發公司沒有比較正規的軟件開發手段,沒有產品說明書,因此,在進行軟件測試時需要先利用試探性測試技術。而利用試探性測試技術需要先了解軟件的特性,并對軟件的運行情況進行有效的記錄,全面描述軟件的功能特點,然后應用常用的幾種軟件測試技術來找出軟件的質量問題。但在這樣的情況下,一些錯誤、非法的沒有利用價值的數據容易被作為輸入數據,這樣測試軟件的輸出結果存在較大問題,對于軟件測試的進行有較大的影響。
(2)在進行軟件測試時,首先要對軟件的邏輯流程進行了解,描述軟件的詳細狀態,但在一些規模很大、結構復雜的軟件測試中,了解軟件的運行情況是很困難的,這時,就需要降低軟件測試的狀態以及數量。但是在測試中,必須對每種狀態都進行測試,但在實際測試中往往忽略這一問題,這將會大大影響到軟件測試的效果,并產生一定的后果。
4 計算機軟件測試的常用技術
軟件測試技術對于計算機軟件行業的發展有重要的促進意義,關系到計算機軟件的運行質量,同時,還能方便人們的日常生活。計算機軟件測試主要有兩種手段,即白盒測試和黑盒測試,下文筆者將對此進行闡述。
4.1 白盒測試
白盒測試即邏輯驅動測試或結構測試,該方法是對系統的內部構造進行測試,檢測整個應用軟件內部是否正常運行的手段,在測試中,把待測系統當作一開放的盒子,通過對系統的內部程序結構進行測試來檢測它的邏輯路徑,從而根據在不同區域的檢測信息來測試軟件的實際運行情況是否與預期結果相同。目前,采用白盒測試技術常用的方法有:基本路徑測試法、邏輯覆蓋法、靜態結構分析法和代碼檢查法等。與其他的軟件測試技術相比,白盒測試技術需要充分了解到系統的內部構造,以便對系統的全部邏輯路徑進行檢測。在應用這種測試技術時,首先要檢查系統的內部構造,并從整個應用的邏輯來
統計檢測數據。另外,白盒測試技術對于軟件測試人員快速發現軟件運行異常情況,提高軟件的運行效率有重要的現實意義。 4.2 黑盒測試
黑盒測試即功能測試,該方法是對軟件產品的功能進行測試,從而觀察軟件能否正常運行的手段,在測試中,把測試系統看成封閉的黑盒子,不需要考慮整個軟件系統的內部特征,只需要依靠傳輸數據來得出檢測結果。黑盒測試主要對軟件的界面和功能進行測試,僅僅只需要考慮系統的外部結構,從而達到有效進行軟件測試的目的。同時,黑盒測試主要測試軟件的功能,常常用于檢測這樣幾種錯誤:運行界面、程序初始化和終止、數據庫的訪問情況、軟件性能和功能等錯誤。在黑盒測試之前,需要采取合適有效的測試方案,以保障軟件測試有計劃的進行。相比其他的軟件測試技術,黑盒測試操作方便,設計代碼也很簡單,能夠從用戶的角度出發去解決問題,并實現軟件的功能。
1.軟件開發類課程翻轉課堂教學模式研究
2.淺談軟件項目開發過程中的需求分析
3.軟件開發方法的創新發展過程研究
4.基于Java語言的安卓手機軟件開發
5.軟件開發的風險分析與控制
6.軟件開發過程模型的發展
7.需求工程對于軟件開發的重要性
8.軟件復用技術及其在軟件開發中的應用
9.試論VB編程語言在軟件開發中的應用
10.軟件開發的風險分析與控制
11.分析軟件開發中數據庫設計理論的實踐
12.基于WBS-RBS的軟件開發風險識別與控制
13.敏捷軟件開發的雙迭代模型
14.基于MATLAB的汽車制動系統設計與分析軟件開發
15.軟件開發勞動計量方法與軟件成本估算
16.基于計算機軟件開發的JAVA編程語言分析
17.一種以軟件體系結構為中心的網構軟件開發方法
18.基于構件的軟件開發的方法與實踐
19.ABC:基于體系結構、面向構件的軟件開發方法
20.面向軟件開發信息庫的數據挖掘綜述
21.淺談三層架構在軟件開發中的應用
22.使用開源軟件進行軟件開發的風險分析
23.汽車電子控制單元軟件開發模式研究
24.軟件開發與層次化思維方式
25.SQA規范對于教育軟件開發的啟示
26.基于證據理論的軟件開發風險評估方法
27.軟件開發人員績效管理中的問題及對策
28.敏捷型軟件開發方法與極限編程概述
29.信息化軟件開發項目經理績效考評研究
30.基于“眾包”的軟件開發模式
31.軟件開發模型研究綜述
32.支持第四代語言的并行進化式軟件開發模型CESD
33.光滑粒子動力學核心算法與軟件開發中的關鍵問題
34.面向重用的軟件開發價值鏈
35.基于MVC模式的應用軟件開發框架研究
36.支持模型驅動式軟件開發的建模語言框架研究
37.3G智能終端軟件開發實驗教學改革的思考
38.軟件開發國際合作模式研究
39.地理信息系統專業學生GIS軟件開發能力的培養
40.有色Petri網在軟件開發中的應用
41.淺談軟件開發的成本核算
42.一種高效率的軟件開發方法——以用戶為中心的軟件開發方法(UCD)
43.軟件開發成本估算技術綜述
44.基坑雙排樁支護結構設計計算軟件開發及應用
45.軟件構架設計在軟件開發中的意義
46.面向軟件開發信息庫的數據挖掘綜述
47.談軟件開發中的需求分析
48.淺談插件化軟件開發
49.計算機軟件技術在植保軟件開發中的應用
50.Onboard:以數據驅動的敏捷軟件開發協同工具
51.軟件開發綜合能力培養的案例教學
52.軟件配置管理在軟件開發平臺中的應用
53.軟件開發成本估算模型的研究
54.軟件開發績效評價指標體系的構建
55.淺談計算機軟件開發技術的應用研究與趨勢
56.軍用軟件開發工程化質量管理研究
57.計算機軟件開發中的分層技術探討
58.基于學生軟件開發團隊的溝通機制研究
59.項目管理在軟件開發中的應用
60.面向農業軟件開發的構件庫研究與實現
61.搭建式GIS軟件開發及其對軟件工程的影響
62.軟件開發過程中的質量管理探析
63.軟件開發本體構建與模塊化的應用研究
64.基于CDIO的高職軟件開發專業課程體系設計
65.典型建筑火災風險評估體系及其軟件開發
66.有效的軟件開發項目風險管理模型
67.框架技術在軟件開發中的研究與實踐
68.淺論新時期計算機軟件開發技術的應用及發展趨勢
69.基于軟構件的軟件開發框架研究
70.面向軟件開發信息庫的數據挖掘綜述
71.模型驅動的軟件開發模式研究
72.以《數據結構》為核心的軟件開發課程群建設
73.護理信息網絡化管理的研究與軟件開發
74.分層技術在計算機軟件開發中的應用
75.軟件開發生命周期法比較之敏捷與傳統
76.基于虛擬硬件在環的控制軟件開發
77.項目管理在軟件開發中的應用分析
78.項目管理在軟件開發中的應用研究
79.軟件開發中的設計原則
80.基于學習遺忘作用的人員調度實驗設計及其軟件開發
81.基于網絡的可信軟件大規模協同開發與演化
82.華池油田結垢預測及軟件開發
83.探析計算機軟件開發的規范化
84.軟件開發自動化平臺的研究與應用
85.架構和面向對象技術在PLC軟件開發中的應用
86.國外XBRL軟件開發技術比較及啟示
87.企業軟件開發標準化探討
88.智能手機操作系統及其Google Android上的軟件開發
89.淺析軟件測試在軟件開發中的重要意義——從軟件功能測試的作用談起
90.軟件開發方法及其應用
91.使用嵌入式Linux操作系統進行軟件開發的特點及優勢
92.基于VB中MSComm控件的通信軟件開發與實現
93.軟件開發管理中的溝通與協調問題研究
94.基于Java語言的安卓軟件開發的研究
95.關于計算機軟件開發語言的研究
96.新時期計算機軟件開發技術的應用研究
97.培養大學生軟件開發創新能力的探索與實踐
98.自適應多Agent系統的面向Agent軟件開發方法學ODAM