前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的軟件測試報告主題范文,僅供參考,歡迎閱讀并收藏。
關鍵詞:軟件測試;測試管理;管理系統;第三方測試服務
中圖分類號:TP31 文獻標識碼:A文章編號:1007-9599 (2011) 01-0000-01
The Test Management System Design&Implementation Based on Third-party Testing Service Processing
Yang Song1,Su Jia1,Chen Lei2
(1.Information Engineering School,Communication University of China,Beijing100026,China;2.China Software Testing Center,Beijing100048,China)
Abstract:In recent years,more and more prominent position of software testing, it also brings the rise of third-party testing services,with the continuous development of software testing and the progress of third-party testing services, software test process management tools and an increasingly diverse.By analyzing the status of software testing management system and found that there is an existing similar products are not uniform processes,platforms such problems binding. According to the above questions,refer to third-party testing service process,the paper design and implementation of the B / S structure software test management system that uses web2.0 design process in line with national quality assurance system, regulate the flow of third-party testing services to achieve platform independence,which can effectively ensure that the software testing process, software testing process standardized.
Keywords:Software testing;Test management;Management system;Third-party testing service
從軟件質量保證的方面來說,軟件測試是軟件質量保證一個重要環節,通過軟件測試來驗證軟件是否滿足了需求,驗證產品是否滿足內部質量和外部質量[1]。近些年來,國內外在軟件測試管理系統方面涌現出了很多產品,但是這些測試管理系統大部分都是依據各自的測試流程設計的,方式單一。同時大部分在測試管理系統的體系結構上都C/S結構的,不能滿足跨平臺操作系統測試的需求[2]。
軟件測試管理是一種活動,可以對各階段的測試計劃,測試用例,測試流程,測試文檔等進行跟蹤、管理并記錄其結果。針對上述問題,依據軟件測試管理流程,本文介紹了筆者參與設計和實現的基于第三方測試流程的B/S架構的軟件測試管理系統,采用了和Microsoft SQL Server2000進行開發,兼顧效率和靈活性,確保了軟件的質量。
一、B/S架構的軟件測試管理系統的設計與實現
(一)測試工作流程分析
在測試工作之初,就是要制定測試計劃,測試計劃的制定主要是依據被測系統的需求文檔、設計文檔等相關文檔。制定測試計劃后,根據測試技術和測試需求設計測試用例并制定測試過程文檔格式;應用測試用例進行測試,同時記錄測試缺陷,同步填寫測試過程文檔;同時將測試缺陷提交到缺陷管理模塊;根據測試過程總記錄的缺陷和測試記錄進行缺陷分析;最后將測試缺陷、對應的測試問題分析和測試結果輸出到測試報告生成模塊產生測試報告。
(二)測試管理系統的設計
本測試管理系統采用三層架構的設計方式,應用和Microsoft SQL Server 2000進行的設計。測試工程師通過瀏覽器訪問測試管理系統,通過用戶名和密碼登陸系統,訪問系統各個模塊,測試結果通過表現層經業務邏輯層的處理存儲到數據庫。測試管理系統部署在Microsoft Windows 2003操作系統中,因為應用了B/S架構,因此避免了平臺相關性。
其中,系統管理員主要是通過系統和各個注冊職員的角色分配任組建測試團隊和分配測試內容。項目經理主要負責整體測試項目的管理,其中包括:測試需求的制定、測試方案的撰寫、測試執行過程、以及測試執行過程中缺陷庫的更新并對測試結果進行分析、審查測試報告和撰寫測試總結,屬于監管控制角色。測試工程師主要任務是參與測試設計計劃和撰寫測試方案,更新缺陷庫中的信息以及撰寫最后的測試報告工作等,在測試管理體系中屬于測試執行角色。
(三)測試管理系統的實現
第三方測試服務的測試過程中,用戶、開發方和測試方形成了相互制約的關系。但三方的目標都是希望被測系統符合需求、能夠穩定運行。本測試管理系統主要由權限管理、需求管理、測試計劃管理、測試執行管理、缺陷管理和測試報告管理這幾個模塊構成。
權限管理主要是由系統管理員通過對系統中各個角色分析后,進行人員的分配,組建測試團隊,同時分配給團隊測試任務,進行測試前期的準備工作。
需求管理主要是設計測試需求,首先制定測試需求及其工作分解結構,然后對其進行評審,評審不通過要就行修改,評審通過后產生測試需求報告,進入測試計劃階段。
測試計劃模塊主要是制定測試時間、安排測試任務、設計測試用例、設計測試步驟并完成測試計劃文檔,為測試執行部分做好一切的準備。
測試執行部分主要是以測試計劃中設定的測試用例進行測試用例集編寫,然后通過項目組評審通過后按照測試計劃安排的測試時間安排進行測試工作。
缺陷管理模塊主要是配合測試執行模塊一起執行的,在測試執行過程中,發現問題,將缺陷上傳到缺陷管理中,同時在回歸測試的時候再將重點放到已測出缺陷上,同時修改已不再存在的缺陷,存入缺陷庫。測試報告模塊主要是根據以上所有的過程產生的文檔,自動生成測試報告同時將缺陷分析結果寫入報告中,為企業提供以后系統改進的依據和系統調優的建議。
二、結論
本系統依據第三方測試流程進行設計,采用了B/S架構避免了系統應用的系統相關性。系統分為權限管理、需求管理、測試計劃、測試執行、缺陷管理和測試報告生成幾大模塊,同時實現了根據測試需求自動生成測試用例,依據未關閉的缺陷和測試過程文檔自動產生問題分析報告的功能。本系統已經在幾個測試項目中得到了應用,系統同時支持100人的在線和50人的并發壓力,經實踐檢查本系統符合第三方測試服務的流程,能夠滿足第三方測試服務的要求。
參考文獻:
[1]吳慧韞,李卓群.基于H模型的軟件測試管理應用模型研究[J].計算機工程與設計,2006,27(11):1993-1995
[2]黃曉東,劉強環境下軟件測試管理系統的設計和實現[J].武漢理工大學學報,2005,27(6):37-40
本指引為軟件測試工作提供詳細的指引,以提高軟件開發工作的質量。
內容:
測試工作分以下幾個方面進行:
安裝與測試環境:
將程序單位的所有程序以及用到的公共子程序安裝到指定的多用戶測試環境,該環境應與程序實際運行環境一致;
將系統編譯成可執行文件。
程序代碼檢查:
程序單位的首部應有程序說明和修改備注,內容包括編寫或更改程序的人員、時間、程序的功能及調用關系等;
變量、過程、函數應符合統一的命名規則;
程序中不同的功能部分應有清楚的說明信息,較復雜的程序段落也應有說明信息;
如果是修改,在修改的代碼處應有修改注釋,注釋說明修改的人員、時間及內容。
畫面及報表格式檢查:
畫面、報表的格式以及程序的命名應符合統一的規則;
畫面、報表的字段位置、長度、類型應與設計文檔的要求一致。
功能測試:
如果有多個畫面,多個畫面之間切換正確;
每一個畫面的功能鍵、觸發鍵、按鈕、菜單、選擇項功能正確;
檢查數據項的關聯與限制功能是否正確;
找出設計文檔中要求的未被包含在上述幾項測試中的功能,逐項測試,檢查是否達到設計文檔要求的功能。
正確性測試:
有寫/刪除操作的程序,寫/刪除操作的結果正確,測試時應手工打開數據庫表,以檢查寫/刪除的效果;
有查詢或報表操作時,檢查在各種選擇項的合理組合下,所產生的結果,對照數據庫中的數據是否正確;
對照設計文檔的要求,測試程序是否正確。
可靠性測試:
非法鍵容錯測試:在不同的畫面,不同的字段處輸入非法鍵,被測試程序應有非法鍵容錯能力;
異常數據容錯測試:在不同的畫面,不同的字段輸入異常數據,被測試程序應有異常數據容錯能力;
程序負作用檢查,退出被測試程序后應恢復到進入前的系統狀態,不應影響其它程序的正確運行;
殘留文件檢查,退出程式后在本地機和服務器的有關目錄或TEMP目錄下不應留下任何無用的文件。
效率測試:
本項測試需分開單用戶及多用戶的情況下進行。
畫面操作效率測試:逐項測試每一項操作,特別是讀/寫、翻頁、滾屏等操作,記錄延遲最長的操作及時間;
報表及查詢效率測試:分別選擇最小范圍(非空)的數據及最大范圍(根據實際情況定)的數據,記下機器型號及產生結果所花的時間;
評價程序效率是否合理;
多用戶測試:
隨機測試:在兩個或以上的終端同時多次進入和退出被測試程序,程序應正確無誤;
共享測試:在兩個或以上的終端同時調用被測試程序做同樣的工作,程序正確無誤;
同步測試:就程序中使用到的同步機構,有針對性地組織數據進行測試,有關同步的命令包括對數據庫表、文件的共享,互斥操作,文件程序或記錄的加鎖、解鎖,對公共數據區域的操作等。
測試報告:
進行軟件測試的同時需填寫軟件測試報告,軟件測試報告格式見附頁;
每一項編程工作要經過程序員和測試工程師兩級測試均合格后方可安裝給用戶;
填表說明:
表中程序員、測試工程師等空格由測試人員自己簽字,當有多次反復測試時,日期填第一次通過測試的日期;
測試結果有兩種填寫形式,第一種形式由兩個小方塊“”提示,分別由程序員,測試工程師填寫,當通過測試時填“√”。第二種形式由長條提示,需填寫測試內容;
測試工程師發現問題時,要在測試備忘中記錄簽字,若問題較多可另用A4紙記錄,然后退回程序員更正;
1.軟件著作權申請
準備著作權申請表、軟件設計說明書、源代碼、申請書(蓋章)、營業執照副本(蓋章)、承諾書(蓋章)這些資料提交(郵遞)給版權局審核并付款,然后等待取證。
2.對軟件進行測試
準備測試評價委托申請表、用戶手冊、軟件設計說明書、軟件包(刻盤)這些資料。把資料提交給計算機軟件測評重點實驗室,并約定測試時間、方式進行測試。測試完成后付款,最后等待測試報告。
3.軟件產品登記
摘要:本文從“軟件質量保證和測試”課程建設的重要性出發,從師資隊伍的建設、教學內容的選擇、教學方式的改革、實驗大綱的設計、立體化教材建設和考核體系設計等方面詳細介紹了浙江大學軟件學院對于軟件質量保證與測試課程的課程建設情況。
關鍵詞:軟件測試;軟件質量;課程建設
中圖分類號:G642
文獻標識碼:B
1 引言
隨著信息技術的飛速發展,軟件產品應用于社會的各個領域,軟件質量的保證是一個人們普遍關注的問題。軟件開發者想要高質量的軟件產品,用戶更希望能有穩定、方便、有效、經濟的高質量軟件產品。提高軟件質量的重要途徑主要有過程控制和軟件測試。高校對軟件質量保證和軟件測試人員的培養擔負著主要責任。對于軟件學院來說,一個很重要的挑戰是如何解決計算機專業特別是軟件工程專業理論與實踐嚴重脫節的問題。
本文分別就師資隊伍建設、教學內容的選擇、教學方式改革、實驗大綱的設計、立體化教材建設、考核體系的設計等方面來闡述軟件質量保證與測試課程的建設。我們的目標是培養應用型、復合型、國際化的高級軟件人才。
2 師資隊伍的建設
浙江大學軟件學院對于師資隊伍建設的思路是產學研一體化的教學框架體系。“軟件質量保證與測試”課程是一門理論與實踐并重的課程,既需要豐富的實踐項目經驗又需要深入的理論知識。按照以上思路,我們的師資隊伍包括三個組成部分:外籍教師、本校教師、企業技術主管。其中,企業技術主管主要是來自道富公司的質量保證、測試經理。這門課的分工大致是外籍教師負責理論教學;企業技術主管負責學生的課程實踐和項目培訓;本校教師負責整個課程建設、聯系以及對學生的指導,特別是指導英語學習有一定難度的學生。
另外,學院對于教師的再學習與培訓也提供很大的支持,如支持教師參加國家軟件測試中心的相關技術培訓、國內外關于軟件質量保證與測試課程學術交流等。
3 教學內容及其改革
“軟件質量保證與測試”是為軟件學院及相關專業的本科生開設的專業基礎課。該課程按軟件質量保證和測試的原理、軟件測試技術和實踐三部分組織內容,包括軟件工程概述,軟件測試和質量保證的基本概念、思想和方法,各種測試的方法和技巧,軟件測試用例的設計;如何組織和管理軟件測試項目、如何進行軟件質量分析,最終建立全面的質量保證體系。通過本課程的學習,學生應基本上了解并掌握有效的測試策略、方法和技術,測試計劃和測試用例的設計,測試自動化的應用,測試團隊的建立和測試項目的管理,更清楚、準確地報告測試缺陷,對軟件產品質量的正確評估以及軟件測試和質量保證的關系和區別。
我們現行的教學大綱由理論學習和課程實踐兩部分構成。浙江大學將每年分成4個學期,每學期8周上課時間,而這門課的時間為一學期,總學時為48,按照2比1的學時來配置理論與實踐部分,即課堂時間為32學時和上機時間為16學時。
目前教學內容安排如下:
4 教學方式改革
教學方式的改革主要遵循以下兩條原則進行:
(1) 以案例教學為主線,通過豐富的實際案例引導學生對具體的質量保證概念、測試方法等有深刻的認識,同時也注重研討式、啟發式教學,鼓勵學生嘗試自己尋找資料解決問題。
(2) 加強綜合性實驗項目的訓練,全面鍛煉學生的團隊組建能力、團隊溝通合作能力、測試計劃編寫能力、測試用例設計能力、測試能力、組織文檔能力。
5實驗大綱的設計
本課程非常重視實踐教學。我們學院特別聘請道富公司質量保證、測試經理來培訓學生的實踐動手能力。另外,除了布置適量的白盒和黑盒測試外,還專門布置設計了2~3套完備的全英文綜合性實驗設計、需求分析文檔、各種支持文檔、評分方法和政策。對于實驗大綱的設計,我們還強調以下幾個方面:
(1) 系統、綜合性。以實際項目為背景,貫穿多個知識點,鍛煉學生綜合運用所學知識解決實際問題的能力。通過實踐參與,學生可掌握質量保證的概念和過程,測試計劃的制定,測試用例的設計、測試用例的執行、測試報告的書寫、測試Bug的分析和描述。
(2) 團隊合作。實驗采用分組的形式完成,每組由5~7名成員組成,其中一人為組長。組長負責項目進展、分工協作、測試計劃的制定等工作,其他組員分別就相關模塊進行各自的測試策略、測試用例設計以及完成測試報告等。然后通過角色交換,充分發揮學生的溝通能力。
(3) 鼓勵創新。鼓勵學生發揮想象力,對各種測試方法進行嘗試,在最后報告中要求寫出具體的思路和分析結果。
6立體化教材建設
完善多媒體教材和教學資源(包括電子書籍、技術文檔、實驗平臺、在線交流等),進一步加強網絡資源建設,特別是教學素材庫的建設。現有課程主頁上的內容主要有:課程信息,包括教師隊伍、課程描述、課程政策、詳細的教學大綱、教學日歷等;每節課的詳細PPT課件;各類作業、解答以及往年的作業、試卷資料等;課程實踐項目(project)的各種信息、支持文檔,實驗平臺的鏈接等;網絡資料庫,包括電子教材、文檔的收集以及與課程緊密相關的各種資料、網站等;在線留言版,與學生互動的模塊,學生可完全匿名發表任何意見、建議和提問答疑,今后可進一步就該課程中學生容易疑惑的地方建立FAQ。
現在我們采用外教選編的電子課件、講義作為主要教材并推薦相關英語教材。課程實踐項目我們采用道富公司的實際項目對學生進行培訓。我們下一步的目標是:
(1) 編寫一本中文實驗指導教材。
(2) 編寫一本雙語教學教材。
7考核體系的設計
軟件質量保證與預測課程的考核將一改傳統的由一次期末考試成績決定學生的情況,這是因為該課程是一門理論與實踐緊密結合的課程。對于考核體系的設計我們的具體思路如下:
(1) 改革課程考核,采取多因素評定學生課程成績,而不是僅憑一次考試評定學生能力,從而調動學生學習熱情,促進學生研究性學習能力的發展。學生的最終成績由課程實踐項目(40%)和期末考試(60%)組成。
(2) 強調評分的客觀、公平和透明性。開學初就給定課程考核的政策和每個課程項目的詳細評分標準。
(3) 學生參與評分。課程實踐項目、尤其是分組項目,教師難以全面掌握每個學生的表現,但可以給整個團隊評分,具體每個成員的分數則由學生參與自評。
參考文獻
[1] 古樂,史九林. 軟件測試技術概論[M]. 北京:清華大學出版社,2006.
[2] 古樂,史九林. 軟件測試案例與實踐教程[M]. 北京:清華大學出版社,2007.
[3] 楊根興,蔡立志,陳昊鵬,蔣建偉. 軟件質量保證:測試與評價[M]. 北京:清華大學出版社,2007.
[關鍵詞]軟件測試 課程體系 教學改革
[作者簡介]李靜(1969- ),女,陜西興平人,河北北方學院信息工程學院,副教授,碩士,研究方向為教學設計、操作系統與軟件測試;趙志升(1965- ),女,河北張北人,河北北方學院信息工程學院,教授,碩士,研究方向為教學設計、軟件工程、數據挖掘。(河北 張家口 075000)
[中圖分類號]G642.3 [文獻標識碼]A [文章編號]1004-3985(2014)02-0135-02
軟件測試技術近年來發展迅速,已經成為與軟件開發齊頭并進的專業技術。軟件測試工程師承擔產品功能、性能、可靠性、易用性等全方位測試,保證產品質量,滿足用戶需求,保證企業信譽,是當前IT業界需求量驟升的熱門人才。目前我國軟件產業在產品功能和性能測試領域仍然存在著嚴重不足,軟件測試的廣度和深度已成為影響企業生存與發展的核心問題。培養大量的具備專業素養和高層次技能的測試人才,更好地推進我國測試行業和測試技術的長足發展,是高等院校必須擔負的職責。
一、國內軟件測試專業教育現狀
自2000年軟件測試技術在我國興起至今十余年,軟件測試人才隨著軟件行業的迅猛發展呈現出供不應求的態勢。專業的軟件測試機構、測試網站及測試技術培訓機構等迅速發展起來。目前,國內許多高校已經逐步設有本科階段軟件測試方向的專業。2011年11月,由教育部主辦的“2011年高等學校軟件測試課程教學論壇”在上海同濟大學召開,對國內軟件測試人才的培養及測試領域的全面發展起到積極推動的作用。
1.社會培訓模式與現狀。當前國內業界一些知名網站主要承擔起測試人才的培養職責,如51testing、達內科技、北大青鳥等,為測試行業輸送了大批動手能力較強的測試人才。針對性很強的短期教育模式是社會培訓的特色。培訓機構通常按照助理級、初級、中級和高級測試人員安排培訓內容。諸如北大青鳥等規模較大的培訓機構引進歐美的混合教學模式,采用“理論知識+分模塊項目實踐+全真項目實訓+職業素質訓練”的模式,形成一個科學并且實用的培訓體系。培訓機構通常設立自己專用的教學平臺,通過網絡遠程授課與集中化分期分班授課方式,在半年到一年的較短時期,培訓出上崗快、操作熟練、針對性強的應用人才,而且很多學員直接通過測試工程師面試,并在后期工作中累積了較深厚的測試經驗,成為測試領域的支撐力量。培訓課程主要內容涵蓋操作系統管理、網絡應用與Web編程、數據庫管理等專業課程,實訓環節應用主流的測試工具,如Winrunner,Loadrunner,Rational Robot等。著重于實用性的項目實踐和開發是培訓機構與高校教育的最大區別。參加這些培訓班已成為目前大學生崗前培訓的主要途徑。
2.高校專業教育現狀。軟件測試技術要得到廣泛應用和深入發展,不能僅依靠社會辦學,高校系統化的專業教學體系能夠為學生奠定一個更加扎實和科學的專業基礎,并對測試技術本身的學科化發展起到不可替代的作用。近三年來,軟件測試技術作為專業課程逐漸在多所高校開設。目前,多數高校將“軟件測試技術”作為一門獨立課程設置,交叉課程主要為“軟件工程”。當前一些高校開始申報軟件測試專業,但是軟件測試技術的學科化發展目前仍受到諸多因素的影響。主要是:(1)缺乏豐富的理論支撐。軟件測試目前仍是發展中的計算機技術,專業論著少,適合于高校的教學材料非常有限,并且普遍存在知識結構不合理,教學內容不規范統一,論點少并缺乏依據,實驗指導教材匱乏等問題。另外作為一門獨立學科,與其他學科的交叉與相輔是理論體系的必要部分,測試技術與計算機領域諸多技術關聯,相互結合教學是當前教改面臨的問題。(2)目前通用性測試平臺仍未完善發展與普及,在高校中缺乏結合教學實驗內容的通用的實踐平臺,實驗環境單薄。多數高校停留在泛泛講授幾個熱門的測試工具的階段,缺乏成熟、實用的測試環境來實踐完整的測試項目。(3)教學模式上存在嚴重缺陷,專業培養過程中存在大量的不規范性和隨意性。主要表現在:實踐課程比例小,測試項目實例缺乏;理論課程知識結構不合理;教學理念和手段陳舊,脫離測試技術發展的實際與市場應用;不重視對學生從事軟件測試職業素養的培養。尖端技術的學科化發展是高等院校的職責,建立一個科學、完整的專業教學體系是高等教育最為核心的問題。
3.當前推進測試技術應用的其他途徑。除了專業公司培訓和高校培養外,當前軟件測試行業的發展還依賴于多種良好途徑:校企合作、技術沙龍、測試專業微群、社會信息輻射等。新興技術發展需要社會傳播產生的廣泛影響力來推動。以MPD(亞太軟件研發團隊管理)峰會、51testing等領銜的線下技術沙龍活動和巡回演講,聚集了很多高端的測試人才,相互學習交流,積極推進軟件測試行業的發展。一些較有影響的網絡微群提供測試技術的交流和分享,如軟件測試、敏捷測試、落地微群等,大量的測試人員和測試工程師提供測試過程管理、測試工作總結等資料,有很強的借鑒性。
軟件測試行業的人才匱乏仍然是當今的重要問題。依照行業需求,軟件測試人員配備應是軟件開發人員的2倍,而目前我國軟測人員與開發人員比例卻僅在15至18之間。以高等院校專業教育為主,實現多種途徑的人才培養是當前軟件測試行業的當務之急。
二、高校軟件測試專業課程體系建設
構建專業課程體系,需要設置好基礎課與專業課、理論課與實踐課、必修課與選修課的比例關系,并合理安排與協調課程相互間的分工與配合。建設科學完整的軟件測試專業的課程體系是一個需要多方考證借鑒和不斷探索完善的工作。
1.課程設置。軟件測試是一門技術性很強的專業,對專業素養要求很高。在測試模式、測試方法上與軟件開發的模式、開發平臺直接相關。學生必須對操作系統、軟件的邏輯結構以及物理存儲過程、操作實現方法達到一定深度的了解和掌握,對于硬件的拓撲結構、物理結構要也需要盡可能多地熟知。在軟件測試行業,對優秀人才的要求是擁有高敏感能力、高發散能力、高分析能力,而這些都是以扎實的理論基礎為前提的。建設軟件測試專業課程體系,應契合技術發展、學科發展與從業需求。經過多方考證,下表所述課程囊括的專業知識對于高層次的自動化軟件測試技術的掌握必不可少。
由于計算機專業課程的關聯性很強,一些專業課程可以相互結合教學。比如語言類,Shell等可以結合到UNIX/Linux操作系統課程中,HTML/XML可結合到.NET以及網絡技術等課程中,PHP融入Web服務器配置等專業選修課程教學中等,避免專業內容交叉而造成的重復教學現象。在教學過程中,要將軟件測試的思想廣泛地滲透到所有的專業課程中。如在各類程序設計語言基礎課程中引入單元測試的思想,在軟件工程課程中強調軟件測試的重要性,增強軟件質量管理意識。當前微軟、蘋果、惠普等軟件公司都推出完整的計算機應用與開發平臺,從硬件、操作系統、集成開發環境到用戶應用軟件,基本上提供一條龍服務。以微軟為首的測試框架開發也日趨成熟。高校需要從專業建設角度考慮,把握學科發展方向,汲取眾家之長,將尖端技術和主流應用平臺作為專業教學內容,在有限的學時之內統籌安排,讓學生形成一個專業學習的整體思想,做到知識累積層次清晰、得到一個完整的專業知識體系。隨著測試技術的快速發展,課程設置需要不斷更新調整,既要考慮專業建設、學科建設,又要考慮市場需求和研發需求。合理選擇、科學地納入新知識到專業課程中,是需要不斷探索和改革的無止境的工程。
2.教材選擇。教材選擇應當寬口徑,除了主要教材之外,要為學生提供更多的輔助教材和資料,給學生自主學習的空間和時間。這方面要學習西方高等教育的模式,按照教學計劃和教學內容,指導學生分期、分階段大量閱讀與課程相關聯的專業資料,并匯總論點和典型實例展開討論,開闊學生的眼界,培養學生獨立思考、邏輯分析能力和探索精神。另外,教材選擇應把握專業技術的最新發展,與專業領域的最新研究成果、社會培訓資料等結合,及時更新教學內容。例如有經驗的測試工程師撰寫的技術開發、測試報告與測試總結等書籍資料,是完善和填充教材的重要知識源。
3.實驗教學規劃。(1)實驗教學內容,應包括兩部分:測試框架應用和測試項目實踐。前者是指基于實驗室配置的測試框架,選擇針對操作系統或者客戶端軟件、網站等的服務性能測試案例,編寫一些通用的測試腳本,在測試框架上實現完整的測試流程。后者是指選擇實際的軟件測試項目來組織實驗教學內容。在測試項目實踐中,需要提供給學生被測試的軟件系統代碼以及軟件開發綜述,包括需求分析、概要設計書、詳細設計書等文檔,便于學生真實地模擬實際工作中的測試流程。項目實踐中,可將學生分成若干個項目組,分別設置測試經理、測試負責人、測試人員等角色,依照測試用例設計、測試任務管理、測試計劃實施、測試過程監控、測試日志與測試報告管理環節,安排角色各司其職,協同完整測試項目,并對被測軟件系統做出質量評審,撰寫格式規范的質檢報告。通過實驗教學,使學生深入理解和掌握常用測試工具,如單元測試工具NUnit等應用,提升學生的項目管理經驗和軟件測試技能。(2)實驗教材選擇:實驗教材選擇應參考社會培訓機構的項目實訓資料,選擇基于主流測試平臺的項目實例教程,并結合測試技術的應用發展現狀和高校測試環境,廣泛篩選輔助資料,設置測試項目,豐富實驗教材的內容。(3)實驗環境配置:搭建面向高校教研的通用測試環境。當前各類測試平臺及測試工具不斷推出,種類繁多,但針對性較強,應用性能受到限制,缺乏可被廣泛普及的通用型測試平臺,導致測試過程缺乏通用性和穩定性、測試標準設定和測試價值評估無法明確等問題。建立一個通用測試環境對高校的實驗教學和專業研究十分必要。通用測試環境應囊括軟件測試管理平臺、回歸測試平臺和性能測試平臺功能。提供軟件的文檔審查、安裝測試、功能性測試、易用性測試等測試項目,并能提交形式內容規范的測試報告。通用測試環境搭建需要高校結合專業研究項目實施二次開發。
三、面向從業需求的教學改革
1.注重面向市場應用的課程體系改革。為了更好地為社會培養應用型人才,高校應以企業崗位能力需求為標準,不斷進行課程體系改革,構建“知識+應用+研究”的混合型課程體系結構,為學生從業后盡快適應工作崗位,擔負起科技職能,并進一步從事測試技術開發與研究奠定基礎。軟件測試課程體系改革應基于不斷發展的測試技術以及社會測試崗位的能力需求,從培養學生專業素養、測試技能、項目分析能力、探索開發能力等全面素質的高度進行必要的整合和重組,把學生應具有的知識、能力、素質結構作為課程體系改革的依據,組建模塊化的課程結構。
2.注重面向從業需求的教學實踐改革。面向從業需求,加強教學實踐環節是高校實驗教學改革的重要內容。目前很多高校與自己的合作企業簽訂培訓合約,建立人才基地,共同開發軟件和培訓人才、交流人才,是教學結合實際應用的最佳模式。圍繞著以企業需求為目標進行實驗教學,使學生在真實的項目流程中對軟件測試的完整過程與實施細節、管理機制與管理措施進行全面的了解,提高測試能力和積累測試經驗,便于學生日后盡快適應實際工作,在專業技術崗位發揮人才作用。
3.注重培養學生的職業素養。高等教育為社會輸送專業技術人才,不能忽視對人才職業素養的培養。在教學過程中要把專業素養、技能訓練和職業素質培養有機結合起來。在學生實踐與實習過程中,注重培養學生綜合運用所學知識發現問題、分析問題、解決問題的能力,進而培養學生的技術應用和技術創新能力,并培養學生的團隊合作精神和相互協作能力,提高將來從事測試行業的職業素養。應結合社會對軟件工程師的崗位需求,設立面向畢業生的專項系列講座,為學生提供面試技巧培訓、競爭意識培訓、溝通與協作技巧培訓和就業指南等,是極具實效且必要的教育內容。依照國外標準,軟件測試工程師應與架構師處于同一等級。從事測試行業必須具備扎實的專業基礎、綜合的個人能力和較高的職業素養,才能真正實現高端的自動化測試。
[參考文獻]
[1]朱少民.軟件測試方法和技術[M].北京:清華大學出版社,2005.
[2]錢麗.以就業為導向的軟件測試課程體系改革探析[J].科技信息,2012(1).
[3]頓煜卿.軟件測試教學過程中的思考和實踐[J].計算機光盤軟件與應用,2012(14).
關鍵詞: 嵌入式軟件; 軟件測試; 路徑覆蓋; 基本路徑測試; 覆蓋率分析
中圖分類號: TN919?34; TP311.5 文獻標識碼: A 文章編號: 1004?373X(2013)06?0063?03
0 引 言
目前,嵌入式軟件已廣泛的應用在各個領域:如工業控制、通信設備、信息家電以及航空航天等領域,應用越來越廣泛,復雜性也日益增加。但由于嵌入式軟件實時性強、I/O 通道少、內存資源受限、與硬件及硬件驅動緊密關聯、CPU 種類繁多等特點[1],決定了嵌入式軟件的開發和測試必須在交叉編譯環境下進行,即開發及測試工具運行在宿主機上,而被測程序運行在軟硬件資源緊張的目標機上。僅僅在開發環境下進行嵌入式軟件測試,難以保障其測試結果的有效性;而僅在目標機上進行測試,由于軟件運行的不可視性,又使得測試者難以知曉程序當前運行狀態,以及代碼的覆蓋情況[2]。因此對嵌入式軟件覆蓋測試技術的要求也更高。
軟件測試是一種有效地保證軟件質量的重要手段。常用的軟件測試方法有黑盒測試、白盒測試和灰盒測試。白盒測試中最成熟、最常用的方法是覆蓋測試,它是一種動態軟件測試方法[3]。覆蓋測試是驗證軟件功能結構正確性以及查找問題的一種重要方法和手段。為了獲取覆蓋率信息,必須在獲得被測程序結構 信息、靜態數據流信息、控制流信息等基礎上,加入一些探針,通過探針收集的信息來獲得程序的執行路徑、狀態等控制流[4]。
路徑覆蓋測試是覆蓋測試中的關鍵測試技術之一,目前已應用于程序覆蓋率分析、測試用例設計、程序調試、性能優化等多個方面,是覆蓋程度最高的測試。其基本原理是用最少的測試用例,覆蓋程序中的所有路徑,發現程序中最多的錯誤,安排測試計劃、分配測試資源,并對實際測試所達到的覆蓋率做出評估[5]。本文給出了路徑覆蓋相關理論,并在理論研究的基礎上設計出了一種嵌入式軟件動態測試系統框架,完成對被測程序的路徑覆蓋率分析,進而判斷測試的充分性及弱點,從而進一步改進測試過程。
1 路徑覆蓋相關理論
路徑覆蓋使程序中每一條可能的路徑至少執行一次。但在實際工作中,即使一個不太復雜的程序,路徑數量往往也是較多的。要在測試中覆蓋所有的路徑是不現實的,而基本路徑測試就是一種簡化路徑數的測試方法。
基本路徑測試是在控制流圖的基礎上,通過分析控制結構的環形復雜度,導出執行路徑的基本集,再從該基本集設計測試用例。為了清晰描述基本路徑測試方法,需要對本文中用到的幾個基本概念進行說明。
(2)Z路徑優化:是指限制循環的次數,無論循環的形式和循環體實際執行的次數,簡化后的循環測試只考慮執行循環體一次和零次(不執行)兩種情況。
(3)環形復雜度:提供程序基本路徑集的獨立路徑數量以及確保所有語句至少執行一次的測試數量的上界。可以通過下列兩種方法來計算:對流圖G,環形復雜度V(G)=E-N+2;或V(G)=P+1,其中P為包含在流圖G中的判定節點數[6]。
(4)基本路徑集BP:指軟件可達路徑的最小集合,等于環形復雜度V(G)。
(5)路徑覆蓋率計算:由基本路徑集BP設計測試用例集T,使T理論上按BP執行。然后分析動態跟蹤數據,構造實測路徑集Pn。計算測試覆蓋率PCP=×100%其中Pn=P(T1)P(T2)…P(Tn)。
2 嵌入式軟件動態測試框架
嵌入式軟件動態測試框架如圖1所示。它包含宿主機程序插樁及數據處理分析和目標機數據處理兩部分。
在嵌入式軟件測試中,靜態測試是基礎,對被測軟件進行代碼規則檢查、靜態結構分析和代碼質量評估;動態測試是必要補充,在目標機真實環境下或仿真環境下運行被測程序,采集動態跟蹤數據,分析其動態行為[7]。
嵌入式軟件路徑覆蓋測試的特點就是必須在交叉編譯環境下, 通過物理通道傳輸完整的動態測試跟蹤數據[8],分析數據后得到路徑覆蓋率。動態執行前先要檢查目標機與宿主機的連接狀況,確保測試正常進行。
2.1 被測試程序靜態分析
靜態分析并不真正執行被測程序,也不需要對代碼進行編譯鏈接,生成可執行文件。首先,對源碼進行詞法語法分析和變量分析, 找出不符合編碼規范的地方,根據某種質量模型評價代碼的質量,生成模塊調用關系圖、模塊的程序流程圖等。其次,從程序中提取必要的數據并保存,提供給后續的動態分析和測試報告使用。最后,根據模塊的程序流程圖繪制程序控制流圖G,得到程序控制流圖的邊數E和節點數N,指導插樁庫的建立,并根據Z路徑優化法構造程序的基本路徑集BP,構建動態路徑覆蓋測試的比較基礎。
2.2 插樁技術
一般來說,對程序進行動態測試的時候,基本上要使用程序插樁來進行覆蓋測試。程序插樁技術是保持被測軟件邏輯完整性的基礎上,在源代碼中插入探針函數,它是一個子過程調用,調用的子過程能在運行到插樁點時記錄下有關的運行情況,采集執行程序在真實環境中運行的控制流、數據流等測試數據[9]。插樁時需確保探針函數對源程序執行影響最小。
基本路徑測試依賴探針插樁技術完成分支位置點標志位的采集。插樁位置最好選擇在應用程序層,重點采集輸入輸出模塊中的上層函數運行信息,底層模塊加強單元測試,而在嵌入式軟件模塊集成時,默認這些模塊是正確無誤的。根據程序按塊劃分的原則,可以在子函數出入點、程序塊控制流圖G的分支節點、功能測試的重點變量處植入探針。
基本路徑測試的插樁過程是靜態的,數據收集過程是動態的,結束時需恢復現場。動態測試前,被測程序與插樁庫連接,完成插樁操作,獲取執行程序。執行程序交叉編譯后運行于目標實際環境或者仿真環境下,通過探針函數返回動態測試跟蹤數據[10]。
2.3 數據處理及分析
目標機在真實環境中運行可執行程序, 測試用例集T為運行輸入參量, 探針采集數據為運行的輸出參量。探針函數采集動態跟蹤測試數據,傳輸給宿主機測試平臺。宿主機測試平臺對接收到的動態跟蹤數據進行處理,計算出路徑測試覆蓋率,并結合數據處理過程中的測試日志分析出最后的測試報告。
3 測試實例分析
該航標數據采集模塊由C語言開發, 根據插樁策略可以計算出插樁探針的位置、個數, 構造基本路徑和實際程序執行路徑, 計算路徑測試覆蓋率。部分測試結果分析如表1所示。
基本路徑測試覆蓋率大小涉及到測試的各個階段,受到各方面因素的影響。比如,在該測試模塊中,Rx_Data_Svr()和AddataConvert()程序中出現了多個判斷語句和多個循環語句,可能的路徑數目增長,以致影響路徑覆蓋率。
4 結 語
本文通過研究嵌入式軟件測試的特點和路徑覆蓋測試的相關理論,給出了嵌入式軟件動態測試框架方案。并結合實驗室目前的項目,分析基本路徑測試的各個步驟,得出路徑測試覆蓋率,進而達到測試目的。但是路徑覆蓋測試受多方面因素的影響,尤其是當程序中出現多個復合條件時,會大大的增加可能的路徑數目,所以接下來的工作是進一步探討插樁策略、測試用例生成等影響路徑覆蓋率的相關問題。
參考文獻
[1] 范海霞.嵌入式軟件覆蓋測試的插樁技術研究[D].南京:南京航空航天大學,2010.
[2] 楊俊,張倩,林依剛.一種嵌入式軟件覆蓋測試方法[J].指揮信息系統與技術,2010,12(6):24?26.
[3] 李志偉.程序插裝在軟件測試中的應用研究[J].測控技術,2011,30(10):88?91.
[4] 張榮,王曙燕.基于插樁技術的動態測試研究與實現[J].現代電子技術,2011,34(4):50?52.
[5] 張志華,牟永敏.基于函數調用的路徑覆蓋生成技術研究[J].電子學報,2010,38(8):1808?1811.
[6] PRESSMAN R S.軟件工程[M].北京:機械工業出版社,2007.
[7] 于全喜,張毅坤,胡燕京,等.嵌入式軟件路徑覆蓋測試數據采集[J].計算機工程,2009,35(21):54?59.
[8] 施冬梅.嵌入式軟件路徑覆蓋測試的研究[J].計算機測量與控制,2010,18(10):2236?2240.
關鍵詞:高等職業教育;課程設計;校企合作;軟件測試
DOIDOI:10.11907/rjdk.162329
中圖分類號:G434
文獻標識碼:A文章編號:1672-7800(2016)012-0197-03
0 引言
隨著軟件技術在社會各領域的廣泛應用,人們開始越來越關注軟件產品質量,軟件測試作為軟件質量保證的重要途徑也因此受到行業領域的關注與重視,軟件測試崗位的就業前景也變得越來越好。在《國務院關于加快發展現代職業教育的決定》中,提出“深化產教融合、校企合作”[1]。隨著技術的發展、產業結構調整的不斷加快,持久深入的校企合作已經逐漸成為高職院校課程開發質量的關鍵要素之一。
《軟件測試基礎》課程大多在高職院校的計算機類專業中開設,但是普遍存在著課程內容更新慢,教學方法、手段陳舊,課程評價考核單一的問題,導致學生學習興趣不大,學習效果不佳。該課程在蘇州健雄職業技術學院是軟件技術專業的一門專業基礎課,該院與上海博為峰軟件技術股份有限公司、上海澤眾軟件科技有限公司等從事軟件測試的IT企業緊密合作,對課程進行了一系列建設和改革,培養了一大批軟件測試人才,受到企業的一致認可。
1 以工作過程為導向的課程設計
課程組成員結合計算機等級考試、計算機軟件專業技術資格考試和國際軟件測試資質認證(ISTQB)的考試大綱,以及行業、企業對軟件測試員的人才需求,與企業專家共同確定本課程的目標為:使學生了解軟件測試的發展前景,掌握測試的基礎知識,了解測試用例的概念、意義;能夠搭建測試環境,掌握常用的黑盒、白盒用例設計方法,能夠進行簡單的手動功能測試并撰寫測試報告與缺陷報告;了解常用的自動化測試工具、性能測試工具,理解測試工具的原理,了解測試管理的概念與流程等。
本課程以軟件測試工程師的工作過程為導向,按照軟件技術專業培養目標與高職學生的特點,將測試基礎知識、相關技術方法、測試管理貫穿在整個測試流程中,從而構建測試各階段所需的知識與技能。在課程中以“虛擬公司”作為組織形式,在運作過程中充分體現職業教育行為導向和職業性原則。行為導向,即創造師生互動的仿真情境,使學生通過自主協作式學習方式,反復操練,從而形成符合企業要求的行為方式和職業能力。職業性原則,即要求實訓目標和就業目標高度一致[2]。學院與企業共建實訓平臺,通過具體工程項目及案例素材,使用測試管理工具從測試需求建起,測試模塊劃分、測試用例設計、測試用例執行、缺陷管理,加強學生對測試管理工具的使用。
2 以工作項目為載體的學習情境創設
《軟件測試基礎》課程最好在第三學期開設,因為這時學生對軟件行業已有一定了解,并已具備初步的編程經驗,課程共計64學時。依據軟件測試的工作過程可以將課程劃分為6個學習情境,共15個工作任務,具體如表 1所示。
學習情境1中主要讓學生認識缺陷并知道缺陷產生的原因,掌握軟件測試的定義、目的、分類和原則,熟悉V模型、W模型、H模型等軟件測試的常見模型;熟練掌握軟件質量模型的分類和各個評價指標,并明確軟件質量與軟件測試之間的關系;會查詢互聯網中的招聘信息,分析軟件測試工程師的崗位職責及發展路徑,并盡早做好職業生涯規劃。
學習情境2中讓學生能夠明確軟件測試的依據,并閱讀需求規格說明書,理解測試需求的概念,會對測試需求進行挖掘;能夠理解測試計劃的重要性,知道測試計劃的一般組成要素。
學習情境3中讓學生能夠理解黑盒測試、白盒測試、灰盒測試的基本概念及它們之間的區別與聯系;能夠靈活地運用黑盒測試的常用方法,如等價類劃分、邊界值、決策表、因果圖、場景法、正交表等來設計測試用例;能夠靈活地運用白盒測試的常用方法,如邏輯覆蓋法、基本路徑法等設計測試用例。
學習情境4中讓學生學會測試環境的搭建,如在虛擬機中部署PHP、JSP、.NET等應用程序;理解單元測試、集成測試、系統測試、驗收測試的概念及基本流程,熟悉集成測試的策略,能夠使用JUnit 等工具來開展單元測試;能夠掌握缺陷的概念,會正確記錄缺陷,掌握缺陷報告的基本格式與內容。
學習情境5中要讓學生理解測試總結的意義和重要性,并了解測試總結報告的格式與內容。
學習情境6中能讓學生掌握手動測試與自動化測試的區別,了解自動化測試、性能測試等工具的原理,初步掌握腳本的錄制和參數的設定,為后續課程的學習奠定基礎。
3 “互聯網+教育”方式的課程改革深化
3.1 利用雨課堂平臺實施線上線下混合教學
合理運用互聯網新技術,由傳統教學向線上線下混合式教學方式轉變,打破以往學生學習時空的限制,按需學習,讓教育教學資源得到最大化共享。由于本課程概念較多,課程學習后還需通過工信部的考證,線上教學教師通過清華大學研制的雨課堂平臺將PPT課件、微課、測試等資料上傳至云空間,并推送到學生的移動終端上,督促學生做好預習、復習工作,學生所有的學習行為數據均被自動完整采集,有助于量化了解學生學習效果并把握學生學習軌跡[3];傳統的線下面授,則重點解決學生的疑難困惑問題,提高教學效率。
3.2 改進教學方法提高學生學習興趣
關鍵字:軟件;測試過程;管理
軟件開發過程的質量決定軟件的質量,軟件測試過程的質量直接影響測試結果的準確性和有效性。
1 軟件測試過程常用的模型
1、V模型
V模型反映出測試活動與分析設計活動的關系,指出單元測試和集成測試應檢測程序的執行是否滿足軟件設計的要求。系統測試應檢測系統功能、性能的質量特性是否達到系統要求的指標。驗收測試確定軟件的實現是否滿足用戶需求或合同的要求。
2、W模型
W模型指出軟件各開發階段中應同步進行的驗證和確認活動,即測試與開發也應是同步進行的。W模型有利于盡早和全面的發現問題。
3、H模型
V模型與W模型有不妥,即它們都把軟件的開發視為需求、設計和編碼等一系列串行的活動,而事實上,這些活動可以交叉進行的。H模型揭示這一點:軟件測試是一個獨立的流程,貫穿于產品的整個生命周期中,與其他流程并發進行。
除了上面的幾種常見模型外,還有X模型、前置測試模型等。在實踐中,建議以W模型作為框架,及早全面地開展測試,同時靈活運用H模型獨立測試的思想,在達到恰當的就緒點時就應該開展獨立的測試工作,同時將測試工作進行迭代,最終保證完成測試目標。
2 測試階段中的測試活動
軟件測試過程主要包括以下四項基本活動:
1、測試策劃
在測試策劃中的活動有:制定測試計劃,以確定測試范圍、測試策略和測試方法,規劃測試任務日程表,對測試資源進行安排,并提前評估測試風險,制定風險控制策略。
2、測試設計與實現
在測試設計與實現中的活動有:制定測試的技術方案,選擇測試工具,并根據測試技術方案設計測試用例。
3、測試執行
在測試執行中的活動有:建立相關測試環境、配置測試數據、按日程安排執行測試用例并記錄測試執行結果,對發現的軟件缺陷進行報告,并配合開發人員進行軟件缺陷的分析、處理和追蹤。
4、測試總結
在測試總結中的活動有:對測試結果進行綜合分析,以確定軟件產品質量的當前狀態,為產品的改進和提供數據和依據,同時編制測試報告,提交相關的測試文檔。
3 軟件測試過程管理的特點
軟件測試過程管理的基本內容包括計劃、組織和監控;測試過程中存在的問題有:
1.軟件質量標準定義不準確、任務邊界模糊。
2.軟件測試項目的變化控制和預警分析要求高。
3.軟件測試項目具有智力密集,勞動密集的特點,受人力資源的影響最大。
4.測試任務的分配比較困難。
5.測試要求的人力資源十分穩定。
6.軟件測試人員在待遇、地位上可能會受到一些不公平的待遇。
軟件測試項目的過程管理能否成功,通常受到三方面的影響:項目組內的環境,項目所處的組織環境,整個開發流程所控制的全局環境。
4 軟件測試過程管理的原則
1、有關測試需求,應當有一個經各方同意的、完整的、清楚的、詳細的、整體的、可實現的和可測試性的需求并文檔化,盡可能堅持最初的需求。
2、測試計劃先行。軟件項目管理過程從項目的計劃活動開始,軟件測試項目也不例外,也是從測試計劃開始。
3、建立任務優先級。在測試任務較多的情況下,應該為各項任務建立測試優先級,這樣也可以根據優先級來先后處理各項任務。
4、建立客觀的評估標準。這樣使得整個項目過程具有良好的可測性和可跟蹤性,強調以數據說話。
5、盡早測試。這是從W模型中抽象出來的理念。一方面指測試人員盡早參與測試項目,另一方面指盡早開展測試執行任務。
6、全面測試。這也是W模型的重要思想,其含義一方面只要對軟件所有產品進行全面的測試;另一方面指軟件開發人員與測試人員全面參與到測試工作中。
7、全過程測試。這是從W模型中抽象出來的另一理念。其含義一方面指測試人員要充分關注開發過程;另一方面指測試人員要對測試的全過程進行全程的跟蹤。
8、獨立的、迭代的測試。這是H模型的重要思想,強調只要達到測試就緒點,即測試條件成熟,測試準備活動完成,測試執行活動就可以開展。
5 軟件測試過程的人員組織
測試團隊的組織直接關系到測試團隊的工作效率和生產力,其組織方式由測試團隊的規模、具體任務和技術來決定。
一個測試團隊的基本角色有:測試經理、實驗室管理人員、內審員、測試組長、測試設計人員、資深測試工程師、一般測試工程師。
若測試團隊規模較大,則測試工程師分為三個層次:初級測試工程師、測試工程師和資深測試工程師,同時設置自動化測試工程師、系統測試工程師和架構工程師。
測試過程人員組織的一個方面是考慮測試團隊的規模,測試團隊的規模可以考慮在整個開發部門所占的比重,或相對開發人員所占的比例。從經驗看,不同的應用,軟件測試和軟件開發人員的比例也是不同的,大致可分為三類。
1、操作系統類型的產品,對測試要求最高,測試人員和開發人員的比例為2:1。
2、應用平臺、支持系統類型的產品,對測試要求比較高,通常測試人員和開發人員的比例為1:1。
3、對于特定應用系統一類產品,由于以后對象清楚、范圍小,甚至可對應用平臺或應用環境加以限制,所以測試人員可以再減少,但測試人員和開發人員的比例至少保證在1:2的水平以上。
6 結束語
相比之下,目前中國軟件企業在軟件測試方面與國際水準仍存在較大差距。首先,在認識上重開發、輕測試,沒有認識到軟件項目的如期完成不僅取決于開發人員,更取決于測試人員;其次,在管理上隨意、簡單,沒有建立有效、規范的軟件測試管理體系;另外,缺少自動化工具的支持,大多數企業在軟件測試時并沒有采用軟件測試管理系統。所以對國內軟件企業來說,不僅要提高對軟件測試過程管理的認識,同時要建立起完善的軟件測試過程管理體系,確保軟件測試管理在軟件質量保證中發揮應有的關鍵作用。
參考文獻
[1]朱少民. 軟件測試方法和技術 [M].北京:清華大學出版社, 2005年
[2]鄭文強,馬均長. 軟件測試管理[M].北京:電子工業出版社, 2010年
[3]布萊克(美).軟件測試過車管理[M].北京:機械工業出版社,2003年
隨著軟件開發應用需求和軟件產業經濟的發展,軟件工程理論、方法和技術也在不斷發展,社會對軟件人才的數量需求越來越大,對軟件人才的規格的要求也越來越高,越來越精細。2002年,我國教育部新增軟件工程專業,2011年軟件工程被設置為一級學科。
由于軟件的應用領域不斷拓展和深入,軟件規模不斷擴大,復雜程度不斷提高,可靠性要求越來越高,軟件的質量風險越來越高,1991年美國愛國者導彈由于系統時鐘內的一個軟件錯誤導致導彈誤炸美國士兵等惡性事故給軟件質量敲響了警鐘,軟件質量保證與測試的重要性日益突出,越來越被業界所認同和重視,軟件質量保證與測試已經成為軟件工程專業的核心課程,介紹軟件質量保證與測試的相關基本概念、軟件測試理論、測試方法和測試技術等,通過該課程的學習,要讓學生樹立軟件質量保證和測試的觀念,了解測試理論,掌握測試方法和技術,能夠分析軟件測試問題,制定測試計劃,設計測試用例,編寫測試腳本,執行測試過程,對測試結果進行總結分析,撰寫測試報告等。
軟件質量保證與測試是一門新課程,為做好該課程的建設,我們依托校企合作,從以下方面來加強課程建設。
一、緊貼企業職業崗位需求,明確教學目標和要求
應用型本科教育主要任務是培養高端技術應用型人才,為體現應用型人才培養的特點,我們軟件質量保證與測試課程的教學內容、難易程度把握等應針對企業職業崗位需求,為此我們和文思海輝等多家企業合作,深入企業了解軟件質量保證與測試職業崗位的知識、素質、能力需求,并以此作為課程的教學目標和要求。
二、引入企業教學資源和實踐教學師資力量,快速提高課程建設水平
軟件質量保證與測試是一個新興領域,一門新的課程,校內教學資源積累不太多,任課老師的相關實踐能力不太強,為此,我們專門從合作企業引入軟件質量保證與測試完整案例;測試需求分析、測試計劃、測試設計、測試報告等全套文檔;軟件測試工程師等,投入我們的軟件質量保證與測試課程建設和實踐教學,快速提高課程的建設水平和教學水平。
三、加強實踐教學條件建設,建設立體化課程,強化實踐能力培養
實踐教學環節在軟件質量保證與測試課程中非常重要,目的是要通過實踐教學讓學生理解和掌握軟件質量保證與測試的相關理論、方法和技術,掌握規范化的軟件質量保證與測試流程和測試工具的使用,并能應用到實際的軟件質量保證與測試項目當中去,提高學生分析和解決軟件質量保證與測試問題的能力。
為此,我們大力加強實踐教學條件建設,建立軟件質量保證與測試實驗室,從企業引進了多個軟件質量保證與測試相關軟件,如表1,用于課程實踐教學。
表1用于課程實踐教學的軟件質量保證與測試相關軟件
[序號\&軟件名稱\&教學用途\&1\&Logiscope\&靜態代碼分析\&2\&IBM Rational Functional Tester\&自動化功能測試\&3\&51test\&綜合測試項目\&]
為強化實踐能力培養,我們的軟件質量保證與測試課程由理論課程、實驗和課程設計三個環節組成,如表2,三個環節有機結合,服務于學生的實踐能力培養。
表2軟件質量保證與測試課程的三個教學環節
[序號\&教學環節\&學時\&教學內容\&1\&理論教學課程\&32\&介紹軟件質量保證與測試的相關概念、理論、方法和技術。\&2\&課程實驗 \&16\&黑盒測試、白盒測試、自動化測試等測試技術的課程實驗。\&3\&課程設計\&20\&學生實際參與綜合測試項目,完成整個測試過程。\&]
四、結合校企合作,編寫應用教材型
在經過一段時間的軟件質量保證與測試課程教學和建設資源積累的基礎上,結合校企合作,我們在2013年12月自編了教材《軟件測試技術實驗指導和習題》,由南京大學出版社出版,該教材規范了實驗教學內容,并把依托于Logiscope、IBMRationalFunctionalTester等測試軟件的實驗教學設計寫了進去。
下一步我們將依托校企合作繼續進行《軟件質量保證與測試》理論教材的編寫,并開發相關教學課件,開設軟件質量保證與測試MOOC。
總體來看,我們的軟件質量保證與測試課程建設取得了一些階段性的進展,如:①依托校企合作、結合實際案例、強調實踐教學的課程組織和實施形式大大提高了學生的學習興趣,受到學生歡迎。②建立軟件質量保證與測試實驗室,引進多款軟件質量保證與測試相關軟件,改善了教學條件,保障了教學需求。③引入企業教學資源和實踐教學力量,安排理論課程、實驗和課程設計三個教學環節,強化了學生的實踐能力培養,提高了學生的實踐能力。
但是,作為一門新課程,軟件質量保證與測試距離優秀課程還有很多工作要做,下一步,我們要進一步提高課程建設和教學水平,依托校企合作繼續進行《軟件質量保證與測試》課程教材的編寫,開發相關教學課件,開設MOOC,適應不斷發展的課程建設和教學需求。