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