劉建芳 鄭浩 孫浩杰
摘要:針對現(xiàn)有《軟件測試技術(shù)》課程出現(xiàn)理實分離、內(nèi)容陳舊等問題,深入調(diào)研企業(yè)軟件測試流程及軟件測試行業(yè)動態(tài),提出教學(xué)改革方案。方案將國際流行的CDIO工程教育模式引入到理實一體化教學(xué)中,采用任務(wù)引領(lǐng)、項目主導(dǎo)的教學(xué)方法,對軟件測試技術(shù)課程的教學(xué)內(nèi)容、教學(xué)組織形式進(jìn)行改革,提高了學(xué)生的學(xué)習(xí)興趣和工程應(yīng)用能力。
關(guān)鍵詞:軟件測試;CDIO;一體化教學(xué)
中圖分類號:G64 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)18-0103-03
1存在的問題
目前我校軟件測試技術(shù)課程開設(shè)在大三下學(xué)期,采用理論和實驗分開的教學(xué)形式。由于課程對理論性和實踐性要求都較高,加上學(xué)生對軟件測試行業(yè)的認(rèn)知偏差,導(dǎo)致學(xué)生學(xué)習(xí)熱情不高,學(xué)習(xí)效果不佳。結(jié)合實際,對存在問題總結(jié)如下。
1.1認(rèn)知偏差
由于我國軟件測試行業(yè)起步較晚,長時間以來手動測試占據(jù)較大的市場,導(dǎo)致學(xué)生認(rèn)為軟件測試工作不需要太多的計算機專業(yè)知識,不如開發(fā)軟件重要,相關(guān)工作待遇低、發(fā)展空間小。從而學(xué)生對軟件測試技術(shù)課程的學(xué)習(xí)熱情不高。
1.2理實分離
在教學(xué)模式上,軟件測試技術(shù)課程仍然采用理論和實驗分開的教學(xué)模式,尚未采用一體化教學(xué)模式。學(xué)生不能做到邊做邊練,導(dǎo)致學(xué)生連續(xù)學(xué)習(xí)大量的理論知識,學(xué)習(xí)效果不佳,實驗課時難以將實踐和理論聯(lián)系起來。從而導(dǎo)致學(xué)生學(xué)習(xí)效果不佳。
1.3內(nèi)容陳舊
我校軟件測試技術(shù)課程教學(xué)重點主要集中在通用軟件測試基礎(chǔ)上,如白盒測試方法、黑盒測試方法等,內(nèi)容相對陳舊,沒有專門針對Web應(yīng)用程序、Android/IOS APP、大數(shù)據(jù)云計算產(chǎn)品測試的內(nèi)容。在課程案例上,通常是針對相關(guān)方法選取獨立案例進(jìn)行方法練習(xí),缺乏關(guān)聯(lián)性和實際應(yīng)用性。另外在測試工具上,主要使用LoadRunner進(jìn)行負(fù)載測試工具。對當(dāng)前測試技術(shù)中流行的Junit框架、QTP等自動化測試工具基本沒有涉及。而目前測試行業(yè)自動化測試和性能測試前景良好,調(diào)整教學(xué)內(nèi)容適應(yīng)行業(yè)發(fā)展勢在必行。
2企業(yè)軟件測試行業(yè)動態(tài)
分析《2016年中國軟件測試現(xiàn)狀研究及發(fā)展趨勢報告》,對報告內(nèi)容進(jìn)行分析凝練,總結(jié)出以下幾個與教學(xué)改革息息相關(guān)的幾個行業(yè)動態(tài):
2.1自動化和性能測試前景看好
近十年來,國內(nèi)軟件測試行業(yè)高速發(fā)展,中低端手工功能測試人員已趨于飽和,而諸如自動化測試及性能測試等專業(yè)知識要求較強的高端測試人才仍然處于緊缺狀態(tài)。目前市場上出現(xiàn)很多針對自動化測試和性能測試等相關(guān)工程師能力提升的培訓(xùn)需求。
相比人工測試,自動化測試在回歸測試階段能以便利的方式驗證是否有新的錯誤進(jìn)入軟件產(chǎn)品。既節(jié)省了重復(fù)手工輸入的工作量,保證了測試案例的一致性,對產(chǎn)品測量能夠進(jìn)行更有效的度量。
目前,一些大公司都有自動化測試的工作和相關(guān)的人員配備,同時,部分手工測試人員已經(jīng)開始進(jìn)行自動化測試學(xué)習(xí),完成人才儲備。
2.2軟件測試?yán)砟畎l(fā)生改變
報告顯示目前我國大概有四分之三的軟件公司都有相對獨立的測試部門(或測試組),對比前幾年的開發(fā)測試人員比,不難發(fā)現(xiàn)最近幾年開發(fā)人員與測試人員比在7:1以上的公司數(shù)目明顯減少,而趨近3:1的公司數(shù)目也呈現(xiàn)出緩慢上升的趨勢,同時軟件測試人員中具有計算機專業(yè)背景的從業(yè)人員比也呈上升趨勢,從這一數(shù)據(jù)可以看出,越來越多的軟件公司以及軟件從業(yè)人員對軟件測試的認(rèn)識在發(fā)生改變,對專業(yè)測試的重視程度呈現(xiàn)逐步加強趨勢,同時國內(nèi)企業(yè)對軟件測試人員的需求量也在增多。
2.3互聯(lián)網(wǎng)和金融行業(yè)軟件測試工程師需求增多
目前無論是國家層面,還是投資者或者是個人,對互聯(lián)網(wǎng)行業(yè)以及金融行業(yè)都表現(xiàn)出極大的興趣。調(diào)查報告也很好地印證了這一點。對所有接受調(diào)查的軟件測試工程師所從事的行業(yè)進(jìn)行統(tǒng)計分析發(fā)現(xiàn),63.8%的人員來自互聯(lián)網(wǎng)和金融行業(yè)。而同時隨著互聯(lián)網(wǎng)行業(yè)和金融行業(yè)的蓬勃發(fā)展,相關(guān)企業(yè)的用人需求也是逐年呈上升趨勢,行業(yè)內(nèi)軟件測試人才出現(xiàn)較大的缺口。通過調(diào)查發(fā)現(xiàn),在互聯(lián)網(wǎng)行業(yè)和金融行業(yè)中的軟件測試從業(yè)者月薪基本在八千至一萬二之間,有些甚至更高。
3 CDIO工程教育模式
CDIO工程教育模式是構(gòu)思(Conceive)、設(shè)計(Design)、實現(xiàn)(Implement)和運作(Operate)的簡稱,它將產(chǎn)品從研發(fā)到運行的整個生命周期分為四個層次,使學(xué)生能以積極、務(wù)實、有機的方式學(xué)習(xí)工程項目。其人才培養(yǎng)大綱要求工程專業(yè)的畢業(yè)生需要達(dá)到四個層面的能力,即基礎(chǔ)能力(對基礎(chǔ)理論知識的掌握)、個人能力(基礎(chǔ)知識的應(yīng)用、閱讀分析能力)、人際團(tuán)隊能力(溝通、合作、抗壓等能力)和工程系統(tǒng)能力(工程思想)。大綱非常詳細(xì)地給出了學(xué)生在相對應(yīng)層面如何通過綜合培養(yǎng)方式實現(xiàn)預(yù)期目標(biāo)。
我國目前的高等教育中更加側(cè)重知識技能教育,而在職業(yè)精神和職業(yè)道德的培養(yǎng)上相對較弱。介于此,汕頭大學(xué)工學(xué)院率先提出在進(jìn)行CDIO工程化教育改革的同時引入職業(yè)道德培養(yǎng),提出EIP-CDIO培養(yǎng)模式。EIP(Ethics,Integrity,Profes-sionalism)注重學(xué)生的職業(yè)道德和職業(yè)精神,將其與基本CDIO理念構(gòu)思、設(shè)計、實現(xiàn)和運作相結(jié)合,構(gòu)建高等工程教育新模式,以培養(yǎng)高級工程專業(yè)人才。該模式強調(diào)做人與做事并重發(fā)展,在做事中體現(xiàn)做人,在做人中認(rèn)真做事,在培養(yǎng)工程技術(shù)的同時,注重對學(xué)生的人文精神發(fā)展,從而培養(yǎng)出具有健全人格的優(yōu)秀工程師,既有過硬的專業(yè)知識,也有優(yōu)秀的從業(yè)品質(zhì)。大連東軟信息學(xué)院根據(jù)“教育創(chuàng)造學(xué)生價值”的教育理念,運用CDIO工程教育模式、在原有CDIO的概念之上,結(jié)合我國和該校的特色,進(jìn)行CDIO本地化。該院對學(xué)情、教情、行業(yè)以及社會等各方面的現(xiàn)狀展開調(diào)研,認(rèn)真分析我國現(xiàn)有高等教育的實際情況,對照IT行業(yè)的各類人才需求標(biāo)準(zhǔn),針對該院現(xiàn)有IT專業(yè)的課程開設(shè)情況,對CDIO工程教育模式的能力培養(yǎng)大綱進(jìn)行改革創(chuàng)新,建構(gòu)具備東軟特色的“TOPCARES-CDIO”八大能力指標(biāo)體系。endprint
4課程教學(xué)目標(biāo)定位
平頂山學(xué)院于2012年9月開始實施理論與實踐統(tǒng)一、教學(xué)做相結(jié)合的一體化教學(xué)方式。結(jié)合CDIO工程教育理念,《軟件測試技術(shù)》課程的教學(xué)目標(biāo)是通過直接參與項目激發(fā)學(xué)生的學(xué)習(xí)熱情和求知欲望,使學(xué)生在參與項目的過程中對軟件測試過程中的基本思想、理論、規(guī)范、方法和技術(shù)及在真實項目中的應(yīng)用有較深的理解,掌握軟件測試的流程。培養(yǎng)學(xué)生具備良好的實際軟件測試能力,形成良好的軟件測試思維方式,能夠靈活地應(yīng)用理論知識解決實際的問題。通過這門課程,培養(yǎng)學(xué)生分析問題和解決問題的能力。通過該課程培養(yǎng)學(xué)生對實際問題的分析解決能力,同時培養(yǎng)學(xué)生的創(chuàng)新精神與團(tuán)隊協(xié)作意識。
5課程教學(xué)實施安排
本文借鑒傳統(tǒng)CDIO工程教育理念,采用理論實驗一體化的教學(xué)形式,從教學(xué)方法、教學(xué)內(nèi)容、教學(xué)實施三個方面對《軟件測試技術(shù)》課程的教學(xué)實施展開闡述。
5.1教學(xué)方法
通過學(xué)習(xí)CDIO工程理念與方法,在教學(xué)過程中使用企業(yè)項目支撐教學(xué)過程,借鑒企業(yè)實際開發(fā)流程,運用實際案例來驅(qū)動教學(xué)過程,結(jié)合基礎(chǔ)知識分解學(xué)習(xí)任務(wù),從而引領(lǐng)學(xué)習(xí)在理論學(xué)習(xí)的同時學(xué)會運用。教師由傳統(tǒng)的授課角色轉(zhuǎn)為項目發(fā)布人和項目導(dǎo)師的雙重角色,通過發(fā)布實際任務(wù)激發(fā)學(xué)生的學(xué)習(xí)熱情,挖掘?qū)W生的內(nèi)在潛力,通過結(jié)合實際項目分析知識點的應(yīng)用,指導(dǎo)學(xué)生親自完成來自項目中的若干任務(wù),從而讓學(xué)生更好地掌握相關(guān)知識要點的來龍去脈,進(jìn)而掌握工程項目的實施理念和方法,也通過團(tuán)隊合作的形式加強學(xué)生的團(tuán)隊合作意識和職業(yè)溝通能力。這種以項目為核心的教學(xué)模式打破了課堂與實驗室的界限,實現(xiàn)了理論教學(xué)與實踐教學(xué)的高度融合。通過做項目,培養(yǎng)了學(xué)生的創(chuàng)新精神與團(tuán)隊合作意識,使學(xué)生通過參與項目學(xué)會了做事,也學(xué)會了合作。
5.2教學(xué)內(nèi)容
結(jié)合企業(yè)軟件測試行業(yè)動態(tài)和課程目標(biāo)定位,將課程教學(xué)內(nèi)容劃分為七個模塊,分別為軟件測試技術(shù)概述、軟件測試的策略和過程、黑盒測試、白盒測試、特定環(huán)境和應(yīng)用測試、軟件自動化測試和軟件測試管理。
其中,軟件測試概述主要講授軟件測試的相關(guān)概念。學(xué)習(xí)此部分學(xué)生能夠了解軟件測試工作的背景、軟件缺陷和軟件故障的基本概念;理解軟件測試的意義、軟件開發(fā)過程與軟件測試的關(guān)系等;了解軟件測試職業(yè)與素養(yǎng)的要求。
軟件測試策略與過程主要講授軟件測試方法與策略。學(xué)習(xí)此部分學(xué)生需要掌握單元測試、集成測試、系統(tǒng)測試和驗收測試的方法;掌握軟件測試的方法與策略;確定單元測試的主要任務(wù)和流程,定義集成測試方法和驗證測試標(biāo)準(zhǔn);明白驗收測試的相關(guān)內(nèi)容和配置。
黑盒測試技術(shù)及其用例設(shè)計主要講授與黑盒測試相關(guān)的技術(shù)和方法。學(xué)習(xí)此部分學(xué)生能夠掌握黑盒測試的基本概念;掌握用于黑盒測試的等價類劃分法的基本理論和應(yīng)用領(lǐng)域;掌握用于黑盒測試的邊界分析法的邊界設(shè)置方法;掌握用于黑盒測試的因果圖法和決策表法的基本理論和應(yīng)用。
白盒測試及其用例的設(shè)計主要講授白盒測試方法。學(xué)習(xí)此部分學(xué)生理解白盒測試的基本概念;了解白盒測試中提到的覆蓋概念;學(xué)會使用白盒測試的路徑表達(dá)以及路徑測試法,并能將其應(yīng)用到具體的測試工作中。
特定環(huán)境及應(yīng)用測試主要根據(jù)特定應(yīng)用講授相關(guān)測試方法及技術(shù),包括Web應(yīng)用程序測試、嵌入式軟件測試、移動APP測試以及大數(shù)據(jù)、云計算產(chǎn)品測試等。
軟件自動化測試主要介紹目前流行的自動化測試工具,學(xué)習(xí)此部分學(xué)生理解自動化測試的基本概念;掌握軟件自動化測試生存周期基本理論、方法學(xué)及其在實際工程中的應(yīng)用;熟悉軟件自動化測試工具與測試平臺等。
軟件測試管理主要講授軟件測試與質(zhì)量文檔的規(guī)范,軟件缺陷管理流程,敏捷開發(fā)管理、探索式軟件測試管理等。學(xué)習(xí)此部分要求學(xué)生了解測試組織的組織和管理,了解測試體系結(jié)構(gòu)和配置與管理測試環(huán)境。
5.3教學(xué)實施
結(jié)合本文提到的基于CDIO模式的一體化教學(xué)方法,在教學(xué)具體實施上,《軟件測試技術(shù)》課程以基于Web的某考勤系統(tǒng)和某醫(yī)養(yǎng)護(hù)APP為例完成測試過程。本文以基于Web的某考勤系統(tǒng)為例展開闡述。
該考勤系統(tǒng)主要實現(xiàn)用戶管理、排班管理、休假管理、考勤管理、加班調(diào)休管理、報表管理、統(tǒng)計分析等幾大模塊。其中用戶管理主要實現(xiàn)用戶信息維護(hù),用戶權(quán)限管理;排班管理包括法定假日等基礎(chǔ)信息設(shè)置,考勤檔案管理、班制設(shè)置、排班設(shè)置、部門排班、專業(yè)部門審核等;休假管理包括假期信息管理維護(hù),該維護(hù)過程按照實際請假流程完成,申請→請假類型→審批人(公司領(lǐng)導(dǎo))→審批層級(對應(yīng)的部門)→請假提示→結(jié)果反饋(員工返回后銷假,休假生效后,考勤系統(tǒng)異常自動過濾,自行設(shè)置,根據(jù)類型提示);考勤管理包括員工上下班刷卡管理、刷卡記錄查詢、離崗管理、離崗審批、考勤補簽與異??记诠芾恚患影嗾{(diào)休管理包括加班申請、加班審核、換休調(diào)整、加班統(tǒng)計、已換休統(tǒng)計、加班類別管理;報表管理包括報表類別和項目設(shè)置、考勤報表項目,各種休假、公出、換休等項目、考勤與休假信息查詢;統(tǒng)計分析主要完成出勤人員分布信息的統(tǒng)計管理。
課程具體實施過程分為以下幾個階段:結(jié)合某企業(yè)項目中某一子任務(wù)的業(yè)務(wù)流程和開發(fā)特點分析完成測試工作所需要的基本知識要點一>教師結(jié)合教學(xué)大綱中的教學(xué)內(nèi)容和教學(xué)目標(biāo),講解核心知識和技術(shù)>教師選擇具有代表性的模塊帶領(lǐng)學(xué)生完成測試,理解理論知識的實際應(yīng)用一>教師結(jié)合項目其他功能分解任務(wù),布置具體實踐內(nèi)容,由學(xué)生以團(tuán)隊形式分工協(xié)作完成任務(wù)一>教師根據(jù)學(xué)生實踐情況進(jìn)行重難點知識應(yīng)用的總結(jié),并對出現(xiàn)問題進(jìn)行反饋。下面排班設(shè)置模塊測試為例,介紹具體實施過程。
1)教師講解排班設(shè)置業(yè)務(wù)流程;考勤管理系統(tǒng)通過排班設(shè)置自動判斷員工的考勤狀態(tài),本系統(tǒng)采用按月設(shè)置,即每月月末的時候進(jìn)行下一月的排班表設(shè)置。管理人員需要新增工作時間之后方可進(jìn)行排班設(shè)置。具體過程是通過安排設(shè)置上班時間、下班時間、中間休息時間完成新增工作時間;新增工作時間結(jié)束后,在排班模塊設(shè)置工作班制、排班類型、排班的具體月份以及考勤人員范圍等,并生成本月的臺賬。如果本月已經(jīng)生成過,則可以選擇是否需要覆蓋已有臺賬。針對某月存在法定節(jié)假日或者公司加班日的情況,可以有針對l生地對排班模塊進(jìn)行修改,即修改某日的排班類型。
2)教師講解Web系統(tǒng)測試的特點和方案;具體包括鏈接測試(主要考察頁面切換是否正確、是否有孤立頁面、鏈接頁面是否存在等)、表單測試(信息提交是否能正常工作)、Cookies測試(查看Cookies是否起作用、是否按預(yù)期保存、刷新是否有影響等)、用戶界面測試(各頁面風(fēng)格是否統(tǒng)一、布局是否合理、界面是否友好、窗口是否能按要求適當(dāng)打開、調(diào)整等),功能測試(時間設(shè)置是否正確、功能是否實現(xiàn))。
3)教師針對完成工作時間安排功能的兩個頁面(工作時間安排查看頁面和新增標(biāo)準(zhǔn)工作時間安排頁面),結(jié)合上述Web系統(tǒng)測試的特點和方案展開分析,同時給出該功能的測試用例集,結(jié)合需求分析和系統(tǒng)設(shè)計文檔帶領(lǐng)學(xué)生完成相關(guān)測試;教師布置任務(wù)要求每個學(xué)生完成排班設(shè)置業(yè)務(wù)中的其他功能(新增排班、查看排班模版、修改排班日模板、生成臺賬等功能),在學(xué)生完成過程中,教師巡視教室,檢查學(xué)生對知識及應(yīng)用的掌握程度。
4)教師結(jié)合需求分析文檔和系統(tǒng)設(shè)計講解其他模塊的業(yè)務(wù)流程,布置課后延伸作業(yè),由學(xué)生分小組分任務(wù)以團(tuán)隊形式課后完成其他模塊的測試用例編寫、測試過程;
5)學(xué)生以團(tuán)隊形式對完成任務(wù)過程中出現(xiàn)的問題進(jìn)行內(nèi)部消化解決,對未解決問題進(jìn)行匯總,在下一次上課時由學(xué)生代表提出,由其他團(tuán)隊或者教師參與共同解決問題。
6結(jié)束語
本文闡述了將CDIO工程教學(xué)理念運用到《軟件測試技術(shù)》一體化課程教學(xué)中的改革實施研究。查找現(xiàn)有課程教學(xué)中存在的問題,調(diào)查企業(yè)軟件測試行業(yè)動態(tài),研究CDIO模式特點,更新課程教學(xué)內(nèi)容,并通過項目教學(xué)實踐,采用項目驅(qū)動教學(xué),用任務(wù)引領(lǐng)學(xué)習(xí)。經(jīng)教學(xué)檢驗,能夠較好的調(diào)動學(xué)生的學(xué)習(xí)熱情和求知欲望,提高了學(xué)生的工程應(yīng)用和團(tuán)隊合作能力,教學(xué)改革取得一定成效。endprint