日本免费精品视频,男人的天堂在线免费视频,成人久久久精品乱码一区二区三区,高清成人爽a毛片免费网站

在線客服

軟件測試論文

引論:我們為您整理了1篇軟件測試論文范文,供您借鑒以豐富您的創作。它們是您寫作時的寶貴資源,期望它們能夠激發您的創作靈感,讓您的文章更具深度。

軟件測試論文

軟件測試論文:應用度量式測試提高軟件測試效率

摘要:文章介紹了軟件測試領域的發展現狀,并將度量式測試應用在實際的醫療曝光系統中,驗證了度量式測試對于發現系統隱患、提供系統性及穩定性等的重要作用,并強調了在系統測試過程中需將檢查式測試和度量式測試合理結合,提高系統測試效率。

關鍵詞:檢查式測試;度量式測試;軟件性能;軟件性;測試效率

1簡介

隨著全球信息化趨勢的不斷加強,各國的軟件產業都在以前所未有的矯健步伐不斷向前邁進。而信息化為全球經濟發展打開了一個嶄新的市場,各軟件公司越來越重視軟件產品的最終交付質量以贏得更多的市場占有率。在軟件開發的生命周期中,測試作為保障軟件過程和產品質量的重要環節必不可少。

而今,雖然世界經濟與信息已經全球化,但中國與歐美等發達國家的測試水平仍存在一定的差距。在國內的測試活動中,軟件測試一般由專門的測試小組進行軟件的單元測試、集成測試、系統測試及驗收測試等。所有這些相關測試都將根據預先設定的測試流程及測試用例按步進行,不僅如此,測試用例一般都將給出預期測試結果,作為最終測試通過與否的判定標準。因此,軟件測試曾被形容為“基于大量測試用例的程序行為的動態驗證”。

2檢查式測試與度量式測試

目前,在特定的軟件項目中,測試人員將根據不同的系統特征及測試目標,選擇不同的系統測試方法,如黑盒測試、白盒測試、單元測試、集成測試、功能測試、性能測試、回歸測試、壓力測試、負載測試、性測試、安全性測試及兼容性測試等。對于上述的多種測試方法,本文將其總體的劃分為兩類測試情況:檢查式測試和度量式測試。

2.1檢查式測試

通常一個測試用例包含如下幾個基本要素:需求追蹤、測試目的、測試準備、測試數據等。在這種類型的測試中,測試用例一般直奔一個明確狹隘的目的――驗證系統的某一項功能是否正確實現。因為這種測試用例對正確的結果有設定或者有一定的預知,因此測試是明確的,而且可控性也很高。測試結果的輸出表現為通過或者不通過。在此把此類的測試稱為檢查式測試,它屬于一種先驗性的測試,通常所做的單元測試、集成測試、功能測試等都屬于此類測試。

2.2度量式測試

度量式測試沒有太多的先驗性,結果一般基于某種量化的數字而產生。一般是為了針對軟件某一特定功能周邊的多項指標進行的量化度量。這種形式的測試往往出現在系統級測試和應用階段的數據收集。度量式測試往往不會直接給出通過或者不通過的結果,而是需要通過進一步的分析和決策。然而這類“模糊”的量化數據比檢查式測試更具有穩定性,對把握軟件的總體質量或某一特定功能的具體細節更具有價值。這類測試多發生在系統測試、性能測試、性測試等測試中。

2.3優缺點比較

在我們日常的測試活動中,檢查式測試通常是測試活動的主要構成,其優點顯而易見:直接、高效、易管理;缺點則是:隨機性強、單薄、易陷入慣性思維等。而度量式測試是以定量的數據作為基礎,經過分析,測評式的檢驗軟件質量。其優點是:穩定、、測試方式豐富靈活等;缺點是:耗費資源、測試設計復雜、對軟件質量提高具有間接性等。參見表1:

表1檢查式測試與度量式測試優缺點比較

測試類別 優點 缺點

檢查式測試 直接、高效、易管理 隨機性強、單薄、易陷入慣性思維

度量式測試 穩定、、測試方式豐富靈活 耗費資源、測試設計復雜、對軟件質量提高具有間接性

3重視度量式測試

在長期的測試活動中,我們發現,雖然檢查式測試可以發現大部分的系統缺陷,但是在軟件某一部分或者其整體已相對穩定和完備的階段,我們需要更多的針對實際情況采取度量式測試以發現系統更多的潛藏隱患,提高系統的性和穩定性。

雖然“盡可能多的測試”一直為業內所認同,然而同其他的軟件相關活動一樣,進度和成本控制往往是軟件測試中最直觀的壓力。檢查式的測試作為測試的主體方式,往往會受到測試人員的青睞,其測試力度也不言而喻;度量式測試則只是在階段被簡單的運行幾次,甚至只是用來驗證一下之前的檢查式測試結果而已,但用戶長期的實際使用會讓很多潛藏的問題冒出來,也會使一些小問題變成嚴重問題。因此越是重視軟件質量,越是應該花足夠的時間做一些度量性測試。在測試時,當碰到進度急任務重的情況下,我們應該盡早地進行度量式測試,重視度量式測試的重要性。

4度量式測試的主要應用場景

下面列舉兩種情況,概述度量式測試有別于檢查式測試的幾個主要應用:

4.1 度量式測試可以發現潛藏隱患,而檢查一般只能找出顯現的問題

檢查式測試有著明確的標準,正?;虺鲥e顯而易見,而且一項功能在一個版本一般只測一次。度量式測試不會簡單的一次性做出正?;騽t出錯的結論,而是客觀的持續記錄軟件相關部分的狀況,比如內存使用情況、數據庫的操作、網絡流量、關鍵操作的時序等。比如軟件的“死機”問題是一個必然存在的事件,大部分情況下都是嚴重影響軟件使用的問題,甚至造成無可挽回的損失。有一種數據專門采集的是各種死機的情況;包括死鎖、非正常操作、軟件外部影響、底層操作系統出錯等,根據死機原因分析提取需要關注的關鍵數據,確定隱患的所在,作出系統改進的辦法。這一類的性或者失效性分析在其他工業測試中運用較多,而軟件中較少。

4.2 度量式測試能夠獲取軟件的使用細節,用以改進設計模型并專注于測試的重點

有一類度量式測試并不是針對于找出一般性的問題,而是專門用于了解軟件在正常使用過程中的具體應用狀況,用于對系統下一版本的改進。這種度量式測試多出現在β測試階段,在找出問題的同時也會根據實際的應用重新調整開發設計。比如互聯網的上的應用軟件,多數都是互動操作,通過度量式測試用戶登陸后對軟件的操作方式、習慣、各模塊實際運行頻度差異等,可以對系統之前的設計模型加以改進,甚至發現新的需求。

此外,由于度量式測試的前期,數據的采集一般不需要太多主觀靈活的判斷和分析,因此更利于自動化的介入,這樣可以充分的調集正常工作時間和人力外的其他資源(如設備,網絡等),使資源利用較大化。所以在一定的基礎上,及早的在項目過程中引入合適的度量式測試,可以使得項目的測試效率更高。

5度量式測試在醫療曝光系統中的應用

在日常的測試活動中,我們經常會接觸度量式的測試類型,特別是性能測試中;同時在自動化測試中也會接觸到此類相關的數據采集和分析的實例。下面我們將簡單介紹在醫療曝光系統性測試中應用度量式測試為了解系統性能、提高系統安全性和發現系統隱藏缺陷所帶來的巨大價值。

醫療曝光系統是病人在進行醫療曝光時,醫院放射科所使用的數字拍片系統,其性測試需要對系統在實際使用中最常用和關鍵的流程進行性評估,發現并解決這一過程中出現的錯誤以及可能出現的隱患。下面是它一次完整操作的基本步驟:

5.1完成準備工作

從病人信息系統中提取指定病人記錄:

在本地目錄中找到該病人;

在曝光系統上進行曝光;

當預覽圖像出現時,在圖像查看窗口接受并打開圖像;

返回主菜單。

我們希望系統對這一組核心操作的性達到連續3000次正常處理,這里包括系統能完成3000次以上連續的處理,保障每一次的結果正常,每一次的各分步結果正常,同時也能達到一定的處理性能。這樣我們要對每一次的結果和過程進行記錄,它既有利于了解系統的運行狀況,也能在出錯的時候提供更具體的重現環境。

5.2記錄系統每一次運行的基本數據

包括每一次運行的具體時間及其各部分運行所用時間:

運行時刻;

病人編號;

本地查找病人記錄所用時間;

從曝光到圖像預覽所用時間;

從曝光到完成所用時間;

整個流程所用時間。

以下是系統運行時產生的一組基本紀錄(單位:秒):

8/11/2009 4:37:26 PM 53 3.953 12.031 22.375 52.047

8/11/2009 4:38:18 PM 54 4.106 12.032 25.844 52.031

8/11/2009 4:39:10 PM 55 4.001 11.985 22.328 52.032

8/11/2009 4:40:02 PM 56 3.985 12.125 22.407 52.031

……

8/12/2009 8:08:24 AM 997 0.937 13.891 21.828 62.766

8/12/2009 8:09:27 AM 998 0.906 13.891 21.688 62.718

8/12/2009 8:10:38 AM 999 1.266 13.891 29.469 70.735

8/12/2009 8:11:41 AM 1000 1.109 13.828 21.891 62.625

從記錄中我們可以比較清楚地了解當前的運行次數,了解一次完整的基本操作的所用的時間??梢钥吹诫S著時間的增長,系統運行一次完整流程的時間會增大,這表明其中可能出現了內存泄漏等問題。

5.3對系統部分進程的內存使用情況進行監控

圖1顯示了CC Application Coordinator 進程的內存泄漏情況,當然內存泄漏具體起因需要更多的分析。

5.4得出測試結論

下面是在這次性測試中發現的問題:

5.4.1ID000542350 在系統曝光狀態為已準備就緒時,有時曝光可能不發生這是平時測試中一般不會遇到的問題,在大量的循環中我們可以通過數據了解曝光失效的存在以及它的頻度,從而給開發一個直觀的認識并最終消除,的驗證也是通過多次的性測試驗證(3000多次未發現)。

5.4.2ID000542351 在系統曝光2000次后,系統性能下降這也是一個典型的性測試中碰到的問題,性能下降的問題往往是一個緩慢的趨勢,通過對每次循環的時間記錄,我們可以直觀地了解到出現性能下降的負荷和它的緩急等。

從上述的應用可以了解到,度量式測試在測試系統性能、提高系統安全性和發現系統隱藏缺陷上具有很大的使用價值,特別是在系統的性能測試及自動化測試中,通過對數據的搜集分析,可以深入了解系統性能瓶頸,進而構建提高系統性能的解決方案。

6結論與展望

總的來說,檢查式測試和度量式測試都有著各自的優缺點和差異性的測試偏向點,在實際的測試過程中,針對項目中不同階段、不同類型的測試需要,測試人員可以選擇相應的測試方法進行測試。在測試過程中,將檢查式測試與度量式測試相結合,協同發現系統潛在的各類缺陷及隱患,必將大大提高軟件測試的高效性。

在實際的度量式測試過程中,有效的數據采集對測試過程和結果的分析都能提供相當大的幫助。特別是用采集的各種現場數據來代替測試人員的人工記錄和判斷,對于提高自動化測試的有效性也必不可少。在測試活動中如何設計合理高效的收集數據種類和方式,如何將檢查式測試與度量式測試恰當結合起來,以提高測試效率將是未來研究的重點。

軟件測試論文:軟件測試自動化在黑盒測試中的應用

摘 要:介紹黑盒測試的方法,對手工測試的不足以及自動化測試的特點進行研究。以XCRW18型貨車標簽編程器軟件(廠礦企業版)寫標簽數據測試為例,進行了測試問題的分析、測試用例的設計,并用VBScript編寫自動化腳本,在QTP平臺下實現了黑盒測試中的軟件測試自動化,不但節省了人力,而且提高了測試的效率和可信度。

關鍵詞:黑盒測試;自動化測試;測試用例;XCRW18型貨車標簽編程器軟件

黑盒測試把被測對象看作一個不能打開的黑盒子,在不考慮其內部結構和內部特性的情況下,測試其是否能適當地接收輸入數據并產生正確地輸出信息,并且保持外部信息的完整性[1]。黑盒測試在軟件測試中占有重要的地位,但常規的手工黑盒測試,在軟件測試尤其是大中型軟件測試中不但測試效率和覆蓋率低下,而且測試的穩定性和性差。本文在XCRW18型貨車標簽編程器軟件(廠礦企業版)黑盒測試中有效地運用了自動化測試技術,較好解決了上述問題。

1 黑盒測試常用技術與方法

黑盒測試方法主要應用于功能和性能方面的測試,其常用的技術和方法有:

(1) 邊界值分析方法:邊界值分析方法的基本思想是使用最小值(min)、略高于最小值(min+)、正常值(nom)、略低于較大值(max-)、較大值(max)處取輸入變量值。如果要測試被測對象的健壯性除了變量的5個邊界值外,還要通過采用一個超過較大值(max+)和一個略小于最小值(min-)的取值,看看超過極值時系統會有什么反應。如果被測對象是多個獨立變量的函數,這些變量受物理量的限制,則很適合邊界值分析。

(2) 等價類劃分法:把所有可能輸入數據劃分成若干個等價類,然后每類中抽取一組既有代表性,又可能發現程序中錯誤的數據作為測試數據,基于此測試的方法就稱為等價類劃分法。

(3) 全對偶設計方法:全對偶是在全組合結果基礎上進行優化,把其中有效的用例篩選出來,以達到采用最小的測試用例集,覆蓋較大測試域的測試效果,其核心思想就是測試用例的任意2個變量至少在測試結果里出現一次[2]。

2 軟件測試自動化技術

2.1 測試自動化原理和方法

軟件測試自動化是相對手工測試而存在的,主要是通過軟件測試工具、腳本等來實現,具有良好的可操作性、可重復性和高效性等特點。下面簡單介紹測試自動化的主要原理和方法[1]:

(1) 捕獲和回放:捕獲和回放是一種黑盒測試的自動化方法。捕獲和回放一般步驟如下:首先將用戶每一步操作都記錄下來;其次將所有記錄轉換為一種腳本語言描述的過程,以模擬用戶的操作;然后回放時將腳本語言所描述的過程轉換為屏幕上的操作;將被測系統的輸出記錄下來與預先給定的標準結果比較。該方法比較適合在迭代開發過程中進行回歸測試,可以大大減少黑盒測試的工作量。

(2) 腳本技術:腳本是一組測試工具執行的指令集合,可以直接用腳本語言編寫也可以通過錄制測試的操作產生,然后對產生的腳本進行加強。后者可以減少腳本編程的工作量。腳本技術不僅可以在功能測試中模擬用戶的操作,然后進行比較,而且可以在性能、負載測試上虛擬用戶同時進行相同或者不同的操作,給系統或服務器足夠的數據、操作,以檢驗系統或服務器的響應速度、數據吞吐能力等。

2.2 測試自動化特點

相比手工測試,測試自動化有以下幾個特點[4]:

(1) 可以對程序的新版本自動執行回歸測試。這是測試自動化的最主要的任務。在需要頻繁修改大量程序的環境中,自動化進行回歸測試的開銷是最小的。

(2) 可以執行更多更頻繁的測試。自動化測試的一個特點是可以在較短的時間內進行更多的測試。

(3) 可以執行一些手工測試困難或不可能進行的測試。如對于200個用戶的聯機系統,用手工進行并發操作的測試幾乎是不可能的,但自動測試工具可以模擬來自200個用戶的輸入。客戶端用戶通過定義可以自動回放的測試,隨時都可以運行用戶腳本,即使是不了解整個商業應用復雜內容的技術人員也可以勝任。

(4) 可以更好地利用資源。將繁瑣的任務自動化,如重復輸入相同的測試輸入,可以提高性和測試人員的積極性,將測試人員解脫出來轉而投入更多精力設計更好的測試用例。并且自動化測試可以不停地進行測試,可以利用整夜或周末空閑的機器執行自動測試,有效地利用了計算機的資源。

(5) 測試具有一致性和可重復性。測試自動化可以重復進行多次相同的測試,因此可以獲得測試的一致性,這在手工測試中是很難保障的。有些測試可能在不同的硬件配置下執行,使用不同的操作系統或不同的數據庫,此時要求多平臺產品的跨平臺質量的一致性,這在手工測試的情況下很難做到。

(6) 測試的重用性。自動化測試的測試用例經過一次執行之后,在以后的測試中可以不斷重用而無需人工參與,這一點在手工測試中是無法做到的。

(7) 更快地將軟件推向市場。一旦一系列的測試已經被自動化,可以比手工測試更快地重復執行,大大縮短了測試時間。

(8) 增加軟件信任度。一旦得知軟件通過強有力的自動測試后,軟件時對其的信任度也會提高。

3 測試自動化應用實例

3.1 寫標簽數據的測試

本例(見圖1)主要測試寫標簽數據中“屬性”、“車種”、“車型”、“車號”、“換長”、“制造廠”、“制造時間”設置為不同值時是否能正常寫入標簽信息。這幾個變量值都有范圍的限制。

軟件測試論文:基于帕累托法則的軟件測試策略優化

摘 要:通過分析軟件測試故障的分布特性,研究故障發現、分布與測試用例設計、測試人員等的相關性,提出一種基于帕累托法則的測試策略優化改進方法,在測試設計方法的應用、人員的任務分配、測試重點等方面進行有效的優化,并介紹該方法的具體應用步驟。,通過幾個項目的應用結果表明:該方法簡單、實用,可以有效地提高測試效率和暴露軟件缺陷的概率。

關鍵詞:軟件測試;故障數據分析;帕累托;策略優化

1 引 言

軟件測試策略是在一定的軟件測試標準、測試規范的指導下,依據測試項目的特定環境約束而規定的軟件測試的原則、方式、方法的集合。依據軟件本身性質、規模和應用場合等的不同,選擇不同測試方案,以最少的軟硬件、人力資源投入得到的測試效果,這是測試策略的目標所在[1]。按照當前的技術發展趨勢,軟件規模和復雜程度急劇地提高,在軟件測試工作需要更多時間的同時,項目周期卻比以前大大縮短,如何在有限的時間內,利用有限的資源完成軟件測試工作,盡較大的可能暴露軟件中隱含的缺陷,實施高效的軟件測試,是軟件測試工作中亟待解決的問題。

針對這一問題,對軟件測試故障特性進行分析,根據被測軟件中故障的分布特性,對測試方法、人員等資源進行優化配置,進行測試過程進行改進是一種有效的途徑。Myers 曾在其經典著作《The Art of Software Testing》中說到“研究軟件錯誤對改進將來的設計和測試過程有無法估量的意義”[2],但對軟件故障分析的內容、方法研究,以及如何利用故障分析結果改進測試過程是目前工程實踐中亟待解決的問題。

本文分析了軟件故障與帕累托法則的相關性,并基于帕累托法則,統計分析軟件故障的分布特性,研究故障發現與測試用例設計、測試人員等的相關性,結合測試項目實踐,提出基于帕累托(Pareto)法則的測試策略優化方法,并給出具體應用的步驟,介紹實際應用效果。

2 軟件故障分布與帕累托法則的相關性

帕累托法則是由19世紀末和20世紀初意大利經濟學家及社會學家帕累托研究國民收入的差異時提出,又稱2/8定則。帕累托分布的分布函數為P{X>t}=(-a),其中t>1,a>0,帕累托分布在自然界的廣泛存在是由以下定理保障的:

定理1:獨立同分布的隨機量之和服從stable分布(正態分布只是stable分布的一個特例,中心極限定理也是本定理的特例)。

定理2:當x無窮時,stable分布近似于Pareto分布(Pareto分布是大樣本情況下stable分布的近似)。

Mller早在1984年就報道這樣一個分布規律:45%的錯誤集中在10%代碼,而的50%代碼包含只有10%的錯誤,IBM等公司的統計數據也表明:80%的缺陷是在20%的模塊中發現的,由此可見,軟件故障是有類聚性的[3],遵循帕累托分布規律,即20%的模塊包含了80%的錯誤。此外,開發人員的思維定勢也會造成同樣的錯誤在其編寫的代碼中一再重復出現,而測試工作由于人員和設計方法的不同,也使其發現的故障呈現一定的分布規律。由此可見軟件故障在模塊、人員、測試設計方法等方面,遵循帕累托分布規律。

3 基于帕累托法則的故障分布特性分析及測試優化策略

3.1 針對故障類型與模塊分布特性的測試策略優化

(1) 違反編碼規則和度量指標的問題分布。

根據對多個測試項目的測試結果分析表明:靜態分析發現問題較多的模塊,在動態測試中也會出現較多的缺陷,靜態分析結果與動態問題數有一定的關聯性;缺陷的密度分布與子系統的復雜程度有關,如一些圈復雜度較高的代碼,其出現問題的可能性較高。因此,靜態分析結果可以用來指導動態測試的測試用例設計,進行的測試用例時,針對程序最容易出現的故障的地方有所側重和重點關注,可以提高測試用例發現故障的概率,進一步提高測試效能。

在具體應用上,可以利用測試工具進行靜態分析和人工評估分析來實現分布特性分析。靜態分析包括代碼檢查、控制流分析、數據流分析、表達式分析和靜態度量指標分析等項目。檢查的規則和度量指標值根據一些統計數據(即經驗數據)來確定,也可以依據一些國際上常用的標準,如歐洲防務標準和汽車工業標準等。測試工具分析后的數據再進行人工分析定位、統計、評估,形成被測試軟件的編碼規則和度量指標的問題分布表,并用來指導動態測試用例的設計。

(2) 故障在各個模塊中的分布。

IBM等公司的統計數據表明:80%的缺陷是在20%的模塊中發現的,而這20%易出錯的模塊,基本上對開發人員來說是新技術或者難度高、技術含量高的部分。在軟件測試中應把握這一規律,對軟件開發人員以前未曾開發過或未接觸過的、對軟件運行起到關鍵作用的模塊和代碼尤其注意,對其進行充分的測試以發現更多的錯誤[4]。

因此,在用例執行過程中對發現的故障,進行初步的統計分類,計算其在不同軟件功能模塊中的分布(即軟件故障的區域分布),根據軟件缺陷的類聚性,“發現的軟件缺陷越多,表明未發現軟件缺陷越多” [3],對發現較多缺陷的模塊增加針對性測試用例,盡可能暴露更多的軟件缺陷,可以有效提高測試用例的故障發現率。

(3) 故障類型的分布。

一個錯誤往往是由類似的同一原因引起的更多錯誤的征兆,這些錯誤往往會在同一個人或同一團體已經完成的工作中被找到。通過分析故障類型的分布,得出出現較多的典型錯誤,對分析的結果可以馬上應用于開發一個更有效的檢查單和測試用例,選擇更重要的回歸測試,發現更多的同一類型錯誤或由同一原因引起的錯誤。

3.2 針對故障與人員相關性的測試策略優化

(1) 不同開發人員編寫的代碼中故障數據分布。

每個人都有其固定的思維特點和偏好,程序員往往會犯相同的錯誤,同一個開發人員在其開發的程序中常會反復犯其容易犯的錯誤。通過對發現的故障數據進行分析,統計故障數和故障類型在不同開發人員開發的程序中的分布情況,對發現較多故障的模塊(代碼),確定其開發者,然后對其開發的其他模塊(代碼)加強測試,在測試用例的設計上,也要側重于其所引入的故障類型,使測試用例能達到較高的缺陷發現率。

(2) 不同研制單位的故障數據分布。

軟件的開發人員及研制單位都常會犯一些相同的錯誤,導致一些典型的軟件缺陷。通過對發現的故障數據分析,可以設法找到一個軟件研制單位所常犯的典型錯誤,這些典型錯誤通常是由于欠缺規范(或標準)、配置管理、設計訓練或單元測試,或其他原因而引起的。通過統計分析不同單位開發軟件的測試故障數據發現,一個單位開發軟件出現的較多的某種錯誤類型,在另外一個單位開發的軟件中卻很少或幾乎不會出現,而另一種錯誤類型的出現情況則相反。

(3) 不同測試人員發現故障的特點分析。

測試人員與開發人員同樣具有其固定的思維特點和偏好,這些特點和偏好往往有助于其去發現某些特定類型的軟件缺陷,卻不利于其發現另外一些類型的軟件缺陷,這個特性在使用猜錯法進行測試和進行代碼走查時尤其明顯。對不同測試人員發現故障類型的分類和特點分析,其目的就是對測試組內不同的測試工程師的優缺點進行分析,在測試工作中用其所長,避其所短,提高測試發現缺陷的效率,也為對測試人員進行合理的調配,組建高效率測試組提供有益的借鑒。

不同測試人員發現故障的分類及其特點分析主要統計所有發現缺陷,進行故障分類;并將這些分類與測試工程師進行關聯分析,查找每個測試工程師在發現缺陷方面的特點;然后利用這些特點,在組建測試組和進行測試組內工作分工時將這些因素和特點考慮進去,則可以有效地提高測試組發現軟件缺陷的效率。

3.3 針對各研發階段的故障分布的測試策略優化

“什么時候出的錯?是最難回答的一個問題,但也是最有價值的問題”[2],通過查閱設計文件和設計的歷史資料查找和分析直接導致故障出現的原因根源,其可能是需求中的一個二義性語句、修改先前的錯誤所造成的或沒有考慮非法輸入導致的,用故障分析去確定每個故障是什么時候和誰造成的還遠遠不夠,還要確定到底為什么出錯[5],如果找出一個錯誤的問題根源,就能用同樣的方法發現更多同類性質的錯誤。

3.4 針對故障類型與用例設計方法相關性的測試策略優化

故障分析還要回答一個問題“用例是怎樣發現錯誤的?”[5],如果一個測試用例成功地發現了一個故障,就要對這一用例的設計方法和輸入的測試數據進行分析“為什么這個測試用例成功?”[5]。對于其他測試用例能否從這得到有益的借鑒,使本次測試、也使將來的測試有所改進。進行故障類型與用例設計方法之間關聯分析,才能利用成功的測試經驗來改進檢查和測試過程,以便在將來的設計中更好地發現這一類型的錯誤。

4 應用步驟和實踐

4.1 步驟

(1) 收集故障數據。

在測試過程中,對每一個用例的實際輸出和故障現象進行詳細的記錄,形成測試問題報告單,然后按故障分析對象和分析內容,分類收集測試故障數據。

(2) 計算整理。

對收集來的數據資料進行整理和加工,并按不同分析類型要求進行分類(如模塊分布、類型分布等),計算故障數,故障數占總數的百分比,如表1所示。

(3) 數據分類排序。

根據選擇定的分析類型要求(如模塊分布)對計算整理后的數據進行從大到小的排序,然后計算故障累計比率,并將計算結果填寫在表格最右邊一列,

(4) 繪制帕累托圖。

用表1所列數據繪制雙坐標圖,首先以模塊代號為橫坐標,模塊故障數為縱坐標,繪制直方圖,從大到小顯示不同模塊的故障數,然后再以累計故障比例為縱坐標,繪制折線圖。

(5) 提出測試側重點,優化測試策略。

根據帕累托圖,查找故障累計達到80%之前的模塊代號,在圖1中為M1~M6。在補充和選取回歸測試用例時,側重性地針對這幾個模塊補充和選取測試用例。

同樣道理,在補充測試用例時,所使用的設計方法也應是基于帕累托法則分析所得到的20%最有效的設計方法。

圖1 帕累托圖

4.2 應用實踐

(1) 故障在模塊中的分布特性分析及測試策略優化。

根據在裝備軟件第三方測試工作中的嘗試,根據帕累托法則對測試進行優化,改進測試重點和測試設計方法,提高了缺陷的發現率和測試用例的效率,取得了比較明顯的效果,見表2所示。項目1中提高了11.7%的缺陷數,而項目2則提高了15.6%,其他項目也普遍占10%以上。在測試用例的效率上,項目1和項目2在優化前分別為25和16.9個測試用例發現1個軟件故障,而經過優化后增加的測試用例則分別為7.7和14個測試用例發現1個軟件故障。

表2 測試策略優化應用效果統計表

項目名

項目基本情況測試策略優化后

總用例數總缺陷數增加用例數新發現缺陷數占總缺陷數比例

項目11 02145 46613.3%

項目226416 28212.5%

(2) 測試人員發現故障的特點分析。

首先,對3個裝備軟件測試項目的代碼檢查數據進行統計分類后,剔除測試工具發現的問題,不列入故障數據統計范圍。項目1和項目2由A,B,C三位測試工程師參加代碼走查,項目3由A,B,C,D四個測試工程師進行代碼走查,對每個測試人員代碼走查發現問題數轉換成其占該類問題的百分比,見表3所示,然后通過比較發現以下規律:

①測試工程A在3個項目中,發現的“指針內存”和“循環結構”類問題基本上占了該類問題總數一半以上,而其他的測試工程師在發現該類問題上,在不同的項目是隨機的,沒有一定的規律和趨勢。

②在“指針內存”問題上C測試工程師在3個項目的代碼走查中發現問題數占該類型問題數都較少甚至沒有。

其次,根據上述不同測試人員發現故障的特點,在第4個測試項目的分工上,讓測試工程師A在第四個項目代碼走查中,負責對“指針內存”和“循環結構”類問題進行重點審查,其他測試工程師則不進行側重性分工,統計結果表明,工程師A發現問題的比例和數量提高明顯。

表3 項目代碼走查數據分類統計表

問題 /%

項目1項目2項目3項目4

ABCABCABCDABCD

宏定義100.00093.106.9000100.0000100.0

循環結構75.025.0046.22.651.350.00050.075.025.000

指針內存55.644.4050.0050.00000100.0000

,由于測試工程師未參加第1、第2個項目,則在4個項目中在進行比較,又可以發現測試工程師A和D在發現“宏定義”類問題的能力上基本相當,但比測試工程師B和C更有效率,因此,在后續的項目中可以根據這一特點,對測試人員A,B,C,D進行合理的調配,組建高效率測試組,而且隨著可分析項目的數量增加,測試人員的特長會分析的越來越,對測試組內人員分工就可以越細化,工作也越高效。

5 結 語

基于帕累托法則的測試策略優化,一方面,在項目測試工作過程中,通過對故障類型和分布特性進行分析,查找故障缺陷模塊類聚性和故障類型的類聚性,改進軟件測試設計過程和提高測試的效能;另一方面,進行故障與人員相關性分析,查找發現軟件設計人員、開發過程等方面的不足,根據其薄弱點提出一個機構或個人在那一方面需要提高或需要加強培訓,并提出針對性培訓建議,從而促進開發過程的改進。此外,利用測試人員發現故障特點分析結果,對測試人員進行針對性的調配,組建高效率測試組和進行合理的組內分工,可以提高測試故障的發現率,促進測試過程的改進。通過多個項目的實踐證明,基于帕累托法則的測試策略優化可以明顯提高測試效率。

軟件測試論文:高職軟件測試課程構建設想

軟件測試是軟件質量保障的關鍵步驟。測試貫穿整個軟件開發的過程,是對軟件需求分析、設計規范和編碼的最終復審。軟件測試已成為軟件產業的新興門類而迅速發展起來,其專業機構和組織迅速發展、人才需求旺盛、職業的價值日益提升,軟件測試人才的培養也應該成為高職IT教育的重要內容。

1 高職軟件測試課程構建背景

1.1 軟件產業的技術發展和需求

隨著軟件技術的發展和應用的日益廣泛,軟件的功能越來越強,系統的規模越來越大,內部結構愈來愈復雜,軟件的質量和軟件的生產率難以適應發展需求的問題統一起來突出,已成為軟件企業規范管理和軟件產業快速發展的絆腳石。作為一種有別于實物產品的邏輯產品,軟件產品有其特有的復雜性,如功能的多樣性、實現方式的多樣性、產品要求難以表達、進度能見度低、運行依賴于環境等。作為人腦高度智力化的體現,軟件存在缺陷無可避免,而且軟件系統規模擴大,其缺陷生成機率也會加大,發現的愈遲,故障造成的各類損失也愈大。

軟件質量的提高,既依賴于軟件過程工程的一些方法,也依賴于軟件測試。我國軟件開發長期以來存在“重開發,輕測試”的現象,中小企業往往研發測試混雜,沒有專業的測試人員和體系;缺少測試概念和方法,沒有測試方面的專業知識;缺少測試流程或不規范。用戶驗收由于缺乏專業人才而失之甚至流于形式。從行業發展來說,急需建立專業的測試隊伍、流程和規范,提高產品研發質量。

隨著軟件技術的發展,軟件測試的技術和內容也有了很大的發展。當前軟件測試已不僅僅體現為測試的執行,而且貫穿軟件生存周期全過程,內容包含理論與技術、標準與規范、環境與工具及測試管理等多方面。軟件測試對于軟件質量的保障作用正得到軟件行業以及軟件用戶的重視,軟件測試在軟件工程中的地位得到空前地提高。近年來,一些大型企業以ISO9000或CMM為導向構建質量體系,在ISO9000中共有19個要素,其中一個就是“檢驗和試驗”;CMU/SEI的CMM中共有18個過程關鍵域,其中有一個質量保障過程關鍵域。這其中都體現了軟件測試是軟件開發中必不可少的環節。

1.2軟件測試人才緊缺

根據國外軟件業發展的經驗,軟件測試工程師和軟件開發工程師在企業的配置比例一般至少應該達到1∶1 的水平。但我國軟件產業在這方面狀況堪憂,很多軟件企業的測試和開發人員之比為1∶6,甚至更低。隨著近幾年軟件企業對軟件測試重要性的不斷認識,產生了對軟件測試人才的大量需求。業界有關人士稱,未來幾年,國內軟件行業對軟件測試工程師的需求將超過20萬人。

目前在軟件測試人才供需方面存在矛盾。一方面,企業對軟件測試人才有大量需求,但苦于招不到合適的人;另一方面國內的高等教育也忽視了這一領域,高校計算機專業專科、本科、碩士課程中普遍未開設專門的軟件測試課程,測試僅僅是作為軟件工程課中的一個章節被提到,因此行業內的軟件測試人才嚴重短缺。目前企業在軟件測試人員組成上還存在結構性矛盾。在企業執行軟件測試的技術人員通常由具備本科以上學歷的軟件技術人員來承擔,沒有形成合理的金字塔形結構,這一方面加重了企業人力資源的成本,另一方面也加劇了軟件測試技術人員的匱乏,而實際上通過恰當的培養渠道,高職畢業生可以成為合格的軟件測試執行人員。

基于以上背景,軟件測試技術將成為軟件專業人才知識結構與技能培養的重要組成,企業對軟件測試人員的需求也應當納入高職教育視野之中。

2 高職軟件測試課程目標分析

高職教育以職業能力培養為目標,通常在完成學歷教育同時取得相應的國家職業資格證書,國家職業資格證書或行業技能證書也是高職教育內容的一個重要參照物。而針對軟件測試人員,目前還沒有相應的國家資格標準,也缺乏相應的行業證書,我們參照國家職業資格標準的等級劃分原則,將滿足相當于國家職業資格四級(中級)水準的人員稱為軟件測試員,而將滿足相當于國家職業資格三級(高級)水準的人員稱為高級軟件測試員,并將這兩者的技能要求根據具體情況納入到高職教育培養目標之中。

軟件測試員應了解軟件測試的基本測試概念、測試理論,根據測試用例能夠執行測試,具備基本的測試心理素質,能與開發人員進行有效溝通,掌握一門腳本語言。相當于國家職業資格四級(中級)水準。

高級軟件測試員是軟件測試工作最基本的力量。他們應掌握基本測試概念、測試理論、測試標準和測試技術方法,能獨立設計測試用例,有效進行缺陷報告和跟蹤,使用常用測試工具,掌握一門腳本語言。能夠完成一般軟件程序的測試任務。相當于國家職業資格三級(高級)水準。

據當前軟件行業相關統計資料分析,具備測試執行能力高級軟件測試員和具有更高技能水準的軟件測試工程師都是企業的緊缺人員,從企業人力資源管理的合理結構來說,具備測試執行能力的高級軟件測試員的人數需求更大,可以成為高職軟件測試專業的技能培養目標。教育部的目錄中尚無軟件測試專業,對于眾多的高職院校來說,這是一個空白。因此對于條件成熟的高職院校,可將高級軟件測試員納入到軟件專業(測試方向)的培養目標中。也可將軟件測試員調整為軟件專業的培養目標之一,提高畢業生的專業溝通能力和就業適應面。

3 課程構建原則

3.1 以軟件測試工作的邏輯順序構建課程

目前的軟件測試教材大都是近兩三年出版的,體例基本上是按照測試理論、測試技術、測試工具、測試實踐、測試管理的順序依次展開。高職的教材如果局限于對相應內容作的篩選、簡化,是難以適應高職學生的,也不符合職業技術教育的規律。

“職業教育的教學內容應置于由實踐環境構成的,以過程邏輯為中心的行動體系框架之中”,“其內容編排應以典型職業活動順序為參照系,故具有串行結構的特點。針對工作過程環節的順序性與時序性傳授的課程內容,既符合職業院校學生與生俱有的心理順序和具象思維的指向,也符合動態變化的職業工作過程的實際需要”。

因此,軟件測試課程構建首先要按照典型的測試活動順序,分解測試職業能力技術要求,按照需求概要設計詳細設計的V字型測試模型,由易到難,由表及里,由簡單到復雜,由單一到綜合,逐步展開課程。按照組成測試技能實踐教學內容及相互間的內在聯系,使數據庫、操作系統、自動化測試工具、測試管理工具、配置管理工具等各部分實踐內容有所側重,互相銜接,彼此關聯,具有連續性。

3.2 要高度重視過程性知識與經驗的獲得

“現代工業心理學研究表明,高新技術工作崗位的工作人員所需要的知識,約一半是介于經驗性知識和學科理論知識之間的一種特殊的知識,即“勞動過程知識”。軟件測試在規范的軟件生產中屬于軟件過程工程的重要組成,軟件測試課程構建必須使學生能在“完整工作過程”中學習。

課程開發難點在于提供一定規模的實際軟件產品,發放多個包含bug的軟件版本,且每個版本都模擬真實測試過程中的情況進行了定制調整,以保障為學生創造一個與日常測試工作環境類似的場景。學生通過這個項目實訓,將本階段學習過程中涉及的測試技能、測試方法等知識點靈活運用,從而保障將書本中的知識點真正消化掌握,進而達到軟件測試綜合能力的提升。因此缺陷報告庫的規模是項目實訓效果的重要保障之一。

注意引入在國際市場占有率高、有代表性的自動測試工具,如Mercury、IBM的有關產品,內容涵蓋從安裝到使用,并結合實際操作案例進行分析講解,以此來加深概念與方法理解,達到技術運用舉一反三,知識傳授與技能培養并重的目的。

有了供實踐訓練的軟件產品和測試工具,僅僅能夠找出bug還是不夠的。要在軟件過程工程中,圍繞測試工作的的基本程序,在一個“完整工作過程”中進行工作分析,進而構建測試課程,在項目教學中建立與測試過程的直接關系。但是,對于大多數企業而言,目前測試工作流程遠未規范,甚至測試員的職責也不夠明確。如何進行測試工作分析呢?從形式來看,測試報告是測試人員的工作成果,因此,測試人員的工作分析可以圍繞著“測試報告”來進行,包括“測試報告”的前期工作:測試計劃、測試案例、測試過程、信息收集;“測試報告”中的信息管理:通常使用測試管理工具,對測試中的問題進行收集、流轉、分析與統計;不同類型的“測試報告”的撰寫、“測試報告”的管理、測試評估等。這樣的程序,體現了人類實踐活動的“完整模式”。

3.3 在“完整工作過程”中培養方法能力與社會能力

實際上,測試技術人員的要求不低于開發人員,但是需要不同于開發人員的知識結構。在具體細節上,可能不必非常深入,但知識面要求更廣,涉及開發、管理、行業等多方面。

由于目前國內軟件企業專職測試人員基本上只承擔系統測試,所以測試課程的重點在系統測試,在單元測試、集成測試方面側重于掌握基本概念和對測試過程的了解,能在指導下完成單元測試、集成測試。與此同時,要注重從業務需求描述與評審到文檔評審的一系列質量管理問題。因此要求課程開發在內容上作出取舍,體現整體優化。要注意引入有關質量與質量體系、測試標準等概念,有利于提高職業素養,甚至也有利于企業澄清一些對于測試崗位的模糊觀念。針對軟件測試崗位的特定心理素質要求,如與程序員的溝通困惑,加強溝通與職業素質培養。

3.4 按照職業技術能力發展階段來設計典型工作任務

研究表明,“人的職業能力的發展是按照從門外漢到專家的過程進行的”,而不是傳統心理學認為的“從不知道到知道”的過程。因此,按照職業技術能力發展階段來設計典型工作任務是高職課程開發的重要課題。

高職軟件專業的課程在開發上一般涉及單機桌面軟件和基于網絡的分布式應用系統,從運行環境來說有Windows平臺和Linux平臺。測試課程也可以相應地劃分為兩個階段,分別確定Windows平臺下單機桌面軟件和Linux平臺(或Windows平臺)下的典型測試任務。根據教學對象的軟件專業知識背景與接受能力,在其他課程中作必要的軟件知識鋪墊。如在及時階段,通過C語言的簡單開發應用、搭建Windows測試環境、從測試角度敘述Windows開發環境及應用程序編程接口、Windows內部對象及程序運行機制、Windows消息機制、內存泄漏和檢測技術等,了解編碼規范,理解Windows軟件錯誤產生原因,為有效地設計Windows應用軟件的測試用例和測試腳本做準備。在對Java開發、OOP、OOAD技術、UML設計工具和基本表示方法、配置和管理數據庫系統等作必要鋪墊后開始第二階段的測試課程。因此,在課程開發時一方面注意知識銜接,內容涵蓋,另一方面深度適宜,體現理論分析“必須、適度、夠用”的原則。

“職業教育的系統性,首先是要保障專業勞動過程這一大系統的完整,而不是教學所涉及的各學科子系統的完整性,否則,就會混淆和局部的關系,本末倒置”。也只有通過對完整測試工作過程的把握,才能夠突破對普通高教課程的精簡、篩選,做到理論分析“必須、適度、夠用”。

4結語

隨著IT技術應用的發展,產品質量控制與質量管理正逐漸成為企業生存與發展的焦點。從軟件、硬件到系統集成,幾乎每個大中型IT企業的產品在前都需要大量的質量控制、測試和文檔工作,而這些工作必須依靠擁有嫻熟技術的專業人才,即測試技術人員來完成,在這里高職軟件測試課程建設通過引進工作過程導向的課程開發方法可以發揮重要作用。

軟件測試論文:軟件測試教學的點滴體會

摘要:本文從軟件測試的教學實踐出發,分析了測試工作的特點和對測試人員培養的要求,提出了一些測試教學中應著力培養的方向。

關鍵詞:軟件測試;教學體會;團隊精神

軟件生產過程中軟件質量問題越來越多,軟件測試已經和軟件的創意與開發一樣被提高到影響軟件生存的地位。隨著社會對該方向人才的需求越來越大,我們也在軟件系開設了軟件測試專業,同時積累了初步的教學實踐經驗。下面就幾個方面談點心得。

1教育同學不把軟件測試作為逃避困難的避風港

軟件專業的部分同學在學習了編程的課程以后,往往有畏難情緒,認為軟件開發工作對人的腦力和體力的要求高,而且技術變化快,需要不停地學習更新知識,同時工作中還常加班,于是就產生了逃避心理,希望在分專業的時候選測試。他們認為測試是挑別人產品的問題,總比自己創造容易。有很多同學帶著規避困難的情緒來到軟件測試專業,這是一種不正確的心態。測試工作往往是入門容易,深入難。

1.1測試工作需要對行業有廣泛的知識面

軟件測試工作看起來起點低,好象不需要深入的專業知識就可以開始做了。測試人員往往剛入門的時候是參加一些具體的項目,從項目中積累測試經驗。但是如果沒有良好的對計算機軟件和硬件的知識基礎,經驗的積累容易限于表面,而不深入。

比如測試中比較熱的一個方向是性能測試,該方向對軟件的響應時間,資源占有進行測試。性能測試往往使用測試工具。測試工具對軟件系統運行中的測試結果進行數據采集。而測試人員需要對結果進行分析,剛開始的時候面對各種數據可能不知道如何分析,經過經驗的積累,可以從數據中找到系統的瓶頸,提出改進系統的意見。如果沒有對系統的了解,對專業數據的分析能力,是無法勝任工作的。

測試中還需要人員有很強的自學能力。因為許多時候我們使用自動化測試工具輔助測試人員完成可重復的測試任務,往往它們都自帶一些腳本語言,測試人員要通過自學而掌握,所以也需要編程和調試的技巧。目前一些公司還開始重視開發自己軟件產品的測試工具,這樣要求從業人員擔當開發和測試的兩重角色,是非常有挑戰的工作。

軟件測試員在做具體項目測試的時候,還需要對該項目的行業背景有所了解。一個專業測試師可能會接觸比軟件開發人員多得多的項目。他在做測試的初期需要對被測試項目做專業了解,可能就會接觸到各行各業的軟件。比如做金融行業軟件有什么特殊的要求,金融行業對信息的操作和信息安全方面要求怎樣,信息安全的技術有哪些等等。

我們的軟件測試方向教學中,也開始聘請工業界的行業專家為同學們講行業軟件開發的專題講座,以讓大家有更多機會了解行業背景。

從教學中大家都體會到該方向對專業知識領域的要求是相當廣的,片面理解測試是一個比較低檔次的軟件工作不合適。

1.2測試人員和開發人員做的是一個工作的兩個方面

在軟件產品開發的工作中,好的測試人員和開發人員是在干一個工作的兩個方面。測試人員在清楚軟件產品的客戶需求的情況下,憑借自己敏銳的感覺和對軟件系統的深入了解,是在有一定批評和指導性地幫助設計和開發人員完成軟件產品生產活動。我們講授課程的時候強調這個觀點,測試人員不是團隊的二等公民,而是客戶的眼睛,是產品的鷹眼。

2測試員更需要培養團隊精神

2.1尊重個性思維特點,發揮團隊優勢

我們知道測試中有黑盒子和白盒子測試,黑盒子測試是測試人員在只知道軟件功能說明,不知道軟件內部的實現具體細節的基礎上開發測試用例,進行測試的過程;而

白盒子測試,是測試人員對軟件內部代碼在明白其實現原理的情況下進行的深入代碼內部的測試。這兩種測試需要測試人員站在不同的角度看待被測試對象。測試團隊中,測試人員的思維方式各不相同,配合好,可以很容易發現軟件產品各個方面的問題。比如黑盒子測試,適合讓一些有使用該類軟件經驗的人擔當,他們在該類軟件中的使用經驗將對測試帶來很好的旁觀者的意見,而白盒子測試適合參與編寫軟件的人,或者對系統代碼有一定掌握的人做。兩種方法產生的效果不同,前者人員不能陷入別人的思維定式,后者人員卻要非常注重細節。在課堂教學和實踐項目中,我們發現不同的同學有不同的思維特點,測試人員的思維特征決定了他能夠怎樣發現缺陷和發現怎樣的缺陷。好的測試管理,應該盡量發現每個人的長處,把他們放在合適的崗位上。

教學實驗中的測試項目,同學們是團隊完成的,大家感覺測試工作真是需要協作的工作,一個項目的測試結果,往往是整個團隊所有人的努力。有一次課堂討論如何測試一個下棋軟件,喜愛軟件開發的同學想到最多的是如何測試它的功能點,界面是否正確;有的女同學對外觀和美感敏感,提出了改進意見,包括改進界面的舒服度,顏色的搭配等;有的同學平時學棋譜,利用自己的棋藝特長和軟件比賽,發現了軟件算法的秘密;老師還介紹了這類智能下棋軟件的常用算法。大家感覺軟件創造非常有魅力。

我們感覺課堂是一個集體,同學的參與非常重要,而老師主要起著管理和協調的作用。老師在和大家的討論中發現了很多思想,和學生一起交流學習。這點在測試課堂上特別容易表現出來,因為我們在用評判的思維考察軟件產品,而不是單純的學習了。

2.2問題的解決是團隊精神的體現

不同人的思維都不一樣,這樣可能一個項目測試的人越多,測試效果就越好。但是人一多,就產生矛盾和意見。學會尊重他人思想和意見是非常重要的,而管理協調人員的目標是需要讓團隊意識到這點,找到好途徑完成項目。

測試團隊特別需要學習協調各個方面的關系。測試人員和開發人員發生矛盾是最常見的,測試團隊內部也可能會因為一個問題的理解不同而產生分歧。我們在團隊中需要尊重每個你的合作伙伴,而不是一味強調自己意見的正確而強制他人接受自己。比如定級一個軟件缺陷的級別,可能不同的人就有不同的看法,有人覺得很嚴重,有人覺得沒那么嚴重,如何能互相體諒的協調好工作,最終拿出合理解決方案是大家需要思考的。例如在討論一個任務調度的軟件測試時,有的同學提出界面的結果數據在顏色上可以改得更漂亮,更豐富,更直觀些,這樣看起來容易讓人明白。而該項目的開發人員覺得自己使用的一致的顏色很好,界面太花俏不符合設計思想,而且修改起來技術上又費點工作,不愿意,有的時候為這樣的小問題,大家都會不愉快,處理不好,會很大的影響工作進度。這個時候項目組領導需要權衡利弊,讓小組成員最終達到統一的決定。

一個團隊需要一種協調合作精神,問題的解決往往是團隊精神的體現。

3計劃是測試成功的保障

測試工作要做的好,學會條理化自己的工作非常重要。測試管理那幾節課,我們專門講了如何做一個合格的測試經理人。測試管理是軟件工程的一個部分,管理的目標是管理你的測試團隊,讓他較大效率的工作。而做這樣的工作過程中,你如何確定你的被測試項目,該項目有哪些特點,你還需要深入了解哪些方面,自己目前的資源有哪些,在確定了測試目標后,怎樣確定測試計劃,同時怎樣實施你的計劃,在計劃落實的過程中,你如何監督計劃的完成。同學們非常喜歡這樣的內容。

但是測試經理的工作又怎樣能夠做到井井有條,忙而不亂呢?可能需要從大學的學習中養成良好的計劃和完成計劃的習慣。許多同學發現良好的工作學習習慣特別有助于成功,比如把平時看到的想到的記錄下來,把想要做的工作記錄下來,給自己定個計劃,看自己完成的情況怎樣,在這個計劃實施過程中,有哪些地方沒做到,是否沒有毅力,還是說被其他什么事情占用了時間。應該怎樣做計劃調整,或者對自我行為做調整。

4培養耐心做測試

測試工作看起來乏味,因為畢竟沒有開發工作那么有挑戰和創造性。但是測試工作需要耐心和恒心,在這樣的工作中,你能夠培養自己的耐力。測試工作需要你付出自己的熱情和耐力,如果你為了刺激和新鮮,任何工作都有失去新鮮的時候。只有培養自己甘于寂寞,耐心塌實的心態,方能把路走的長,走的寬。正如前面說的,測試和開發是一個工作的兩個方面,它們最終需要的都是個體從業人員的成熟和毅力。

5總結

軟件測試在軟件行業受重視的程度剛剛開始,該方向的教學活動也剛成為一個新亮點,如何能夠健康地引導學生們走入這個方向,是值得大家共同探討的問題。筆者感覺測試教學不光要教會同學們一些專業知識,還要通過教學讓大家體會測試工作的行業精神,以及它對個體的行為和思想上的要求。

軟件測試論文:“軟件測試”教學探索與實踐

摘要:本文從教學目的、教學方法、教學內容和實踐訓練等方面對軟件測試課程教學進行了探討,并簡要介紹了我校軟件測試課程的教學實踐過程。

關鍵詞:軟件測試;案例教學;實踐教學

1軟件測試課程教學現狀

軟件測試作為控制軟件產品質量的重要手段,目前在國內也開始熱起來。國外軟件廠商早就極為重視軟件測試,目前歐美等軟件產業發達國家的軟件企業里,軟件測試和開發人員的合適比例達到1∶1,甚至不少企業測試人員的規模已超過了開發人員。而國內,在被調查企業中,測試人員與開發人員比例為1∶5的企業高達36.4%,比例為1∶2的企業占31.8%,比例為1∶1及以上的企業僅占31.7%。隨著產業和企業的發展,企業必然需要大量的測試人員。據國內某大型招聘網站的調查數據顯示,2007年1至6月軟件測試工程師年供需比達到1:50,人才極度稀缺。

軟件測試人員為什么會有如此稀缺?國內相關人才培養的滯后遠不能滿足過旺的需求,這是導致測試人才供不應求的根本原因。目前國內開設相關專業和課程的高校寥寥無幾。各大高校及相關部門對相應的市場需求反映過慢,造成了供需方面的矛盾。一方面市場缺口巨大,企業苦于招不到合適的人才;另一方面一些應屆畢業生或IT從業人員想從事軟件測試相關工作,但由于沒有相關經驗及基礎理論知識而被拒之門外。

目前大部分高校沒有開設專門的軟件測試課程,軟件測試只是軟件工程課程的一部分,所涉及的軟件測試相關知識非常有限。即使開設了軟件測試課程的高校,也面臨著師資力量匱乏、學生學習積極性不高和教學資源不足等困難。目前比較好的軟件測試教材和參考書不多,而且軟件測試實踐環節所需要大量的案例也不足,這也在一定程度上加大了老師上課的難度,也是很多老師不愿意上軟件測試課程的原因。

2教學目的和授課方式

我校計算機學院審時度勢在3年前就開設了軟件測試課程,該門課程是軟件工程專業的必修課。通過軟件測試知識體系的學習,使學生了解軟件測試的發展現狀,掌握軟件測試的方法和技術,熟悉軟件測試過程管理,從而具有獨立承擔測試項目的實施能力,具有測試策劃、管理、實現和判斷能力;通過實際的案例分析,并選用合適的測試工具實施軟件測試,讓學生掌握一套主流測試工具的具體應用,并且掌握技術流程、軟件測試方法、測試管理、配置管理以及技術文檔的寫作等;,引導部分對知識技能掌握比較好的學生對軟件測試某一方面的問題進行深入研究,為其后續的發展鋪好道路。

鑒于以上的教學目的,本課程采取理論授課與上機實踐相結合的授課方式,并輔之課堂和網絡討論、案例分析。本科教育最重要的是要為所學專業打下堅實的基礎,所以該課程的54個學時中,用于基本概念和理論、工具分析和使用的理論授課時間為36個學時,用于案例分析討論、實驗操作的上機實踐、研究分析報告占18個時間。

3軟件測試課程教學探索和實踐

3.1軟件測試理論課主要教學內容

軟件測試理論課內容包括以下6部分的內容:及時部分軟件測試綜述。共使用4個學時講解軟件缺陷的概念、軟件測試的背景、定義、目的和原則;軟件開發過程和軟件測試的關系、軟件質量的概念和軟件質量管理。

第二部分軟件測試基礎知識。本部分是該門課程的重點,共使用12個學時講解,內容包括靜態測試和動態測試的概念及方法、黑盒測試和白盒測試的概念及方法,其中黑盒測試和白盒測試的概念和方法又是該部分的重點內容。黑盒測試主要講解等價類劃分法、邊界值分析法、因果圖法、決策表法、錯誤推測法等常用方法的概念和使用方法;白盒測試主要講解覆蓋測試(包括語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、組合覆蓋和路徑覆蓋)、路徑測試、最少測試用例數計算等內容。

第三部分測試文檔。內容包括測試計劃、編寫和跟蹤測試用例、缺陷管理,共用6個學時講解。

第四部分運用測試技術。該部分主要講解軟件測試三大階段單元測試、集成測試和系統測試的概念和方法,其中系統測試具體分為配置測試、兼容性測試、文檔測試、軟件安全性測試、恢復性測試、壓力測試、性能測試、正確性測試。綜合所學知識完成一個網站的測試實例。該部分共使用8個學時的時間。

第五部分軟件測試自動化。共用4個學時講解和演示目前常用的自動化測試工具。

第六部分軟件測試的現狀和未來。由于該課程是在大四上學期開設,學生都面臨畢業找工,所以設計2個學時針對畢業學生講解軟件測試職業以及對測試人員的要求。

為了保障軟件測試課程的教學水平,提高教學效果,我們主要采用案例教學法。一些典型的、難度適宜的、有針對性和代表性的案例的收集成為案例教學法實施的難點。案例的收集我們主要通過以下幾種途徑:

(1) 從實習企業中收集

(2) 從學生畢業設計中收集

(3) 從學生上機作業及課堂作業中收集

(4) 從教材及參考書中收集

(5) 從互聯網中收集。案例的選擇遵循典型性、針對性和系統性原則,收集到的案例可以作為理論課講解時的實例,也可以作為實驗課的基本素材。

3.2強化實踐教學環節

軟件測試課程實踐教學環節包括兩個方面的內容:實驗課實踐環節和課外實踐環節。實驗課實踐環節共設計了8個實驗,分別是4個基礎實驗,3個專項實驗和1個綜合性設計性實驗。兩個完整、系統的實驗案例貫穿其中:C/S結構的學生學籍管理系統,來源于數據庫原理課程大作業;B/S結構的網上辦公自動化系統,來源于畢業設計。實驗內容涵蓋了理論課程的大部分重要知識點。詳細實驗項目內容見下表:

要想使學生真正具有獨立承擔軟件測試、軟件配置、軟件維護、軟件實施等方面的能力,18個學時的課堂實踐是遠遠不夠的。所以除此之外,還設計了課外實踐環節。課外實踐有針對性地設計了目前軟件測試方面比較受關注的熱點和難點問題,讓學生進行分組,每組5~8人,確定一名小組長對整個組的成員進行管理,確定小組研究方向,然后就該方向利用圖書館科技文獻資源或互聯網進行深入研究與分析,在學期末每組提交一份學術報告匯報學習研究情況。

軟件測試論文:軟件測試課程教學方法探討與實踐

摘要:本文分析了軟件測試課程的教學現狀,并從課程建設、師資力量、教學方法、實踐訓練等方面對軟件測試課程教學進行了探討,然后簡要介紹了我校軟件測試課程的教學實踐過程。

關鍵詞:軟件測試;課程建設;案例教學;實踐教學

1引言

隨著計算機的誕生,就開始了軟件開發和軟件測試。計算機硬件的飛速發展,使得軟件在整個系統中的地位越來越高,同時對軟件的質量提出了更高的要求,軟件測試是保障軟件質量的重要手段[1]。近年來,國內軟件市場不斷擴大,軟件企業逐漸走入正規,市場需要大量的軟件測試人才。但是各高校并沒有準備好這方面的人才,迫于就業壓力,許多本科生、碩士研究生紛紛通過自學、培訓等途徑獲取軟件測試所需要的技能,去應聘軟件測試職業。鑒于此,高校應該根據社會需要,調整培養方案,培養出大批合格的軟件測試人才。軟件測試屬于軟件工程專業的一個方向,可以依托軟件工程專業,加強軟件測試課程建設,加大軟件測試方面的師資力量,改進教學方法,加強實踐教學環節,培養出具有扎實軟件測試理論基礎、掌握軟件測試方法和具有一定軟件測試經驗的軟件測試人才。

2軟件測試課程的教學現狀

目前,許多高校的計算機相關專業并沒有單獨開設軟件測試技術課程,軟件測試技術只在軟件工程課程的某一章節進行了介紹,并且沒有作為重點內容來要求。軟件測試技術方面的教材,近年來才出現了一些,但質量良莠不齊,對軟件測試技術的重視程度可見一斑。有的學校把軟件測試技術作為選修課,課時比較少,大多注重軟件測試理論的講解和測試方法的介紹,忽視了極為重要的實踐環節,缺乏系統的訓練,離軟件公司對軟件測試人才的要求差距較大。

講授軟件測試技術課程教師的缺乏也是亟待解決的問題。高校中有講授軟件工程的主講教師,他們能很好的講解軟件測試理論和介紹軟件測試方法,但缺乏較好的軟件測試案例和軟件測試經驗,而這正是講授好軟件測試技術課程的關鍵所在。

另外,學生對軟件測試的認識也直接影響他們對軟件測試技術的掌握。一些不規范的軟件公司往往讓新進人員和編程能力較差的人員從事軟件測試,這讓很多學生片面地認為不會編程序的人才從事軟件測試,從而不重視軟件測試技術的學習和訓練。

3軟件測試課程教學方法探討

為了培養符合社會需要的軟件測試人才,進行如下教學措施。

及時,加強軟件測試課程建設。軟件測試課程建設包括制定教學目標、確定教學內容、制定教學計劃和選擇教材。軟件測試課程的教學目標是通過對軟件測試技術的理論學習和系統訓練,使學生了解軟件測試在軟件開發過程中的重要作用和地位,理解軟件測試的基本概念和基本理論,掌握軟件測試技術和方法,能運用軟件測試技術解決實際測試問題,并知道軟件測試職業的特點和對軟件測試人員素質的要求。教學內容分為課堂教學、實驗教學和實踐訓練,課堂教學包括軟件測試基本概念和基本理論、軟件測試技術和方法;實驗教學則是利用所學的軟件測試技術進行軟件測試;實踐訓練有課程設計,并與認識實習、生產實習、畢業實習和畢業設計等環節有機結合起來。軟件測試技術的課堂教學在軟件工程課程結束之后開始,安排在第5、6兩學期進行,實驗教學在這兩學期同步安排;課程設計在第6學期后半學期或第7學期前半學期進行。與軟件測試技術相關的認識實習安排在第4學期后半學期或第5學期的前半學期;生產實習安排在第7學期,畢業實習和畢業設計則根據需要安排在第7、8學期。教材可先選用一些較的軟件測試書籍,然后根據教學實踐與有經驗的軟件測試工程師合編軟件測試教材、實驗指導書和實踐訓練指導書。

第二,加大軟件測試師資的培養與引進。講授軟件工程的教師大多缺乏實際的軟件測試經驗和充足的測試案例,而這正是講授好軟件測試課程的關鍵,可以派遣準備講授該課程的教師到的軟件測試培訓機構進行培訓,然后聯系到正規軟件公司的軟件測試部門實習。另外,引進或聘任有經驗的軟件測試工程師來校任教也是一個很好的辦法。

第三,合理安排教學內容,執行案例教學。軟件測試技術涉及的知識點很多,并且這些知識點需要通過大量規范化的訓練來理解和掌握,分階段教學是一個很好方法。及時階段的教學內容是軟件測試技術的基本要求,包括軟件測試的基本概念和基本知識、單元測試、集成測試以及自動化測試工具的使用。第二階段的教學內容是軟件測試技術的較高要求,包括需求測試、設計測試、系統測試、性測試、驗收測試以及靜態測試中的同行評審等。課堂教學中利用各種測試案例進行教學能使學生更容易理解和掌握軟件測試概念和軟件測試方法。案例教學法需要建立案例庫,向案例庫中增加案例是一個逐漸積累的過程。測試案例可以從教學實踐(包括教師設計的案例和學生練習中設計的案例)、教材、軟件企業等方面收集[2]。教學過程中,理解軟件測試技術時可采用一些簡單的測試案例,綜合訓練時則選擇較復雜的完整案例。

第四,扎實執行實踐訓練。掌握軟件測試技術只有課堂學習是遠遠不夠的,還必須進行扎實的實踐訓練。實踐訓練包括課程實驗、課程設計、認識實習、生產實習、畢業實習和畢業設計。實驗教學在學校專業實驗室進行,通過課程實驗使學生熟悉軟件測試過程,加深對軟件測試方法的理解。實驗內容按測試方法組織,測試案例由實驗指導教師設計或從案例庫中抽取,根據測試對象要求學生設計測試用例、編寫測試程序、測試和書寫測試報告。實驗教學的學時有限,只能使學生達到軟件測試入門級的水平。課程設計是對實驗教學的補充,針對某課程進行的綜合實踐訓練。軟件測試技術課程設計以一個小型的軟件項目為對象,在學校專業實驗室中進行軟件測試技術的綜合訓練,訓練內容包括需求測試、設計測試、單元測試、集成測試、系統測試和驗收測試,訓練要求寫出規范的測試報告、設計合理的測試用例、進行人工和自動測試并分析測試結果,當項目相對復雜時,可以多名學生合作完成。認識實習和生產實習是高校專業教育中兩個重要的實踐環節,組織對軟件測試感興趣的同學利用這兩個環節進行軟件測試技術的學習和訓練。認識實習通過參觀軟件公司測試部門的軟件測試過程、聽取有經驗軟件測試工程師的專題報告等方式進行,加深學生對軟件測試技術的理解和加強學生對軟件測試職業的認識,激發他們對軟件測試職業的興趣。生產實習則需要有軟件測試訓練基地(通過學校自建或與軟件公司合建實現),在實習基地每個有經驗的軟件測試工程師單獨指導幾名學生進行實際項目的測試,通過該項訓練,使學生認識到實際項目的軟件測試與實驗室進行的軟件測試的區別,找出自己的差距,通過自己學習和向工程師學習不斷提高自身軟件測試水平。畢業實習和畢業設計環節則組織有志于從事軟件測試職業的學生進行強化實踐訓練,由學校教師和有經驗的軟件工程師共同指導,要求學生獨立進行實際項目的測試,每個階段由指導教師評價測試用例、測試和測試報告的質量,使學生逐步達到軟件公司對軟件測試人才的要求。

第五,引導學生正確認識軟件測試技術和軟件測試職業。通過任課教師的講解、具有豐富經驗軟件工程師的報告、自己從各種媒體的學習等方式使學生了解軟件測試技術的重要性和廣闊的就業前景,激發他們學習和掌握軟件測試技術的興趣;同時要讓他們認識到軟件測試職業對軟件測試人員的要求較高,不僅要掌握軟件測試技術,還要具備軟件系統分析、軟件系統設計和軟件編程等方面的能力。由于軟件測試人員的工作是找出軟件中錯誤,并經常同系統設計者和編程人員交流,要訓練和培養學生具有嚴謹的工作習慣、良好的溝通能力和團隊合作精神。

4軟件測試課程教學實踐

我校計算機學院開設了軟件工程專業,幾年前專業建設領導就意識到市場對軟件測試人才的需求,及時修訂了專業培養計劃,設立了軟件工程專業的軟件測試方向。具體措施如下:

及時,進行了軟件測試課程建設。制定了軟件測試教學計劃,設立了軟件測試課程,增加了軟件測試課程設計,依托軟件工程實驗室建立了軟件測試實驗室,并開始建立軟件測試案例庫。

第二,加強軟件測試技術師資建設。從正在進行軟件項目開發的教師中挑選擔任軟件測試課程教師,并對他們進行短期培訓;同時從軟件公司(軟件工程專業學生的實習基地)中聘請有經驗的軟件測試工程師定期進行講座,并與任課教師進行交流。

第三,注重軟件測試實踐環節。依托軟件工程專業的實習基地,使部分對軟件測試感興趣和有志于從事軟件測試職業的學生的認識實習、生產實習、畢業實習和畢業設計在實習基地著重進行軟件測試的訓練。經過幾年的摸索和努力,2006年軟件工程專業畢業生中已有一批學生成功應聘到軟件公司從事軟件測試工作。

5結束語

隨著軟件公司規模擴大和正規化,社會需要大量的軟件測試人才,這給就業壓力極大的畢業生帶來了機遇,同時軟件公司希望招收有技術和經驗的員工,又給畢業生和高校帶來了挑戰。軟件測試人才培養剛剛起步,很多工作處于摸索階段,需要學校、教師和學生的共同努力,為社會培養出大批合格的軟件測試人才。

軟件測試論文:高職軟件測試專業的構建與探索

摘要:本文從軟件產業發展、軟件企業測試職業崗位出發,解析軟件測試專業人才的培養目標及定位,并以番禺職業技術學院的軟件測試專業(方向)的構建思路、課程體系、教學資源、專業師資,以及教學模式等五個方面說明了軟件測試專業在高職教育中的構建思想與探索過程。

關鍵詞:軟件測試;專業構建;建設思路;實施策略

1專業構建背景

1.1軟件產業發展的需求

軟件產業發展和技術進步帶來了對軟件測試專業人才的迫切需求。在國內,僅在2007年2月的網上招聘信息搜索中,廣州、深圳兩地招聘軟件測試工程師的IT企業數量就超過了60多家,企業的規模涵蓋了大、中、小各種類型,人數超過了六七百人,這在近幾年的IT人才招聘廣告中是不多見的,反映出軟件企業測試人才的嚴重短缺。高級的軟件測試人才更是“一將難求”。這種趨勢引發了專業性的軟件測試機構和組織的迅速產生和發展,企業與社會培訓機構舉辦的各類軟件測試技術培訓正成為IT技術培訓的新熱點,其驅動力正是來自軟件產業對測試人才的強勁需求和不斷提升的人才價值。根據對軟件業未來的發展預測,測試人才的需求將持續保持旺盛的態勢,就業前景十分看好。其實,這也從另一角度反映出現代軟件開發與測試的關聯關系,軟件產品追求工程質量的趨勢。

1.2軟件測試人才的供需矛盾

國內軟件業普遍存在軟件測試人才的供需矛盾:一方面,企業對軟件測試人才有大量需求,但又苦于招聘不到合格人才;另一方面,許多高校應屆畢業生和開發人員有志從事軟件測試工作,卻因為沒有測試經驗而被拒之門外。產生這種矛盾的根本原因是由于我國軟件業長期“重開發、輕測試”,很多中、小型軟件企業基本沒有設置專門的測試部門和組成專業隊伍,這導致軟件技術人才不具有測試的知識和工作實踐能力,同時,企業也缺乏相關的培養機制,一旦需求(如軟件外包、產品系列化、規模化、專業化),即造成業內的軟件測試人才嚴重短缺。

與此同時,國內高校計算機教育(本、???也忽視了這一領域,截至目前,甚至大多數高校的軟件與計算機類專業中都未曾設置專門的軟件測試課程,所以應屆畢業生自然無法適應和勝任軟件測試的崗位工作,也是屬于“情理之中”的事情。

1.3國內高校軟件測試教學現狀分析

國內高校軟件測試教學總體屬于起步階段,根據近幾年的專業教學調研與交流表明,已開設了軟件測試課程的院校大約只占計算機類或軟件專業院??倲档?~8%,開設軟件測試專業的院校更是“鳳毛麟角”。這一方面表明了高校辦學自覺適應社會和行業需求,促進技術發揮和進步的意識依然不夠強烈,積極培養軟件職業技術人才的認識不到位,另一方面,也反映出針對軟件測試領域,對其學科與技術的研究、教學的投入不足,人才培養的缺失,最顯現的現象是這方面的師資嚴重缺乏,在軟件產業大發展和軟件測試技術發展迅速的形勢下,不能為社會培養這方面的高級人才、適用人才。

當前,針對軟件測試職業崗位的工作需求,一些軟件企業與行業的培訓機構在積極開展測試人才培訓工作,但培訓內容比較單一、且實用化,基礎建立不足,呈現了社會培訓“接力”高校計算機類專業及畢業生的過程,經過短期培訓而“應急”企業需求。從培訓系列化、職業化的測試人才角度考察,這種培訓屬于非專門化、專業性的培養和教育。

2專業構建思路

2.1軟件測試職業崗位分析

要落實好高職教育“以就業為導向”的辦學方向與策略,專業培養目標的確定應是以職業崗位分析為前提的。軟件測試職業是軟件行業新興的職業門類,目前規范的軟件企業都在開始建立軟件測試職業體系,逐步形成軟件測試員、軟件測試工程師、高級軟件測試工程師、測試項目經理、測試部門經理等級的職業系列崗位。這其中,軟件測試員和軟件測試工程師作為軟件工作的“主力軍”,應理解軟件測試基本理論,熟悉軟件測試標準,掌握實際測試技能,承擔和完成具體測試任務。而高級軟件測試工程師則要求擔任較復雜的軟件分析、測試策略制定等任務,進行測試規劃、測試用例設計和管理以及對測試結果進行分析。測試項目經理和測試部門經理則更偏重于管理,要求具備深厚、寬廣的軟件測試理論和質量管理知識與能力,承擔對整個測試流程的管理和監督任務,具有能夠使得整個測試團隊或部門高效工作的組織管理能力。這說明軟件測試職業崗位的分布已具有層次性,對報考和學習軟件測試專業的人來說,可以設計職業生涯的規劃。

仔細分析任何一個成熟的軟件企業,為完成軟件產品的開發都需要三類人才:及時類是懂技術、行業知識和管理的軟件高級人才,即“軟件金領”;第二類是系統分析及設計人員,稱為軟件工程師,即“軟件白領”;第三類是能夠熟練編程的程序員,即“軟件藍領”。類似地,軟件測試行業的人才同樣也可劃分為三類:及時類是作為高級軟件測試人才的測試項目經理和測試部門經理,可稱為“測試金領”;第二類是具有豐富實踐工作經驗的高級軟件測試工程師,可稱為“測試白領”;第三類是承擔基礎測試工作的軟件測試員和軟件測試工程師,可稱為“測試藍領”。一個成熟的軟件產業從人力資源結構上應該呈金字塔形狀,不僅需要處于頂端的、決定產業方向和邊緣領域開拓的人,也需要從事產業日常具體工作的人員,因此,位于金字塔底端的“測試藍領”與“軟件藍領”都是軟件企業中最能直接體現產品價值和創造利潤的主力,也是需求數量較大的一類人才。

2.2專業人才培養目標定位

目前國內測試行業大量需求的是軟件測試員和軟件測試工程師,由于歷史原因,測試人才的培養、培訓屬初級階段,要建立一只龐大的“測試藍領”隊伍的任重而道遠。社會需求是高職教育發展的較大動力,“以服務為宗旨”的職業教育理念就是要根據經濟和社會發展的要求,培養多層次、多樣化的技能型人才。作為高技能型軟件技術人才培養中堅力量的高職院校,在軟件專業人才培養方案中設立軟件測試專業將是其辦學的必然趨勢。

高職院校的辦學定位是服務于地方經濟,在人才培養定位及專業設置上,更要及時了解地方經濟的發展趨向,充分考慮地方經濟對人才培養的需求,適時地更新專業設置,合理調整培養目標、課程體系和教學內容,以更好地服務于地方經濟,同時學校在不斷滿足市場需求的同時,自身也得到更快的發展與提高。番禺職業技術學院位于廣州,面向軟件產業發達的廣州地區和‘珠三角’辦學。廣州市政府已將軟件與動漫作為新時期廣州國民經濟發展的支柱產業,區域性的軟件產業園和企業將以更大的規模和更快的速度發展,培養高素質的軟件測試專業技術人才成為我們刻不容緩的任務和職責,以滿足學生就業和社會對此類人才的需求,為發展廣州軟件業服務。

通過對廣東省高校(高職和本科)相關專業辦學情況的調研,針對軟件企業的需求和職業崗位做出分析,確定了軟件測試專業的人才培養目標是:面向軟件企業或其它各類企事業單位對軟件測試人才的需求,以軟件測試員和軟件測試工程師崗位需求為導向,掌握軟件測試理論知識和業界主流的通用測試技術,能夠承擔并完成實際測試工作任務,具有工程實踐能力,并具有良好的職業道德、良好的團隊合作精神和可持續發展能力等綜合素質的高技能型軟件測試人才。

3專業構建策略

3.1課程體系特征

高等職業教育倡導“能力本位”,以培養學生技術和職業崗位應用能力為主,具體體現為培養“基礎理論知識適度、技術應用能力強、具備職業化特征”的專門人才。高職教育的這一鮮明特征,決定了軟件測試專業課程體系的構建將堅持以培養崗位職業能力為目標,突出軟件測試的職業特色,適應軟件企業測試崗位的工作需要,培養針對軟件測試技術應用的高素質技能型專門人才。

針對軟件測試員、軟件測試工程師崗位,以職業所需的知識和技能為先導,采用“逆向制定法”設計專業課程體系。即先根據測試職業工作內涵,分析對應知識、技能與素質要求,構造專業課程體系及層次,并建立課程標準,確立每門課程的知識與技能要求,進行內容的甄選與整合。建立以技術理論和技術應用為主線的課程體系架構,實現知識傳授與技能培養并重,體現知識、能力、素質培養“三合一”特征。

軟件測試職業特征決定了軟件測試專業課程體系的知識覆蓋面要求較廣、并且較深。軟件測試是一門動態的、交叉性學科,跨越軟件工程的整個領域,進行測試工作的人員必須對軟件開發的整個過程有相當的理解和掌握。軟件測試工作主要針對的是由開發者編寫的程序(這里的程序是廣義概念,實際上涵蓋所有軟件開發過程中的每個環節),而且在測試過程中也需要編寫、修改測試腳本等等,因此測試人員必須具有相當的程序閱讀與編制能力;其次,任何一個被測軟件都是運行在特定的系統環境下,包含了硬件和軟件環境,測試人員必須掌握計算機系統軟、硬件的基本理論與知識,網絡系統的理論與知識,系統平臺的知識與環境等等,內容十分豐富,要求對其具有一定的綜合性的掌握與運用能力。因此,該專業課程體系中除了設置那些“看得見”的職業能力課程,如軟件測試基礎、軟件自動化測試技術、軟件測試管理等大類,以及分為面向對象的測試、基于WEB的系統測試、性能測試、嵌入式系統測試等幾個類別,具體的黑盒測試技術、白盒測試技術等等,還需要開設那些“看不見”但會對專業能力培養產生決定作用的課程,如傳統計算機科學與技術的專業基礎類課程,如,計算機系統組成、操作系統、數據結構、計算機網絡、關系數據庫、軟件工程等等,以及十分重要的程序設計類課程(C/C++程序設計、Java程序設計、Web應用開發技術等)。其次,課程體系還包含為從事職業工作必需的協作能力、溝通能力、職業態度訓練的課程。

總之,在專業課程體系構建當中,對軟件測試基礎理論知識的涵蓋原則是“必須的不缺”,對技術原理(方法)的分析原則是“舉一反三”,對實踐技能訓練的原則是“項目運作”,使得學生通過專業課程體系的學習,能具備軟件測試的必備專業知識和實際工作能力,能基本承擔起軟件測試的工作任務,為日后從事軟件測試職業和專業持續發展奠定必須的理論與實踐技能基礎。

3.2教學資源建設

教學資源建設是專業教學的保障條件,在這方面的建設從四個方面著手,主要進行專門教材建設、實踐教學環境建設、測試工程運用平臺搭建、網絡教學平臺及資源建設。

軟件測試是伴隨軟件工程過程的活動,是一項復雜、系統和綜合性較高的工作。要真正認識領會軟件測試的知識和掌握其技能,能夠擔負起實際工作任務,需要通過大量的實踐教學活動,以“學中干、干中學”的方式培養學生的核心專業技能,實現工學結合。因此,在軟件測試專業構建中,需要搭建一個適合實踐教學需要和體現崗位工作內容的實踐教學環境,配備相應的軟件測試工具與測試平臺,呈現真實的軟件企業環境與崗位工作氛圍。

為此,我們在2004年底就建成了集教學、培訓、開發、研究四大功能于一體的軟件技術與工程中心,擁有250多個工作席位,包括項目經理/工程師席位30個,技術工位220多個(學生席位),配備高性能服務器群,包括Linux服務器、Web服務器、數據庫服務器、Websphere中間件服務器等,實現了中等軟件企業規模的專業技術實踐教學基地。該中心引入軟件企業的構建模式和運作機制,系統功能完善,軟、硬件設備配置齊全,購置和配備了IBM Rational Suite組件、MI WinRunner、JUnit等與業界主流運用同步的測試工具及平臺,可實現校內外資源的充分獲取與信息數據的共享,使教學環境與氛圍接近企業工程環境及運行條件,為測試實踐教學和技術服務提供了優良環境和條件,提供“實戰型”、“工程化”的教學環境。

3.3專業師資隊伍培育

軟件測試專業作為一個新型計算機類專業,師資問題首先要解決。截至目前,高校內的大部分計算機專業教師較少系統的開展軟件測試理論研究和測試工程的實踐,因此,軟件測試專業知識不多,教學經驗幾乎沒有?;谶@種情況,建設一支能夠滿足專業教學和工程需要的師資隊伍,成為了軟件測試專業構建的迫切任務。針對這個普遍問題,該專業師資隊伍的建設可以通過引進和培養兩種途徑實現,采取“請進來”與“走出去”相結合的方式進行。

在師資引進上,我們的做法是一方面通過公開招聘引進具有豐富實踐經驗的軟件測試高級人才,加強校內自身師資力量;另一方面則通過聘請來自企業和行業一線(如IBM 廣州分公司、廣東省軟件評測中心、廣東省Linux公關服務技術支持中心等企業與機構)業界的專家擔任兼職教師,以開設講座、直接授課、面對面交流等多種方式培訓指導師資,使教師能夠加深對軟件測試理論的認識,感受測試技術在軟件工程實踐中的運用和技術的新發展。

對內的師資培養培育,主要采取系統地測試理論知識學習和有針對性的專項業務培訓,學習和研究國外高校軟件測試課程,學習和研究軟件測試技術與理論,深入理解和掌握相關理論知識、奠定扎實基礎,具備工程實踐能力,提高專業水平和業務能力,承擔起專業課程的理論與實踐教學任務。2004年以來,多批次的選派教師參加由業內知名企業或行業組織舉辦的軟件測試中、短期培訓進修,組織教師參加軟件工程、軟件測試專業學術會議及各類教學研究活動,開展與知名軟件企業的產學積極互動,與國內多所高校進行軟件測試課程教學與測試實踐的交流,同時,鼓勵和督促專業教師每年至少到軟件企業參加一個月的實踐活動,提高教師的工程實踐能力。

軟件測試課程在我院軟件技術專業中設置和開展教學已達4年,已有4屆(6個教學班)的教學歷程和經驗,師資隊伍通過“教學實戰”得到了鍛煉和成長,使專業水平與教學能力得到提高。

3.4教學模式改革

我們在軟件測試專業構建初期就比較重視對傳統學科教學模式的改革,這是緣于學科教育對于職業教育的諸多不適應。貫徹“任務驅動、項目導向”的教學策略,推行學生自主、探究性學習,采用“一體化”教學方式,實施以項目教學為導向的新型教學方法是軟件測試專業新的教學模式體現。

改變傳統的先在教室上理論課、再到實訓室上實踐課的分割模式,將實訓場所設計成既能滿足實踐教學要求,又可在現場進行理論教學的布局。在組織教學的過程中,通過導向任務、講解要領、操作示范演練、訓練與逐個指導等環節,把培養學生知識與技能單元能力的過程設計為邊講邊練的過程,注重理論知識與實踐操作的穿插安排,做到理論教學與實踐教學一體化,教學內容與實踐內容一體化,調動和保持學生學習熱情,保障教學質量與效果。

對專業課程體系中適合引入項目教學的課程,設計、規劃教學項目,確定內容和流程,提出具體的要求和任務。通過引入這種理論知識學習和技術實踐能力相結合的項目教學過程,達到校內學習和實際工作的一致性。這類課程的教學過程以實際項目為目標,圍繞其確定的任務的解決策略和過程展開,即學生需完成規定的任務和規定的動作與步驟,以完成任務的質量、數量、時間等作為考核基本依據。在項目教學中,學生成為教學的主體,教師角色轉變為“教練”身份,通過進行引導型的講解、案例分析、測試“動作”過程示范、組織討論等一系列互動交流形式,加深學生對知識的理解、對技能的掌握,培養邏輯思維能力和實際工作能力,建構知識體系。

4結束語

在高職院校中構建軟件測試專業是源自對專業測試人才的供給遠不能滿足軟件產業發展的需求而做出的一項辦學創新。截至目前,廣東省乃至全國已開辦了軟件測試專業的學校為數還不多,對于開辦軟件測試專業仍處于實踐探索階段。

軟件測試論文:高職“軟件測試技術”課程存在問題和應對措施

摘要:本文在分析軟件測試的市場需求和現狀的基礎上,對高職軟件測試的教材編寫,師資隊伍建設,教學方法改進等方面的問題進行了探討。

關鍵詞:高職;軟件測試;隱性知識;協同學習;項目實戰

1引言

軟件測試作為軟件產業的重要門類發展迅速,其專業崗位迅速擴大、人才需求旺盛、職業價值日益提升。然而,由于行業內的軟件測試人才嚴重短缺,企業對軟件測試人才有大量需求但苦于招不到合適的人;另一方面,很多高職應屆軟件專業畢業生因為沒有軟件測試經驗而被拒之門外。產生這種矛盾的原因是,對于眾多的高職院校來說,軟件測試教學處于起步階段,經驗和積累不足,尤其是高職的軟件測試課程和教學特點尚未形成,需加以改進完善。

2市場需求和現狀分析

隨著IT技術應用的發展,國內軟件行業對軟件測試工程師的需求將超過20萬人。[1]

我國大學本科課程中普遍不設專門的軟件測試課程,軟件測試僅作為軟件工程課中的一個章節被提到,學生在認識上多為重開發、輕測試,畢業后直接進入測試行業的為數不多。

高職院校軟件專業一般在第三學年單獨開設一門軟件測試課程,限于學時,總體來說,學生通過課程的學習,能掌握軟件測試的基本概念和基本理論、基本測試技術和方法,但真正運用軟件測試技術分析和解決實際崗位的能力還不夠[2]。我國50人以下的軟件企業占了70%以上,一般都沒有建立軟件測試部門[3],這部分的中小企業希望具有工作經歷的軟件測試員直接上手開展工作。

社會培訓機構比較重視市場經濟,他們一般開設約210學時的課程,學員來自尚未找到工作的往屆畢業生和應屆生,主講教師曾在電信、證券、金融領域擔任過軟件測試項目負責人,課程結束后保障推薦就業,中小企業也愿意接受這批學生中的者。但培訓價格不菲,而且培訓機構眾多,質量也難免良莠不齊。

3存在問題和應對措施

高職“軟件測試技術”課程面臨的主要問題分析如下。

3.1教材建設

國內面向高職的軟件測試教材不多,近來出版的幾本教材對軟件測試所涉及的基本概念、基本工作過程的理論知識和應用知識闡述雖然很系統詳盡,但還是存在共同的問題:

1) 缺少大型集中項目功能測試、性能測試實例的全過程,即沒能把比較分散的知識點和技能點進行綜合分析。

2) 重技術實現、輕文檔工作,建議增加如何編寫“測試計劃”和“測試報告”,給出測試記錄、測試日志的模板。同時,可列出軟件測試行業中長期積累的經驗,例如軟件測試的10大原則、10大實踐等,這些內容很實用,學生走上工作崗位就馬上能用到。

3) 教材中的“測試工具使用”流于產品使用說明書,難以引起學習興趣,要站在學生學習和認知的立場上來考慮,花時間寫實訓指導,使學生在最短時間內對這一專項技能掌握和熟練。

4) 測試工具要采用中小IT企業流行的軟件,例如功能測試采用Mercury QuickTest Professional (QTP) ,性能測試采用Mercury LoadRunner,測試管理工具可用開源的并行版本控制工具CVS,采用Test Director或同類新版Quality Center (QC) 。要注意防止兩個極端:一是避免教市場已經不使用的測試工具;二是避免教價格昂貴的軟件,如IBM Rational的ClearCase、ClearQuest、Functional Tester、Performance Tester,盡管功能優越,但市場占有率低,只有軟件成熟度能力CMM高的大型IT企業才會使用。

3.2師資隊伍建設

1) 高職在軟件測試教學的過程中,常采用案例教學與實際項目嵌入到課程教學和設計中,這種指導實際動手能力的經驗和技藝性知識比重偏高,它是通過不斷的積累和創新,主要蘊藏在個體頭腦中的隱性知識。因此,提升教師自身的這種隱性知識顯然比充實書本上的顯性知識更為重要。

2) 促進教師隱性知識的先行化,實現教師的終身的專業成長。在教師教育和課程發展中,要特別重視教師的專業反省能力和教師專業經驗、系統化的教育理論和方法,而且要求教師探索和學習處于隱性狀態的專業知識。

由封閉型向開放型轉變。在知識更新速度不斷加快的今天,教師應深入軟件企業及時線,了解行業發展的動態,將近期的技術、觀念等帶進課堂,使學生得到的知識與社會同步。教師的個體知識應該不斷充實和提升,成為一種開放的、動態的知識,即知識自我調節、自我管理。教師到企業掛職頂崗、或參與IT企業科研項目、或取得行業資格證書,不失為隱性知識的先行化的有效途徑。

3) 來自IT企業的軟件測試工程師具有豐富的項目實戰經驗,是軟件測試知識應用和創新最寶貴的資源,有條件的可邀請來校兼職授課。同時必須采取協同學習的有效措施充分挖掘其研究成果。協同學習是對現有學習技術系統框架的突破:在信息、知識、行動之間建立有機的、協同發展的聯系;在交互層面,提供內容與學習者的深度互動;在通信結構層面,提供信息聚合機制;在信息加工層面構建群體學習機制。簡而言之,歸納為“深度互動,信息匯聚,集體思維,合作建構,多場協調”[4],形成知識共享。

3.3教學方法的改進

課程應基于建立一個內容充實的職業技能實訓體系,采用全新的“場景教學法”,以真實工作場景為核心,利用項目導向的角色模擬方式,提倡“以用為本、學以致用”的教學方法:以工程經驗為指導,采用任務驅動法,強化實戰技能,輔以實際企業測試項目,使用角色模擬的方式。

1) 工作場景。針對企業實際工作流程和工作場景,結合已經實際投入使用的軟件項目的測試資料和軟件代碼,進行項目分析和任務分解,重現在企業中進行軟件測試工作的任務環境。

2) 項目主導。所有知識點和技能都是通過一個或者幾個項目來組織的,學生通過可擴展的項目案例來逐步學習知識和技能;所有的實踐都是項目中的一個實際任務,熟悉項目測試過程中常見的技術、流程、人員協作問題,并掌握相關的解決方法。學生通過實踐可具備完成一種任務的能力。

3) 角色模擬。學生在實際動手操作的課程和項目實訓過程中,使用真實的企業項目,真實的企業工作流程和工具,模擬項目組中各種角色,協同完成項目和任務,體驗和掌握各種角色的工作技能和工作經驗。

4) 任務分解。在為完成整個項目而必須掌握的概念和知識環節的講解上,將整個項目劃分為多個子任務,再分析每個子任務需要的知識、技能、素質要求,并通過完成子任務的形式來組織學習內容、設計課程體系。

5) 六步教學。知識和技能的傳授和自學都是從具體到抽象、從特殊到一般,按照以下6個步驟來組織的:提出問題、分析問題、解決問題、總結出一般規律和知識/技能、擴展知識/技能、解決更高級的類似問題。

6) 團隊協作。在授課過程中,學生將被劃分為幾個團隊,每個團隊將根據課程內容和講師的安排,通過技術研討、實際操作等手段,合作完成一個任務和項目。

7) 動手能力。為了使學生的知識面和思路有所擴展,鼓勵學生自己動手,通過實際操作課程中的實驗和進行項目演練,培養學生舉一反三的能力,從而幫助學生掌握重點技術的應用,為日后完成更大的項目積累經驗。

4結束語

隨著計算機技術發展,對軟件功能提出的要求也越來越高,如何開發出高質量的軟件已成為一個迫切需要解決的課題,因此軟件測試的地位也得到了應有的重視,這是一個非常有利于提升個人職業發展空間的崗位,因為它剛剛處于起步發展階段,對人才的需求量大,非常適合缺少工作經驗的高職軟件專業應屆畢業生。因此,上好軟件測試課程,制定與相應測試職業“接軌”的教材和教學方法,使學生能系統學習測試知識和掌握測試技能,落實“以就業為導向”的辦學方向與策略,應該成為今天高職軟件技術專業的選擇。

軟件測試論文:兩年制軟件測試技術人才培養模式的研究與實踐

隨著我國軟件產業的快速發展,軟件企業也逐漸規范,軟件測試人才也逐漸成為一種專門的技術人才,我國對軟件測試人才的需求也在不斷增大。但專門的軟件測試人才的培養卻很少,通常是在軟件工程及相關專業開設一門“軟件測試技術”課程,作為對測試技術的基本了解來講授。2003年以來,隨著35所全國示范性軟件學院的建立,以及各地兩年制軟件職業技術學院的興起,一些軟件學院開始培養專門的軟件測試人才。由于教育部沒有設置軟件測試專業,所以一般是作為軟件技術或軟件工程專業中的軟件測試方向來設置,我院是作為軟件技術專業(軟件測試方向)來開設。作為一個新的職業技術人才培養方向,無論是在培養方案、課程體系等方面,都處于探索中,還沒有成熟、完善的培養模式。

我院從2004年即開設了軟件測試方向,在培養方案、課程體系、實踐環節等方面作了大量的探索、研究和實踐工作,取得了一些成效,也遇到了許多問題。本文對我院的軟件測試技術人才的培養模式進行分析和總結,希望能拋磚引玉,與同行交流。

1兩年制軟件測試方向課程體系的特點

兩年制軟件測試人才培養的特點主要有:

(1) 學制短,只有兩年;

(2) 目標是培養實用型軟件測試技術人才;

(3) 要具備一定的編程能力。

上述特點決定了軟件測試人才的課程體系的特點:

(1) 方向即專業由于學制短(兩年),除了第四學期的畢業實訓,實際上真正上課時間只有三個學期。所以軟件職業技術人才不能像本科生培養一樣,到大三才分方向,而必須從入校就開始分,所以軟件測試方向實際上是按軟件測試專業來培養。

(2) 開發與測試兼備一個合格的軟件測試人員必須具備基本的編程能力和軟件開發人才的基本素養。所以軟件測試方向的課程除了測試課程外,還要掌握軟件技術的基本課程,包括數據結構、數據庫、計算機網絡、軟件工程,以及至少一門主流程序設計語言等。

(3) 課程緊湊、課時多由于相對于其他專業來講,軟件測試方向的學生要學習更多的課程,所以課時就多,課程安排緊湊。

(4) 實用性和實時性作為實用型軟件測試人才,學生必須掌握當前主流的測試工具、實用測試技術和方法等。所以課程體系必須要具備實用性和實時性。

2課程的設置

在設置課程時,我們進行了大量的調研,經過2004級和2005級兩屆學生的培養實踐,針對培養效果,進行了一些分析和課程改革。目前2006級的課程設置是在掌握基本的軟件技術基礎知識和一門主流程序設計語言的基礎上,開設了“軟件測試技術”、“功能測試與性能測試”、“測試管理”等軟件測試專業課程。

主要專業課程設置見表1。

從功能上講,課程的設置可以分成5個部分,對應學生不同層次能力的培養。

及時部分程序設計能力、工程化開發思想的培養。該部分的課程主要包括VB、Java、數據結構、計算機網絡、數據庫、軟件工程等,主要是軟件技術基礎知識的學習,培養學生基本的程序設計能力,使之具備軟件技術人才的基本素養,同時軟件工程等培養學生工程化和規范化的軟件開發思想。采用Java作為主要編程語言,將另一主流語言C#作為選修課,體現課程設置的靈活性。

在編程的課時和基礎訓練上和軟件技術專業編碼方向的學生一樣,設置的原則:首先是一個軟件測試人員必須具有基本的編程能力和經驗,才能更好地搞好軟件測試工作。第二是根據當前軟件企業的人才需求考慮學生的就業,因為河南省絕大多數軟件企業規模都較小,設置專職的軟件測試崗位的較少,程序員通常又是測試員,所以使學生既能編程又能測試,拓寬就業渠道。

第二部分軟件測試基礎知識。主要是“軟件測試技術”課程,側重于測試理論和技術的掌握、搭建測試環境、測試工程師的基本職業素養培養。使學生在學習編程的同時,掌握對應的測試技術概念和基本知識。為進一步的實際項目測試打下基礎。該部分對應有2周的一級集中實踐課題,進行基本的測試訓練。

第三部分主流測試技術和工具的掌握和使用、實際測試能力的強化和提高。對應的課程是“性能測試與功能測試”,該課程主要是結合實際的軟件項目,介紹主流的測試技術和測試工具的使用,但并不只是性能測試與功能測試。該部分對應有3周的二級集中實踐課題,分組進行實際的測試訓練。

第四部分測試項目管理能力培養。主要課程為“軟件測試管理”,培養學生工程化的測試思想,學習主流測試管理方法和工具的應用。該部分對應有3周的三級集中實踐課題,訓練項目的測試過程管理和測試管理工具的使用。

第五部分綜合測試能力培養,即畢業實訓。該實訓為一個學期,學生到軟件企業或實訓基地參加實際的軟件項目開發和測試,進行實境實習,綜合地運用所學的測試和編程技術。

3實踐環節

培養過程的實施可以歸結為“夯實基礎,強化訓練”,夯實基礎即培養基本的編程能力和掌握基本的測試技術。強化訓練即強調實際能力的培養,通過對實際的軟件項目進行測試訓練,使學生熟練掌握主流的測試技術和測試工具的使用。

為了加強實際能力的培養,在正常教學的實踐外,我們還在第1~3學期分別設置了一級、二級、三級集中實踐課題,并要求軟件測試方向的學生要與軟件編碼方向的學生組合協作進行,專門負責相應的軟件測試工作。使學生感受到測試工作的重要性,同時培養其協作能力。一級和二級實踐課題主要為驗證型,三級實踐課題則為設計型。

第4學期為畢業實訓,采用實地場景教學,對實際的應用項目進行測試,角色模擬,項目驅動。該階段從測試需求分析開始,一直到測試總結報告的撰寫,貫穿一個完整項目的開發和測試整個過程。是對學生所學知識的一個總結和綜合利用的強化。

各實踐環節環環相扣,循序漸進,由易到難,由單一到綜合,形成一個完整的實踐體系。

集中實踐環節安排見表2。

4測試工具的選擇

由于軟件測試工具較多,而兩年制課時太緊張,所以只能學習常用測試工具的使用。我們選用的主要自動化測試工具見表3。

通過測試工具的使用,可以加深對測試原理和理論的理解,掌握主流的測試技術和方法。

5遇到的問題及采取的措施

軟件測試人才作為剛興起的職業技術人才,在培養過程中必然會遇到許多問題,相信這些問題也是其他院校在培養軟件測試人才時遇到的共性問題,我們針對這些問題采取了許多有效的措施,不斷改進。

(1) 對口就業較難

主要原因是我國“重開發,輕測試”的現象過于嚴重,很多軟件公司沒有專門的測試部門,測試工程師太少,開發人員兼作測試工作的現象十分普遍。但并不是說我們的培養方向不對,這正說明軟件測試工程師職業還沒形成規模,正在興起時期。據2006年12月國家信產部“2006中國軟件質量年會”公布,軟件測試人才為2006年最緊缺的人才之一,在上海、北京等地,軟件測試工程師已成為“地位高,待遇高”的“雙高”人才。企業規范化需要規模和過程,軟件質量問題將成為軟件企業能否繼續發展壯大的關鍵所在,越來越多的企業管理者意識到產品測試的重要性,所以軟件測試工程師屬于朝陽職業。

當然我們也采取了有效措施,如在前期強化基本的編程訓練,使學生既能搞開發,也能搞測試,提高就業的靈活性。

(2) 教材少

軟件測試作為一個新的專業(方向),目前還沒有成體系的軟件測試系列教材,所以在選教材時只能選與教學大綱內容相近的教材或技術書,或自己編寫講義。但給講師授課帶來許多困難。當然要很好地解決該問題需要教育管理部門和眾多同行的共同努力。

(3) 測試項目實例缺乏

由于測試項目都屬于公司內部資料,一般很難獲得,不像通用應用程序模塊一樣在網上可隨意找到。對此我們組織設計了一些測試案例,同時從合作的軟件公司獲取了一些實際項目案例,使學生能在實境中實踐。畢業實訓時大部分學生則直接到軟件公司進行實地實習。

(4) 師資力量薄弱

師資是保障教學質量的關鍵,開始時師資力量較薄弱,我們采取的措施有:挑選有實際項目開發經驗的老師來授課、從IT公司引進專業測試工程師、將有一定測試工作經驗的老師送出去加強培訓等。另外還不定期聘請IT公司的測試專家來做專業講座,拓展學生的知識面。

6結束語

經過兩屆學生的培養,我們在培養模式和課程體系等方面不斷改進,逐漸完善和規范化,日臻適合軟件測試職業技術人才的培養目標,學生質量也不斷提高。但作為一種新的技術人才的興起,軟件測試工程師的培養需要社會環境的支持,特別是軟件企業的規范化和規模化,以及業界對軟件質量和測試工作的重視。當然,作為學校,培養社會所需的人才是我們的職責,所以我們必須根據市場人才需求,不斷進行教學改革,培養高質量的軟件測試人才。

軟件測試論文:獨立學院計算機專業軟件測試職業能力培養探討

摘要:本文結合我院計算機科學與技術專業軟件測試職業能力培養的經驗和體會,介紹了獨立學院的軟件測試職業能力培養的目標、實施過程,以畢業設計為例指出軟件測試職業能力過程中存在的問題,并提出了有針對性的解決方案。

關鍵詞:職業能力;計算機專業;軟件測試;獨立學院;

1引言

大多數公司已經將軟件測試看作是技術工程專業工作,有意識地在項目組中培訓軟件測試人員[1]。但由于IT企業的快速發展,對軟件測試人員需求的缺口依然很大。應用型本科學院加強計算機專業學生的軟件測試職業能力培養,既可以緩解社會上軟件測試人才不足的現狀,又有助于畢業生迅速找到合適的工作崗位。

目前,大多數獨立學院均設立了計算機科學與技術專業。我院針對學生來源和社會對計算機專業應用型人才需求等特點,以培養應用型本科人才為目標,修訂專業培養方案,確立軟件工程和網絡工程兩個培養方向,開設職業能力輔導課128學時(4學分),分別占總教學學時和總學分的5.3%、2.1%。自2006年,我院在軟件工程方向開展軟件測試職業能力培養模式的探索,取得一定經驗,同時也存在一些問題。

2教學現狀

該院自2002年開始計算機科學與技術專業招生,基本情況見表1。表1表明計算機專業學生已經清楚認識到加強專業技能培養的重要性,因此按軟件工程和網絡工程方向培養學生也符合學生的需求。

我院引進了一批計算機專業教師,已經形成自有專業專職教師團隊,基本情況見表2。除教授年齡超過60歲外,其他老師的平均年齡僅32.1歲,教學經驗豐富,精力充沛。

我院已建設兩個高標準的計算機專業實驗室,PC機120臺、服務器5臺,可開展軟件工程方向全部專業課實驗和網絡工程方向部分專業課實驗。

3軟件測試職業能力培養目標

的軟件測試人員除了具有良好的職業道德外,還須具備如下基本素質和技能:①與開發員、客戶或者管理者談判與溝通的能力;②與其他測試員、開發員或管理者協同工作的團隊合作能力;③分析和解決相關問題的能力;④掌握軟件測試理論、方法和操作技能,具備適應發展的能力。

軟件測試職業能力培養的主要目標是通過學習和掌握軟件測試原理、方法和工具的,具備軟件測試人員所必備的基本素質和技能,不經過職業培訓或少量培訓就可以從事軟件測試工作。應至少達到如下要求:①能夠在單機、網絡環境下建立軟件運行和測試環境;實施多種體系結構軟件的測試;②熟悉主流軟件開發技術并能夠編寫簡單應用程序、測試腳本和測試計劃、設計測試用例、執行測試并填寫缺陷報告;③熟悉常見測試流程、缺陷管理流程,并能對測試流程實施監督和處理;④能夠獨立或協助開發人員進行單元測試和白盒測試;以及使用自動化測試工具來進行各種測試。

4實施過程

軟件測試職業能力培養分為兩個階段:①基本階段:即計算機專業課程學習、實驗和課程設計階段,學生掌握軟件測試的基本原理、方法和工具,具備從事軟件測試工作的基本素質和能力,經過時間不長的職業訓練可以勝任軟件測試工作;②高級階段:目標是讓學生掌握專門的軟件測試技術和工具,形成獨特軟件測試職業能力,培訓時間更短或者不經過培訓就能勝任特定領域的軟件測試工作的,通常指軟件測試綜合實踐課程和畢業設計環節的教學。其中畢業設計環節的軟件測試能力培養能夠提升基本階段形成的軟件測試實踐技能,通過選擇適當的課題加強對軟件測試的整個流程的技術掌握,進一步提高軟件測試職業能力。

軟件測試教學內容見表3及時列。Ⅰ至Ⅶ各列分別對應C/C++、Java、數據結構、算法設計與分析、軟件工程、軟件測試綜合實踐、畢業設計。A表示初步掌握,B表示重點掌握。

4.1基本階段的軟件測試能力培養

在C/C++、Java、數據結構、算法設計與分析課程的實驗和課程設計教學中,由于所編寫代碼規模不大,要求學生借鑒“極限編程”和“測試驅動開發”方法的思想,源代碼和測試代碼開發并重,灌輸“源碼要能夠通過測試”的觀點。

軟件工程課程設計和軟件測試綜合實踐兩個教學環節要求學生以團隊形式完成一個規模適當的軟件系統。除單元測試外,還必須關注集成測試、系統測試等環節,達到掌握集成測試和系統測試的基本過程和常用測試工具、形成良好的軟件質量保障意識的目的。

4.2高級階段的軟件測試能力培養

高級階段的軟件測試能力培養指學生選擇軟件測試類畢業設計課題,在指導老師的指導下,在仿真工作場景的實驗室環境完成課題要求的任務,或者對實現的軟件系統按照工程規范進行測試。

除了軟件設計類課題外,02、03和04級計算機專業畢業生完成軟件測試類畢業設計課題有五類:①基于J2EE平臺應用系統的性能、負載和壓力測試;②EJB組件測試;③測試數據的生成方法及評價(如基于遺傳算法或組合策略生成測試數據);④應用程序的圖形用戶接口測試;⑤應用程序的安全測試。

5存在的問題

計算機專業完成的軟件測試相關課題情況見表4。第2列表示“測試過所實現軟件系統的學生數/選擇該類課題的學生數”;第3列表示選擇軟件測試類課題學生數;第4列表示選擇軟件測試類和選擇軟件設計類課題并測試過所實現系統的學生數與選擇兩類課題的學生數之比。第5列表示畢業后從事軟件測試占全部學生的百分比。顯然,軟件測試職業能力培養已經逐步得到計算機專業學生的認可。

對2004級畢業生25人問卷調查,結果是選擇軟件測試類課題和軟件設計類課題的共22人。影響軟件測試及軟件設計課題測試相關任務完成的原因中,課題的過大或者過難的占23%,實驗條件不完備的占45%,中途改題目占13.6%,時間未規劃好的占31.8%,論文文獻不符合要求占18%,老師指導不足占23%,課題過于簡單占27%,編程能力不足占36%。

6解決方案

針對上述問題,可以采取如下措施:

根據IT企業軟件研發的應用場景,配置IT企業流行的分析、設計、開發、測試和管理等常用工具軟件,構建軟件設計與軟件測試專用平臺,為計算機專業學生提供模擬IT企業的開發環境。

軟件測試和軟件設計類課題的指導老師命題時應該結合自身科研、教學、技術研發特點等因素,制定適當的課題。在指導時根據現代軟件工程規范和課題要求加強對學生的指導,及時檢查學生的工作進度。

在專業課程學習階段,加強語言類、數據結構與算法類課程的教學,要求學生堅持測試所開發代碼,提高學生編程技能。

建設有助于培養計算機專業學生的軟件測試職業技能的教學團隊,定期邀請軟件測試行業專家來學院講學講座或者專業教師深入IT企業,了解軟件測試在軟件質量保障過程中的應用現狀。

鼓勵學生參加軟件評測師等軟件水平與任職資格考試,所獲證書可抵學分,提高學生加強職業能力培養的積極性。

軟件測試論文:“軟件測試”教學改革的探索和實踐

摘要:傳統的軟件測試教學模式很難將知識傳授給學生,教學方法和手段已不能適應時展的需要,本文介紹了我系在軟件測試課程的教學過程中引入案例教學以及項目驅動等教學措施,取得了一定的教學效果。

關鍵詞:軟件測試;案例教學;項目驅動

近幾年專業性的軟件測試機構和組織迅速發展,隨之帶來了專業軟件測試人才的旺盛需求,軟件測試人才的培養正成為新的熱點。然而,軟件測試課程的理論與實踐脫節,現有許多軟件工程教材中關于軟件測試的章節只介紹軟件測試的理論方法,即使有案例也只是簡單說明,并沒有介紹軟件測試的具體方法和實現過程,這導致學生只會死記硬背軟件測試的條條框框而不懂如何活學活用。為此,我們嘗試進行改革,引入了新的教學思路和措施。

1案例教學

案例教學法比傳統的以教師為主導的教學法,更有利于提高學生分析問題和解決問題的能力,促進學生學會學習以及溝通合作。我們在教學的過程中,以可操作的軟件測試案例為中心,讓學生能在教學中體會實際的測試過程。

首先,一個好的測試案例所包含的內容必須完整,應包含測試目的、特殊的硬件要求、特殊的軟件要求、特定的配置、執行測試的描述、測試的預期結果或成功條件。

其次,根據測試的分類不同,可分為以下幾種:

? 對于單元測試案例,主要按照程序內部的結構測試程序,檢驗程序中的每條通路是否都能按預定要求正確工作。這類測試案例主要驗證模塊接口、模塊局部數據結構、模塊邊界條件、模塊中所有獨立執行通路、模塊的各條錯誤處理通路。掌握白盒測試/黑盒測試方法以及單元測試的用例設計;通用代碼編程規范、偽碼寫作規范的檢查;基本的代碼靜態檢查方法與工具運用;代碼覆蓋率檢查方法與工具運用;OO程序單元測試方法與過程;針對內存泄漏的檢查;掌握測試覆蓋分析方法和測試用例最小化的運用。

? 對于功能測試案例,用于鑒定執行后啟用的功能。這類測試案例驗證軟件是否提供了基本的單

元功能、是否提供集成后的功能,以及是否提供解決方案設計中指定的其他功能。

? 對于Web測試案例,Web系統是當前網絡環境下最多的應用系統,其主要內容設計為Web性能測試項目解析、性能測試流程、測試規劃與設計、性能測試需求分析、用戶事務分析、Web資源分析、網頁元素細化等。

? 對于集成測試案例,主要包括針對結構化軟件和面向對象軟件的集成測試,獨立開展集成測試用例設計和用例執行。具體分為基于結構化程序的集成測試方法和基于UML圖的面向對象的集成測試方法。

? 對于系統測試案例,掌握常見系統測試類型的基本測試方法,獨立設計系統測試用例,運用手工方式或測試工具完成系統測試,包括功能測試、性能測試、壓力(負載)測試、配置測試、易用性測試。

再次,教學案例的具體應用。我們根據難以程度,將測試案例大致可分為簡單的基礎性實驗案例和綜合實驗。簡單的基礎性實驗案例主要包括白盒測試和黑盒測試,通過學習讓學生掌握軟件測試最基本的一些方法。綜合性的實驗案例,特別是較大型的軟件項目測試實驗,讓學生在實驗的每一個步驟中理解軟件測試技術和各種具體的測試方法,增強實際操作能力,增加軟件項目測試的綜合經驗。

通過綜合性實驗的學習,可以讓學生感受大型軟件測試項目的工作流程和實施細節,掌握各種軟件測試方法在大型項目中的應用,體會軟件測試的規律;了解軟件測試項目的管理,熟悉軟件測試項目中人員的管理、產品的管理、軟件測試案例的管理以及缺陷的管理;能夠進行比較復雜的白盒測試或自動化測試,為從事要求較高的軟件測試打下很好的基礎。

2項目驅動

軟件測試是一項技術性較強的工作,規范的實施也是以工程的方式開展或進行。因此,好的課程內容及教學設計是通過項目的活動及過程來呈現問題,運用相關理論知識解析問題,以及通過工程過程解決問題,通過項目闡明技術方法與策略的運用。

項目的復雜性通過分解得到局部的單一性和簡單化。項目包含了由易到難,由簡單到復雜,由單一到綜合,逐步實現的內容和過程。軟件測試本身就是理論與實踐緊密結合的一門技術學科或工程體現,貫徹項目教學法是該課程理論教學與實踐教學“一體化”的好形式。通過項目教學,可落實教學的循序漸進原則、系統化原則、目標性原則、整體優化原則以及規范化原則。項目教學使教學內容的構建緊密圍繞課程總體目標展開,項目組成具有針對性強,目標具體明確、步驟清晰的特點。它按照組成技能教學內容及相互間的內在聯系,使各部分內容有所側重,互相銜接,

軟件測試項目大致可以分為以下三個方面:“軟件測試技術”等課程的實踐教學,強調案例教學法,強調實踐教學;課外實踐,強調綜合性、設計性實驗,由學生在課余時間完成,包括畢業設計;企業實習,和多個企業建立關系,供學生實習軟件測試。

3常用自動化測試工具使用

在理解軟件測試自動化原理基礎上,掌握業界常用的

Rational、WinRunner、LoadRunner、Junit、Panorama等系列測試組件的運用。在制定的測試策略中應用測試自動化工具開發、編輯、運行和調試自動測試腳本程序,建立測試過程、生成測試報告,分析測試結果,理解測試工具如何進行對測試數據進行自動評估分析,掌握測試工具如何對測試文檔生成和利用。如表1。

4結束語

我們對軟件測試的教改受到了學生和老師的普遍歡迎。通過調查,大多數學生認為使他們對課本知識的理解更加深入了,主動思考問題的能力也得到了提高。教師們也普遍反映“軟件測試”的教學質量和教學效果得到極大的提高。

軟件測試論文:淺談具有計量特色的軟件測試人才培養

摘要:本文分析了計量學與計算機科學間的關系及市場需要的軟件測試工程人才的需求,探討了我們依托學校計量測試的辦學優勢在具有計量特色的軟件質量測試應用型人才培養方面的經驗。

關鍵詞:計量特色;軟件測試人才;課程體系;實踐體系

目前,全國有500余所本科院校開設計算機專業,對一所像中國計量學院樣的普通高校而言,如何在這種龐大的專業規模和激烈的專業競爭中辦好自己的專業,專業特色是一個重要的立足點。不同類型高校計算機專業的人才培養應當具有不同的定位,人才培養模式要充分依托各自學校的辦學優勢體現專業特色。

中國計量學院是我國質量監督檢驗檢疫行業的本科院校,學校在29年的辦學過程中,逐步確立了“計量立校、標準立人、質量立業”的辦學理念,形成了“培養具有牢固質量觀念、明確標準意識和較強計量能力的高素質人才”的人才培養和在計量、質量、檢測、標準、檢驗檢疫等方面具有鮮明的辦學特色。

中國計量學院計算機專業面對目前國內軟件測試人才失衡及培養渠道缺失現狀,針對軟件測試人才的職業素質要求,依托學校計量測試的辦學優勢,以培養社會急需的軟件質量與測試人才市場為目標,研究探索了具有鮮明計量特色的“軟件質量與測試平臺+ 模塊”的計算機專業應用型人才培養模式和課程結構與體系,構建了由實驗教學、軟件度量與測試專業技能訓練和校內外軟件質量與測試實踐基地的計量特色實踐教學體系,培養了學生軟件質量意識和積極探索、勇于創新的學習動機。

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軟件測試的誤區

軟件測試不斷受到重視,但總體上,國內軟件項目過程不夠規范,對軟件測試的重要性、測試方法和流程等還存在很多錯誤的認識,以致很多人在軟件測試領域走了不少彎路。對于測試人員以及準備進入軟件測試領域的人員來說,首先必須認清并更正這些錯誤觀點。

(1) 誤區一:軟件開發完成后才開始進行軟件測試

軟件從開始計劃、編制、測試,一直到公開使用的過程中都可能存在軟件缺陷。事實證明,需求規格說明書是導致軟件缺陷的較大原因。隨著時間的推移,修復軟件缺陷的費用呈幾何級數增長。

(2) 誤區二:軟件后如果發現質量問題,那是軟件測試人員的錯

軟件測試只能確認軟件存在錯誤,不能保障軟件沒有錯誤。軟件的高質量不是軟件測試人員測出來的,是靠軟件生命周期的各個過程設計出來的。應該分析軟件項目的各個過程,從過程改進方面尋找產生錯誤的原因和改進的措施。

(3) 誤區三:軟件測試要求不高,隨便找個人都可以完成這項工作

軟件測試涉及很多領域,簡單的點點鼠標、按按鍵盤的工作根本無法達到軟件測試的目的,若想立足于軟件測試領域必須掌握和學習很多方面的知識。

(4) 誤區四:項目進度吃緊時少做些測試,時間富裕時多做測試

縮短測試時間會導致測試不完整,無法達到測試的目的,測試效果也將大打折扣。軟件項目過程應該是有計劃的、可控制的,若項目過程管理混亂必然會降低軟件測試的質量。

(5) 誤區五:自動測試將取代手工測試

自動測試速度快、效率高、度和度高。但動測試只能測試某些軟件的部分特性,且無法靈活處理意外事件。手工測試可以更好地發揮人的主觀能動性、靈活性、隨機應變性,可以更好地適應并處理突發事件。無論自動測試技術多么發達,自動測試也不能取代手工測試。

2學習軟件測試的過程和方法研究

不同知識基礎的人,學習軟件測試技術、進入軟件測試領域的感受也有所不同,很多人在學習軟件測試知識的過程中非常盲目,沒有計劃、沒有方向,學習效率低下。在此,本人對學習軟件測試的過程和方法進行總結、研究和探討,以作交流學習之用。

2.1學習軟件測試的過程

(1) 及時步明確測試目的

有目的才有動力,有目標才有方向。軟件測試就是對軟件需求分析、設計規格說明、程序代碼以及軟件其他相關產品進行測試的過程,是軟件質量保障的關鍵步驟。明確軟件測試的目的和目標才能的定位測試并更有效的進行測試。

(2) 第二步結合實際項目,學習掌握測試方法、合理設計測試用例

常用的測試方法有黑盒測試和白盒測試。黑盒測試在不考慮程序內部結構和內部特性的情況下,針對軟件界面和軟件功能等進行測試,是最基本的測試方法。白盒測試允許測試人員利用程序內部的邏輯結構及有關信息設計或選擇測試用例進行測試。的理解和掌握這些技術及其相互關系是進行軟件測試的前提。

測試是有風險的行為,測試是不可能的。軟件測試用例是進行測試的核心,是測試人員測試過程中的重要參考依據,它的組織和編寫關系到整個測試工作和思路的正確性、有效性。測試用例的組織性和條理性是軟件測試成功的一個重要因素。因此,在學習軟件測試的過程中,要的把握測試方法并有條理的組織和設計測試用例。

同時,軟件測試重在實踐。理論的掌握只能達到紙上談兵的功效,若想真正領悟測試技術的真諦還需進行實際的項目測試。結合具體的測試項目,靈活運用各種測試方法組織編寫測試用例可以幫助初學者更好的理解和掌握這些技術。

(3) 第三步熟悉測試步驟

一個完整的軟件測試過程包括測試計劃、測試設計、測試開發、測試執行、缺陷跟蹤和測試評估。軟件測試管理工具可以系統地控制整個測試過程,實現從測試需求、測試設計、測試執行和缺陷跟蹤所有操作的多方位跟蹤管理,并為這幾個部分提供了關聯機制,使整個測試管理過程更加簡單和有組織。在此,本人建議在學習軟件測試技術的過程中,以一個測試管理工具(例:TestDirector)為平臺進行測試實踐,用心體會一個完整的測試過程。

(4) 第四步了解測試階段

軟件測試從軟件需求階段就已介入,基本貫穿軟件項目開發全程,不同階段有不同的測試點,需要不同的測試方法和技術。軟件測試可以大致分為需求評審、單元測試、集成測試、系統測試、驗收測試( 測試/ 測試)這幾個階段。明確各個階段的測試目的和內容才能選擇相對合適的方法進行測試。

(5) 第五步測試技術的提高和升級

軟件自動化測試是一項讓計算機代替測試人員進行軟件測試的技術,通常借助測試工具來執行。自動化測試可以模擬軟件實際運行效果,測試效率高、度和度高、可以持續測試而無須休息,彌補了手工測試的不足。

性能被列為系統質量的重要指標,并越來越受到人們的重視。性能測試是對軟件性能的表現進行測試,較功能測試更難實現。

在掌握基本的測試方法和技術之后,可以繼續深入研究自動化測試和性能測試,提高測試水平和測試能力。

2.2學習軟件測試的方法

學習方法的好壞和學習習慣對學習效果的影響非常大,以下是軟件測試初學者需要注意的幾個地方:

(1) 勤學好問、充分利用各類學習資源

問題積累是學習的攔路虎。時間越久,問題越多,給學習造成了很大的阻力,更甚者會讓初學者心生放棄。三人行必有我師,勤學好問,不要滋生“歷史”遺留問題。當然,對于一個復雜問題,如果在短時間內無法理解透徹時,可以先簡單的了解,然后在之后的學習和實踐過程中慢慢體會其含義。由簡入繁,勿鉆“牛角尖”。

軟件測試的學習資源非常豐富,書籍、網站、論壇、技術交流群等唾手可得。充分利用這些資源可以縮短學習和解決問題的周期,使學習更加高效。

(2) 實踐出真知

實踐是檢驗真理的標準。要想真正學會測試,必須進行實際的測試。不要說沒有測試環境,想學的話,可以自己搭建環境。有了行動才能有收獲。

(3) 切莫“閉門造車”

軟件測試技術是解決實際軟件測試問題的技術,與現實世界密切相關,盲目的學習可能適得其反。因此,應多關注軟件測試行業的動態,了解軟件測試行業的真正需求,有目的的學習。

(4) 細心、耐心

軟件測試是對人技術和意志的一種考驗,不細心就有可能與缺陷擦肩而過,沒有耐心就無法將枯燥的測試進行到底。只有充分的細心和耐心才能適應和完成軟件測試工作。

(5)“懷疑”精神

定性思維往往是發生錯誤的根源,對于軟件測試人員來說,更應該具有“懷疑”精神,要考慮每個細節,不要想當然地接受任何假設。

(6) 溝通能力

軟件測試人員必須具有良好的人際關系和溝通能力。由于軟件測試工作的特殊性,軟件測試人員在項目小組中并不受歡迎。由于需要經常和開發人員、測試組其他成員進行溝通,軟件測試人員說話辦事必須穩重得當,不能隨意指責別人,否則會事倍功半,影響軟件測試的效率。在學習軟件測試的過程中,應把握各種機會,多與人進行溝通和交流。

3軟件測試的常用技巧

軟件測試雖然辛苦,但掌握一定技巧后將事半功倍。

(1) 邊界測試

邊界是最容易出錯的地方。在進行軟件測試時,應測試臨近邊界的合法數據(即一個可能合法的數據,以及剛超過邊界的非法數據)。

(2) 非法測試

人們在不了解軟件功能或使用方法的情況下,經常會不經意地輸入一些非法數據或進行一些非法操作而導致軟件出現意外情況。因此,在進行軟件測試的過程當中,應考慮進行類似的非法測試。例如在輸入數字的地方輸入字符、輸入郵件地址的地方輸入非法格式的數據、進行一些不合理的操作等。

(3) 接口測試

程序往往在接口的地方發生錯誤,在進行相關測試時切勿掉以輕心。

(4) 代碼重用測試

在開發過程中有些模塊功能幾乎相同,程序員在重用代碼時可能忘記在原有代碼的基礎上作修改或修改不而引發錯誤。在測試的過程中應更加留意這方面的測試。

(5) 失效恢復測試

當意外(如網絡突然中斷、系統崩潰等)發生時,用戶能否繼續使用系統,用戶將受到多大的影響也是測試要考慮的問題。

4結束語

軟件測試是一個入門易、深入難的工作。學習軟件測試技術沒有捷徑可言,一點點的努力才是正道。學習過程是指引,學習方法是手段,希望以上的方法和技巧能夠給大家以啟迪,也希望更多有識之士能夠與我們共同徜徉在軟件測試這五彩繽紛的世界之中。

軟件測試論文:讓軟件測試實驗和實訓課程輕松地走進高校或培訓機構

目前國內為軟件測試理論課程配套的實驗教程很少,即使有也大多是以商用軟件測試工具使用介紹為主,很難普及到各個高校進行實踐教學。針對這些問題,蔡建平教授以主流的開源軟件測試工具作為軟件測試實踐教學的基礎,并在《軟件測試實驗指導教程》中、系統地介紹了軟件測試實踐教學的方法、步驟和案例,很好地解決了軟件測試實踐教學面臨的教材問題、案例問題和實踐環境建設問題。

該書充分考慮了國內大多數院校辦學條件不足,實驗教學經費有限,無法多方位引進商用軟件測試工具,無法開展軟件測試實驗室建設的實際情況,對國內外主流的開源軟件測試工具進行分析、研究和挑選,并經過北京工業大學軟件學院5輪實踐教學的檢驗,來設計該書的實驗教學重點和實踐能力要求。該書的實驗內容之廣,涉及的軟件測試知識之多,以及開源軟件測試工具介紹之,無論是對于教師進行實驗指導,還是培訓機構進行實戰訓練或者學生進行自學自練,都是不可多得的實驗教材。

該書與國內常見的軟件測試實踐教材重點講授某個或某幾個商用軟件測試工具的方法不同,它是以現代IT企業軟件測試需求為背景,以主流的軟件測試技術和方法為基礎,以當前的軟件測試應用為實例,介紹了支持各種軟件測試類型的開源軟件測試工具的主要功能、應用流程及實際案例。特別突出了軟件測試工具在實際測試項目中的使用能夠有效地鞏固所學軟件測試知識,掌握軟件測試方法和技術以及提高軟件測試實戰能力。

該書分為管理、靜態分析、單元測試、GUI測試、性能測試以及軟件綜合評測等6大部分,共有12章。主要內容包括:軟件缺陷管理、軟件測試管理、程序理解、代碼靜態分析、xUnit單元測試框架、單元覆蓋測試、Java GUI基礎類庫應用測試、Web頁面測試、Gtk+用戶界面測試、單元性能測試、Web應用性能測試以及軟件綜合評測工具等。在該書中,較大篇幅地介紹了如何使用主流開源軟件測試工具建立測試環境,如何將它們用于實際軟件項目的測試。這種舉一反三、拋磚引玉的內容設計,對高校軟件測試實踐類課程的開設、培訓機構軟件測試的實戰培訓以及開發人員和測試人員自學是非常有現實意義的。該書在一章特別強調了軟件綜合評測的意義,并以南京大學研制的Eastt工具為實例,介紹了軟件評測的思想和過程,有助于學生掌握軟件評測的方法和技術,提高實際的軟件評測能力。

該書針對軟件測試的實驗內容,實驗方案完整,實踐環境建設可行,實驗步驟及過程講解清晰,實驗案例豐富實用,可作為高等院校不同學歷教育的軟件工程專業及計算機相關專業的“軟件測試實踐課程”教材(如本科生、研究生、甚至高職/高專生等),也可作為社會軟件測試實戰培訓教材,同時該書也是軟件開發或管理人員、測試或質量保障人員等的自學參考書籍。

蔡建平教授以他多年在軟件測試領域開展工作的經驗和對軟件測試能力培養如何滿足IT企業要求的了解,設計了軟件測試獨特的實踐教學方法,并收受學生認可和歡迎。作為蔡建平教授多年在軟件測試實踐教學上的經驗和成果總結,《軟件測試實驗指導教程》的出版發行,將有益于國內軟件測試人員和軟件工程相關專業本科生及研究生的學習與實踐能力培養,有益于推動我國高等高等院校軟件測試實踐教學方法研究的進一步發展,同時對我國軟件測試業的發展和軟件測試緊缺人才的培養起到積極的促進作用。

軟件測試論文:高職與培訓機構軟件測試人才專業能力培養差異性研究

摘要:面對軟件測試人才市場的巨大缺口,高職院校迫切需要提高軟件測試方向學生的專業能力。文章闡述了高職院校與培訓機構對軟件測試人才專業能力培養的現狀,從培養目標方向性、知識傳授深度及廣度、專業能力提升成效性、企業需求傳遞時效性這四個方面,對高職與培訓機構軟件測試人才專業能力培養的差異性進行了對比分析,提出了優化高職院校軟件測試人才專業能力培養的建議。

關鍵詞:高職;培訓機構;軟件測試;專業能力

隨著我國軟件行業的迅猛發展和不斷成熟,市場對軟件測試人員缺口高達30、40萬。特別是隨著高端軟件測試人員需求的與日俱增,為了保障每個學生都擁有進入測試行業的就業基礎,高職院校必須抓住這個市場機遇,采取切實可行的教育教學改革措施,強化軟件測試方向學生專業能力的培養。

1高職與培訓機構對軟件測試人才專業能力培養現狀

專業能力是人們從事職業或職業活動賴以生存的能力,在勞動世界中其作用趨于核心地位,它是高職學生職業能力中的核心能力,是高職學生特點的集中體現,也是構建高職學生職業能力標準的核心內容。目前,中國的高職教育觀主要是知識本位的職業能力觀,對學生專業能力的培養主要以開展學科課程教育為主。通過對湖北省內及省外幾所高職院校定位了軟件測試方向人才培養的專業進行了調研,筆者發現在專業人才培養方案中,針對軟件測試專業能力培養的課程比較少,大多數都只是開設了《軟件測試技術》這一門課程,少數院校把性能測試單獨作為一門課程。通過對30余家軟件公司的問卷調研,筆者了解到軟件測試技術包括的方面比較廣,企業需求的測試技術主要有手工功能測試、性能測試、易用性測試、安全測試、自動化測試、云端測試與眾包測試服務,還有從無到有、從簡單到專業的移動APP、H5測試。然而,高職院校只用大約32至68個課時來講解部分測試技術,通常就是泛泛地講授軟件工程知識、主流自動化測試軟件(如Quick Test Professional、LoadRunner、TestDirector等)等,以此提高學生的專業測試能力,便把軟件測試定位于專業人才培養目標之中。

據中國產業信息網報道,國內具有一定規模的軟件測試培訓機構有華育國際、安博教育、北大青鳥、達內科技等。其中,華育國際采用“訂單+實訓”的人才培養模式來提高軟件測試學員的專業能力。華育國際通過與軟件企業“點對點”方式,即簽訂定向委培協議,按照企業的需求,為學生專業制定人才培養方案,使學生在畢業時就能勝任協議企業里約定的工作崗位。華育國際還通過與某一類企業(如金融行業、互聯網應用等)“點對面”方式,按照這一類企業的需求來設置培訓內容,安排課程設置。無論采用哪種與企業的合作方式,其實訓在培養方式上,均是以項目實戰為主,培訓學員都有機會參加IT名企的實際測試項目,掌握規范的軟件測試流程,增加豐富的項目測試經驗。安博教育實行以就業為導向的IT人才教育體系,通過IT軟件測試實訓,協助畢業生在就業之前,參與到企業的項目開發與測試過程中,解決軟件測試方向學生和軟件企業之間需求的錯位。北大青鳥的培訓策略是通過與高校合作辦學來培養軟件測試人才。通過課程置換的方式,北大青鳥將自身職業課程體系的優勢與高校的教學優勢相結合來提升學生的專業能力。達內科技主要推廣“遠程教育”,即在全國各地設置培訓教學點,通過網絡將達內的課堂引進各個地方,將擁有國際化大公司工作經驗的技術專家和博學工程師通過遠程在線的方式共享。達內也在各個高職院校推廣這種遠程教育模式,與全國一些高職院校合作,讓高校提供培訓場地和學生,達內提供教學內容和師資,在人才培養方案中進行“課程置換”。

2高職與培訓機構對軟件測試人才專業能力培養的差異性

2.1培養目標方向性差異

目前,國內軟件測試培訓機構的市場主要定位在校待就業學生,尤其是臨近畢業的學生居多,主要是以線下培訓為主。很多軟件測試方向的大專生為了提升自己的就業實力,在畢業前選擇去軟件測試職業培訓機構接受培訓。培訓機構對學生的培訓只有幾個月的時間,培養目標是能高薪勝任IT企業軟件測試的工作崗位,在對學生專業能力的培養過程中,會強化訓練軟件企業需要的相關測試技術,如:手工測試、自動化測試、接口測試等,培養內容更有針對性和方向性。高職院校軟件技術專業軟件測試方向的人才培養目標是培養與社會主義現代化建設要求相適應的德、智、體、美發展,適應生產、建設、管理和服務及時線需要,具有良好的職I道德和敬業精神,掌握軟件開發、軟件服務所需的系統基礎知識和具備軟件開發、測試、技術支持及銷售所需系統動手能力的高素質技術技能型專門人才。高職院校比較注重學生綜合能力的培養,學生的專業能力、方法能力和社會能力發展較均衡,但是專業能力不突出;軟件測試培訓機構比較重視學生專業能力的培養,但因為受限于培訓時間、培訓規模、投入資金等因素,對學生方法能力和社會能力培養的力度不足。

2.2知識傳授深度及廣度差異

高職院校的課程體系分為通識課程、專業課程和拓展課程,既有思想道德類、英語類、體育、數學等素質與通識課程,也有程序設計、軟件工程等專業課程,以及職業指導與創業教育等拓展課程,課程開設門數一般在28門左右,還有各種競賽和團體活動,使學生的職業能力得到了廣泛發展,尤其是自學能力、分析與解決問題的方法能力、創新與溝通等社會能力得到了鍛煉與提高,對學生知識傳授的廣度比較廣,但對軟件測試專業知識傳授的深度不夠。培訓機構由于培訓的內容更有針對性和方向性,所以在知識傳授的深度上不斷強化深入,培養的人才短期內適應軟件測試崗位的各個層次,但今后職業生涯的發展會有所局限性。

2.3專業能力提升成效性差異

培訓機構通常在3-6個月的短期內,對學員進行反復訓練,充分強調軟件測試專業能力的培養,培訓課程范圍窄,使學員軟件測試的專業技能得到明顯提高,達到企業和社會對功能測試、自動化測試、性能測試、接口測試等專業能力的要求,對學生專業能力的培養更具有速成性。高職院校學生的專業課程主要集中在大一下學期和大二整個學年,對學生專業能力的培養是循序漸進的,成效性提升速度緩慢,但是學生的專業基礎知識扎實,為以后的可持續發展奠定了基礎。