国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于組合測試模型的系統(tǒng)測試工具設計與實現(xiàn)

2019-06-12 06:53余童蘭張曌寰徐浩杰
科技視界 2019年9期
關(guān)鍵詞:測試工具測試用例用例

余童蘭 張曌寰 周 進 徐浩杰

(1.南華大學計算機學院,湖南 衡陽 421001;2.中國核動力研究設計院核反應堆系統(tǒng)設計技術(shù)重點實驗室,四川 成都 61004)

0 引言

近年來,軟件測試越來越受重視,隨著軟件自動化測試技術(shù)日漸成熟, 國內(nèi)軟件對測試的要求也在逐漸提高, 軟件質(zhì)量和測試效率提升成為軟件工程領(lǐng)域一個重要的課題[1];另一方面組合測試模型等可以帶來可觀測試效率提升的新興軟件測試理論在實際測試工具中的應用還十分有限[2]。

隨著核電國產(chǎn)化的不斷發(fā)展,核電廠核反應堆的安全問題已經(jīng)引起業(yè)內(nèi)人士的廣泛關(guān)注。 反應堆保護系統(tǒng)(Reactor Protection System, RPS)作為在核反應堆運行過程中對反應堆進行保護的第一道防線,也在不斷地研發(fā)和完善中。 我國首套自主核電軟件包和一體化軟件集成平臺(NESTOR)也以用戶界面友好、應用靈活性強、且具有很強的糾錯能力著稱。其開發(fā)的RPS 不僅能對運行中的常規(guī)異常監(jiān)測數(shù)據(jù)進行報警, 以燃料性能模塊為例,統(tǒng)計堆芯功率分布、 冷卻劑溫度分布等諸多參數(shù)的同時, 還能基于諸多參數(shù)換算出壁表面熱流密度等值,在可能帶來風險的操作進行前給出友好的預警和提示,為反應堆提供更加全面的保護[3-4]。

多維度、 嚴格的參數(shù)驗證算法也為其組成軟件的測試帶來了挑戰(zhàn)。 尤其是作為與人機交互驗證直接相關(guān)的系統(tǒng)測試, 不僅要求對照設計說明書進行常規(guī)功能性的系統(tǒng)測試, 還要求基于各種場景對輸入卡值進行必要的參數(shù)替換和用例演化, 以達到更高的測試可靠性和全面性。 數(shù)量較大的輸入卡參數(shù)也給其系統(tǒng)測試帶來了較大的工作量和較大的執(zhí)行難度, 現(xiàn)有的常用測試工具很難應對此種強度下的系統(tǒng)測試[5]。 于此同時, 近年來以組合測試為代表的測試理論研究日漸成熟。 組合測試是一種科學有效的軟件測試方法,該方法旨在通過一定算法用總體數(shù)量較少的測試用例有效地檢測和衡量軟件系統(tǒng)中各個因子以及因子間的相互作用對整個系統(tǒng)的影響[6]。

目前此類專用軟件的系統(tǒng)測試由于常見測試工具的兼容性問題, 多數(shù)系統(tǒng)測試用例執(zhí)行大量依賴于人工,測試人員的工作量大,而又效率低下。

結(jié)合上述現(xiàn)狀,迫切需要一種具有廣泛適用性,同時能合理高效輔助用例設計, 合理控制測試用例集大小, 且能高效復用執(zhí)行的系統(tǒng)測試工具。 設計和開發(fā)一個基于組合測試模型的系統(tǒng)測試工具有助于提高資源利用率,減少資源占用,縮短系統(tǒng)測試所用時間,使測試人員的注意力更多地集中到真正有效的軟件質(zhì)量管理上來

1 組合測試模型和系統(tǒng)測試概述

1.1 組合測試

它是一種科學有效的軟件測試方法, 該方法旨在通過一定算法用總體數(shù)量較少的測試用例有效地檢測和衡量軟件系統(tǒng)中各個因子以及因子間的相互作用對整個系統(tǒng)的影響[7]。 實踐證明組合測試相比傳統(tǒng)枚舉測試, 在消耗資源相對較少的前提下, 具有較高的錯誤檢測能力。

假設影響待測單元的因子共有n 個, 其因子集合為 F={f1,f2,…,fn},設 因 子 fi ∈F 經(jīng) 過 等 價 類 劃 分 等前期處理后包含 ai 個合法取值,即其因子取值的集合為Vi(1 ≤i ≤n),不妨設Vi={0,1,…,ai-1}。 稱一個n 元 組 t=(v1,v2,…,vn)(v1 ∈V1,v2 ∈V2,…,vn ∈Vn)為一條測試用例。 稱一個由多個類似 n 元組所構(gòu)成的集合T{t1,t2,…,tx}為待測單元的一個測試用例集。

組合測試研究的核心問題之一就是組合測試用例的生成問題, 即如何針對具體待測單元, 在滿足組合覆蓋指標的前提下, 如何生成規(guī)模盡可能小的測試用例集, 以便在保證在錯誤檢測能力達到要求的前提下, 盡可能有效地減少測試用例總數(shù), 進而降低測試成本[8]。

1.2 系統(tǒng)測試

它是對整個系統(tǒng)的一類測試,將硬件、軟件和操作人員看作一個有機整體, 檢驗其是否存在不符合系統(tǒng)說明書之處, 是否滿足用戶規(guī)定的需求。 此種測試可以發(fā)現(xiàn)系統(tǒng)分析和設計中的錯誤[9]。

對于經(jīng)過集成測試的軟件, 系統(tǒng)測試主要包括功能測試和健壯性測試兩大類。 功能測試主要測試軟件系統(tǒng)的功能是否正確, 是否滿足需求說明書的要求。正確性是軟件最重要的質(zhì)量因素, 因此功能測試在系統(tǒng)測試中必不可少。 健壯性測試主要測試軟件系統(tǒng)在異常情況下能否正常運行的能力。 健壯性有容錯能力和恢復能力兩層含義。 典型的健壯性測試包含壓力測試、恢復測試、安全測試、等幾類。 壓力測試是測試軟件系統(tǒng)在正常數(shù)據(jù)量以及高負荷等情況下是否還能正常地工作,而不產(chǎn)生嚴重、非預期的錯誤。 恢復測試主要關(guān)注可能導致軟件運行失敗的各種情況, 并驗證其恢復過程能否正確執(zhí)行, 能否在規(guī)定時間內(nèi)被更正,在特殊條件下, 系統(tǒng)也應該具備容錯能力。 安全測試是測試軟件系統(tǒng)安全措施是否完善, 能不能保證軟件系統(tǒng)不受非法侵入影響[10]。

2 基于組合測試模型的系統(tǒng)測試工具設計

根據(jù)系統(tǒng)測試需求, 分析系統(tǒng)測試工具功能需求劃分為如下幾個部分:總控模塊、系統(tǒng)通信模塊、初始化模塊、環(huán)境描述與部署模塊、用例生成模塊、用例衍生模塊、用例執(zhí)行模塊、報告生成模塊、驗證模塊。 整個系統(tǒng)模塊劃分如下圖1 所示

圖1 系統(tǒng)測試工具的功能需求劃分

結(jié)合需求分析與工具開發(fā)環(huán)境現(xiàn)狀, 基于組合測試理論的系統(tǒng)測試工具的總體設計主要分為用例管理、用例生成、用例衍生和用例執(zhí)行四大模塊。

2.1 用例管理模塊

啟動管理器:作為整個測試工具的引導,處理各個執(zhí)行參數(shù),并于用戶直接交互。

用例目錄初始化功能: 按照用戶的參數(shù)選擇將所選目錄格式化為對應用例模版, 方便后續(xù)的用例生成, 被初始化的各個目錄間錄制環(huán)境相互獨立, 互不影響。

數(shù)據(jù)字典: 包含整個工具的語言文件存儲和參數(shù)存儲等。

用例模版:主要包含處理用戶操作的各個操作類。

2.2 用例生成模塊

執(zhí)行記錄捕獲功能: 監(jiān)聽并捕獲待測系統(tǒng)執(zhí)行和用戶對待測系統(tǒng)的各種操作、 被操作的節(jié)點信息、以及被操作對象的狀態(tài),并記錄至預生成用例。

執(zhí)行記錄定制功能: 支持用戶在操作被測系統(tǒng)過程中添加、 修改自定義節(jié)點信息和增加斷言信息,并追加至預生成用例。

執(zhí)行記錄校驗功能: 在用戶操作被測系統(tǒng)和定制用例的過程中, 對預生成用例進行實時執(zhí)行和狀態(tài)校驗。 用以保證捕獲和定制所生成用例的完整性和可用性。

生成測試腳本功能:將測試用例封裝成測試腳本。包含完整用例信息和斷言狀態(tài)。

2.3 用例衍生模塊

用例節(jié)點拆解功能: 將基礎測試用例拆分成各種類型節(jié)點和對應節(jié)點值列表,便于衍生。

生成衍生節(jié)點列表功能: 利用組合測試算法對節(jié)點列表進行重組,生產(chǎn)衍生節(jié)點列表。

生成衍生用例功能: 將組合測試算法所得的每組節(jié)點值封裝至基礎測試用例,存儲至對應用例組。

2.4 用例執(zhí)行模塊

執(zhí)行環(huán)境搭建功能: 根據(jù)用戶選擇的參數(shù)搭建對應用例執(zhí)行環(huán)境。

測試用例執(zhí)行功能: 根據(jù)用戶選擇在指定環(huán)境執(zhí)行單個、部分組、全部測試用例,并生成執(zhí)行日志。 為保證執(zhí)行效率,需要具有并發(fā)執(zhí)行。

測試報告生成功能: 根據(jù)執(zhí)行日志情況生成測試報告。 包含詳細的節(jié)點執(zhí)行信息和完整清晰的斷言結(jié)果。

3 基于組合測試模型的系統(tǒng)測試工具運行實例

3.1 實驗步驟

首先輸入測試腳本名開始用例錄制, 在錄制過程中可根據(jù)需要, 使用UI Recorder for Chrome 插件對用例進行定制。 第二,完成用例錄制后,執(zhí)行用例節(jié)點拆解。 并根據(jù)測試需求對輸入卡列表進行擴增直到完成測試用例集生成。 第三步,執(zhí)行用例衍生。 最后進行測試用例執(zhí)行環(huán)境搭建,獲取測試報告。

3.2 測試結(jié)果

如下圖4.2 所示, 對某私有云測試模塊功能測試共生成4 個手工測試用例,40 個衍生測試用例, 覆蓋率100%。 單用例一次執(zhí)行通過率100%, 用例可用性100%

同比之下, 現(xiàn)有系統(tǒng)測試工具, 以使用最廣泛的Selenium Recorder 為例,為達到同樣的覆蓋率,共需手工錄制40 以上個測試用例工作量對比懸殊;為達到同樣效率, 整體測試用例設計需要進行嚴密排布, 根據(jù)經(jīng)驗統(tǒng)計,10 左右量級的并行事件單憑肉體處理就已經(jīng)十分極限; 在此基礎上額外借助輔助排布工具,又會同時引入附加時間成本和誤差; 除此之外, 手工用例的復核和復用又是一項艱巨工程。 反觀在Puirecorder工具方案中, 測試人員的注意力僅需集中于基礎的、功能性的用例設計, 以及用例演化的數(shù)量級控制上,用例的復核僅需對基礎用例負責, 基礎用例和衍生用例也由嚴謹組的邏輯和組合保證其高可用性。 整體用例的高覆蓋率對健壯性測試也有積極意義。

4 結(jié)束語

本文在組合測試模型的基礎上, 通過功能測試衍生性能測試, 通過性能測試強化健壯性測試, 進而通過三者的互相增進,回到提供整體系統(tǒng)測試中來。

最 終 實 現(xiàn) 的 測 試 工 具 Puirecorder, 對 windows、macos、類unix 系統(tǒng)具有普遍適配性,用例錄制易用、高效, 對測試用例集的合理設置和生成具有指導能力,用例執(zhí)行環(huán)境包含多個通用平臺, 生成的測試報告包含多種常用格式, 內(nèi)容詳細易用, 能滿足系統(tǒng)測試中的大部分需求。

使用此類測試工具, 能使得測試人員把測試精力真正集中到系統(tǒng)測試資源的合理布置上來, 減少了手工測試的消耗以及一些不必要的簡單重復勞動消耗。

結(jié)合這些成果和優(yōu)點, 可以證明組合測試模型在系統(tǒng)測試中的應用是合理、 可行的。 不同領(lǐng)域測試工具和算法的交叉組合與合理利用, 對自動化測試發(fā)展有著相當大的意義。 課題和工具還有待進一步完善,自動化測試的不斷發(fā)展也必將為軟件工程領(lǐng)域的整體發(fā)展注入更多的新鮮血液。

猜你喜歡
測試工具測試用例用例
UML用例間包含關(guān)系與泛化關(guān)系的比較與分析
UML用例模型中依賴關(guān)系的比較與分析
基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
聯(lián)鎖軟件詳細設計的測試需求分析和用例編寫
Http并發(fā)連接測試工具
從出土文獻用例看王氏父子校讀古書的得失
基于混合遺傳算法的回歸測試用例集最小化研究
手車式真空斷路器回路電阻測試電流線接頭研究
福祿克推出先進的連接式測試工具系統(tǒng)
基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)