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

        ?

        一種測試用例精簡與自動(dòng)生成方法

        2022-11-18 03:11:20楊永凱劉中一
        甘肅科技 2022年20期
        關(guān)鍵詞:測試用例精簡日志

        劉 輝,楊永凱,劉中一

        (1.民航旅客服務(wù)智能化應(yīng)用技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 101318;2.中國民航信息網(wǎng)絡(luò)股份有限公司,北京 101318)

        1 引言

        近年來,隨著業(yè)務(wù)復(fù)雜度的不斷提升,高效、可靠地保障企業(yè)級(jí)軟件質(zhì)量,杜絕各種運(yùn)營事故和安全風(fēng)險(xiǎn),是所有企業(yè)面臨的嚴(yán)峻挑戰(zhàn)。眾所周知,軟件質(zhì)量會(huì)影響項(xiàng)目的進(jìn)度、成本和范圍,最終影響客戶對企業(yè)的信賴。因此,企業(yè)對軟件質(zhì)量的要求日益增高。為了保證軟件質(zhì)量,在開發(fā)過程中引入了多種軟件測試技術(shù)[1-2]。目前國內(nèi)公司主要是以功能測試為主,功能測試的技術(shù)手段又以手工測試為主,而自動(dòng)化測試是在手工測試之后進(jìn)行的,主要用于回歸測試階段。自動(dòng)化測試是軟件測試活動(dòng)中一個(gè)重要的分支和組成部分,即利用工具或腳本達(dá)到測試目的,沒有人工或者極少人工參與的軟件測試活動(dòng)稱為自動(dòng)化測試。自動(dòng)化測試可以方便地進(jìn)行回歸測試,尤其是在敏捷開發(fā)過程中,版本快速迭代,自動(dòng)化測試更具優(yōu)勢[3-4];自動(dòng)化測試可以提升效率,減少重復(fù)工作,節(jié)省人力成本,讓測試人員可以做更多有意義事情,比如探索性測試[5]等;自動(dòng)化測試可以保證每次測試的完整性和一致性,發(fā)現(xiàn)更多隱藏問題。

        軟件系統(tǒng)中的多種功能維度[6]會(huì)在生產(chǎn)業(yè)務(wù)的推動(dòng)下,演變出各種功能點(diǎn)的組合。自動(dòng)化測試需要完備的功能測試用例庫[7-8],業(yè)界已經(jīng)有大量人員研究測試用例生成方法[9-11]。

        本文第2部分首先分析了手工構(gòu)造測試用例的基本方法;然后提出了精簡與自動(dòng)生成測試用例方法,主要思想是根據(jù)業(yè)務(wù)場景分類業(yè)務(wù)數(shù)據(jù),構(gòu)造功能點(diǎn)組合矩陣,歸并、精簡業(yè)務(wù)場景之間的功能點(diǎn)組合矩陣,再執(zhí)行生產(chǎn)請求,匹配功能點(diǎn)組合矩陣,自動(dòng)生成測試用例;最后舉例說明精簡與自動(dòng)生成測試用例方法。第3部分介紹了精簡與自動(dòng)生成測試用例方法的實(shí)際應(yīng)用效果。文章最后對提出的精簡與自動(dòng)生成測試用例方法進(jìn)行了總結(jié)性的討論。

        2 測試用例精簡與自動(dòng)生成方法

        2.1 測試用例手工構(gòu)造方法

        測試用例包含測試數(shù)據(jù)、測試請求、期望結(jié)果。構(gòu)造測試用例的基本方法如圖1所示。

        圖1 手工構(gòu)造測試用例流程

        (1)在完成功能需求分析后,測試人員根據(jù)功能需求設(shè)計(jì)測試用例,其中主要是設(shè)計(jì)測試數(shù)據(jù)、測試請求以及期望結(jié)果。

        (2)測試人員根據(jù)測試用例的設(shè)計(jì)文檔,手工構(gòu)造測試數(shù)據(jù),依據(jù)測試數(shù)據(jù)構(gòu)造相應(yīng)的測試請求和期望結(jié)果。

        (3)在正式測試前,需要利用現(xiàn)有的軟件調(diào)試測試用例,如果返回結(jié)果與期望結(jié)果一致,代表測試用例正確,可以納入到測試用例庫中;如果返回結(jié)果與期望結(jié)果不一致,需要分析測試用例中的測試數(shù)據(jù)、測試請求和期望結(jié)果,判斷哪個(gè)部分錯(cuò)誤,并修正相應(yīng)的內(nèi)容。對修正后的測試用例再次執(zhí)行,直到測試用例正確為止。

        上述測試用例的構(gòu)造過程全部由人工完成,需要產(chǎn)品、開發(fā)、測試互相配合,耗費(fèi)人力和時(shí)間成本巨大,而且覆蓋功能點(diǎn)范圍有限。隨著業(yè)務(wù)的飛速發(fā)展,軟件中的多種功能維度會(huì)在實(shí)際業(yè)務(wù)的推動(dòng)下,演變出各種功能的組合,由于開發(fā)和測試環(huán)節(jié),對業(yè)務(wù)的敏感度較低,很難快速響應(yīng)業(yè)務(wù)變化,識(shí)別并構(gòu)造出符合實(shí)際業(yè)務(wù)的測試用例。

        2.2 測試用例精簡與自動(dòng)生成方法

        針對上述軟件測試過程中手工構(gòu)造測試用例的問題,本文提出了一種測試用例精簡與自動(dòng)生成方法。將業(yè)務(wù)數(shù)據(jù)按照業(yè)務(wù)場景分類,構(gòu)造功能點(diǎn)組合矩陣,歸并、精簡業(yè)務(wù)場景之間的功能點(diǎn)組合矩陣,減少冗余的測試用例,再執(zhí)行生產(chǎn)請求,匹配功能點(diǎn)組合矩陣,自動(dòng)生成測試用例。從而達(dá)到聚焦核心功能點(diǎn)、提升軟件的代碼測試覆蓋率,實(shí)現(xiàn)提升軟件質(zhì)量和安全、降低人工成本、提升團(tuán)隊(duì)交付能力的目的。

        2.2.1 功能點(diǎn)組合矩陣構(gòu)造

        在真實(shí)的生產(chǎn)環(huán)境中,用戶通常會(huì)預(yù)定義一系列的業(yè)務(wù)場景,業(yè)務(wù)場景通過功能點(diǎn)組合構(gòu)建而成,不同的業(yè)務(wù)場景包含不同的功能點(diǎn)組合。

        定義1:功能點(diǎn)組合矩陣。假設(shè)某一業(yè)務(wù)場景包含n個(gè)功能點(diǎn)F={f1、f2、...、fn},任一功能點(diǎn)fi的取值集合記為C(fi),功能點(diǎn)組合矩陣是所有功能點(diǎn)取值集合的笛卡爾積,記為A。

        功能點(diǎn)組合矩陣的每一行是n元組n-T=(c1,c2,...,cn),其中每個(gè)元素即為對應(yīng)功能點(diǎn)的一種取值。功能點(diǎn)組合矩陣A包含n-T的數(shù)量記為|A|。

        定義2:標(biāo)簽。一個(gè)軟件會(huì)包括多種業(yè)務(wù)場景,不同的業(yè)務(wù)場景相互獨(dú)立,涉及不同的功能維度,即不同的功能點(diǎn)組合,因此不同的業(yè)務(wù)場景對應(yīng)不同的功能點(diǎn)組合矩陣。在每種業(yè)務(wù)場景下,用戶發(fā)布一批業(yè)務(wù)數(shù)據(jù),用以描述該業(yè)務(wù)場景的各種適用條件,并通過一個(gè)或多個(gè)屬性標(biāo)識(shí)出業(yè)務(wù)數(shù)據(jù)所屬的業(yè)務(wù)場景,這些屬性稱為標(biāo)簽D。

        本文通過標(biāo)簽D將業(yè)務(wù)數(shù)據(jù)劃分在不同的業(yè)務(wù)場景下,根據(jù)業(yè)務(wù)場景涉及到的功能點(diǎn)F,提取出業(yè)務(wù)場景的元組T,分析業(yè)務(wù)場景下各功能點(diǎn)的取值集合C,構(gòu)造功能點(diǎn)組合矩陣A。

        2.2.2 測試用例精簡

        定義3:測試子集,測試超集。假設(shè)存在2個(gè)業(yè)務(wù)場景的功能點(diǎn)組合矩陣A1和A2,其功能點(diǎn)分別為F1和F2,若

        則,A1是A2的測試子集,A2是A1的測試超集,記為A2→A1。

        定理1:2個(gè)業(yè)務(wù)場景的功能點(diǎn)組合矩陣A1和A2,若A1是A2的測試子集,則|A1| ≤|A2|。

        證明:2個(gè)業(yè)務(wù)場景的功能點(diǎn)組合矩陣A1和A2,其功能點(diǎn)分別為F1和F2,A2→A1。

        根據(jù)定義3,F(xiàn)1?F2,|F1|≤|F2|,假設(shè)n1=|F1|,n2=|F2|,n1≤n2;

        又根據(jù)定義3,?f∈F1∩F2,C1(f)?C2(f),|C1(f)|≤|C2(f)|;

        證畢。

        定理2:測試超集測試通過,其測試子集必然測試通過。

        證明:2個(gè)業(yè)務(wù)場景的功能點(diǎn)組合矩陣A1和A2,其功能點(diǎn)分別為F1和F2,A2→A1。

        測試超集測試通過,則?f∈F2,功能點(diǎn)f測試通過。

        假設(shè)測試子集測試不通過,則?f∈F1,功能點(diǎn)f測試不通過。根據(jù)定義3,f∈F2,功能點(diǎn)f測試不通過,與前提條件不一致。因此,假設(shè)不成立,測試子集測試必然通過。

        證畢。

        本文所提測試用例精簡方法,主要采用降維和歸并2種策略,具體描述如下:

        (1)降維。假設(shè)全業(yè)務(wù)功能點(diǎn)組合矩陣H包含m個(gè)功能點(diǎn)E,將業(yè)務(wù)數(shù)據(jù)按照業(yè)務(wù)場景劃分后,某業(yè)務(wù)場景的功能點(diǎn)組合矩陣A包含n個(gè)功能點(diǎn)F。根據(jù)定義3,業(yè)務(wù)場景的功能點(diǎn)組合矩陣是全業(yè)務(wù)功能點(diǎn)組合矩陣的測試子集,H→A,F(xiàn)?E,n≤m,根據(jù)定理1,|A|≤|H|。

        在軟件中,通常采用關(guān)系型數(shù)據(jù)庫保存業(yè)務(wù)數(shù)據(jù),所有業(yè)務(wù)場景的業(yè)務(wù)數(shù)據(jù)融合在相同的表空間中,共享相同的數(shù)據(jù)表,因此數(shù)據(jù)表擁有所有業(yè)務(wù)場景涉及到的功能點(diǎn)字段。盡管在技術(shù)上按照業(yè)務(wù)類別將功能點(diǎn)字段劃分在不同的表中,可是相對于某一確定的業(yè)務(wù)場景,仍然會(huì)有多余的功能點(diǎn)字段。通過劃分業(yè)務(wù)場景,可以避免全功能點(diǎn)組合,在不失測試完備性的前提下,有效地對業(yè)務(wù)數(shù)據(jù)降維[12],減少每種業(yè)務(wù)場景的功能點(diǎn)組合矩陣元組數(shù)量,從而精簡測試用例[13-15]。

        (2)歸并。假設(shè)存在2個(gè)業(yè)務(wù)場景的功能點(diǎn)組合矩陣A1和A2,其功能點(diǎn)分別為F1和F2,A1是A2的測試子集A2→A1。根據(jù)定義3,F(xiàn)1?F2,根據(jù)定理2,A2測試通過,A1必然測試通過。

        軟件中不同的業(yè)務(wù)場景之間存在著相似性,甚至內(nèi)容相同,只是定義的標(biāo)簽不同。如果某個(gè)業(yè)務(wù)場景涉及到的功能點(diǎn)字段包含另一個(gè)業(yè)務(wù)場景涉及到的功能點(diǎn)字段,并且相同功能點(diǎn)字段在該業(yè)務(wù)場景中的取值集合包含在另一個(gè)業(yè)務(wù)場景中的取值集合,只需要測試該業(yè)務(wù)場景即可。因?yàn)樵摌I(yè)務(wù)場景涉及到的功能點(diǎn)字段更全,取值范圍更廣,囊括了另一個(gè)業(yè)務(wù)場景的各種情況。通過歸并業(yè)務(wù)場景,可以剔除冗余的業(yè)務(wù)場景,避免重復(fù)測試,減少冗余的測試用例,達(dá)到精簡測試用例的目的。

        2.2.3 測試用例自動(dòng)生成

        本測試用例自動(dòng)生成方法是侵入式的,需要在現(xiàn)有軟件中打樁,記錄軟件的執(zhí)行路徑,將相關(guān)信息以結(jié)構(gòu)化的形式進(jìn)行存儲(chǔ)。此外本方法還依賴于海量的業(yè)務(wù)數(shù)據(jù)和生產(chǎn)日志,需要在其中篩選出符合業(yè)務(wù)場景測試需求的用例。下面將介紹該方法的實(shí)現(xiàn)步驟。

        輸入:業(yè)務(wù)數(shù)據(jù)

        生產(chǎn)日志

        輸出:測試用例集

        (1)初始化測試用例集為空集。

        (2)構(gòu)造精簡的功能點(diǎn)組合矩陣,定義測試需求。

        (3)基于打樁程序框架,在軟件的功能點(diǎn)實(shí)現(xiàn)打樁功能。

        (4)執(zhí)行生產(chǎn)日志中的請求,篩選并構(gòu)造測試用例。

        (5)遍歷生產(chǎn)日志。基于打樁后的軟件程序和業(yè)務(wù)數(shù)據(jù),執(zhí)行每一條生產(chǎn)日志請求;打樁程序記錄各個(gè)功能點(diǎn)的執(zhí)行信息,包括功能點(diǎn)的名稱、請求參數(shù)、業(yè)務(wù)數(shù)據(jù)內(nèi)容,以及處理結(jié)果等信息;提取并分析各個(gè)功能點(diǎn)的執(zhí)行信息,識(shí)別執(zhí)行到的功能點(diǎn);匹配測試需求,如果該生產(chǎn)日志請求的執(zhí)行路徑首次覆蓋到的功能點(diǎn)組合矩陣的某一元組,將此生產(chǎn)日志請求存入測試用例庫。

        (6)直至滿足測試需求的完備性,結(jié)束遍歷。本方法采用真實(shí)的業(yè)務(wù)數(shù)據(jù)和生產(chǎn)日志作為輸入。業(yè)務(wù)數(shù)據(jù)是用戶根據(jù)自身的業(yè)務(wù)發(fā)展情況創(chuàng)建的,最能體現(xiàn)用戶的真實(shí)業(yè)務(wù)意圖。而生產(chǎn)日志中的請求是用戶根據(jù)自身的需要發(fā)起的,最能體現(xiàn)用戶的真實(shí)使用意圖。因此,生產(chǎn)日志請求和涉及的業(yè)務(wù)數(shù)據(jù),構(gòu)成了最有價(jià)值的測試用例。

        匹配測試需求,即匹配功能點(diǎn)組合矩陣。執(zhí)行每個(gè)生產(chǎn)日志請求,將其執(zhí)行的功能點(diǎn)組合與業(yè)務(wù)功能點(diǎn)組合矩陣中的每一元組比較,如果生產(chǎn)日志請求執(zhí)行的功能點(diǎn)組合能夠覆蓋業(yè)務(wù)功能點(diǎn)組合矩陣的某一元組,并且之前沒有被覆蓋過,則將該生產(chǎn)日志請求納入到測試用例庫中,作為測試請求。

        打樁程序框架采用外掛模式,對每個(gè)功能點(diǎn)增加打樁功能程序,以及打樁開關(guān)選項(xiàng),控制功能點(diǎn)是否執(zhí)行打樁程序。當(dāng)需要采集某個(gè)功能點(diǎn)的執(zhí)行信息時(shí),只需要在配置中動(dòng)態(tài)打開該功能點(diǎn)的打樁開關(guān),便可獲取到相應(yīng)的執(zhí)行信息。打樁程序可以按照軟件系統(tǒng)的功能層次記錄執(zhí)行情況,假設(shè)在功能A中調(diào)用了功能B,則打樁程序的記錄結(jié)果與之對應(yīng),在執(zhí)行結(jié)果A中包含執(zhí)行結(jié)果B的內(nèi)容。

        2.2.4 舉例說明

        假設(shè)某軟件有5個(gè)功能點(diǎn),劃分為3個(gè)業(yè)務(wù)場景后,各業(yè)務(wù)場景包含的功能點(diǎn)和取值集合如下:

        業(yè)務(wù)場景一:

        功能點(diǎn)1:{a11,a12,a13};功能點(diǎn)2:{b11,b12};功能點(diǎn)3:{c11,c12};功能點(diǎn)4:{d11}。

        業(yè)務(wù)場景二:

        功能點(diǎn)1:{a21,a22};功能點(diǎn)4:{d21};功能點(diǎn)5:{e21,e22}。

        業(yè)務(wù)場景三:

        功能點(diǎn)1:{a11,a13};功能點(diǎn)3:{c11,c12}。

        上述3個(gè)業(yè)務(wù)場景對應(yīng)的功能點(diǎn)組合矩陣見表1—表3。

        表1 業(yè)務(wù)場景一功能點(diǎn)組合矩陣

        表2 業(yè)務(wù)場景二功能點(diǎn)組合矩陣

        表3 業(yè)務(wù)場景三功能點(diǎn)組合矩陣

        由定義3,業(yè)務(wù)場景三功能點(diǎn)組合矩陣是業(yè)務(wù)場景一功能點(diǎn)組合矩陣的測試子集,又由定理2,業(yè)務(wù)場景三功能點(diǎn)組合矩陣可以被精簡掉。因此,業(yè)務(wù)場景一和業(yè)務(wù)場景二的功能點(diǎn)組合矩陣構(gòu)成了該軟件的測試需求。

        遍歷生產(chǎn)日志中的請求,針對業(yè)務(wù)場景一,打開功能點(diǎn)1、功能點(diǎn)2、功能點(diǎn)3、功能點(diǎn)4的打樁開關(guān),記錄每個(gè)生產(chǎn)日志請求的執(zhí)行情況。假設(shè)某一生產(chǎn)日志請求執(zhí)行了功能點(diǎn)1、功能點(diǎn)2、功能點(diǎn)3、功能點(diǎn)4,對應(yīng)的值分別為a11、b11、c11、d11,則覆蓋了該業(yè)務(wù)場景功能點(diǎn)組合矩陣的一個(gè)元組4-T=(a11,b11,c11,d11),如果之前沒有被覆蓋過,該生產(chǎn)日志請求納入到測試用例庫中,為業(yè)務(wù)場景一的一個(gè)測試用例。以此類推,逐步篩選出符合業(yè)務(wù)場景一的所有功能點(diǎn)組合的生產(chǎn)日志請求,并納入到測試用例庫中。當(dāng)業(yè)務(wù)場景一功能點(diǎn)組合矩陣的所有元組被完全覆蓋,則業(yè)務(wù)場景一的測試需求是測試完備的。同理,篩選出業(yè)務(wù)場景二的測試用例。該測試用例自動(dòng)生成方法的目標(biāo)是篩選出能夠覆蓋功能點(diǎn)組合的生產(chǎn)日志請求,使得所有業(yè)務(wù)場景的測試需求都是測試完備的。

        3 工程實(shí)驗(yàn)

        本實(shí)驗(yàn)以民航運(yùn)價(jià)系統(tǒng)為例,使用生產(chǎn)日志和業(yè)務(wù)數(shù)據(jù)驗(yàn)證本文所提測試用例精簡的效果和自動(dòng)生成方法的可行性。

        3.1 實(shí)驗(yàn)環(huán)境

        民航運(yùn)價(jià)系統(tǒng),每天處理約2 000萬筆交易,生成約120 G日志;包含3年的業(yè)務(wù)數(shù)據(jù),近500 G。本實(shí)驗(yàn)使用2022年1月29日交易日期的生產(chǎn)日志和2022年8月25日的業(yè)務(wù)數(shù)據(jù)。系統(tǒng)包含3年的業(yè)務(wù)數(shù)據(jù),即2019年8月26日—2022年8月25日三年的全部數(shù)據(jù)內(nèi)容。

        以國航運(yùn)價(jià)業(yè)務(wù)數(shù)據(jù)為樣本,共涉及323 897條樣本數(shù)據(jù),10個(gè)功能點(diǎn),功能點(diǎn)分別為:去程星期限制、回程星期限制、提前購票限制、運(yùn)價(jià)組合限制、團(tuán)隊(duì)人數(shù)限制、團(tuán)隊(duì)拆分限制、缺口程組合限制、往返程組合限制、代碼共享限制、適用代碼共享承運(yùn)人。對于該樣本數(shù)據(jù),不劃分業(yè)務(wù)場景時(shí),需要155 520個(gè)測試用例保證測試完備性。

        3.2 實(shí)驗(yàn)結(jié)果

        根據(jù)標(biāo)簽,可以將樣本數(shù)據(jù)劃分為207個(gè)業(yè)務(wù)場景,其中最多涉及7個(gè)功能點(diǎn),最少涉及1個(gè)功能點(diǎn),共需要4 421個(gè)測試用例保證測試完備性。經(jīng)過精簡后,可以歸并為12個(gè)業(yè)務(wù)場景,其中最多涉及7個(gè)功能點(diǎn),最少涉及2個(gè)功能點(diǎn),共需要2 592個(gè)測試用例保證測試完備性。

        以精簡后的某一業(yè)務(wù)場景“T/CA3C212619”為例,該業(yè)務(wù)場景涉及到3個(gè)功能點(diǎn),分別為:

        提前購票限制,取值集合為{[0天999天]、[1天999天]};

        代碼共享限制,取值集合為{[0]、[1]};

        適用代碼共享承運(yùn)人,取值集合為{[]、[山航/]}。

        該業(yè)務(wù)場景生成的功能點(diǎn)組合矩陣包含8個(gè)3維元組,如表4所示。

        表4 業(yè)務(wù)場景“T/CA3C212619”功能點(diǎn)組合矩陣

        某一生產(chǎn)日志請求執(zhí)行結(jié)果如圖2所示:

        圖2 生產(chǎn)日志請求結(jié)果

        該日志請求的執(zhí)行結(jié)果覆蓋了業(yè)務(wù)場景“T/CA3C212619”功能點(diǎn)組合矩陣的第3個(gè)元組,可以納入到測試用例庫中。

        4 結(jié)束語

        本文提出了一種測試用例精簡與自動(dòng)生成方法。首先,測試用例精簡方法通過劃分業(yè)務(wù)場景降維,通過歸并業(yè)務(wù)場景減少功能點(diǎn)組合矩陣,解決了測試需求維度爆炸問題,實(shí)驗(yàn)結(jié)果顯示,在保證測試完備性的前提下,有效地減少了測試用例的數(shù)量,使得基于路徑覆蓋的測試具有可行性。再次,測試用例自動(dòng)生成方法使用生產(chǎn)日志和業(yè)務(wù)數(shù)據(jù),自動(dòng)分析軟件系統(tǒng)的請求以及結(jié)果,抓取測試用例,大大提升了測試用例的范圍,以及測試覆蓋率,并且業(yè)務(wù)數(shù)據(jù)和生產(chǎn)請求更加貼合用戶的真實(shí)業(yè)務(wù)場景,提升了測試的可靠性,避免了無效的測試。雖然本方法使用的打樁技術(shù)是侵入式的,但是可以采用組件掛載技術(shù),通過配置動(dòng)態(tài)開關(guān),控制是否開啟打樁程序,對生產(chǎn)系統(tǒng)功能和性能無影響。綜上,本文所提方法在工程實(shí)踐中具有較大的應(yīng)用價(jià)值。

        猜你喜歡
        測試用例精簡日志
        一名老黨員的工作日志
        基于SmartUnit的安全通信系統(tǒng)單元測試用例自動(dòng)生成
        扶貧日志
        心聲歌刊(2020年4期)2020-09-07 06:37:14
        基于混合遺傳算法的回歸測試用例集最小化研究
        時(shí)常精簡多余物品
        特別健康(2018年2期)2018-06-29 06:14:00
        一種面向應(yīng)用的流量監(jiān)測精簡架構(gòu)設(shè)計(jì)
        電子制作(2017年17期)2017-12-18 06:40:47
        游學(xué)日志
        基于依賴結(jié)構(gòu)的測試用例優(yōu)先級(jí)技術(shù)
        應(yīng)用于SAN的自動(dòng)精簡配置架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)
        一種基于粗集和SVM的Web日志挖掘模型
        蜜桃视频在线看一区二区三区 | 久久亚洲av午夜福利精品西区| 中文字幕国产亚洲一区| 欧美xxxx做受欧美| 免费无码av片在线观看网址| 欧洲女人性开放免费网站| 欧美伊人网| 中文字幕高清一区二区| 国语对白福利在线观看| 欧美性巨大╳╳╳╳╳高跟鞋| 999国产精品视频| 亚洲色图少妇熟女偷拍自拍| 日韩女同视频在线网站| 亚洲精品美女久久久久99| 国产精品无码无片在线观看3D| 97久久久一区二区少妇| 国产精品美女久久久免费| 99精产国品一二三产品香蕉| 亚洲精品亚洲人成在线播放| 日韩人妖干女同二区三区| 精品久久久久久久久午夜福利| 亚洲中文无码av在线| 蜜桃av噜噜一区二区三区香| 亚洲毛片在线免费视频| 麻豆成人精品国产免费| 亚洲AV无码精品一区二区三区l| av男人的天堂第三区| 亚洲无码在线播放| 国产农村妇女高潮大叫| 国产粉嫩美女一区二区三| 精品国产精品久久一区免费式 | 青青草在线这里只有精品| 亚洲国产精品综合久久网各| 无码人妻少妇久久中文字幕蜜桃 | 日本一区午夜艳熟免费| 国产高清黄色在线观看91| 精品国产麻豆免费人成网站| 极品少妇xxxx精品少妇偷拍| 国语少妇高潮对白在线| 久久久久亚洲AV无码去区首| 国产av剧情刺激对白|