時間: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結語
關鍵詞:計量特色;軟件測試人才;課程體系;實踐體系
目前,全國有500余所本科院校開設計算機專業,對一所像中國計量學院樣的普通高校而言,如何在這種龐大的專業規模和激烈的專業競爭中辦好自己的專業,專業特色是一個重要的立足點。不同類型高校計算機專業的人才培養應當具有不同的定位,人才培養模式要充分依托各自學校的辦學優勢體現專業特色。
中國計量學院是我國質量監督檢驗檢疫行業唯一的本科院校,學校在29年的辦學過程中,逐步確立了“計量立校、標準立人、質量立業”的辦學理念,形成了“培養具有牢固質量觀念、明確標準意識和較強計量能力的高素質人才”的人才培養和在計量、質量、檢測、標準、檢驗檢疫等方面具有鮮明的辦學特色。
中國計量學院計算機專業面對目前國內軟件測試人才失衡及培養渠道缺失現狀,針對軟件測試人才的職業素質要求,依托學校計量測試的辦學優勢,以培養社會急需的軟件質量與測試人才市場為目標,研究探索了具有鮮明計量特色的“軟件質量與測試平臺+模塊”的計算機專業應用型人才培養模式和課程結構與體系,構建了由實驗教學、軟件度量與測試專業技能訓練和校內外軟件質量與測試實踐基地的計量特色實踐教學體系,培養了z生軟件質量意識和積極探索、勇于創新的學習動機。
1計量學與軟件測試間的關系
計量學(metrology),簡稱計量。隨著人類文明和科學技術水平的發展,計量學的內涵與外延在不斷變化。就內涵而言,計量學曾被稱為度量衡學和權度學,一般指關于測量的科學,具體指以技術和法制手段保證量值準確可靠、單位統一的測量,此處的“量”主要是有形的、物化的量,可通過“測”來獲取。而廣義的計量學,則突破“測”的手段來獲取無形的量[1]。
在傳統計量時期,社會經濟活動較簡單,計量主體是度量衡和時間度量,隨著近現代數學、原子物理和量子物理學的發展,現代計量的對象和范圍不斷拓展,從一般物理量擴展到工程量、化學量和生物量等,甚至還包含了現代社會的商貿、醫療、貿易,出現了形態計量學、經濟計量學、文獻計量學、情報計量學、網絡計量學。計量學已經涉及自然科學、人文社會科學的各方面[1]。
科學儀器是計量的重要組成部分,一流科學研究往往離不開一流的科學儀器。隨著計算機技術的飛速發展,“計算機軟件就是儀器”、“計算機軟件就是設備”早已成為的事實。20世紀90年代以來,計算機應用領域不斷拓寬,軟件應用的復雜性和規模不斷擴大,IEEE、ANSI和ISO等一系列關于軟件質量控制和測試的國際標準均相繼問世,使軟件質量和軟件測試得到了普遍的重視。人們認識到軟件測試不單純是發現錯誤的過程,而且包含軟件質量評價的內容,是軟件質量保證的重要手段。2004年ISO和IEC的第一聯合技術委員會(ISO/IEC/JTCl)提出的軟件工程標準術語中給軟件測試下的定義是:軟件測試是為評價、改進軟件產品質量、標識軟件產品缺陷和問題而進行的活動。即軟件測試并非傳統意義上產品交付前單一的“找錯”過程,而是貫穿于軟件生產過程的始終,是一個科學的質量控制過程[2]。因此可以說傳統計量測試技術與計算機技術的交叉與融合是實現軟件測試技術的基礎,軟件測試技術是傳統計量測試技術的延伸與拓展,是現代計量技術的一個重要分支。傳統的計量測試也是測定某個系統的性能是否滿足需求,或弄清預期結果與實際結果之間的差別。軟件測試技術與傳統計量測試技術的主要區別在于被測對象不同[3].
2具有計量特色的軟件測試應用型人才需求分析
何謂具有計量特色的軟件測試應用型人才?筆者認為所謂具有計量特色的軟件質量測試應用型人才是指“具有牢固軟件質量觀念、明確計量標準意識和較強軟件質量和測試能力的高素質應用人才”。其特點是對軟件度量、標準、質量方面的問題非常敏感、理解非常準確、工作上手非常快。
軟件質量度量是對影響軟件質量的屬性所進行的定量測量,其實現的基礎是軟件測試,測試作為一種通用的度量方法,其重要作用在于軟件質量保證、功能的驗證和確認,以及產品可靠性的評估等。隨著經濟全球化的進一步推進,中國軟件行業面臨更加廣闊的國際市場。經過幾年來的市場競爭,業內人士已清醒地認識到:“優質的產品、一流的服務、良好的信譽”是軟件產業發展壯大的基礎。在注重軟件開發過程規范化的同時,通過測試的手段保證軟件產品的質量,貫穿于軟件產品研發周期內每一個環節中,在整個軟件開發的系統工程中占據著相當大的比重[4]。
目前,我國軟件業服務范圍廣泛,從電子消費到醫療航天,已滲透進社會的各個領域。據了解,隨著軟件行業產業結構的調整,各大軟件公司對國內軟件市場、軟件外包業務的爭奪愈演愈烈,軟件質量不得到改善,我國軟件行業就無法和美、日、德、英、法等軟件大國競爭。然而由于我國軟件企業對軟件測試認識較晚,現階段大多數軟件企業中測試人員數量還不足開發人員的五分之一,遠遠落后于國外1:1的比例,且具備5年以上行業經驗的資深軟件測試工程師不超過兩萬人。據相關數據統計,目前我國軟件測試人才缺口已達30萬人。
國內軟件測試人才的來源主要有三方面:一是以前做軟件開發轉行的技術人員;二是來自計算機專業的高等學院畢業生;三是經過一定的培訓,具有很強的實戰經驗的專業人員。據51Testing調研數據顯示,目前國內軟件測試從業人員的學歷集中在本科,其比例為70%,大專學歷次之,其比例為23%,高學歷者(包括碩士、博士)占6%,大專以下的有1%。因此高等學院計算機專業本科畢業生將是我國今后軟件測試人才的主要來源。
3具有計量特色的軟件測試應用型人才的培養
(1)培養目標的定位
高等學校計算機專業人才培養目標的確立依據有二:一是學校的辦學特色和自身的專業條件;二是社會對專業人才的需求。在專業建設和人才培養目標的定位過程中,我們認識到近年來隨著大學計算機專業在規模上蓬勃發展,各高校均面臨著專業特色不明顯以及教育質量需要提高等問題。認為在新形勢下,只有以特色立校,揚長避短,才能以特色強校,以特色取勝,才能凸現學校的品牌與地位。
中國計量學院地處IT技術發展非常迅猛的浙江省,是我國質量監督檢驗檢疫行業唯一的本科院校,其辦學特色是計量、質量、檢測、標準、檢驗檢疫等方面。因此我們的人才培養目標的定位是立足于浙江省和國家的需求,依托學校計量測試的辦學優勢,根據國內外在軟件測試和質量控制創新教育方面研究的現狀和發展趨勢、新形式下社會對軟件測試和質量控制的計算機專業人才的需求,特別是對軟件測試和質量控制專業人才在應用動手創新能力和綜合素質方面的需求,在我們專業實力、專業水平和專業學生的知識能力基礎上,結合計量學院在計量、質量、檢測、標準、檢驗檢疫等方面的辦學特色,突出計量測試特色,培養具有鮮明的計量特色的計算機專業人才。
具有鮮明的計量測試特色計算機專業人才培養目標,一方面可以提高我校計算機專業在培養人才和為社會發展服務等方面的創造力、在招生、就業,爭取科研課題方面的競爭力和對浙江省和國家的軟件測試和質量控制領域的技術發展和進步的貢獻力,另一方面也有助于提高我校計算機專業的水平和實力,爭取更多的社會資源和企業支持。
(2)課程體系和計量特色實踐教學體系
根據教育部計算機科學與技術專業教學指導分委員會在《中國計算機本科專業發展戰略研究報告》中提出的以“培養規格分類”為核心思想的計算機專業發展的要求,我們的教學計劃和培養方案以應用型為基礎,整個課程體系設計首先強調計算機科學和應用工程基礎,但專業課程的重點放在現代軟件質量工程和軟件測試理論和軟件測試新技術方面。培養計劃強調軟件測試領域的應用實用型特點,重點加強軟件測試實踐性課程,培養學生的獨立進行軟件測試的能力。課程體系分為以下幾個層次實現:
①專業基礎:包括計算機專業引導性課程和數學物理等方面的基礎課程,如程序設計基礎、數據結構與算法、計算機組成等,重點培養學生對計算機基礎的理解和掌握。
②專業課:包括計算機專業自身的核心課程,如數據庫原理、操作系統、計算機網絡、軟件工程等傳統的計算機學科核心課程,同時軟件測試與質量控制的核心類課程也是教學的重點。在高年級專業的專業方向學習階段,采用專業方向平臺教學手段,學生可根據自己的專業興趣、發展方向、就業趨向等選擇合適的平臺課程進行學習。根據社會對計算機專業人才需求和自身專業特點,設置軟件測試與應用方向平臺、網絡工程及應用方向平臺、嵌入式系統設計及應用方向平臺等三個專業方向平臺。在專業方向平臺課程中,除側重點不同外,都具有計量測試特色,如軟件測試與應用方向平臺包含軟件質量工程、軟件測試技術、軟件能力成熟度模型(CMM)等,嵌入式系統方向平臺包含軟件質量工程和嵌入式系統測試技術等。
③選修課:與質量測試領域、職業發展素質和一般工程方法相關的選修課。如計量學概論、產品質量工程概論、檢測技術與儀器等,以增強學生的質量測試意識和職業素養。另外軟件的測試的行業或領域非常強,掌握領域專業知識也是非常關鍵,我們通過聘請相關行業或領域的專家以技術講座方式使學生初步掌握相關行業或領域知識,以避免學生缺乏領域知識。
④實踐教學:根據軟件測試人才能力素質的要求,我們設置了相應的實踐教學體系,包括課程實驗、課程設計和專業實踐三個環節。課程實驗主要讓學生在真實或模擬的環境中進行大量操作、實踐,熟悉各種測試軟件和測試工具;課程設計通過安排小型的軟件測試項目,讓學生運用測試工具進行測試,鍛煉學生的綜合分析能力和綜合運用知識的能力;專業實踐結合畢業設計,一方面安排學生走出學校,參加實際的軟件測試項目。另一方面我們專門設計針對電信/互聯網服務和典型行業(金融、銀行、保險等)等應用領域的軟件測試和質量控制的實踐項目,并在實踐過程中模擬企業的質量管理體系,訓練學生項目管理、團隊合作、學習創新的能力。
另外,我們還與知名軟件測試職業培訓機構合作,建設校內培訓基地,充分利用校內的實驗條件、生源條件;培訓機構的師資、技術、資金資源。通過合作辦學,建立良好的測試環境(各種流行測試工具),引入科學、系統的課程體系,利用雙方的互補資源優勢,相互學習、協作、促進,實現雙贏。同時與省內軟件企業合作,建立校外實習、實訓基地,學生在教師和企業專家的指導下,參與實際測試項目。與第三方測試機構合作,承接了力所能及的測試項目,實施了大學生科研計劃。
(3)計算機學科和計量測試相關學科知識的相互滲透和融通
在軟件質量測試應用型人才培養過程中,為了體現計量、質量、檢測、標準、檢驗檢疫等方面的辦學特色,我們將“明確標準、注重量化、追求質量”滲透于人才培養的過程中,努力達到“標準先進、計量精確、質量可靠”的人才培養目標,突出計量測試特色,在研究計算機學科和計量測試相關學科各自特點基礎上,提出了計量測試大學科意識,實現了兩學科知識的相互滲透和融通。以選修課的形式在計算機專業開設如計量學概論、產品質量工程概論、檢測技術與儀器、技術監督法律法規、質量管理體系認證、標準化概論等課程,將計量測試相關學科基礎知識的滲透和融通到計算機學科,使計算機專業學生能建立起標準意識、質量意識和法制意識,對計量、標準、質量方面的問題更敏感、理解更到位、工作上手更快。近三年來,學生共有50余項與專業特色相關的專利申請被受理,參與的學生人數和專利項目申請數均列省屬高校前茅。學生在各級各類學科性競賽中所獲得的獎項多數也與專業特色密切相關。
4結束語
中國計量學院屬于行業性較強的學校,計量學本身涉及自然科學、人文社會科學和工程領域等多個方面,由計量派生出來的相關學科、領域和方向也在不斷增加。在計量這個大框架下建立我們計算機專業特色,是我們培養能夠適應21世紀科技、經濟和社會發展需要,具有良好質量意識和軟件測試技能的應用型人才的必然選擇,開展具有計量特色的軟件質量測試應用型人才的培養模式的研究是迫切的現實需要,這一能夠滿足國家對專業人才的需求,培養社會急需的軟件度量與測試人才,也更能提高我校計算機專業在培養人才和為社會發展服務等方面的創造力和競爭力,也有助于提高我校計算機專業的水平和實力,爭取更多的社會資源和企業支持。
參考文獻
[1]林建忠.現代計量工程教育模式探索[J].高等工程教育研究,2007,(6):78-82.
[2]康一梅,張永革,李志軍等.嵌入式軟件測試[M].北京:機械工業出版社,2008.
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