緒論:寫作既是個人情感的抒發,也是對學術真理的探索,歡迎閱讀由發表云整理的11篇軟件測試論文范文,希望它們能為您的寫作提供參考和啟發。
從用戶的角度來看,普遍希望通過軟件測試暴露軟件中隱藏的錯誤和缺陷,所以軟件測試應該是"為了發現錯誤而執行程序的過程"。或者說,軟件測試應該根據軟件開發各階段的規格說明和程序的內部結構而精心設計一批測試用例(即輸入數據及其預期的輸出結果),并利用這些測試用例去運行程序,以發現程序錯誤或缺陷。
二、影響軟件測試的因素
影響測試效率的因素除了測試方法之外,主要因素還有人為因素、軟件類型、錯誤類型、測試充分度等。下面對這些因素作一個簡要分析。
1.人為因素
軟件測試中的許多工作是由人來完成的,因此,人為因素是影響測試效率的一個重要方面。這樣的差異并非偶然,這是因為測試人員在應用一個測試方法時具有很大的靈活性,從而使測試人員的經驗和學習能力可以有較大的發揮余地。所以只能采用越來越嚴格的測試方法和過程來有效地避免人為因素對測試效率的影響。
2.軟件類型
軟件類型也是影響測試效率的一個重要因素。即使是同一個測試者,測試不同類型的軟件的效率和發現軟件錯誤的能力也是不盡相同的。測試什么類型的軟件的效率較高則因人而異,這往往與測試者的相關知識、經驗與專業訓練有關。
3.測試充分度
測試充分度反映了一個測試是否得到了良好的執行,它直接關系到測試的效率。1993年Frankl和Weiss發現,只有當充分度十分接近100%時,才能使測試發現錯誤的能力得到發揮。因此,在測試軟件時,必須設法使充分度十分接近100%,否則將難以保證測試質量。
三、加強對測試工作的組織和管理
隨著軟件開發規模的增大、復雜程度的增加,以尋找軟件中的錯誤為目的的測試工作就顯得更加困難。然而,為了盡可能多地找出程序中的錯誤,生產出高質量的軟件產品,加強對測試工作的組織和管理就顯得尤為重要。
從軟件的生存周期看,測試往往指對程序的測試,這樣做的優點是被測對象明確,測試的可操作性相對較強。但是,由于測試的依據是規格說明書、設計文檔和使用說明書,如果設計有錯誤,測試的質量就難以保證。即使測試后發現是設計的錯誤,這時,修改的代價是相當昂貴的。因此,較理想的做法應該是對軟件的開發過程,按軟件工程各階段形成的結果,分別進行嚴格的審查。
雖然測試是在實現且經驗證后進行的,實際上,測試的準備工作在分析和設計階段就開始了。
1.測試的過程及組織
當設計工作完成以后,就應該著手測試的準備工作了,一般來講,由一位對整個系統設計熟悉的設計人員編寫測試大綱,明確測試的內容和測試通過的準則,設計完整合理的測試用例,以便系統實現后進行全面測試。
在實現組將所開發的程序經驗證后,提交測試組,由測試負責人組織測試,測試一般可按下列方式組織:
(1)首先,測試人員要仔細閱讀有關資料,包括規格說明、設計文檔、使用說明書及在設計過程中形成的測試大綱、測試內容及測試的通過準則,全面熟悉系統,編寫測試計劃,設計測試用例,作好測試前的準備工作。
(2)為了保證測試的質量,將測試過程分成幾個階段,即:代碼審查、單元測試、集成測試和驗收測試。
(3)代碼會審:代碼會審是由一組人通過閱讀、討論和爭議對程序進行靜態分析的過程。會審小組由組長,2~3名程序設計和測試人員及程序員組成。會審小組在充分閱讀待審程序文本、控制流程圖及有關要求、規范等文件基礎上,召開代碼會審會,程序員逐句講解程序的邏輯,并展開熱烈的討論甚至爭議,以揭示錯誤的關鍵所在。實踐表明,程序員在講解過程中能發現許多自己原來沒有發現的錯誤,而討論和爭議則進一步促使了問題的暴露。例如,對某個局部性小問題修改方法的討論,可能發現與之有牽連的甚至能涉及到模塊的功說明、模塊間接口和系統總結構的大問題,導致對需求定義的重定義、重設計驗證,大大改善了軟件的質量。
(4)單元測試:單元測試集中在檢查軟件設計的最小單位-模塊上,通過測試發現實現該模塊的實際功能與定義該模塊的功能說明不符合的情況,以及編碼的錯誤。由于模塊規模小、功能單一、邏輯簡單,測試人員有可能通過模塊說明書和源程序,清楚地了解該模塊的I/O條件和模塊的邏輯結構,采用結構測試(白盒法)的用例,盡可能達到徹底測試,然后輔之以功能測試(黑盒法)的用例,使之對任何合理和不合理的輸入都能鑒別和響應。高可靠性的模塊是組成可靠系統的堅實基礎
(5)集成測試:集成測試是將模塊按照設計要求組裝起來同時進行測試,主要目標是發現與接口有關的問題。如數據穿過接口時可能丟失;一個模塊與另一個模塊可能有由于疏忽的問題而造成有害影響;把子功能組合起來可能不產生預期的主功能;個別看起來是可以接受的誤差可能積累到不能接受的程度;全程數據結構可能有錯誤等。
2.測試的人員組織
為了保證軟件的開發質量,軟件測試應貫穿于軟件定義與開發的整個過程。因此,對分析、設計和實現等各階段所得到的結果,包括需求規格說明、設計規格說明及源程序都應進行軟件測試。基于此,測試人員的組織也應是分階段的。
(1)軟件的設計和實現都是基于需求分析規格說明進行的。需求分析規格說明是否完整、正確、清晰是軟件開發成敗的關鍵。為了保證需求定義的質量,應對其進行嚴格的審查。
(2)設計評審:軟件設計是將軟件需求轉換成軟件表示的過程。主要描繪出系統結構、詳細的處理過程和數據庫模式。按照需求的規格說明對系統結構的合理性、處理過程的正確性進行評價,同時利用關系數據庫的規范化理論對數據庫模式進行審查。
經中央電視臺、中國青年報、中國新聞周刊等多家媒體報道的沈陽在國內反剽竊領域已是名人,每天收到的電話、郵件不斷。
“去年以來,不斷有人告訴我,被檢測者們正在研究反剽竊系統的運行規律,找出弱點,并把心得上傳網絡供人分享。”沈陽說,他們首先發現系統只能檢測文本文件,數學公式等非文本格式可大膽抄襲。利用這—弱點,他們把文字拍成圖片貼到論文電子版里,系統也拿它沒辦法。
由于擁有容量更為強大的備查論文數據庫,去年底以來,由中國學術期刊電子雜志社與清華同方知網共同研發的學術不端檢測軟件被國內更多高校和期刊采用。但他們的軟件,同樣也面臨被檢測者各種反反剽竊行為。
目前軟件檢測出的全文或大段抄襲等簡單抄襲少了,并不意味著抄襲行為減少了。
沈陽介紹,網絡上出現了應對反剽竊檢測的商業服務:被檢測者提供論文和學校名稱,提供商業服務者即能查出這所學校所用反剽軟件的類型,是沈陽的還是清華同方的,即可提前檢測出結果,并提示被檢測者如何修改;被檢測者再將修改過的論文提交學校,這樣就檢測不出問題。
“還有更絕的。—名博士生手眼通天,當被告知他的博士論文經檢測為抄襲后,他托關系從國內各大期刊庫撤掉電子版論文。”沈陽說,“這名‘干掉正版’的博士生確有其人,只是我不便透露更具體的身份特征。”
本報訊(記者萬建輝)“現在看來,反剽竊遠不只是—個技術問題。今年暴露出來的多起學術不端事件,有關部門曾來函征求我的意見。”
沈陽昨日介紹,他也做反剽竊方面的理論研究,包括民意分析和輿論分析研究;主管部門來函—般會向他了解反剽竊軟件的檢測效果,剽竊事件的性質狀況、發展走勢。
武漢多所高校請他去做反剽竊專題報告。甚至,被揭發者找他咨詢采取何種應對措施、會產生何種結果。
沈陽說,今年,—名年輕官員的上任引起全國網友廣泛關注,網友人肉搜索出他的畢業論文,并用反剽竊軟件檢測出抄襲部分。這名官員請人找到他,請他幫助分析事件可能的進展和結局、是否需要辭職等。
廣州—所大學的—名女教師舉報學校負責人博士論文抄襲。沈陽說,女教師曾打電話給他,希望他以自己開發的反剽竊軟件檢測出的客觀結果聲援她。
本報訊(記者萬建輝)在沈陽工作的武漢大學,校研究生院用的是清華同方的反剽竊軟件;該校計算機學院、信息管理學院的研究生辦公室和—個校辦期刊社,仍在使用他的反剽竊軟件。
這部分實驗目的是使學生熟練掌握使用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)具有高選擇性的列是索引的好候選列,具有高密度的列是索引最糟糕的候選列。
目前,全國有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.
“去年以來,不斷有人告訴我,被檢測者們正在研究反剽竊系統的運行規律,找出弱點,并把心得上傳網絡供人分享。”沈陽說,他們首先發現系統只能檢測文本文件,數學公式等非文本格式可大膽抄襲。利用這一弱點,他們把文字拍成圖片貼到論文電子版里,系統也拿它沒辦法。
由于擁有容量更為強大的備查論文數據庫,去年底以來,由中國學術期刊電子雜志社與清華同方知網共同研發的學術不端檢測軟件被國內更多高校和期刊采用。但他們的軟件,同樣也面臨被檢測者各種反反剽竊行為。
目前軟件檢測出的全文或大段抄襲等簡單抄襲少了,并不意味著抄襲行為減少了。
沈陽介紹,網絡上出現了應對反剽竊檢測的商業服務:被檢測者提供論文和學校名稱,提供商業服務者即能查出這所學校所用反剽軟件的類型,是沈陽的還是清華同方的,即可提前檢測出結果,并提示被檢測者如何修改;被檢測者再將修改過的論文提交學校,這樣就檢測不出問題。
“還有更絕的。一名博士生手眼通天,當被告知他的博士論文經檢測為抄襲后,他托關系從國內各大期刊庫撤掉電子版論文。”沈陽說,“這名‘干掉正版’的博士生確有其人,只是我不便透露更具體的身份特征。”
剽竊者、揭發剽竊者紛紛求助于沈陽
本報訊(記者萬建輝)“現在看來,反剽竊遠不只是一個技術問題。今年暴露出來的多起學術不端事件,有關部門曾來函征求我的意見。”
沈陽昨日介紹,他也做反剽竊方面的理論研究,包括民意分析和輿論分析研究;主管部門來函一般會向他了解反剽竊軟件的檢測效果,剽竊事件的性質狀況、發展走勢。
武漢多所高校請他去做反剽竊專題報告。甚至,被揭發者找他咨詢采取何種應對措施、會產生何種結果。
沈陽說,今年,一名年輕官員的上任引起全國網友廣泛關注,網友人肉搜索出他的畢業論文,并用反剽竊軟件檢測出抄襲部分。這名官員請人找到他,請他幫助分析事件可能的進展和結局、是否需要辭職等。
廣州一所大學的一名女教師舉報學校負責人博士論文抄襲。沈陽說,女教師曾打電話給他,希望他以自己開發的反剽竊軟件檢測出的客觀結果聲援她。
沈陽手中掌握10萬剽竊者名單
本報訊(記者萬建輝)在沈陽工作的武漢大學,校研究生院用的是清華同方的反剽竊軟件;該校計算機學院、信息管理學院的研究生辦公室和一個校辦期刊社,仍在使用他的反剽竊軟件。
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 黑盒測試
中圖分類號:TP434文獻標識碼:A文章編號:1672-7800(2012)010-0200-02
基金項目:銅仁學院2011年教學改革項目(2011)
作者簡介:蒲天銀(1974-),男,碩士,銅仁學院計算機科學系副教授,研究方向為項目管理、信息安全;饒正嬋(1976-),女,碩士,銅仁學院計算機應用研究所講師,研究方向為項目管理、數據挖掘。
0引言
當前,軟件工程作為一個相對年輕的獨立學科,在高校受到越來越多的關注,不僅如此,軟件工程作為一種產業已成為軟件發展的關鍵技術。因此,作為一名當代大學生,想要成為合格的信息技術人才,掌握一定的軟件工程新技術、新方法是必不可少的。
隨著現代計算機技術的飛速發展,軟件業也得到了很快的提高,為跟上世界信息技術發展的步伐,從20世紀80年代起,我國大多高校在計算機科學與技術專業人才培養方案中開設了軟件工程基礎,此門課程一般安排在三年級進行,課程的開設對學生在大學四年的軟件理論掌握中取得了不錯的效果。但縱觀近幾年來高校的畢業設計可以看出,在實踐性教學和教學效果檢驗等方面還存在著不少問題。課程教學中從教材的選用上看,重理論輕實踐的現象比較突出,學生畢業后往往通過要用人單位長時間培訓后才能適應崗位的要求,使得高校教育與社會的實際需求的脫節;造成了資源的嚴重浪費。
高校培養人才的目標是以社會需求為導向,計算機專業人才的培養也不過如此,學校的教育教學應該圍繞這個導向定位來組織教學內容和配備教學資源。隨著軟件工程技術的發展,軟件工程領域的教學內容不斷豐富,教育教學手段日新月異,教學改革已勢在必行。
1軟件工程教學的現狀概述
在計算機科學與技術本科專業的課程體系中,軟件工程作為一門基礎課程來開設,很多高校選擇教材均為由清華大學出版社出版、張海藩教授編著的《軟件工程導論》。教師在課程教學中,一般采用講授與實訓相結合的教學方法,即課堂上由教師講授理論、原理,實訓時由學生動手設計一個項目。由于該教材以理論內容為主,因此,該課程的教學存在諸多的問題,具體表現在:
(1)從教學內容上看,由于教材的局限性,目前的軟件工程教學是以傳統的教學方法為主,實驗內容以生命周期法體系為主要內容,這樣容易造成學生的學習時效性差,跟不上信息產業技術發展的步伐,大多新技術還沒有傳授給學生,特別是近幾年新發展起來的構件技術、234建模技術。傳統教學方式在課堂上主要講授理論知識,學習者似乎能聽懂,可聽完后大部分學生還是似懂非懂。當學生在實訓中進行設計時卻不知從何入手,該運用什么知識、哪種方法。
(2)實踐環節少且不夠理想。總體來講,目前在軟件工程實訓環節可供該課程選用的合適的項目不多,所以學生做實驗所達到的效果與教學要求存在一定的差距。一方面是學生不能把理論知識有效地運用到實踐活動中;另一方面學生沒有真正掌握基礎理論及運用理論的技能和方法。所以,在進行畢業論文設計時,不能將軟件工程的理論充分運用到他們的設計實踐中去,導致很多學生選題時無從下手,不知怎么做,大多學生即使選擇了軟件開發,但在開發的軟件和撰寫的文檔在結構、內容等方面錯誤百出。
(3)教師問題。目前,除專門的軟件工程學院的院校外,大多開設有計算機專業的綜合院校軟件工程課程的主講教師本身也是一個問題。由于軟件工程這門課程對授課教師的素質要求高,它不僅要求教師對工程內涵本身有深刻的理解,還要求教師必須要掌握一定的軟件開發經驗和一定的項目和工程背景,這樣教師才能從自己的開發實踐中理解軟件工程的基本原理與方法,講授時才能將理論與實踐相結合,學生能直觀地感覺到該門課程的重要性,從而產生強烈的學習興趣。正是因為以往教學中存在的這些問題,導致教學效果不明顯,并直接影響學生的就業競爭力。
2高校畢業設計現狀
目前大多高校計算機專業畢業設計不很理想,具體表現在兩個方面:
(1)從學生方面看,首先是學生入學后,通過3年的學習,學生在前三年級中一般都較為系統地學習了計算機軟硬件方面的知識,并進行了實驗、課程設計等多方面的訓練。但由于大多實驗、課程設計等實踐訓練屬于考查范圍,有一些學生抱著一種得過且過的心態,沒有達到既定的學習目的,這樣就造成既沒有扎實的理論知識,也沒有較強動手能力的尷尬局面。同時,目前大多高校將學生選題時間定在四年級第一學期,學生在導師的指導下準備畢業設計內容。但由于指導教師考慮到學生就業等實際情況,平時并沒有對學生進行嚴格的時間要求和進度管理,很多學生直到畢業離校時才倉促完成任務,整個論文也是東拼西湊、質量不高。
(2)從指導教師方面看,首先是選題問題,指導老師把關不嚴,很多同學由于沒有扎實的專業基礎,30%左右的同學不敢選擇設計類的問題,選擇設計類的項目同學也存在問題,有的題目過大,如銀行管理系統的開發,有的題目過小,如搶答器的設計;其次是指導過程不科學,在設計環節中,不論是軟件開發還是硬件設計,大多同學只注重核心功能的實現,而忽略培養學生規范的設計過程及良好的設計習慣,使得畢業設計沒達到對學生的鍛煉價值。比如,在進行軟件開發時只注重功能的實現,沒有認真進行需求分析、設計方案的討論、設計書的編寫、編碼風格的規范以及軟件測試的要求。
3以畢業設計為導向,做好軟件工程課程教學改革
3.1教學過程的正確引導
針對學生在畢業設計過程中存在的很多問題,作為教師如何將新的技術和方法傳授給學生,使他們能真正掌握基本的軟件工程的原理和方法是課程教學改革的核心內容。為此一般要求授課老師要能正確地把握目前軟件工程的發展方向,掌握最新的軟件開發技術,并能結合軟件開發的實際例子,將該門課的精華有效地傳授給學生。
3.2強化可行性分析與開題任務的結合
在學生畢業設計中,開題的任務是由指導教師與學生共同確定所選的畢業設計題目是否符合本科畢業設計基本要求。在軟件開發過程中,可行性分析的主要任務是從經濟、技術等方面分析擬將開發的系統在技術、花費財力、人力與物力等方面是否可行。首先,師生要分析所選的題目在法律上是否可行,有無違反國家的相關法律,有無違反當今社會的道德行為規范;其次,分析所選的題目在技術上是否可行,即所選的題目技術含量很高,現有市場還沒有類似的產品,且該產品一旦開發成功,將帶來巨大的收益;再次,如果該題目在法律上、技術上都是可行的,還應考慮經濟上是否可行。
3.3將需求分析階段在畢業設計過程中有效實施
軟件需求分析的目的是澄清用戶的要求,并把雙方共同的理解明確地表達成一份書面文檔——軟件需求規格說明書。需求分析階段對鍛煉學生的溝通能力有很大的幫助,按照傳統軟件工程學的原理,需求分析的目的主要有3個:一是功能性需求分析,確定待開發軟件需要哪些方面的功能;二是性能需求分析,確定待開發軟件在性能方面有哪些具體的要求;三是數據需求分析,確定待開發軟件在數據信息方面的需求。確定這3個需求的依據均源于對客戶的了解,因此,需求分析的一個至關重要的任務便是與客戶溝通。
在實際應用中,需求分析也是一個讓人頭疼的問題。用戶的不配合是需求分析階段的最大困難所在,在這種情況下,教學過程中可以考慮把學生分為若干小組,大家互相作為開發人員與用戶,把即將完成的畢業設計題目作為項目,可以讓學生身臨其境地體會作為開發人員在需求分析階段所應完成的任務,體會實際開發過程中用戶以各種理由拒絕合作的無奈,以及應該以何種方式與客戶溝通,如何調動客戶的積極性與主動性。同時,也可以讓學生體會作為客戶與用戶可以享受的權利及其應該承擔的義務,使其走向軟件編程的工作崗位時能更加懂得如何從客戶與用戶口中獲取項目所需的功能、性能與數據。
3.4環環相扣,全面提升課堂教學的有效性
學生通過可行性分析、需求分析兩個階段的實踐后,既學到了教材上的理論知識,又能與實踐很好地結合起來,相信對課程教學已有了濃厚的興趣。在接下來的設計環節中,作為教師要充分將工程體系的知識應用起來,結合現實生活中的工程問題舉實例,讓學生能主動地進入角色,處理好這些問題后,相信后面的問題就迎忍而解,既解決了理論課堂學習的枯燥無味,又幫助學生完成了畢業設計任務,全面提升了課堂教學的有效性。
參考文獻:
[1]熊仕勇,張登國,黃星華.試論“軟件工程”課程的實踐性教學[J].重慶郵電大學學報:社會科學版,2007(6).