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

    基于分類樹的多租戶系統(tǒng)定制功能測試方法?

    2018-11-28 09:47:10左小凱張海波安韻涵
    關(guān)鍵詞:租戶測試用例約束

    左小凱 張海波 安韻涵

    (武漢數(shù)字工程研究所 武漢 430074)

    1 引言

    軟件即服務(wù)(Software-as-a-Service,SaaS)是一種通過Internet提供軟件服務(wù)的模式,一般采用基于web的方式,按照客戶定制的內(nèi)容和使用時(shí)間進(jìn)行付費(fèi),對于用戶而言,只要按照自己需求定制功能并付費(fèi)即可使用所需的軟件,并且用戶不用對硬件和軟件進(jìn)行管理和維護(hù)[1]。

    1.1 多租戶軟件即服務(wù)系統(tǒng)介紹

    多租戶軟件即服務(wù)(Multi—Tenancy Softwareas-a-Service,MTA SaaS)是SaaS系統(tǒng)中常見的模式,隨著云計(jì)算技術(shù)的發(fā)展,多租戶模式也正在被應(yīng)用于各種SaaS系統(tǒng)。MTA SaaS系統(tǒng)允許多賬號和多個在線用戶同時(shí)操作使用,用戶可以按照自己的需求個性定制所需要的功能。多租戶和多用戶的區(qū)別主要在于多租戶系統(tǒng)中租戶應(yīng)用的實(shí)例不同而多用戶系統(tǒng)中用戶共用一個實(shí)例[2]。

    一般來說,MTA SaaS提供可共享的、可重用的基礎(chǔ)數(shù)據(jù)和基礎(chǔ)代碼,租戶可在公有的基礎(chǔ)上定制特定的個性化功能[3],這種形式因?yàn)榭梢源蠓葴p少系統(tǒng)維護(hù)資源,同時(shí)滿足大多數(shù)客戶的需求,而受到越來越多云計(jì)算服務(wù)系統(tǒng)的青睞。國外的Salesforce公司是SaaS系統(tǒng)應(yīng)用的先驅(qū)者,國內(nèi)的金算盤、800CRM等公司也正在快速發(fā)展,隨著國內(nèi)外的軟件即服務(wù)的不斷發(fā)展,MTA SaaS也受到人們的重視。

    1.2 分類樹在軟件測試中應(yīng)用介紹

    在軟件測試中,分類樹是一種特殊的黑盒測試方法,來自范疇劃分方法[4]。通過分類樹的方法,測試對象的輸入域因測試對象的不同特征被劃分成與測試相關(guān)的多個方面,對于每一個方面都可視作一個分類,由這些分類得到的類有時(shí)也能進(jìn)一步分類,甚至是遞歸的繼續(xù)進(jìn)一步分類。通過分類的方法逐步對輸入域劃分,用樹形圖的形式表達(dá)劃分狀況,最后結(jié)合不同的分類組成測試用例。

    分類樹方法是非常有效的黑盒測試方法,分類樹方法采用組合方式生成測試數(shù)據(jù),越來越多的研究人員采用分類樹方法應(yīng)用到測試中來,并取得了許多成果。文獻(xiàn)[5~6]利用分類樹對web服務(wù)的測試進(jìn)行了研究,文獻(xiàn)[7]提出了一種利用分類樹生成隨機(jī)測試用例的方法;針對分類樹方法測試產(chǎn)生冗余測試數(shù)據(jù)的問題,文獻(xiàn)[8~9]將分類樹與其他算法結(jié)合精簡了測試用例。

    1.3 MTA SaaS系統(tǒng)測試問題分析

    對MTA SaaS系統(tǒng)進(jìn)行測試時(shí),不僅要面對傳統(tǒng)軟件的測試問題,還要面對其獨(dú)有的測試問題。MTA SaaS測試一般包含以下內(nèi)容:拓展性測試、兼容性測試、多租戶使用測試、按需定制測試、持續(xù)更新測試等,其中按需定制測試、持續(xù)更新測試以及多租戶使用測試是MTA SaaS區(qū)別于傳統(tǒng)軟件的重要的測試內(nèi)容[10~11]。

    持續(xù)更新狀態(tài)是由MTA SaaS系統(tǒng)自身特性決定的,由于系統(tǒng)不斷有不同的租戶加入和退出,不同租戶使用權(quán)限以及使用時(shí)間等有所不同,系統(tǒng)還能發(fā)布新的服務(wù)、新的功能供租戶選擇和使用,這種模式使MTA SaaS系統(tǒng)一直處于一種持續(xù)更新(持續(xù)升級)的狀態(tài),這種狀態(tài)也為測試人員帶來新的挑戰(zhàn)[12]。

    在MTA SaaS系統(tǒng)中,其區(qū)別于傳統(tǒng)軟件的特征之一在于具有定制功能,用戶能按照自己的需求包括功能、界面、使用時(shí)間甚至投入資金等多方面因素進(jìn)行定制,定制的特點(diǎn)具體化了軟件即服務(wù)這一概念。而在這過程中,系統(tǒng)本身的參數(shù)和用戶選擇參數(shù)交互形成特定的個性化功能,由于過程實(shí)現(xiàn)的復(fù)雜和多因素,很容易引起未知的系統(tǒng)質(zhì)量問題,系統(tǒng)的定制功能測試工作是必不可少的[13~14]。而由于系統(tǒng)處于持續(xù)更新的狀態(tài),不同的租戶的定制功能能否穩(wěn)定的實(shí)現(xiàn)是系統(tǒng)質(zhì)量的關(guān)鍵問題,因此,在這種持續(xù)更新狀態(tài)的系統(tǒng)中對定制功能的測試尤為重要[15]。

    本文針對MTA SaaS系統(tǒng)定制功能在持續(xù)更新狀態(tài)下測試情況復(fù)雜和可靠性難以保障的問題,提出了一種基于分類樹生成定制功能模型,通過該模型采用多約束的策略生成測試用例的方法,該方法能有效地測試系統(tǒng)在持續(xù)更新狀態(tài)下的定制功能的完備性和可靠性。

    2 分類樹介紹

    2.1 分類樹的定義

    分類樹(classification tree),是一種與流程圖類似的樹結(jié)構(gòu),其中每一個內(nèi)部節(jié)點(diǎn)表示一個屬性上的測試,每一個分支表示一個測試輸入,每一個葉節(jié)點(diǎn)表示一個類別。分類樹的形式定義如下:

    定義(分類樹)一顆分類樹是一個四元組T=(D,I,C,R)。

    D為分類樹T的根節(jié)點(diǎn),是測試對象的輸入域;

    I=(i1,i2,…,im)(m∈Z且m≥1)為分類樹的內(nèi)節(jié)點(diǎn),將輸入域劃分為若干不相交的子域;

    C=(c11…c1n1,c21…c2n2,…,cm1…cmn) 為 分 類樹的葉子節(jié)點(diǎn),即測試對象的不同分類im的類;

    R=(r1,r2),R為父節(jié)點(diǎn)與子節(jié)點(diǎn)的關(guān)系,r1={<D,Ik>|1?k?m},r2={<Ik,Cj>|1?k?m,1?j?n}。

    如圖1所示。

    圖1 分類樹結(jié)構(gòu)圖

    2.2 基于分類樹生成測試用例的一般步驟

    1)確定測試對象后,識別輸入空間D;

    2)對輸入空間D進(jìn)行分類,得到分類樹內(nèi)節(jié)點(diǎn)I=(i1,i2,…,im)(m∈Z且m≥1);

    3)對I進(jìn)行再次劃分,獲得葉子節(jié)點(diǎn)C= (c11…c1n1,c21…c2n2,…,cm1…cmn);

    4)各個分類的不同子類互相結(jié)合生成測試數(shù)據(jù),測試數(shù)據(jù)集 ST={c1x1,c2x2…,cmxm} ;

    5)對生成的測試數(shù)據(jù)集ST進(jìn)行篩選,去除無效的測試數(shù)據(jù),得到精簡的測試數(shù)據(jù)集。

    3 基于分類樹的MTA SaaS系統(tǒng)定制功能測試方法

    3.1 基于分類樹生成MTA SaaS系統(tǒng)的定制功能模型

    基于分類樹生成MTA SaaS系統(tǒng)定制功能模型步驟如下:

    1)依據(jù)MTA SaaS系統(tǒng)的功能說明書提取MTA SaaS系統(tǒng)的定制功能,依據(jù)功能說明書確定分類樹的輸入空間Dm;

    2)確定分類樹輸入空間后,依據(jù)MTA SaaS系統(tǒng)各功能的說明,對輸入空間進(jìn)行劃分,可以獲得Im={租戶,基礎(chǔ)功能,個性化功能},生成分類樹的內(nèi)部節(jié)點(diǎn);

    3)再次對分類樹內(nèi)部節(jié)點(diǎn)Im進(jìn)行劃分獲取葉子節(jié)點(diǎn) Cm= (t11…t1n1,f21…f2n2,…,s31…s3n),生成完整的分類樹;

    4)提取分類樹生成的葉子節(jié)點(diǎn),即產(chǎn)生的測試數(shù)據(jù)集,通過該數(shù)據(jù)集生成MTA SaaS系統(tǒng)的定制功能模型即(ti,fj,sk);

    5)依據(jù)系統(tǒng)的功能說明書,對定制功能模型確定輸入?yún)?shù),生成具體的測試數(shù)據(jù)。

    通過分類樹得到MTA SaaS系統(tǒng)的定制功能模型,如下為該模型的定義:

    定義1(MTA SaaS系統(tǒng)定制功能模型),該模型是一個由三個參數(shù)組成的三元組T。租戶ti對系統(tǒng)進(jìn)行功能定制后得到由一個三元組T=(ti,fj,sk)。

    其中ti包含租戶使用權(quán)限、使用時(shí)間、收費(fèi)情況等多個信息,

    fj表示租戶選取的基礎(chǔ)功能傾向,以網(wǎng)站類型為例,可以是教學(xué)、視頻、音樂網(wǎng)站等;

    sk表示用戶定制的功能參數(shù);

    i、j、k的取值范圍都由系統(tǒng)產(chǎn)品說明書決定。

    3.2 定制功能模型分析

    在本模型中,由參數(shù)ti代表租戶,ti根據(jù)系統(tǒng)的約束,可以得到:

    ti={租戶類型,租戶權(quán)限,消費(fèi)類型},其中租戶類型一般為個人和團(tuán)體兩種,租戶權(quán)限包括賬戶個數(shù)、子帳戶個數(shù)、可使用的SaaS系統(tǒng)功能等,消費(fèi)類型一般為免費(fèi)、短期(半年以內(nèi))收費(fèi)、長期(半年以上)收費(fèi)等。通過對ti參數(shù)的設(shè)置,可以代表MTA SaaS系統(tǒng)中多租戶特性,將租戶作為一個參數(shù)設(shè)計(jì)在測試用例中,可以有效地測試系統(tǒng)由于租戶的加入、退出導(dǎo)致系統(tǒng)持續(xù)更新狀態(tài)系統(tǒng)的定制功能可靠性。

    由參數(shù) fj,sk代表MTA SaaS系統(tǒng)的基礎(chǔ)功能和個性化功能,在實(shí)際中由于SaaS系統(tǒng)的特性,服務(wù)商可以不斷地添加各種功能供租戶選擇,這種功能可以是基礎(chǔ)功能也可以是個性化功能,因此參數(shù)fj,sk可以依據(jù)測試的要求和系統(tǒng)的現(xiàn)狀進(jìn)行設(shè)置生成測試用例。通過參數(shù) fj,sk的設(shè)置,可以有效地測試系統(tǒng)由于新服務(wù)、新功能的發(fā)布導(dǎo)致的持續(xù)更新狀態(tài)下的定制功能的穩(wěn)定性和可靠性。

    在設(shè)置參數(shù)ti,fj,sk時(shí),由于要考慮到系統(tǒng)不同租戶的類型、權(quán)限、消費(fèi)類型不同,而租戶參數(shù)ti可以影響參數(shù) fj,sk的取值范圍,基礎(chǔ)功能參數(shù) fj和個性化功能參數(shù)sk因MTA SaaS系統(tǒng)的設(shè)定,存在一定的捆綁設(shè)置或者互斥設(shè)置,以上的情況稱為參數(shù)之間的約束。由于這種多約束的關(guān)系存在,在設(shè)置參數(shù)時(shí),根據(jù)參數(shù)之間的約束情況可以分為滿足約束和不滿足約束兩種策略設(shè)置參數(shù)。在滿足約束的情況下設(shè)定參數(shù)生成測試用例,可以有效地測試系統(tǒng)定制功能的完備性和可靠性,在不滿足約束的情況下設(shè)定參數(shù)生成測試用例可以有效地測試系統(tǒng)在租戶錯誤的輸入下的應(yīng)對情況,提高系統(tǒng)軟件的質(zhì)量和穩(wěn)定性。

    基于該功能模型設(shè)置參數(shù)并采用多約束策略生成的測試用例,能有效地抵抗持續(xù)更新這一特殊狀態(tài)下的故障發(fā)生,同時(shí)有效地測試系統(tǒng)的功能完備性和軟件質(zhì)量,提高了系統(tǒng)的穩(wěn)定性和可靠性。

    3.3 基于定制功能模型生成測試用例方法

    由上述分析,可得到基于該定制功能模型生成測試用例方法,在獲取具體步驟前,對系統(tǒng)各參數(shù)之間的約束關(guān)系作如下定義:

    定義2(約束)為使系統(tǒng)得到正確運(yùn)行,軟件參數(shù)自身或參數(shù)之間需要滿足一定的條件,該條件通常由系統(tǒng)設(shè)計(jì)、實(shí)際場景中得到,可用s表示。Sw={s1,s2,…sw},其中sl(1?l?w)表示某參數(shù)受到的第l個約束條件;

    定義3(單參數(shù)約束條件),約束條件僅為該參數(shù)自身的約束,可用S(ap)表示;

    定義4(多參數(shù)約束條件),約束條件為多個參數(shù)相互之間的約束,多參數(shù)約束條件又可因參數(shù)的個數(shù)分為簡單約束和復(fù)雜約束。

    簡單約束:僅含有兩個參數(shù),其約束條件可表示為 S(ap,aq);

    復(fù)雜約束:包含了兩個或兩個以上參數(shù)以及常量數(shù)據(jù)的約束條件。

    在考慮系統(tǒng)參數(shù)間的多約束關(guān)系后,可以得到基于定制功能模型生成測試用例方法,該方法步驟如下:

    1)如3.1節(jié)所述,提取MTA SaaS系統(tǒng)定制功能模型 TM= (ti,fj,sk);

    2)依據(jù)系統(tǒng)功能說明書獲取參數(shù)ti,fj,sk之間的約束關(guān)系SM;

    3)在約束關(guān)系SM的指導(dǎo)下,考慮等價(jià)類、邊界值等方法,對參數(shù)ti,fj,sk進(jìn)行設(shè)置,生成測試用例,并分為滿足約束和不滿足約束兩種測試用例組;

    4)再考慮MTA SaaS系統(tǒng)持續(xù)更新狀態(tài)下的系統(tǒng)參數(shù)設(shè)置,若系統(tǒng)更新,則系統(tǒng)更新后新增基礎(chǔ)功能和個性化功能,即擴(kuò)大參數(shù) fj,sk的取值區(qū)間,重復(fù)步驟1)、2)、3),對擴(kuò)大后的取值區(qū)間重新取值生成新的測試用例。

    4 測試方法應(yīng)用實(shí)例

    4.1 實(shí)驗(yàn)設(shè)置

    下面以一個基于MTA SaaS系統(tǒng)的在線網(wǎng)站建立平臺為例展示該功能模型的應(yīng)用實(shí)例。該平臺可參考文獻(xiàn)[16],本文將該平臺進(jìn)行一定程度上的改變,該平臺可為租戶提供在線建立網(wǎng)站的一站式服務(wù),租戶可自行按照自己的需求建立網(wǎng)站,該平臺提供論壇、視頻、音樂、教育等模板的基礎(chǔ)網(wǎng)站,在此基礎(chǔ)上,用戶可個性化選擇郵件服務(wù)、會員服務(wù)、后臺數(shù)據(jù)分析等功能。

    在實(shí)際MTA SaaS系統(tǒng)中,租戶可以定制多個個性化功能,這里為了分析方便,設(shè)定租戶只能選擇一種個性化功能,由多個個性化功能組合的情況暫不考慮。

    依據(jù)系統(tǒng)功能說明書,對三個參數(shù)的設(shè)定有

    ti={免費(fèi)個體,免費(fèi)團(tuán)體,收費(fèi)個體,收費(fèi)團(tuán)體},

    fj={論壇,視頻,音樂,教育},

    sk={郵件服務(wù),會員服務(wù),數(shù)據(jù)分析,建立子帳戶,無(即不選擇個性化功能)};

    考慮參數(shù)之間的約束關(guān)系,這里設(shè)定其約束關(guān)系如下:

    1)免費(fèi)租戶只能使用基礎(chǔ)功能;

    2)郵件服務(wù)與教育網(wǎng)站捆綁,即租戶選擇了建立教育網(wǎng)站,必定有郵件服務(wù);

    3)租戶建立音樂網(wǎng)站不可選擇郵件服務(wù);

    4)只有教育網(wǎng)站租戶可以建立子賬戶。

    在添加約束關(guān)系后,設(shè)定系統(tǒng)新增功能可以建立天文、醫(yī)學(xué)兩種網(wǎng)站,新增個性化功能可以數(shù)據(jù)備份、在線數(shù)據(jù)處理兩種功能。

    4.2 測試用例生成

    依據(jù)功能模型,在考慮參數(shù)之間的約束關(guān)系后,再依據(jù)等價(jià)類、邊界值對輸入?yún)?shù)進(jìn)行劃分,生成滿足約束和不滿足約束兩類測試數(shù)據(jù),在本實(shí)驗(yàn)中,其約束關(guān)系1)為單參數(shù)約束條件,約束關(guān)系2)、3)、4)為多參數(shù)約束條件中的簡單約束條件。

    在系統(tǒng)新增功能前,初步生成測試用例個數(shù)為i×j×k,在本實(shí)驗(yàn)中初步生成用例個數(shù)為個4×4×5,即80個;再考慮約束關(guān)系:

    不滿足約束關(guān)系1)用例數(shù)為2×4×4,即32個;

    不滿足約束關(guān)系2)的用例數(shù)為4×1×4,即16個;

    不滿足約束關(guān)系3)的用例數(shù)為 4×1×1,即4個;

    不滿足約束關(guān)系4)的用例數(shù)為4×3×1,即12個;

    同時(shí)不滿足約束關(guān)系1)、2)、3)、4)的有 32+2+2+6,即42個;

    剩下38個即為滿足系統(tǒng)定制功能說明書的測試用例。

    在系統(tǒng)新增功能以及新增用戶后,同樣依據(jù)該定制功能模型生成新增加的測試用例,過程同上。最后,通過不滿足約束關(guān)系和滿足約束關(guān)系兩種策略對參數(shù)進(jìn)行設(shè)置,生成測試用例進(jìn)行測試。

    4.3 實(shí)驗(yàn)分析

    本實(shí)驗(yàn)中,應(yīng)用定制功能模型到該MTA SaaS系統(tǒng),然后采用多約束策略生成測試用例。實(shí)驗(yàn)中,測試用例對定制功能各實(shí)現(xiàn)的覆蓋率達(dá)到100%,用例數(shù)總共80個,對持續(xù)更新狀態(tài)下的MTA SaaS系統(tǒng)而言,其測試有效性更強(qiáng)。

    對功能測試一般采用黑盒測試,黑盒測試一般有邊界值測試、等價(jià)類測試、基于決策表測試等方法。由于MTA SaaS系統(tǒng)具有持續(xù)更新的特點(diǎn),傳統(tǒng)的測試手段不完全適用于該系統(tǒng)的定制功能測試。

    在本實(shí)驗(yàn)中,對MTA SaaS系統(tǒng)的定制功能應(yīng)用該定制功能模型設(shè)計(jì)測試用例,由于模型中考慮了系統(tǒng)在不斷持續(xù)更新前后的定制功能的各種狀態(tài),因此依托于該模型設(shè)計(jì)的測試用例有效地包含了持續(xù)更新狀態(tài)下的定制功能的改變,能有效地對持續(xù)更新前后的定制功能的故障進(jìn)行測試,不僅克服了持續(xù)更新狀態(tài)下定制功能測試的問題,還從整體上提高了系統(tǒng)的穩(wěn)定性。

    從約束關(guān)系角度來看,生成的測試用例包含滿足約束和不滿足約束兩種測試用例。滿足約束關(guān)系的測試用例能有效地測試定制功能的實(shí)現(xiàn),不滿足約束關(guān)系的測試用例能有效地系統(tǒng)定制功能實(shí)現(xiàn)的完備性,避免因系統(tǒng)內(nèi)部參數(shù)設(shè)置區(qū)間不當(dāng)和客戶誤操作等多因素引起的故障。

    本實(shí)驗(yàn)的測試用例是基于每個租戶定制個性化功能時(shí)只能選擇一個個性化功能的前提下生成測試用例,而某些系統(tǒng)可以選擇多個個性化功能進(jìn)行定制,可以按照以下方式對定制功能模型進(jìn)行擴(kuò)充:

    設(shè)MTA SaaS系統(tǒng)具有定制功能,且定制時(shí)租戶可選擇不只一個個性化功能,MTA SaaS系統(tǒng)的定制功能模型可表示為 T= (ti,fj,sk1…sks),其中sk1…sks為一個或一個以上的個性化功能,該定制功能模型為(s+2)元組,其中s為租戶ti選擇的個性化功能的個數(shù),其他步驟可對應(yīng)改變,從而完成測試用例生成。

    5 結(jié)語

    本文針對多租戶軟件即服務(wù)系統(tǒng)持續(xù)更新狀態(tài)下的定制功能可靠性問題,提出了一種基于分類樹生成定制功能模型,依據(jù)功能模型采用多約束策略生成測試用例的方法。并用實(shí)例驗(yàn)證了該方法的可行性,分析了該方法實(shí)現(xiàn)的實(shí)際效果,驗(yàn)證了該方法產(chǎn)生測試用例能有效克服持續(xù)更新狀態(tài)下定制功能問題,并提高了系統(tǒng)的穩(wěn)定性,說明了該方法覆蓋率高、測試有效性強(qiáng)的優(yōu)點(diǎn)。以后還將針對測試效率的優(yōu)化和多租戶軟件即服務(wù)系統(tǒng)的自動化測試方面做進(jìn)一步研究。

    猜你喜歡
    租戶測試用例約束
    “碳中和”約束下的路徑選擇
    基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
    約束離散KP方程族的完全Virasoro對稱
    基于混合遺傳算法的回歸測試用例集最小化研究
    基于MVC模式的多租戶portlet應(yīng)用研究*
    基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
    適當(dāng)放手能讓孩子更好地自我約束
    人生十六七(2015年6期)2015-02-28 13:08:38
    租戶是大爺
    特別文摘(2014年17期)2014-09-18 01:31:21
    企業(yè)多租戶云存儲平臺的設(shè)計(jì)與實(shí)現(xiàn)
    SaaS模式下多租戶數(shù)據(jù)比較存儲模式研究
    靖西县| 潜江市| 富顺县| 斗六市| 龙江县| 长寿区| 菏泽市| 沙田区| 璧山县| 白水县| 崇左市| 上思县| 肇州县| 洛南县| 青阳县| 迁安市| 高雄市| 米易县| 溆浦县| 杭锦后旗| 抚松县| 洛川县| 西吉县| 怀集县| 从化市| 浦东新区| 分宜县| 水城县| 壤塘县| 衡阳市| 宿迁市| 余干县| 开阳县| 金溪县| 寿宁县| SHOW| 丘北县| 陵水| 顺平县| 胶南市| 湘潭县|