◆劉舒婷
(吉林大學軟件學院)
軟件測試思維在“程序設計基礎”教學中的培養初探
◆劉舒婷
(吉林大學軟件學院)
針對“程序設計基礎”課程教學的現狀進行了分析,提出了四點軟件測試思維與“程序設計基礎”課程知識點的結合的措施,同時以長春建筑學院為例,通過實踐數據說明了該教學思想有助于提高課堂的有效教學,為程序設計基礎課程的教學改革提出了新的思想。
軟件測試思維 程序設計基礎 教學改革
《程序設計基礎》是各高校計算機專業開設的專業基礎課之一,大多數高校通過講授C或C++ 語言來鍛煉培養學生的邏輯思維能力、計算能力和編程能力,為以后學生學習其他程序設計類課程打下堅實的基礎。探討如何通過軟件測試思維的引入提高學生的編程興趣,增強領域知識對教學具有實際意義。
當前,大多數教師在教授該門課程時只重視語法和算法的講授,而不注重程序設計的綜合能力的培養,學生沒有學習興趣,教學效果不好。分析造成該狀況的原因主要有以下三點:(1)缺乏融合軟件工程思維的程序設計基礎教材。經調查發現,大多數的面向普通本科的C/C++教材的內容的編排都是傳統模式,以講解語法為主,在講解循環結構、結構體、鏈表等章節時融入了數據結構、算法的知識,只有近幾年年出版的個別教材對內容進行了改革,從案例角度、軟件工程的角度、算法的角度來進行講解,但這種教材使用范圍較小。(2)教師講授該課程的知識體系和思想意識落后。很多教師不喜歡改變原有的知識體系,因循守舊,只考慮把課程教完就萬事大吉,而沒有從學生角度考慮問題。(3)部分教師自身知識體系不完整。由于高校教師除了從事日常教學外還承擔著科研的任務,每個人都有自己的研究領域,所以對自身不擅長的領域內容欠缺或忽視,這也直接體現本門課程的教學中。
眾所周知,程序是構成軟件的重要的組成部分,程序的正確性、健壯性問題關系到整個軟件的質量。所以應該培養學生編程能力的同時加強對軟件測試能力的培養,增強對軟件和程序的宏觀認識。
首先,教師在教學過程中應將軟件工程中強調的“5W+1H”的思想注入到學生的思想意識中,在此可解釋為Why(程序的作用)、What(程序的功能)、Who(開發者)、When(開發時間)、Where(開發地點)、How(程序的算法),使學生建立軟件的概念,強調在編寫完程序后要選用恰當的測試數據,進行足夠多的測試,保證程序的正確性、健壯性,當測試達到要求后才能夠提交程序。
其次,將軟件測試的思想、方法融入到程序設計基礎課程的講授中。部分軟件測試思想與C/C++各知識點的結合列舉如下:
(1)將黑盒、白盒測試技術融入到選擇、循環結構內容中。白盒測試重點測試程序的內部結構是否正確,C/C++課程中的選擇結構和循環結構有多條路徑,在判定節點擁有多個判定條件,在講解該結構時應將白盒測試中的邏輯覆蓋思想融入其中。在完善程序時可采用等價劃分和邊界值分析兩種思想選取測試數據,利用等價劃分技術分析數據有利于提高程序的健壯性。
(2)單元測試、集成測試與函數的結合。可以將C語言中的函數理解成模塊,每一個函數完成一個獨立的功能,編寫由多個函數構成的程序時,應該對每個函數進行單元測試,確認每個函數的正確性,然后逐一集成,最終完成整個程序的測試。
(3)編寫程序時應融入的軟件測試意識:在編寫C/C++程序時要讓學生知道絕對正確的程序是不存在的,再小的程序也存在著錯誤;在學生編寫完程序后應讓學生組成小組,互相測試對方的程序,這也是軟件測試中第三方測試的作用;鼓勵創造性思維,提出不合理數據進行軟件測試。
該教學思想已經應用于長春建筑學院14級信息安全專業學生的“程序設計基礎”課程教學。該課程開設于第一學期,學時均為84學時,其中理論42學時,上機42學時,選用的教材相同。信息1401為改革班,信息1402為傳統班。在2014-2015學年一學期《程序設計基礎》期末考試中,信息1401平均分73.3分,優秀率6%,及格率72%;信息1402平均分54.71分,優秀率0%,及格率52%。在2014-2015學年二學期的《程序設計基礎》課程設計中,信息1401優秀4人,良好8人,中等15人,及格3人,不及格0人;信息1402優秀2人,良好5人,中等17人,及格5人,不及格0人。
以上數據說明將軟件測試思想融入到程序設計課程的教學中可以提高教學效果,增強學生的學習興趣和學生解決問題的能力,尤其在第二學期的程序設計基礎課程設計中,信息1401班學生更能夠從整體上考慮整個系統功能的劃分,完成各部分程序的設計,整個系統的功能和性能更好,系統更穩定。
以上改革實踐證明,在講授程序設計基礎課程時,除了講授語法、算法之外,還應該有意識的培養學生的測試能力,使學生對程序有更完整的認識。在將軟件測試思想融入課程教學的同時要注意循序漸進,不能夠喧賓奪主,讓軟件測試的思想不知不覺進入到學生的意識中。希望的這種教學思想能夠為程序設計基礎課程教學注入新的活力。
[1]田紅磊.基于計算思維的計算機程序設計課程教學改革.[J].課程教育研究,2015,(3):73-74.
[2]沈濟南,梁芳.程序設計類課程實踐教學方式改革研究[J].教育論壇,2014,(52):99-100.
[3]張進,葉慧婷.程序設計新型教學方法研究[J].中國現代教育裝備,2015,(1):104-106.
[4]張紅.軟件測試教學中思維能力的培養與探索[J].計算機教育,2013,(24):1-4.
[5]楊冬風.任務驅動式教學模式在C語言程序設計課程中的應用[J].現代農業科技,2015,(4):326-327.
1.吉林省教育科學“十二五”規劃課題,批準號GH150390。
課題名稱:基于軟件工程思維的計算機程序設計課程教學方法與評價體系改革實踐。
2.吉林省高等教育學會2015年度高教科研課題,課題編號JGJX2015D291。
課題名稱:基于軟件工程思維的C語言程序設計課程教學方法與評價體系改革研究。