999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

軟件測試中單元測試案例教學實踐

2020-07-04 02:13:18張蘇楊元峰陸公正
電腦知識與技術 2020年13期
關鍵詞:案例教學

張蘇 楊元峰 陸公正

摘要:單元測試是軟件測試過程中必不可少的一個環節。作為《軟件測試工具應用》課程的一個教學單元,在單元測試教學設計中,分析了單元測試的教學定位、學情和教學目標。結合黑盒測試用例設計方法和白盒測試用例設計方法,通過設計不同的案例,討論了JUnit單元測試、被測代碼100%覆蓋率以及JDBC GUI程序的單元測試的在教學中的實現。

關鍵詞:案例教學;軟件測試;單元測試;JUnit

中圖分類號:G642 文獻標識碼:A

文章編號:1009-3044(2020)13-0132-04

高職教育的培養目標是復合型專業技術人才,培養學生不僅具有豐富的專業知識,更要有較強的實踐動手能力、技術創新能力和可持續發展的能力。在專業技能培養方面要和企業實際工作要求相結合,通過各種實踐教學保障學生獲得充分的專業知識和專業技能,能夠順利地適應新工作崗位的要求,具備較高的職業素養和技術水平。

軟件測試是軟件質量保障的重要手段之一,而單元測試是軟件測試過程中必不可少的一個測試階段。單元測試是對軟件中的最小的可測試單元進行檢查和驗證。單元測試可以由測試工程師來完成也可以由程序開發工程師來完成。從企業對人才的要求來看,單元測試技術是學生將來從事不管是開發還是測試,都必須掌握的基本技術。

執行單元測試有助于幫助開發人員理清業務邏輯思路,提高代碼質量,降低bug出現率。在開發端執行單元測試,可以減少錯誤反饋時間,提高工作效率。當我們使用單元測試工具來編寫測試代碼時,這些測試代碼將協同源代碼一起進行保存和維護,當軟件版本升級時,這將大大降低新版本軟件測試的工作量,使得代碼維護更容易并提升代碼質量。

針對不同的類型的軟件應用,可以采用不同的單元測試工具。在教學中我們選用JUnit工具進行教學,幫助學生掌握單元測試的基本思想和基本做法。

1單元測試教學設計

基于JUnit的單元測試教學是本?!盾浖y試工具應用》課程的一個教學單元。該課程依據軟件測試過程,將教學內容分為:需求分解、測試計劃撰寫、測試管理、基于JUnit的單元測試、自動化測試、性能測試、測試報告撰寫等教學單元。課程總課時80課時,課程教學內容設計如圖1所示。

基于JUnit的單元測試屬于《軟件測試工具應用》課程的一個教學單元。在學習本課程前,學生應掌握面向對象JAVA程序開發的基本思想,會編寫JAVA邏輯代碼,會編寫基于JDBC數據庫訪問的GUI應用程序,并在同步學習JavaWeb開發課程。通過本單元的學習,希望學生能夠掌握單元測試基本概念,理解單元測試的目的、意義以及工作過程。能夠針對不同類型的被測程序采用合適的黑盒、白盒用例設計方法,通過縝密的邏輯分析來設計測試用例,以達到全面的代碼測試覆蓋率。使用JUnit工具將用例寫成測試代碼,執行測試。通過測試代碼預置bug使得學生在單元測試執行過程中體會和掌握缺陷報告和缺陷跟蹤管理部分的工作內容。

通過案例教學使得學生能夠熟練掌握使用JUnit進行單元測試,培養學生縝密的邏輯分析和用例設計能力以及細心、耐心的工作態度。單元測試學情和教學目標分析如圖2所示。

2教學過程設計

基于JUnit的單元測試教學分成4個教學步驟,層層深入,開展教學,具體的教學過程設計方案如表1所示。第一步講解單元測試的概念和基本原理,講解JUnit各語法的作用和使用方法,使得同學們能夠看懂和理解JUnit代碼。

第二步以NextDay程序單元測試為案例,引入算法類程序的單元測試方法。NextDay程序用于返回指定日期的下一個日期。在進行測試用例設計教學時,使用該案例進行基于等價類分析法、邊界值分析法、錯誤推測法的黑盒測試用例設計,以及基于邏輯覆蓋和獨立路徑分析的白盒測試用例設計,在教授單元測試時,指導學生使用JUnit將這些測試用例寫成單元測試代碼。在完成本部分內容授課后,可以給學生提供一些更復雜的應用案例,引導學生理解和學會算法類程序的單元測試,實現分層次教學引導。

第三步以房產信息管理模塊單元測試為案例,講解白盒測試用例設計方法和實現,配合EclEmma插件,編寫測試代碼,實現被測代碼100%的測試覆蓋。使得學生在整個測試過程中提高源代碼白盒分析水平,提高自己的測試代碼編寫能力。

第四步以顧客信息管理模塊單元測試為案例,講解分層數據庫應用程序的單元測試方法。該案例是一個java GUI應用程序,采用Mysql數據庫,程序實現了顧客信息的添加、修改、刪除和查詢功能。窗體應用程序的單元測試主要是針對程序dao層的添加、修改、刪除和查詢接口(interface)編寫JUnit單元測試代碼并執行測試。

通過以上教學步驟層層遞進,教會同學們從一般算法到窗體應用程序的JUnit單元測試代碼編寫和執行。

3NextDay教學案例設計

NextDay程序是測試學習經典程序,該程序實現的功能是用戶輸入一個有效日期,由程序返回該日期的下一天的日期。例如2020/2/28的下一天是2020/2/29。被測程序由6個類組成,分別是:Nextday、CalendarUnit、Day、Month、Date、Year。根據黑盒測試用例設計方法設計測試用例舉例,首先進行等價類分析,劃分出有效等價類和無效等價類,然后根據邊界值分析法確定每個等價類邊界值的內點、上點和離點,將這些分析寫成測試用例,最后再加上閏年、閏月等特殊數據完成用例設計。

測試用例代碼舉例如圖3所示,testNextDay函數中實現了日邊界nextday合法數據的測試代碼,測試了大月、小月和閏月的日期邊界nextDay函數返回值是否正確。testDateValid函數中測試了程序是否對非法的日期進行處理。2個測試函數的執行結果如圖4所示。在授課過程中要求同學們把年、月、日的邊界,有效日期和無效日期均編寫相應的測試用例代碼并執行。通過該部分的教學引導同學們掌握JUnit單元測試的一般做法,在課外習題中補充難度更大的算法案例,來實現分層教學,鞏固學習成果。

4房產信息管理模塊案例設計

房產信息管理模塊程序使用HashMap來保存房屋數據,實現房產信息的添加、修改、刪除和查詢。教學中要求根據白盒測試用例設計方法設計測試用例,編寫和執行JUnit代碼并統計代碼覆蓋率。白盒測試用例設計方法主要有邏輯覆蓋法和獨立路徑分析法。源程序代碼測試覆蓋率統計使用EclEmma插件生成JUnit覆蓋率測試報告來實現。房產信息管理模塊由3個類和1個接口構成,其類圖結構如圖5所示。

在對該模塊進行測試的時候,設計測試用例配合EclEmma插件實現對測試代碼的全覆蓋。如圖6所示為測試用例舉例,該測試用例實現了對新增房產信息、修改房產信息、判斷是否已經存在、根據房產編號查詢房產信息、顯示所有房產信息、根據房產價格查詢房產信息、刪除房產信息等功能的測試。

這是一個測試用例的示范,根據白盒測試方法進一步補充設計用例以達到100%的被測代碼覆蓋率。如圖7所示為源代碼測試覆蓋率截圖。在執行測試的時候會碰到一些問題,例如有的代碼難以被覆蓋到,最后發現該代碼本身邏輯上就有問題,屬于永遠都不會被執行到的代碼,那么應該把這些代碼去掉或者重寫。在測試中還有一些異常處理代碼可能較難被測試覆蓋,這時可能做不到100%的代碼覆蓋率,需要根據具體情況進行分析。在執行測試的時候,使用EclEmma插件會將沒有被覆蓋到的代碼標紅色顯示,這非常有助于改善和提高測試用例以獲得更好的測試效果。

5顧客信息管理模塊教學案例設計

顧客信息管理模塊是一個Java GUI應用程序,數據存放在Mysql數據庫中,實現客戶信息的添加、修改、刪除和查詢。被測系統程序結構如圖8所示,程序運行界面如圖9所示。該程序由bean、dao、db、gui4個包構成:bean包中存放實體類;dao包中存放客戶類添加、修改、刪除的接口interface和接口實現類;db包中存放JDBC數據庫連接對象;gui包中存放各窗體JFrame代碼。

在教學中,顧客信息管理模塊的JUnit測試主要實現對于顧客信息添加、修改、刪除的Dao層進行的測試,測試思路和執行步驟設計如表2所示。首先在JUnit測試代碼中生成Custom-erDAOImp類的對象,調用各個interface實現方法,實現相應功能,然后測試代碼通過jdbc連接,直接去數據庫表查詢相關數據進行比對,來驗證interface的功能有沒有正確實現。表2列舉了各個interface的測試設計。

例如在測試deleteCustomer時,先刪除編號為1的客戶信息,再根據編號1查詢客戶,根據是否能查到來判斷根據編號刪除客戶功能是否正確。在測試getAllCustomer時,先根據CustomerDAO對象獲得所有客戶List的size,再通過JDBC去數據庫中查詢所有客戶數目的總數,比較2個數目是否一致來判斷該功能是否正確。當然客戶數目一致不代表所有數據是一致的,也可以修改代碼為按序查出所有客戶對象后,逐個比較數據內容。

6結語

在教學過程中,根據人才培養目標,分析學生特點,在單元測試教學模塊中以案例教學方法改進教學效果。在學生已具備基本的測試知識后,以3個教學案例覆蓋各知識技能點,使用NextDay教學案例教學教會學生黑盒用例設計和實現方法,學習算法類程序的單元測試方法;使用房產信息管理模塊案例教學教會學生白盒用例設計方法和分析方法,實現被測代碼100%覆蓋率;使用顧客信息管理模塊教學案例教學教會學生分層數據庫應用程序的單元測試方法。三個案例層層深入,涉及知識點和技能點全面,在實際教學中取得了良好的教學效果。

猜你喜歡
案例教學
職業教育院校如何開展PHOTOSHOP課程教學
管理信息系統案例教學探討
EDA計算機仿真技術在“電子技術”教學的應用研究
基于工程項目為載體的案例教學方法探討
科技視界(2016年22期)2016-10-18 17:06:51
鋼琴對環境污染的探討
科技視界(2016年21期)2016-10-17 18:48:38
淺議課堂教學與管理的體會
科技視界(2016年21期)2016-10-17 18:33:32
案例教學在機械創新設計課程中的應用
考試周刊(2016年77期)2016-10-09 12:16:11
馬克思主義基本原理概論課案例教學的幾點思考
大學教育(2016年9期)2016-10-09 08:13:04
EXCEL在《投入產出法》案例教學中的應用
科技視界(2016年20期)2016-09-29 12:10:02
《運籌學》教學模式探討
科技視界(2016年20期)2016-09-29 11:38:37
主站蜘蛛池模板: 久久综合色天堂av| 久久国产成人精品国产成人亚洲| 制服丝袜国产精品| 亚洲视频在线青青| av免费在线观看美女叉开腿| 国产欧美在线观看一区| 人人看人人鲁狠狠高清| 亚洲成人在线网| 国产精品青青| 亚洲精品亚洲人成在线| 久久毛片网| 精品国产91爱| 狼友视频一区二区三区| 人妻无码AⅤ中文字| 国产新AV天堂| 无码有码中文字幕| 国产一级妓女av网站| 日本不卡免费高清视频| 亚洲大尺码专区影院| 免费看的一级毛片| 免费看久久精品99| 国产黄网站在线观看| 日韩小视频网站hq| 亚洲色精品国产一区二区三区| 99国产精品免费观看视频| 精品国产Av电影无码久久久| 制服丝袜一区二区三区在线| 国产精品9| 欧美中出一区二区| 40岁成熟女人牲交片免费| 欧美精品在线看| 日本三级黄在线观看| 国产精品私拍99pans大尺度| 亚洲美女一区| 亚洲视频影院| 日韩精品亚洲一区中文字幕| 亚洲无线国产观看| 国产精品欧美激情| 日韩一区二区在线电影| 色偷偷一区二区三区| 老司机午夜精品视频你懂的| 97久久人人超碰国产精品| lhav亚洲精品| 色久综合在线| 精品欧美一区二区三区久久久| 国产网站黄| 好紧好深好大乳无码中文字幕| 美女被操91视频| 欧美国产综合视频| 国产情精品嫩草影院88av| 久久国产精品波多野结衣| 69av在线| 无码人妻热线精品视频| 91福利免费视频| 亚洲国产av无码综合原创国产| 国产主播一区二区三区| 国产亚洲高清视频| 亚洲人妖在线| 日韩在线中文| 一级看片免费视频| 国产精品亚洲一区二区在线观看| 精品一區二區久久久久久久網站 | 91麻豆精品视频| 青青青国产视频手机| 国产精品第三页在线看| 亚洲视频在线观看免费视频| 精品国产福利在线| 国产精品成人一区二区不卡| 99国产精品一区二区| 麻豆国产精品视频| 国产视频自拍一区| AⅤ色综合久久天堂AV色综合| 国产精鲁鲁网在线视频| 国产精品性| 国产精品yjizz视频网一二区| 国产毛片网站| a在线亚洲男人的天堂试看| 亚洲不卡无码av中文字幕| 欧洲免费精品视频在线| 亚洲午夜福利精品无码不卡| 日韩中文字幕免费在线观看| 在线观看网站国产|