李菊 張麗
摘要:隨著軟件在各行各業應用的不斷普及與深入,軟件質量已逐漸成為行業的核心競爭力,而軟件測試作為保障軟件質量的主要手段,其專業人才的需求也與日俱增。應用型高校本科教育特點在于應用,知識學習要做到學以致用,學科內容應和社會需求結合緊密。以企業軟件測試崗位需求為導向,改革傳統的教學形式,搜索典型工作任務;篩選工作任務,整合典型工作;任務轉換為工作過程系統化課程單元,及早調整軟件測試技術課程的教學模式,通過“學中做”“做中學”,提升學生的專業實踐能力,又鍛煉學生的自我學習、歸納和推理能力,有助于后續的職業發展。
關鍵詞:軟件測試;應用;崗位需求;工作任務;工作過程;職業發展
中圖分類號:G642? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)02-0125-02
Abstract: Along with the rapid developments of software applications, software quality has gradually become an essential factor in industry. Software testing is one key process to ensure the quality of software and the demand for professional engineers in software testing is also increasing. Undergraduate education in application-oriented colleges should focus on practices. For example, knowledge learning aims to practical use, and text contents are closely related to social needs. Guided by the requirements of enterprise software testing, we should update the traditional teaching styles, search for classic examples, choose proper work tasks and integrate typical tasks. Also, we should transform various tasks into systematic curriculum units and adjust the teaching mode of software testing courses accordingly. Through "learning in working" and "working by learning" strategies, we can improve the students' workability and exercise students' ability to study, summarize and deduce, which will contribute to their future career development.
Key words: software testing; application; job requirements; work tasks; work process; career development
1 背景
當今社會身處互聯網的大背景之下,人類社會互通互聯,信息技術飛速發展。軟件行業在時代的大背景下發展得如火如荼,人們對軟件質量的要求也變得越來越挑剔,越來越苛刻。質量好的一個最主要方面就是要讓客戶滿意。因此,軟件企業意識到要想在市場立于不敗之地,唯有提高軟件質量。提高軟件產品的質量就是提高產品的核心競爭力,軟件測試作為為質量保駕護航的重要手段,受到了越來越多的重視。具備良好專業素養的軟件測試工程師正成為我國軟件行業目前最緊缺的人才之一[1]。企業希望招到的人才能夠立刻上崗、產生價值,作為軟件測試人才輸出的主要來源之一的應用型本科高校,挖掘軟件測試領域軟件測試工程師、測試設計師、自動化測試工程師等各種崗位的用人需求,及早調整軟件測試技術課程的教學模式。培養真正適合企業及軟件測試不同崗位需求的軟件測試人才勢在必行[2]。
2 現存問題
1) 教學方式較傳統,多是面向全班同學集中授課的方式。學生自主學習能力得不到提高,動手實踐能力得不到很好的鍛煉。同時,這種形式不利于學生發掘自身的興趣點,把自身的興趣點與測試的分支領域結合,深入學習,進行未來職業規劃。
2) 目前對測試知識的教學是先進行理論講解,再進行教學案例分析,以案例分析促進知識點的理解。這樣的形式,知識分散成點,沒有一個逐層遞進,從局部到完整的,從量變到質變的飛躍。并且目前的教學案例與理論知識點對應,相互之間也是相對獨立的,都是教師分析案例為主,學生回答問題為輔的方式。學生對軟件測試里面具體到某一種技術的應用場景缺乏深刻的理解。面對一個商業項目時,難以在腦海里構建出端到端的測試思路。
3)平時成績缺乏更符合行業特點的評價手段。目前的學生的平時成績評價主要是依據考勤、作業完成情況以及上課提問回答情況,這樣的評價依據無可厚非,但軟件測試作為一門實踐性比較強的課程,我們作為應用型本科學校,針對這類課程的特點,平時成績的評價可以參照企業,建立更客觀的、量化的評價指標體系。
學生通過本科階段的軟件測試理論課程學習,的確能夠掌握軟件測試的基本概念、常見的測試技術和方法,但置身企業的項目運作模式之下,如何迅速地把能力轉化為生產力,是一個值得進一步研究和探討的問題。
3 改革措施
近10年來,由姜大源教授總結國外經驗并結合我國職業教育實踐提出的工作過程系統化課程開發在職業教育系統內正熱烈地開展,并在許多職業院校進行實際運用取得良好效果[3]。南京理工大學紫金學院作為應用型本科院校,其辦學理念是“致力于培養基礎扎實、知識面寬、實踐能力強,具有創新意識和創新精神、人文精神與科技素養相結合的應用型、復合型、高素質專門人才”。與高職院校既有區別也有相同之處,區別與高職院校主要負責培養技術型與技能型人才,我們培養的是處于本科層次的工程型與技術型人才,相同之處在與均要與生產實際緊密結合[4]。
因此,針對本文第一節闡述的問題,我們提出在專業課的教學中探索實施工作過程系統化的教學方式方法,在軟件測試技術課程教學中開展一系列改革,具體措施如下。
3.1 組建教學團隊
課程改革先從組建教學團隊開始,近幾年來筆者所在軟件工程專業,不斷引進優秀人才。軟件測試技術課程組如今除了有豐富的教學經驗和學生管理經驗,熟悉專業的課程體系的幾名資歷深厚老教師之外,還加入了兩名雙師型,分別是來自華為公司具有5年從事軟件項目管理和測試工作經驗的測試專家,和來自中興公司具有11年從事軟件測試設計工作的經驗的測試專家。這是一支理論扎實、實踐動手能力強、企業工作經驗豐富的教學團隊。
3.2 邊教邊學邊實踐
開展企業調研,與南京華蘇科技技術有限公司、南京瑞奕惟揚信息科技有限公司、南京中新賽克科技有限責任公司、凱易訊網絡技術開發(南京)有限公司等幾個公司的軟件測試專家探討軟件測試崗位對專業人才知識結構和技術素養的要求。
改變傳統的教學方式,授課地點從教室更改為實驗室,學生由集中變為分組。軟測測試的領域是寬廣的,從測試設計、測試執行到自動化測試各個領域都需要有專項技能的人才,模仿公司的項目組結構,將學生按照測試領域進行分組,不同的分組之間既有分工又有協作。通過“學中做”“做中學”,提升學生的實際應對工作場景的能力,也是對學生自學能力的一次質的提高、學生解決實際問題的能力得到了一次飛躍式的提升,對他們今后的職業生涯是一次如同提前培訓般的訓練。
3.3 測試任務驅動式教學
依據學習難度范圍,對典型工作任務進行排序。將典型工作任務進行難度范圍的歸類,在不同的難度范圍設計相應的測試任務,層層遞進,以任務為驅動,將學生置身具體任務之中[5]。充分利用慕測平臺提供的企業測試任務以及自身多年的軟件測試工程師工作經驗,從慕測平臺、企業項目著手,將收集的案例庫素材進行分析,篩選,裁剪。根據教學大綱進行編排,把案例與教學章節進行對應。整理出多個對應各個章節的案例以及一份綜合案例,形成任務驅動案例庫。調研分析目標崗位工作過程,確定職業領域典型工作任務,依據學習難度范圍,對典型工作任務進行序化,在每一階段進行測試任務的設計,以測試任務驅動模式教學[6]。開發適合教學的遞進式的測試任務,學生帶著任務去學習,帶著問題去學習,學生邊學邊做,針對進行測試需求分析、測試設計、測試執行以及測試報告撰寫的整套流程的訓練。從測試需求分析,到測試設計、測試執行再到問題單跟蹤系統的建立都由學生主動完成、鼓勵學生進行頭腦風暴、培養其自主學習能力。加深學生對具體到某一種測試技術使用場景的認識。將來在工作中面對一個商業化的完整項目時,可以在腦海里構建出一套完整的端到端的測試思路。
3.4 開發自動化測試框架教程
自動化測試是近幾年流行起來的。進行市場調研,能融入我們課程體系,同時又能比較系統全面的介紹自動化測試框架的教材很少。所以針對自動化測試的部分,選擇自主開發教程。選擇熱門的,同時適合教學的自動化框架RobotFramework;分解課程內容,歸納分為四部分:自動化框架介紹、集成開發環境安裝和使用介紹、腳本開發指導、任務創建執行與分析[7]。整套教程包括:
01.RobotFramework自動化測試框架介紹
02.RobotFramework環境安裝和搭建
03.RobotFrameowkr集成開發環境RIDE使用說明
04.RobotFramework_工程_測試套件_測試用例
05.RobotFramework語法-變量
06.Robot Framework語法 - 用戶關鍵字
07.Robot Framework語法 - 測試庫
08.Robot Framework語法 - 循環條件分支
09.Robot Framework-常用關鍵字介紹
10.Robot Framework-用例執行
11.Robot Framework-測試執行結果
在軟件測試技術這門課程對應的課程設計中進行應用,學生可以根據自身的興趣愛好選擇對應兩個不同的方向移動端和Web的同學分而掌握Selenium和Appium兩種支持庫[8]。
3.5 參照軟件行業績效考評機制,建立更科學的平時成績評價體系
目前學生的平時成績評價還停留在考勤、作業完成情況以及課堂回答情況這些大眾化的手段上,這樣的評價具有普適性,但不具有針對性。對軟件測試這類實踐性比較鮮明的課程,平時成績可以參照企業績效考評規則,從發現BUG的DI值和撰寫的用例數量、腳本代碼量等多個方面更客觀、更科學地給出評價。建立綜合評價指標體系,對學生在任務驅動模式教學中所提的BUG進行DI值的積分,對學生開發的腳本代碼量進行統計,考評與產出直接掛鉤,以評促學。
4 結束語
針對應用型本科院校學生的特點,改革教學方式方法,設計測試任務,測試任務驅動式教學,發揮學習評價體系對教學的促進作用,在教學過程中取得了較好的成績,學生實踐能力的得到加強,學生的主觀能動性得以激發,使學生對知識的理解更加透徹、準確、牢固,解決實際工程問題的能力得到提高,符合用人單位需求,就業質量得到提升。
當然,本實驗教學方案還存在待改進的方面,例如在測試工作過程中就測試流程的某一個階段的知識可以繼續深入挖掘,對該階段需要掌握的測試工具種類可以加以拓展。另外對于問題單跟蹤系統的知識可以繼續深化學習,將開發、測試、修改問題、回歸問題整個過程形成一個完整的閉環。這些可在后續軟件測試教學實踐中進一步探索。
參考文獻:
[1] 董倩,范亞斌.論軟件工程中軟件測試的重要性[J].煤炭技術,2013,32(6):173-175.
[2] 郭文欣.以軟件需求為導向的軟件測試實踐教學探索[J].科技創新導報,2019,16(34):226,228.
[3] 姜大源.工作過程系統化:中國特色的現代職業教育課程開發[J].順德職業技術學院學報,2014,12(3):1-11,27.
[4] 韋偉,朱俊,陳琳琳.工作過程系統化在應用型本科教育中的探索與實踐——以軟件測試方向人才培養為例[J].中國教育技術裝備,2018(8):74-76.
[5] 張正金,石寶金.基于項目驅動的《軟件測試》課程教學研究[J].巢湖學院學報,2018,20(3):134-137.
[6] 劉洪濤,楊秀茹.任務驅動教學法的實踐與思考[J].中國市場,2014(27):168-169.
[7] 陳曉伍.Python Web自動化測試設計與實現[M].北京:清華大學出版社,2019.
[8] Ping++ 測試團隊.Selenium自動化測試之道[M].北京:清華大學出版社[,2017.
【通聯編輯:謝媛媛】