• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于A(yíng)SL的模型驅(qū)動(dòng)架構(gòu)測(cè)試方法*

    2014-01-24 06:55:18張小艷
    關(guān)鍵詞:測(cè)試用例煤質(zhì)架構(gòu)

    張小艷,文 輝

    (西安科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,陜西 西安 710054)

    基于A(yíng)SL的模型驅(qū)動(dòng)架構(gòu)測(cè)試方法*

    張小艷,文 輝

    (西安科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,陜西 西安 710054)

    針對(duì)模型驅(qū)動(dòng)架構(gòu)(MDA)下的軟件開(kāi)發(fā)方法中測(cè)試啟動(dòng)比較晚、難以發(fā)現(xiàn)隱藏在模型中的缺陷及UML模型描述缺乏精確語(yǔ)義等問(wèn)題,提出了基于A(yíng)SL的模型測(cè)試方法:從UML模型出發(fā),將動(dòng)作規(guī)約語(yǔ)言(ASL)運(yùn)用于平臺(tái)無(wú)關(guān)模型(PIM)上建立測(cè)試模型。給出了ASL語(yǔ)句在MDA過(guò)程中的工作原理、平臺(tái)無(wú)關(guān)模型的建立過(guò)程、測(cè)試用例建立的步驟、測(cè)試執(zhí)行的實(shí)施過(guò)程,最后結(jié)合實(shí)例,在UML圖的基礎(chǔ)上運(yùn)用ASL對(duì)測(cè)試環(huán)境進(jìn)行構(gòu)建,并創(chuàng)建了系統(tǒng)的測(cè)試用例,對(duì)模型及業(yè)務(wù)邏輯進(jìn)行了測(cè)試。實(shí)驗(yàn)結(jié)果表明,提出的基于A(yíng)SL的模型測(cè)試方法既能利用模型驅(qū)動(dòng)對(duì)復(fù)雜的測(cè)試用例進(jìn)行簡(jiǎn)化和抽象,又能在軟件生存期早期揭示軟件的缺陷,防止缺陷隨著軟件開(kāi)發(fā)過(guò)程的進(jìn)行而被放大。

    模型驅(qū)動(dòng)架構(gòu);動(dòng)作規(guī)約語(yǔ)言;平臺(tái)無(wú)關(guān)模型;測(cè)試用例

    1 引言

    模型驅(qū)動(dòng)架構(gòu)MDA(Model Driven Architecture)是一種對(duì)業(yè)務(wù)邏輯建立抽象模型,然后由抽象模型自動(dòng)產(chǎn)生最終完備的應(yīng)用程序的方法。MDA軟件開(kāi)發(fā)方法已經(jīng)成為提高軟件質(zhì)量和開(kāi)發(fā)效率的一種新的軟件開(kāi)發(fā)范型[1]。基于 MDA的測(cè)試是在業(yè)務(wù)邏輯建模時(shí)開(kāi)始軟件測(cè)試工作,即在開(kāi)發(fā)早期用UML圖結(jié)合業(yè)務(wù)邏輯的形式建立測(cè)試模型、執(zhí)行測(cè)試用例并且反饋測(cè)試結(jié)果。

    在MDA中,平臺(tái)無(wú)關(guān)模型PIM(Platform Independent Model)隱藏實(shí)現(xiàn)細(xì)節(jié)以獲取系統(tǒng)的業(yè)務(wù)級(jí)視圖,這種系統(tǒng)抽象級(jí)別的提升帶來(lái)了一些測(cè)試上的問(wèn)題,例如,(1)測(cè)試啟動(dòng)比較晚,在系統(tǒng)完成后才啟動(dòng);(2)難以發(fā)現(xiàn)隱藏在模型中的缺陷[2]。

    UML為MDA模型提供了可視化的表示和基礎(chǔ)的語(yǔ)義,但大部分的動(dòng)作或方法還沒(méi)有精確的語(yǔ)義定義,所以其相關(guān)應(yīng)用(如基于模型的測(cè)試用例)無(wú)法得以精確地描述。

    本文引入動(dòng)作規(guī)約語(yǔ)言ASL(Action Specification Language)對(duì)業(yè)務(wù)模型中的動(dòng)作進(jìn)行清晰、精確且抽象的描述,建立系統(tǒng)測(cè)試用例,并且無(wú)歧義地執(zhí)行測(cè)試來(lái)監(jiān)視測(cè)試結(jié)果,實(shí)現(xiàn)單元測(cè)試和回歸測(cè)試的平臺(tái)無(wú)關(guān)化。

    2 基于A(yíng)SL的測(cè)試基本框架

    2.1 ASL及其特性

    MDA中,模型可分為平臺(tái)無(wú)關(guān)模型PIM、平臺(tái)相關(guān)模型PSM(Platform Specific Model)兩種[3]。PIM是一個(gè)系統(tǒng)的形式化規(guī)范,它與具體的技術(shù)細(xì)節(jié)無(wú)關(guān);PSM是基于某一具體目標(biāo)平臺(tái)的形式化規(guī)范。PIM與PSM一般都使用UML創(chuàng)建,但UML是一種半形式化的語(yǔ)言,其模型描述缺乏精確語(yǔ)義,所以,在目前的軟件開(kāi)發(fā)過(guò)程中,很難利用工具去驗(yàn)證和分析UML模型的正確性。ASL的出現(xiàn)彌補(bǔ)了這一缺陷,ASL是一個(gè)與實(shí)現(xiàn)語(yǔ)言無(wú)關(guān)的動(dòng)作語(yǔ)言,通過(guò)編譯器編譯后可直接執(zhí)行,因此可以用ASL編寫(xiě)基于模型的測(cè)試用例。它是一種符合UML動(dòng)作語(yǔ)義標(biāo)準(zhǔn)的語(yǔ)言,提供了操縱模型元素的能力,為部分UML模型增加了可執(zhí)行行為的定義,并且又不偏向于任何實(shí)現(xiàn)技術(shù)[4]。

    ASL語(yǔ)句在MDA過(guò)程中的工作原理如圖1所示,ASL語(yǔ)句段總是與常規(guī)UML模型元素關(guān)聯(lián)。各抽象層之間的行為是相互映射的,PIM層中的每一句ASL語(yǔ)句都可以在PSM層和代碼層中找到相應(yīng)的實(shí)現(xiàn)。

    2.2 平臺(tái)無(wú)關(guān)模型的建立

    PIM對(duì)應(yīng)分析模型,它處于中間抽象層次,關(guān)注系統(tǒng)的整個(gè)架構(gòu)實(shí)現(xiàn),與平臺(tái)無(wú)關(guān)。建立PIM的目的是為了理解問(wèn)題域,獲取和表達(dá)所有業(yè)務(wù)需求,并且包含了對(duì)系統(tǒng)的所有規(guī)約[5]。作為測(cè)試對(duì)象,平臺(tái)無(wú)關(guān)模型主要包含域模型圖、用例圖、順序圖、類(lèi)圖、協(xié)作圖、狀態(tài)機(jī)圖等。基于A(yíng)SL的模型測(cè)試技術(shù)主要以類(lèi)圖和狀態(tài)圖為基礎(chǔ),加入ASL語(yǔ)句對(duì)模型中的動(dòng)作進(jìn)行擴(kuò)展。圖2給出了ASL協(xié)助建立模型的示例。

    Figure 1 Work principle of ASL圖1 ASL工作原理圖

    Figure 2 ASL assist in the establishment of model圖2 ASL協(xié)助建立模型

    其建立步驟如下:

    步驟1域模型的建立。在域模型中,將系統(tǒng)按主題劃分為不同的域,每一個(gè)域表示系統(tǒng)中的一個(gè)獨(dú)立的主題事務(wù)。

    步驟2建立域中的類(lèi)圖。類(lèi)圖是平臺(tái)獨(dú)立模型的靜態(tài)視點(diǎn),由類(lèi)名、屬性和方法組成,并且類(lèi)之間存在關(guān)聯(lián)關(guān)系。其中,方法用來(lái)表示通過(guò)帶參數(shù)的接口來(lái)調(diào)用的動(dòng)作,在方法中可以進(jìn)行業(yè)務(wù)邏輯的處理和數(shù)據(jù)的計(jì)算。但是,類(lèi)圖僅是結(jié)構(gòu)化的聲明,每個(gè)類(lèi)方法的行為都由詳細(xì)的ASL描述。圖2中,通過(guò)ASL描述后,Traffic Light類(lèi)的Display Traffic_Light方法在模型層具有了可執(zhí)行能力。

    步驟3針對(duì)動(dòng)態(tài)類(lèi)創(chuàng)建狀態(tài)圖。每個(gè)類(lèi)最多有一個(gè)狀態(tài)機(jī),該狀態(tài)機(jī)描述了所有該類(lèi)對(duì)應(yīng)對(duì)象的行為。每個(gè)狀態(tài)有且只有一個(gè)相關(guān)聯(lián)的動(dòng)作,該動(dòng)作在對(duì)象進(jìn)入這個(gè)狀態(tài)的時(shí)候執(zhí)行。每個(gè)轉(zhuǎn)換上都附有一個(gè)信號(hào),該信號(hào)導(dǎo)致了轉(zhuǎn)換的發(fā)生[6]。狀態(tài)圖建模過(guò)程從識(shí)別代表常規(guī)行為的狀態(tài)開(kāi)始,ASL用來(lái)描述狀態(tài)中的動(dòng)作以及那些能觸發(fā)狀態(tài)轉(zhuǎn)移的信號(hào)。如圖2所示,ASL將系統(tǒng)的動(dòng)態(tài)行為在狀態(tài)圖中展現(xiàn)出來(lái),是對(duì)靜態(tài)模型的補(bǔ)充,也是基于A(yíng)SL模型測(cè)試的重要組成部分。

    2.3 ASL建立測(cè)試用例

    使用ASL建立測(cè)試用例的過(guò)程:首先在測(cè)試初始化片段中詳述測(cè)試環(huán)境和初始條件;然后以一個(gè)或多個(gè)片段的方式描述PIM中的每個(gè)測(cè)試用例。

    2.3.1 初始化片段的創(chuàng)建

    初始化片段由ASL語(yǔ)句段組成,主要用來(lái)構(gòu)建測(cè)試用例執(zhí)行環(huán)境,包括測(cè)試用例所基于的場(chǎng)景、提供給待測(cè)試系統(tǒng)的輸入以及期望的輸出(稱(chēng)之為測(cè)試預(yù)期)。初始化片段分布在獨(dú)立的可執(zhí)行文件中,可以單獨(dú)執(zhí)行。創(chuàng)建初始化片段步驟如下:

    2.3.2 測(cè)試用例的建立

    根據(jù)測(cè)試目的的不同將測(cè)試分為兩類(lèi):一類(lèi)是模型語(yǔ)義的測(cè)試;一類(lèi)是場(chǎng)景的模擬,即驗(yàn)證需求規(guī)格是否在平臺(tái)無(wú)關(guān)層正確建模。

    模型語(yǔ)義的測(cè)試是指對(duì)模型元素中對(duì)象、屬性、關(guān)系及約束的測(cè)試,包括對(duì)象唯一性驗(yàn)證、對(duì)象關(guān)聯(lián)的導(dǎo)航與驗(yàn)證、方法的調(diào)用、類(lèi)型一致性檢驗(yàn)等。

    (4)ASL是強(qiáng)類(lèi)型語(yǔ)言,因此模型編譯器可以檢查屬性和本地變量的類(lèi)型是否一致,這樣在一定程度上確保了類(lèi)型信息的準(zhǔn)確性。

    在PIM中,ASL已經(jīng)將系統(tǒng)的動(dòng)態(tài)特性完全描述出來(lái),針對(duì)特定的業(yè)務(wù)需求,可以通過(guò)描繪事件觸發(fā)時(shí)的場(chǎng)景來(lái)測(cè)試系統(tǒng),稱(chēng)之為場(chǎng)景模擬測(cè)試法[7]。從需求規(guī)格說(shuō)明出發(fā),描述系統(tǒng)用例場(chǎng)景和場(chǎng)景中的動(dòng)作,把狀態(tài)遷移(測(cè)試路徑)的測(cè)試與類(lèi)模型的測(cè)試組合起來(lái)。以信號(hào)序列激發(fā)場(chǎng)景模擬測(cè)試,通過(guò)檢查對(duì)象在接收信號(hào)后是否轉(zhuǎn)移到預(yù)期狀態(tài),以及對(duì)對(duì)象的數(shù)據(jù)成員值的變化情況進(jìn)行跟蹤來(lái)驗(yàn)證狀態(tài)本身或者轉(zhuǎn)換是否正確[7]。主要方式有以下幾種:

    以上兩類(lèi)測(cè)試構(gòu)成了基于A(yíng)SL的測(cè)試用例。模型語(yǔ)義測(cè)試對(duì)模型細(xì)節(jié)部分進(jìn)行測(cè)試,而場(chǎng)景測(cè)試則是在需求規(guī)格的視角下將應(yīng)用場(chǎng)景描述出來(lái),是從全局來(lái)測(cè)試系統(tǒng)。在場(chǎng)景模擬過(guò)程中也穿插著對(duì)模型語(yǔ)義的測(cè)試,實(shí)現(xiàn)對(duì)系統(tǒng)模型的全面測(cè)試。

    2.4 執(zhí)行測(cè)試

    基于A(yíng)SL的測(cè)試執(zhí)行過(guò)程分為四步:

    步驟1將模型、測(cè)試規(guī)則等導(dǎo)入,利用模型分析和驗(yàn)證器完成語(yǔ)法分析和驗(yàn)證,保證模型的完整性及語(yǔ)法的正確性。

    步驟2執(zhí)行初始化片段,建立測(cè)試所需的執(zhí)行環(huán)境和初始化狀態(tài)。

    步驟3 為了調(diào)試而交互地執(zhí)行測(cè)試用例,或者為了回歸測(cè)試而以批處理的方式執(zhí)行測(cè)試用例。

    步驟4 根據(jù)測(cè)試結(jié)果反復(fù)精化模型,直到對(duì)于每個(gè)測(cè)試用例都產(chǎn)生了期望的結(jié)果,并且驗(yàn)證了業(yè)務(wù)需求的正確性。

    圖3展示了測(cè)試執(zhí)行過(guò)程。

    Figure 3 Process of test execution圖3 測(cè)試執(zhí)行過(guò)程

    目前,支持ASL語(yǔ)言編譯的工具為Kennedy Carter公司的iUML,它通過(guò)可執(zhí)行UML實(shí)現(xiàn)MDA過(guò)程,而對(duì)平臺(tái)無(wú)關(guān)模型的測(cè)試支持不足,基于A(yíng)SL的模型測(cè)試技術(shù)彌補(bǔ)了iUML工具在測(cè)試方面的缺陷。

    3 示例分析:煤質(zhì)預(yù)測(cè)業(yè)務(wù)

    以煤質(zhì)預(yù)測(cè)預(yù)報(bào)系統(tǒng)為例,簡(jiǎn)要說(shuō)明在MDA架構(gòu)中運(yùn)用ASL完成模型測(cè)試。煤質(zhì)預(yù)測(cè)預(yù)報(bào)系統(tǒng)簡(jiǎn)要過(guò)程是:運(yùn)用煤礦煤質(zhì)計(jì)劃數(shù)據(jù)、生產(chǎn)過(guò)程煤質(zhì)數(shù)據(jù)、煤層煤樣數(shù)據(jù),通過(guò)煤質(zhì)預(yù)測(cè)模型給出下月或下一年度的煤質(zhì)數(shù)據(jù)[8]。

    3.1 建立測(cè)試初始化環(huán)境

    測(cè)試初始化環(huán)境控制著測(cè)試初始狀態(tài)以及所有測(cè)試預(yù)期,它是否模擬了真實(shí)環(huán)境將決定測(cè)試結(jié)果的真實(shí)性和正確性[9]。下面根據(jù)煤質(zhì)實(shí)際生產(chǎn)數(shù)據(jù)來(lái)建立業(yè)務(wù)對(duì)象并初始化數(shù)據(jù):

    3.2 煤質(zhì)預(yù)測(cè)的測(cè)試用例

    運(yùn)用ASL中關(guān)聯(lián)漫游、調(diào)用方法、發(fā)送信號(hào)等關(guān)鍵特征對(duì)煤質(zhì)預(yù)測(cè)過(guò)程進(jìn)行測(cè)試。部分測(cè)試片段如下:

    在測(cè)試用例中,通過(guò)find-only操作,確保模型中只提供了唯一的有效句柄,判斷actual不為UNDEFINED則向類(lèi)對(duì)應(yīng)狀態(tài)機(jī)發(fā)送信號(hào)PT1:Request_Data(),激發(fā)狀態(tài)跳轉(zhuǎn)并執(zhí)行入口動(dòng)作。入口動(dòng)作中通過(guò)關(guān)聯(lián)漫游導(dǎo)航對(duì)象關(guān)系,驗(yàn)證對(duì)象屬性值并進(jìn)行業(yè)務(wù)的處理。若測(cè)試用例執(zhí)行過(guò)程中報(bào)錯(cuò)或者被測(cè)系統(tǒng)的行為與模型期望不一致,針對(duì)錯(cuò)誤類(lèi)型修改模型或者調(diào)整測(cè)試用例,直到模型反映出系統(tǒng)的預(yù)期行為。

    4 結(jié)束語(yǔ)

    本文針對(duì)模型驅(qū)動(dòng)架構(gòu)(MDA)下的軟件開(kāi)發(fā)方法中測(cè)試啟動(dòng)比較晚、難以發(fā)現(xiàn)隱藏在模型中的缺陷及UML模型描述缺乏精確語(yǔ)義等問(wèn)題,提出了基于A(yíng)SL的模型測(cè)試方法。在模型驅(qū)動(dòng)的基礎(chǔ)上使用ASL進(jìn)行模型測(cè)試建模,即在模型上下文中為處理行為和產(chǎn)生的結(jié)果提供無(wú)歧義的、精確的且易讀的定義。針對(duì)模型語(yǔ)義以及需求規(guī)格中的場(chǎng)景設(shè)計(jì)測(cè)試用例,完成對(duì)模型的測(cè)試。這樣既能利用模型驅(qū)動(dòng)對(duì)復(fù)雜的測(cè)試用例進(jìn)行一種簡(jiǎn)化和抽象,也賦予了開(kāi)發(fā)者建立和集成真正的可復(fù)用測(cè)試組件的能力。

    [1] Liu Jing,He Ji-feng,Miao Huai-kou.A strategy for model construction and integration in MDA[J].Journal of Software,2006,17(6):1411-1422.(in Chinese)

    [2] OMG.Model driven architecture[EB/OL].[2012-08-20].http://www.omg.org/mda/.

    [3] Wang Lin-zhang,Li Xuan-dong,Zheng Guo-liang.Research on model-driven software testing[J].Computer Science,2005,32(10):230-235.(in Chinese)

    [4] Liu Yang,Li Ya-fen,Wang Pu.Automatic generation framework of model-driven test cases[J].Computer Engineering,2011,37(1):39-40.(in Chinese)

    [5] Chris R,Paul F,John W,et al.Driven architecture with executable UML[M].Zhao Jian-hua,Zhang-Tian,Translation.Beijing:China Machine Press,2006.(in Chinese)

    [6] Yang Jing,Gu Chun-hua.Automatic test case generation method based on UML state diagram[J].Journal of East China U-niversity of Science and Technology,2011,37(3):346-351.(in Chinese)

    [7] Stefan B.Model driven test case construction[C]∥Proc of the 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering,2007:587-590.

    [8] Wu Xue-tao.Forecast in coal quality management[J].Energy Technology and Management,2011(2):156-157.(in Chinese)

    [9] Xu Hong-zhe,Chen Jian-ming.The auto-testing technology of UML[M].Xi’an Jiaotong University Press,2006.(in Chinese)

    附中文參考文獻(xiàn):

    [1] 劉靜,何積豐,繆淮扣.模型驅(qū)動(dòng)架構(gòu)中模型構(gòu)造與集成策略[J].軟件學(xué)報(bào),2006,17(6):1411-1422.

    [3] 王林章,李宣東,鄭國(guó)梁.模型驅(qū)動(dòng)的軟件測(cè)試研究[J].計(jì)算機(jī)科學(xué),2005,32(10):230-235.

    [4] 劉揚(yáng),李亞芬,王普.模型驅(qū)動(dòng)的測(cè)試用例自動(dòng)生成框架[J].計(jì)算機(jī)工程,2011,37(1):39-40.

    [5] Chris R,Paul F,John W,等.MDA與可執(zhí)行 UML[M].趙建華,張?zhí)?,譯.北京:機(jī)械工業(yè)出版社,2006.

    [6] 楊晶,顧春華.基于UML狀態(tài)圖的測(cè)試用例自動(dòng)生成方法[J].華東理工大學(xué)學(xué)報(bào),2011,37(3):346-351.

    [8] 吳雪濤.預(yù)測(cè)預(yù)報(bào)在煤質(zhì)管理中的應(yīng)用[J].能源技術(shù)與管理,2011(2):156-157.

    [9] 徐宏喆,陳建明.UML自動(dòng)化測(cè)試技術(shù)[M].西安:西安交通大學(xué)出版社,2006.

    Testing method for model driven architecture based on ASL

    ZHANG Xiao-yan,WEN Hui
    (College of Computer Science and Technology,Xi’an University of Science and Technology,Xi’an 710054,China)

    Aiming at the issues of late test start-up in software development methods with model driven architecture(MDA),difficulty in finding the flaws hidden in models,deficient precise semantemes in UML model description and others,proposes a model test method based on ASL:Starting from the UML model,Action Specification Language(ASL)is applied to platform independent model(PIM)in order to build a test model.Narrates the operation mode of ASL sentences in MDA process,creating process of PIM,steps for building test cases,implementation of tests,and finally applies ASL to build test environment on the basis of UML diagrams by combining examples and creates systematical test cases to test the model and business logic.Experimental results show that the proposed model test method based on ASL can not only simplify and abstract the complicated test cases by using model driven,but also disclose the flaws in the earlier part of software life cycle,preventing the flaws from being amplified as the software development process continues.

    model driven architecture;action specification language;platform independent model;test case

    TP311.5

    A

    10.3969/j.issn.1007-130X.2014.04.016

    2012-09-11;

    2012-12-19

    通訊地址:710054陜西省西安市西安科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院

    Address:College of Computer Science and Technology,Xi’an University of Science and Technology,Xi’an 710054,Shaanxi,P.R.

    China

    1007-130X(2014)04-0662-05

    張小艷(1967-),女,陜西西安人,教授,研究方向?yàn)榫W(wǎng)絡(luò)集成與數(shù)據(jù)技術(shù)、知識(shí)工程與智能系統(tǒng)。E-mail:xust_software@163.com

    ZHANG Xiao-yan,born in 1967,professor,her research interests include network integration and data technology,knowledge engineering and intelligent systems.

    文輝(1987-),男,湖南株洲人,碩士生,研究方向?yàn)槟P万?qū)動(dòng)架構(gòu)和基于模型的測(cè)試。E-mail:284860391@qq.com

    WEN Hui,born in 1987,MS candidate,his research interests include modeldriven architecture,and model-based testing.

    猜你喜歡
    測(cè)試用例煤質(zhì)架構(gòu)
    基于FPGA的RNN硬件加速架構(gòu)
    多煤層復(fù)雜煤質(zhì)配煤入選方案的研究
    功能架構(gòu)在電子電氣架構(gòu)開(kāi)發(fā)中的應(yīng)用和實(shí)踐
    基于SmartUnit的安全通信系統(tǒng)單元測(cè)試用例自動(dòng)生成
    基于混合遺傳算法的回歸測(cè)試用例集最小化研究
    LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實(shí)現(xiàn)
    通柘煤田—1—2煤層的煤質(zhì)變化規(guī)律
    一種基于FPGA+ARM架構(gòu)的μPMU實(shí)現(xiàn)
    基于依賴(lài)結(jié)構(gòu)的測(cè)試用例優(yōu)先級(jí)技術(shù)
    三家企業(yè)煤質(zhì)超標(biāo)各被罰3萬(wàn)
    金沙县| 肥城市| 获嘉县| 慈溪市| 铜山县| 花莲县| 上饶县| 昌江| 周口市| 新疆| 昭通市| 荥阳市| 策勒县| 瑞金市| 盐池县| 庆元县| 江达县| 江山市| 南江县| 出国| 邮箱| 望谟县| 肥城市| 沁源县| 商水县| 彩票| 绍兴县| 芦溪县| 重庆市| 北京市| 保康县| 潜江市| 秭归县| 资兴市| 合山市| 罗田县| 昭平县| 恩平市| 济源市| 方城县| 滨海县|