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

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

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

張?zhí)K 楊元峰 陸公正

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

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

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

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

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

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

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

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

1單元測試教學設計

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

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

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

2教學過程設計

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

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

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

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

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

3NextDay教學案例設計

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

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

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

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

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

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

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

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

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

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

6結語

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

猜你喜歡
案例教學
職業(yè)教育院校如何開展PHOTOSHOP課程教學
管理信息系統(tǒng)案例教學探討
EDA計算機仿真技術在“電子技術”教學的應用研究
基于工程項目為載體的案例教學方法探討
科技視界(2016年22期)2016-10-18 17:06:51
鋼琴對環(huán)境污染的探討
科技視界(2016年21期)2016-10-17 18:48:38
淺議課堂教學與管理的體會
科技視界(2016年21期)2016-10-17 18:33:32
案例教學在機械創(chuàng)新設計課程中的應用
考試周刊(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
主站蜘蛛池模板: 亚洲美女高潮久久久久久久| 国产精品丝袜在线| 欧美第二区| 国产精品对白刺激| 国产一区二区三区精品欧美日韩| 国产在线91在线电影| 国产大全韩国亚洲一区二区三区| 久久美女精品| 萌白酱国产一区二区| 无码 在线 在线| 一级毛片在线免费看| 国产午夜人做人免费视频中文| 国产午夜一级毛片| 国产在线观看第二页| 亚洲国产精品无码AV| 1769国产精品视频免费观看| 国产精品亚洲综合久久小说| 国产精品无码影视久久久久久久| 久久久精品久久久久三级| 久久人人妻人人爽人人卡片av| 一本无码在线观看| 青青草国产免费国产| 国产91高跟丝袜| 亚洲91精品视频| 亚洲精品欧美日韩在线| 天天综合网站| 国产毛片不卡| 色综合天天视频在线观看| 亚洲天堂网视频| 亚洲人免费视频| 另类专区亚洲| 国产激爽爽爽大片在线观看| 免费一级毛片在线观看| 亚洲国产91人成在线| 国产成人高精品免费视频| 日本不卡在线视频| 亚洲精品777| 欧美亚洲日韩不卡在线在线观看| 亚洲69视频| 国产精品人成在线播放| 亚洲人成色77777在线观看| 伊人久综合| 色成人综合| 超清无码一区二区三区| 亚洲91在线精品| 色悠久久久久久久综合网伊人| 无码内射在线| 一级毛片基地| 另类综合视频| 狠狠色狠狠色综合久久第一次| 中国一级特黄视频| 波多野结衣无码AV在线| 成人在线亚洲| 国产在线91在线电影| 无码精油按摩潮喷在线播放| 色男人的天堂久久综合| 国产男女免费完整版视频| 九色最新网址| 成人免费网站在线观看| 在线观看视频一区二区| 狠狠操夜夜爽| 欧美第一页在线| 九九九久久国产精品| 久久美女精品| 亚洲中文字幕97久久精品少妇| aaa国产一级毛片| 手机在线看片不卡中文字幕| 91区国产福利在线观看午夜| 亚洲福利网址| 久久综合成人| 亚洲日韩久久综合中文字幕| 精品无码视频在线观看| 99re在线免费视频| 91在线播放国产| 国产高清在线丝袜精品一区| 久久精品最新免费国产成人| 国产第一色| 久久综合伊人77777| 一级成人a做片免费| 国产成人精品第一区二区| 久久成人免费| 国产在线专区|