高洪皓 高玨 吳亞馨 嚴(yán)穎敏
摘要:介紹面向測試問題驅(qū)動(dòng)的競賽能力培養(yǎng)模式,以激發(fā)學(xué)生對軟件開發(fā)的興趣和潛能,提高運(yùn)用信息技術(shù)解決實(shí)際問題的綜合能力和團(tuán)隊(duì)合作意識(shí)。
關(guān)鍵詞:計(jì)算機(jī)設(shè)計(jì)大賽;測試問題管理;現(xiàn)場演示與評估;問題分析與調(diào)試
0.引言
中國大學(xué)生計(jì)算機(jī)設(shè)計(jì)大賽是教育部計(jì)算機(jī)教指委認(rèn)定的大學(xué)生系列競賽之一,其舉辦目的是提高大學(xué)生綜合素質(zhì),引導(dǎo)學(xué)生踴躍參與課外科技競賽活動(dòng)。大賽每年3月份啟動(dòng),7-8月份決賽,分校賽、省賽、國賽3個(gè)級別。軟件服務(wù)外包與動(dòng)漫大賽的評委由高校教師和企業(yè)項(xiàng)目經(jīng)理等混合組成,以企業(yè)需求為衡量,以實(shí)現(xiàn)技術(shù)和應(yīng)用實(shí)效作為評審標(biāo)準(zhǔn)。上海大學(xué)非常重視培養(yǎng)學(xué)生軟件服務(wù)外包開發(fā)能力,參與了兩屆中國大學(xué)生計(jì)算機(jī)設(shè)計(jì)大賽軟件服務(wù)外包分賽,兩次獲得二等獎(jiǎng)。
面向測試問題驅(qū)動(dòng)是一種有效的競賽能力培養(yǎng)模式,強(qiáng)調(diào)在軟件開發(fā)周期中測試問題修復(fù)過程。問題情境具有情感上的吸引力,容易使學(xué)生產(chǎn)生學(xué)習(xí)的興趣,形成問題答案的欲望,促使學(xué)生自覺、主動(dòng)地尋求解決問題的方法,這也是大學(xué)生計(jì)算思維能力培養(yǎng)的重要途徑和方法。
1.頭腦風(fēng)暴界定服務(wù)外包任務(wù)
對于失敗的服務(wù)外包軟件而言,實(shí)現(xiàn)的功能與預(yù)期的需求不一致是最大障礙。復(fù)雜軟件的開發(fā)首要問題就是弄清楚目標(biāo)軟件具有怎樣的功能或特性。
1.1了解服務(wù)外包軟件需求描述
軟件服務(wù)外包是指企業(yè)通過購買第三方提供的軟件服務(wù),來完成原來由企業(yè)內(nèi)部完成的工作,從而提高企業(yè)的核心競爭力。軟件服務(wù)外包是對環(huán)境應(yīng)變能力的一種管理模式。企業(yè)可以更專注核心業(yè)務(wù),達(dá)到降低成本、提高效率、增強(qiáng)企業(yè)核心競爭力的目的。服務(wù)外包強(qiáng)調(diào)的是軟件開發(fā)方的技術(shù)優(yōu)勢,參加服務(wù)外包分賽是產(chǎn)學(xué)研實(shí)踐教學(xué)的有效手段。在軟件開發(fā)前,召集團(tuán)隊(duì)成員對服務(wù)外包需求進(jìn)行分析,讓團(tuán)隊(duì)成員充分理解需求,并以功能點(diǎn)的形式描述出來。同時(shí),在項(xiàng)目會(huì)議上,團(tuán)隊(duì)成員報(bào)告自己所理解的軟件功能。其他成員也可以隨時(shí)打斷并提出自己的疑問,以供大家一起討論。頭腦風(fēng)暴、團(tuán)隊(duì)協(xié)作的方法,可將集體智慧最大化。最后,爭論問題則由指導(dǎo)教師拍板決定。
1.2明確服務(wù)外包軟件目標(biāo)任務(wù)
明確需求后,將任務(wù)進(jìn)行總結(jié)并形成電子文檔。經(jīng)過1~2輪小組評審,將其確定為服務(wù)外包軟件開發(fā)的任務(wù)基線。一般而言,評審確認(rèn)工作需要用戶方參與。由于參賽小組選擇的自主企業(yè)命題,因此在參賽過程中,比較容易讓客戶方參與其中,討論目標(biāo)軟件功能。其次,根據(jù)開發(fā)任務(wù)召集團(tuán)隊(duì)成員,討論軟件系統(tǒng)架構(gòu)、功能模塊的劃分。如果客戶方要求使用某種技術(shù),先安排團(tuán)隊(duì)成員熟悉開發(fā)語言和開發(fā)平臺(tái)。最后,根據(jù)競賽時(shí)間的周期安排,基于Projlect工具繪制甘特圖,安排軟件開發(fā)進(jìn)度,細(xì)分任務(wù)和任務(wù)完成時(shí)間節(jié)點(diǎn),并落實(shí)每項(xiàng)進(jìn)度任務(wù)的負(fù)責(zé)人。我們通過各種渠道尋求解決方案,允許團(tuán)隊(duì)成員采用合適技術(shù)手段加以解決。
2.以測試問題管理為中心
測試是確保開發(fā)的軟件程序是否滿足客戶需求的重要保證。對團(tuán)隊(duì)成員完成的任務(wù)模塊進(jìn)行測試,可以檢驗(yàn)任務(wù)是否按質(zhì)量,是否按進(jìn)度完成。在服務(wù)外包軟件開發(fā)過程中,對于測試發(fā)現(xiàn)的問題,如果開發(fā)人員不及時(shí)修改,部分功能發(fā)生嚴(yán)重問題,將導(dǎo)致系統(tǒng)功能無法正確執(zhí)行。因此,不僅需要好的測試用例以及執(zhí)行情況,而且還需要將測試發(fā)現(xiàn)的問題和功能修改情況進(jìn)行統(tǒng)一管理。
2.1設(shè)計(jì)合理的測試用例
軟件服務(wù)外包需要詳細(xì)設(shè)計(jì)軟件測試用例。測試用例不僅包括輸入和預(yù)期的輸出,而且包括執(zhí)行輸出和結(jié)果。我們根據(jù)執(zhí)行結(jié)果的正確與否,測試相關(guān)人員提交的軟件缺陷情況。實(shí)行邊測試邊開發(fā)的策略,局部測試和全局測試,在回歸測試中需要考慮測試用例版本管理情況,即測試用例的版本需要根據(jù)當(dāng)前服務(wù)外包軟件的開發(fā)情況制定。
2.2功能演示和測試
現(xiàn)場演示功能模塊是最能發(fā)現(xiàn)軟件問題的一個(gè)環(huán)節(jié)。一方面,現(xiàn)場演示可以鍛煉團(tuán)隊(duì)成員的語言表達(dá)能力和人際交流能力,又可以提高成員對于軟件模塊中錯(cuò)誤設(shè)計(jì)的認(rèn)知能力。實(shí)踐表明,現(xiàn)場演示更加容易發(fā)現(xiàn)軟件模塊中的問題。另一方面,現(xiàn)場測試具有特殊性,需要提前認(rèn)真準(zhǔn)備,只要有一個(gè)環(huán)節(jié)出現(xiàn)問題,就很有可能導(dǎo)致整個(gè)測試失敗。由于分工合作開發(fā),如果現(xiàn)場演示中出現(xiàn)問題,就需要將有關(guān)模塊一起連調(diào),有助于發(fā)現(xiàn)軟件設(shè)計(jì)和開發(fā)所隱藏的問題。對于現(xiàn)場出現(xiàn)的測試問題,我們要及時(shí)做好相關(guān)的記錄工作,以便后續(xù)跟蹤。
2.3測試問題提交
提交的測試問題如有缺陷,容易引起相關(guān)模塊開發(fā)人員的爭議,因此,在提交測試問題時(shí),需至少清楚地給出概要描述、詳細(xì)描述、重現(xiàn)步驟等3方面內(nèi)容。我們選擇Bugzilla工具作為競賽小組的測試問題管理平臺(tái),分配項(xiàng)目測試人員和開發(fā)人員相關(guān)賬號,其中測試人員提交和刪除測試問題,開發(fā)人員則只能查看測試問題。我們搭建TortoiseSVN作為軟件開發(fā)版本管理工具,實(shí)現(xiàn)分工開發(fā)和代碼集成,以推進(jìn)軟件項(xiàng)目和保證項(xiàng)目質(zhì)量。開發(fā)人員提交的修復(fù)程序,必須經(jīng)過測試人員測試后才能刪除問題,主要目的是防止將來模塊開發(fā)人員在修改測試問題后,直接刪除測試問題。
2.4重視回歸測試
開發(fā)人員在修改問題缺陷時(shí),往往會(huì)引入新的缺陷。在傳統(tǒng)的軟件開發(fā)過程中,一旦整體進(jìn)度不能向后延遲,習(xí)慣的做法就是縮減測試時(shí)間。尤其在功能還沒有開發(fā)完成的情況下,有人認(rèn)為回歸測試沒有必要,只驗(yàn)證一些以前發(fā)現(xiàn)的缺陷是否修改完成就可以了。這是錯(cuò)誤的觀點(diǎn),在服務(wù)外包軟件開發(fā)過程中,回歸測試是檢驗(yàn)測試問題是否消除的最直接手段,因此必須重視。要記錄和跟蹤關(guān)鍵缺陷的測試問題變更歷史,尤其是在現(xiàn)場功能演示時(shí),要求團(tuán)隊(duì)成員回歸測試時(shí)執(zhí)行一次全部的測試用例。同時(shí),吸引一些低年級學(xué)生參與測試軟件,提高發(fā)現(xiàn)問題缺陷的概率,保障團(tuán)隊(duì)后續(xù)穩(wěn)定發(fā)展。
3.團(tuán)隊(duì)管理與文化
軟件服務(wù)外包開發(fā)是多任務(wù)并發(fā)和協(xié)作完成的,因此學(xué)生能力的培養(yǎng)需要重視技術(shù)方面的培養(yǎng),需要重視培養(yǎng)團(tuán)隊(duì)的合作精神,以避免開發(fā)過程中的個(gè)人英雄主義。在面向測試問題驅(qū)動(dòng)的模式下,信任和溝通尤為重要。
3.1培養(yǎng)相互信任
信任是團(tuán)隊(duì)合作的基礎(chǔ)。信任需長時(shí)間才能建立起來,卻又很容易被破壞。在服務(wù)外包軟件開發(fā)初期,為了讓團(tuán)隊(duì)成員之間相互熟悉,我們通過反恐精英游戲和魔獸等團(tuán)隊(duì)游戲培養(yǎng)合作意識(shí)。在軟件開發(fā)過程中,對于現(xiàn)場功能演示和測試發(fā)現(xiàn)的測試問題,允許團(tuán)隊(duì)成員參與分析與討論,進(jìn)一步加強(qiáng)合作和互助。
3.2測試問題溝通
溝通在團(tuán)隊(duì)管理中扮演著相當(dāng)重要的角色。除了通過郵件、短信、QQ群等不定期的聯(lián)系之外,書面材料匯報(bào)測試發(fā)現(xiàn)的問題也十分重要。因此,按照書面材料匯報(bào)機(jī)制,我們要求團(tuán)隊(duì)每周開一次例會(huì),各成員匯報(bào)自己本周內(nèi)的工作進(jìn)展及接下來的工作計(jì)劃,并集體討論階段性遇到的開發(fā)問題和技術(shù)困難。將技術(shù)難題集中放到小組會(huì)議上討論交流,可以加強(qiáng)團(tuán)隊(duì)成員之間的溝通。
3.3競賽經(jīng)驗(yàn)分享
在兩屆軟件服務(wù)外包大賽的備賽過程中,為了更好地幫助團(tuán)隊(duì)成員,我們邀請歷年曾參加過大賽的高年級學(xué)生傳授經(jīng)驗(yàn)與方法,從而使參賽學(xué)生更快更真實(shí)地了解比賽信息,包括軟件開發(fā)技巧和決賽答辯經(jīng)驗(yàn)。同時(shí),我們不定期地組織技術(shù)講座和討論會(huì),讓參賽學(xué)生在技術(shù)層面獲得幫助。在賽前我們還進(jìn)行模擬答辯,加強(qiáng)現(xiàn)場應(yīng)變能力。
4.結(jié)語
中國大學(xué)生計(jì)算機(jī)設(shè)計(jì)大賽具有賽事時(shí)間長、參賽人數(shù)廣、多層次競賽等特征,不僅鍛煉了參賽學(xué)生的計(jì)算機(jī)軟件開發(fā)能力,而且培養(yǎng)了他們的團(tuán)隊(duì)合作意識(shí)。面向測試問題驅(qū)動(dòng)的競賽能力培養(yǎng)模式,提升了團(tuán)隊(duì)成員的實(shí)踐技能和創(chuàng)新思維,尤其是尋找技術(shù)解決方案的能力?,F(xiàn)場決賽答辯模式加強(qiáng)了參賽學(xué)生的語言表達(dá)與溝通能力,為拓展綜合素質(zhì)提供了良好的機(jī)會(huì)。
(編輯:郭田珍)