亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于白箱測試的C語言代碼在線評測系統(tǒng)的研究與實現(xiàn)

        2016-12-21 11:38:17衛(wèi)軍超薛鵬鵬
        電子技術與軟件工程 2016年20期

        衛(wèi)軍超++薛鵬鵬

        摘 要 在程序設計語言教學過程中,教師往往運用手把手教學的方式對學生的源代碼編程進行審核,這類傳統(tǒng)的教學模式效率低下,也不便于學生之間的交流。構建一個基于白箱測試的建立在C語言基礎上的教學平臺,提高師生互動,促進大家學習交流,簡化程序的評測過程,提高學習的效率。

        【關鍵詞】白箱測試 在線評測 C語言

        高校程序設計類課程傳統(tǒng)的手工評測方式有許多難以克服的弊端,對教學效果和學生編程能力的提高造成了許多障礙。隨著計算機技術的發(fā)展,特別是Internet技術的普遍應用, 源代碼在線評測系統(tǒng)應運而生,應用于各高校程序設計類課程的輔助教學,同時還可以當做程序編程設計等競賽的模擬系統(tǒng),和傳統(tǒng)的手工測評方式相比較而言,優(yōu)勢明顯。

        1 研究內(nèi)容

        在分析和總結(jié)前人研究工作的基礎上,本研究基于白箱測試實現(xiàn)對C語言源代碼的評測,使其能夠應用在具體教學實踐中。

        1.1 評測系統(tǒng)的關鍵技術

        評測系統(tǒng)要用到以下幾個關鍵技術:操作 My SQL 數(shù)據(jù)庫;編譯源代碼;執(zhí)行被測試的數(shù)據(jù);測試運行結(jié)果;獲取評測時間等。

        1.2 代碼安全性檢測

        代碼安全檢測是研究的核心內(nèi)容。一旦源代碼使用者提供了錯誤的惡意性質(zhì)的代碼,必然會影響服務器的正常運行。所以確保代碼的安全性是保障系統(tǒng)正常使用的核心,需要及時對用戶提供的源代碼進行安全性檢測,以白箱測試中的靜態(tài)分析技術為前提,設計這一模塊,針對C語言源代碼常見的安全漏洞機械能給你檢測,分析。重點研究存儲越界錯誤、動態(tài)內(nèi)存分配錯誤、內(nèi)存泄漏、類型不一致錯誤、數(shù)組越界、死循環(huán)等類六類安全漏洞的檢測方法。

        1.3 代碼剽竊檢測

        分析常見的代碼剽竊的幾種方式,及目前國內(nèi)外代碼剽竊檢測技術的發(fā)展情況。代碼剽竊檢測這項技術的最終要的計算方法就是代碼相似度的檢測。檢測兩種代碼的相似情況的主要方法有兩種,屬性計數(shù)和結(jié)構度量。結(jié)合實際教學環(huán)境,選擇合適的代碼相似度計算機方法,提出解決學生在日常的編程、考試中代碼剽竊自動檢測的設計方案。

        2 評測技術的關鍵技術

        本研究主要是對實現(xiàn)評測系統(tǒng)的技術進行研究,主要包括以下幾個方面:評測系統(tǒng)的關鍵技術、代碼安全檢測、代碼剽竊檢測。

        2.1 評測系統(tǒng)關鍵技術

        (1)采用C語言操作MySQL數(shù)據(jù)庫。用到的API主要有:MYSQL*mysql_init(MYSQL*mysql),用來實現(xiàn)初始化一個MySQL對象。

        MYSQL* mysql_connect(MYSQL*mysql,const char*host,const*user,const char*passwd),用來實現(xiàn)連接數(shù)據(jù)庫。

        int mysql_query(MYSQL *mysql,const char*query),實現(xiàn)對SQL語句的執(zhí)行操作。

        (2)對源代碼進行編譯,實現(xiàn)對源代碼的編譯要用到以下主要參數(shù):

        -o out_file:表示將編譯后的可執(zhí)行文件存儲為out_file。如out_file為空,則則編譯后的可執(zhí)行文件存儲為a.out;

        -O2:在編譯的過程中會采取優(yōu)化處理方式;

        -Wall:在編譯時,程序會及時輸出警告信息;

        -Im:-I編譯時,鏈接庫會被連接;-I后面會出現(xiàn)需要要鏈接的庫名。-Im表示會鏈接數(shù)學庫;

        -Static:在編譯過程中,進行連接鏈接庫時,會使用靜態(tài)鏈接庫進行連接,及時避免連接動態(tài)的鏈接庫。

        (3)源代碼文件編譯通過之后,會生成一個名為“main”的文件接下來的工作是測試程序的正確性,源代碼的正確性測評采用的是黑盒測試,執(zhí)行被測試程序的過程如下:重定向輸入輸出文件;創(chuàng)建一個子進程;設置資源限制;用函數(shù)調(diào)用要執(zhí)行的程序。

        (4)用來檢測程序運行情況的思路是這樣的:在對待評測程序進行評測時,要使用標準的輸入文件,把標準文件輸出的數(shù)據(jù)和待評測程序輸出的數(shù)據(jù)比較分析,假設待評測程序的結(jié)果和標準的一樣,那么久可以判斷此待評測程序編碼是正確的,如果有出入,就認為待評測程序是錯誤的,當然,在檢測和對照的過程中,要確保時間合適,注意監(jiān)視內(nèi)存情況,假設超出時間和內(nèi)存的限制就需要及時返回錯誤代碼,測評時間就是看測試前后系統(tǒng)時間差。

        2.2 代碼安全檢測

        在檢測代碼安全性之前,要檢查C語言是否存在安全漏洞,如果有,就好及時分析,在安全漏洞中破壞性較大的、典型很難發(fā)現(xiàn)的的一共有六種。

        (1)存儲越界錯誤;

        (2)動態(tài)內(nèi)存分配錯誤:

        (3)內(nèi)存泄漏;

        (4)類型不一致錯誤;

        (5)指針錯誤;

        (6)死循環(huán)。

        針對對內(nèi)存泄漏和數(shù)組越界兩大類漏洞找到合適的檢測方法。

        2.3 代碼剽竊檢測

        作為代碼剽竊檢測的最重要的技術就是計算兩個代碼的相似度,也就是通過一種檢測手段來衡量兩個代碼是否具有相似性,代碼相似度計算的方法一共有兩種,分別是:屬性技術;結(jié)構度量。在代碼剽竊檢測的初始階段,屬性技術的方法被最早被提出和使用,結(jié)構度量的方式是后來才出現(xiàn)的。這兩中度量的方式共同點是在對相應的程序代碼做分析后,歸納出數(shù)字化的特征,運用特征這一向量把不同的屬性綜合起來,表征程序。兩種度量方法的區(qū)別在于,前者僅僅處理各種代碼的統(tǒng)計屬性,忽略其內(nèi)部結(jié)構;但是后者主要是針對程序的內(nèi)部結(jié)構進行度量,通過對分析控制流和嵌套深度的整理,運用得出的度量值分析程序特征向量。所以,結(jié)構度量法比屬性計數(shù)法應用的更加廣泛,或者可以將兩者結(jié)合起來檢測代碼剽竊軟件。

        針對學校學生的實際情況,考慮采用屬性計數(shù)法采計算代碼相似程度,且投入較少、易于實現(xiàn),也方便拓展到不同的語言。在完成代碼相似度的計算以后,根據(jù)計算結(jié)果判斷代碼是否是剽竊嫌疑,將所有嫌疑代碼及涉嫌學生明確列出,供教師進行進一步審查。基本流程如圖1。

        3 結(jié)束語

        該文提出了一個基于白箱測試的C語言在線評測系統(tǒng)設計方法,并解決了在搭建系統(tǒng)過程中遇到的一些列問題,方便了教師和學生對于源代碼的評測。當然此平臺上基本實現(xiàn)了代碼的自動評測,下一步要做的工作是改進剽竊檢測模塊,以適用教學需求。

        參考文獻

        [1]苑文會.黑盒測試技術在輔助教學系統(tǒng)中的應用[J].計算機工程與設計,2006,27(23):4604-4606.

        [2]呂鵬,戴冠中.Linux下Ptrace()調(diào)用的安全分析[J].計算機應用研究,2005,22(08):102-104.

        作者單位

        西安交通工程學院 陜西省西安市 710300

        热re99久久精品国产66热6| 国产美女精品一区二区三区| 超清纯白嫩大学生无码网站| 亚洲人成网站77777在线观看 | av免费不卡国产观看| 欧美巨大xxxx做受中文字幕| 亚洲高清视频在线播放| av资源在线免费观看| 4hu四虎永久免费地址ww416| 最近中文字幕mv在线资源| 国内精品国产三级国产av另类| 国产农村妇女毛片精品久久麻豆| 一边摸一边抽搐一进一出口述| 国外精品视频在线观看免费| 九九在线精品视频xxx| 日本一区二区三区精品免费| 欧美日韩一区二区三区在线观看视频| 国产色诱视频在线观看| 97久久综合区小说区图片区| 国产成人自拍视频播放| 亚洲人成网站色www| 狠狠色狠狠色综合日日92| 亚洲一区二区三区高清视频| 日本伊人精品一区二区三区| 无码人妻丰满熟妇片毛片| 免费va国产高清不卡大片| 中文字幕女同人妖熟女| 亚洲人成77777在线播放网站| 欧美整片第一页| 三级日本午夜在线观看| 免费人成在线观看视频高潮| 国产99久久亚洲综合精品| 青榴社区国产精品| 久久日本视频在线观看| 一进一出一爽又粗又大| 欧美一欧美一区二三区性| 自拍偷拍一区二区三区四区| 国产一级一级内射视频| 无套内射无矿码免费看黄| 亚洲国产成人精品激情资源9| 日韩在线不卡一区三区av|