專利名稱:一種針對仿真系統(tǒng)的主動被動混合測試方法
技術領域:
本發(fā)明屬于軟件測試領域,具體涉及一種軟件被動測試方法。
背景技術:
對于一個工業(yè)生產在線仿真系統(tǒng)進行測試時,測試人員設計了合理的測試用例,要把仿真軟件的運行數(shù)據(jù)和現(xiàn)場真實數(shù)據(jù)進行比對,但各實際生產裝置的操作參數(shù)往往是不允許因為要測試而調節(jié),用戶要求不能影響生產,更怕出風險,無法根據(jù)主動測試用例設計的輸入數(shù)據(jù)進行數(shù)據(jù)比對,所以主動測試方法有時難以實施。近幾年國內外有關軟件被動測試的成果較少,有實踐價值的研究進展艱難緩慢。類比概括歸納一下已有成果被動在線監(jiān)測,可向前、向后根據(jù)軌跡來標示錯誤;在線被動 測試中觀察者放置最少的解決方案;用被動測試收集啟發(fā)式信息,然后將這些信息指導后續(xù)的主動測試等。但是這些文獻成果中的實踐問題也比較多,比如
(1)被動測試的目標難以主動控制;
(2)被動測試的輸入數(shù)據(jù)依賴現(xiàn)場實際生產的真實數(shù)據(jù),這些數(shù)據(jù)對于測試來講可能不是需要的或是不重要的,而需要的數(shù)據(jù)出現(xiàn)的時間可能很短、次數(shù)很少;
(3)在線獲取的真實數(shù)據(jù)常常是前后重復性“相同”的,這些數(shù)據(jù)浪費了寶貴的被動測試實施時間,嚴重影響了測試效率;
(4)被動測試的測試數(shù)據(jù)的充分性問題普遍較大;
(5)普通的被動測試不設計測試用例,先進的測試方法難以融入。
發(fā)明內容
本發(fā)明要解決的技術問題是被動測試方法的測試目標難以主動控制、被動機制下獲取的測試數(shù)據(jù)實用性和充分性等較低,提供一種提高了測試數(shù)據(jù)的充分性、減少了重復數(shù)據(jù)的針對仿真系統(tǒng)的主動被動混合測試方法。本發(fā)明的技術方案是以下述方式實現(xiàn)的一種針對仿真系統(tǒng)的主動被動混合測試方法,按照下述步驟進行
(1)選擇測試需求項;
(2)建立“測試準備數(shù)據(jù)庫”;
(3)設計測試用例,提出輸入數(shù)據(jù)的條件范圍;
(4)搜索“測試準備數(shù)據(jù)庫”,從中找出符合條件范圍的輸入數(shù)據(jù);
(5)從步驟(4)得到的數(shù)據(jù)中獲取測試用例的期望輸出數(shù)據(jù)或測試通過標準;
(6)若“測試準備數(shù)據(jù)庫”中沒有符合要求的數(shù)據(jù),調整測試方法或者擴大數(shù)據(jù)條件,再次搜索“測試準備數(shù)據(jù)庫”;
(7)若經過步驟(6)之后,“測試數(shù)據(jù)庫”中沒有符合要求的數(shù)據(jù),且不能調整搜索條件,則對欠缺數(shù)據(jù)再進行針對性的數(shù)據(jù)挖掘;將新挖掘的數(shù)據(jù)添加到“測試準備數(shù)據(jù)庫”中,再重復步驟(3)。
本發(fā)明包括下述過程
(I)對用戶歷史業(yè)務進行數(shù)據(jù)挖掘并建立測試準備數(shù)據(jù)庫的過程 建立被動機制,完成實際生產數(shù)據(jù)獲取軟件的開發(fā);
跟蹤記錄生產數(shù)據(jù);
根據(jù)確定的測試目標范圍,修改數(shù)據(jù)獲取程序;
在被動機制下跟蹤記錄實際系統(tǒng)生產歷史數(shù)據(jù);
處理實際生產歷史數(shù)據(jù)庫,得到測試準備數(shù)據(jù)庫。(2)測試的組織與實施過程 確定測試目標范圍;· 制定測試計劃;
設計主動測試用例;
設計被動測試用例、設計主動被動混合測試用例;
測試實施;
完成測試結果報告;
依據(jù)仿真精度方面的bug,修改仿真數(shù)學模型;
當項目狀態(tài)滿足終止條件時,結束項目。本發(fā)明建立測試數(shù)據(jù)獲取的被動機制,充分使用長期真實系統(tǒng)歷史數(shù)據(jù),相比普通被動測試大大提高了測試數(shù)據(jù)的充分性;減少了重復數(shù)據(jù)等的使用,有效增加了測試數(shù)據(jù)的實用性;減少了被動測試實施成本及時間。按合理的主動測試方法設計測試用例,但其中輸入數(shù)據(jù)只提出條件范圍;對用于測試的實際生產參數(shù)歷史數(shù)據(jù)庫中數(shù)據(jù)進行挖掘,從中搜索出符合條件范圍的歷史數(shù)據(jù),作為測試用例的測試輸入數(shù)據(jù)及對應的期望輸出結果O
發(fā)明內容
如圖I所示,一種針對仿真系統(tǒng)的主動被動混合測試方法,是按照下述步驟進行
(1)選擇測試需求項,明確測試需求細節(jié)及測試通過標準;
(2)基于測試需求對用戶歷史業(yè)務進行數(shù)據(jù)挖掘,建立“測試準備數(shù)據(jù)庫”,測試準備數(shù)據(jù)庫本質上是用于測試的實際生產參數(shù)歷史數(shù)據(jù)庫;
(3)對于每一項測試需求,按照合理的主動測試方法設計測試用例,但其中輸入數(shù)據(jù)只提出條件范圍,不設計具體輸入數(shù)據(jù);
(4)搜索“測試準備數(shù)據(jù)庫”,從中找出符合條件范圍的數(shù)據(jù),作為測試用例的測試輸入數(shù)據(jù);
(5)從步驟(4)得到的相關數(shù)據(jù)中獲取測試用例的期望輸出數(shù)據(jù)或測試通過標準;
(6)若“測試準備數(shù)據(jù)庫”中沒有符合要求的數(shù)據(jù),調整測試方法或者擴大數(shù)據(jù)條件范圍,再次搜索“測試準備數(shù)據(jù)庫”;
(7)若經過步驟(6)之后,“測試數(shù)據(jù)庫”中仍沒有符合要求的數(shù)據(jù),且不能調整搜索條件,則對欠缺數(shù)據(jù)再進行針對性的數(shù)據(jù)挖掘;將新挖掘的數(shù)據(jù)添加到“測試準備數(shù)據(jù)庫”中,再重復步驟(3)。如圖2所示,本發(fā)明的方法在具體實施時包括下述三個過程(I)開發(fā)仿真軟件,采用瀑布模型的過程
所述瀑布模型包括四個活動活動I :需求分析;活動2 :總體設計;活動3 :詳細設計;活動4:編碼。(2)對用戶歷史業(yè)務進行數(shù)據(jù)挖掘并建立測試準備數(shù)據(jù)庫的過程
活動10 :建立被動機制,完成實際生產數(shù)據(jù)獲取軟件的開發(fā);在項目啟動后,應盡早完成被動機制(只在線接受共享實際生產數(shù)據(jù)、不干擾生產進行)下獲取實際生產參數(shù)歷史數(shù)據(jù)的程序及相關硬件配置;
活動11 :跟蹤記錄生產數(shù)據(jù),剛開始獲取的數(shù)據(jù)要盡量全面,寧可多余也不要遺漏;活動12 :根據(jù)確定的測試目標范圍,修改數(shù)據(jù)獲取程序,去掉無關的數(shù)據(jù)項,以減少系統(tǒng)負荷壓力;
活動13 :在被動機制下跟蹤記錄實際系統(tǒng)生產歷史數(shù)據(jù),不管是正常工況、事故狀態(tài)·或是開工的過程中,要盡量不間斷;
活動14 :處理實際生產歷史數(shù)據(jù)庫,原始的實際生產參數(shù)歷史數(shù)據(jù)庫在用于測試前,需要濾除失真干擾數(shù)據(jù)、濾除“重復”數(shù)據(jù)、數(shù)據(jù)分類、數(shù)據(jù)格式轉換,最后得到測試準備數(shù)據(jù)庫(也就是用于測試的實際生產參數(shù)歷史數(shù)據(jù)庫)。(3)測試的組織與實施過程
活動5 :確定測試目標范圍;
活動6 :制定測試計劃;
活動7 :設計主動測試用例;
活動8 :設計被動測試用例、設計主動被動混合測試用例;前置任務包括完成測試計劃及具備數(shù)據(jù)量充分的實際生產參數(shù)歷史數(shù)據(jù)庫;對于每一項測試需求,先明確本測試需求項對應的測試通過標準,按合理的測試方法設計測試用例,但其中輸入數(shù)據(jù)只提出條件范圍;對測試準備數(shù)據(jù)庫中數(shù)據(jù)進行搜索,從中找出符合條件范圍的數(shù)據(jù),作為測試用例的測試輸入數(shù)據(jù);并從對應的數(shù)據(jù)中獲取測試用例的期望輸出數(shù)據(jù)或測試通過標準;如果測試準備數(shù)據(jù)庫中沒有符合要求的數(shù)據(jù),對測試方法調整或者數(shù)據(jù)條件范圍盡量擴寬,再去搜索測試準備數(shù)據(jù)庫;如果測試準備數(shù)據(jù)庫中仍然沒有符合要求的數(shù)據(jù),需要對欠缺數(shù)據(jù)再進行針對性的數(shù)據(jù)挖掘;
活動9 :測試實施;
活動15 :經過對測試記錄分析處理后完成測試結果報告;
活動16 :依據(jù)仿真精度方面的bug (缺陷),修改仿真數(shù)學模型;
活動17 :當項目狀態(tài)滿足終止條件時,結束項目。
圖I是本發(fā)明測試用例的設計流程圖。圖2是本發(fā)明測試過程的PDM網絡圖。
具體實施例方式如圖I所示,一種針對仿真系統(tǒng)的主動被動混合測試方法,是按照下述步驟進行(1)選擇測試需求項,明確測試需求細節(jié)及測試通過標準;
(2)基于測試需求對用戶歷史業(yè)務進行數(shù)據(jù)挖掘,建立“測試準備數(shù)據(jù)庫”,測試準備數(shù)據(jù)庫本質上是用于測試的實際生產參數(shù)歷史數(shù)據(jù)庫;
(3)對于每一項測試需求,按照合理的主動測試方法設計測試用例,但其中輸入數(shù)據(jù)只提出條件范圍,不設計具體輸入數(shù)據(jù);
(4)搜索“測試準備數(shù)據(jù)庫”,從中找出符合條件范圍的數(shù)據(jù),作為測試用例的測試輸入數(shù)據(jù); (5)從步驟(4)得到的相關數(shù)據(jù)中獲取測試用例的期望輸出數(shù)據(jù)或測試通過標準;
(6)若“測試準備數(shù)據(jù)庫”中沒有符合要求的數(shù)據(jù),調整測試方法或者擴大數(shù)據(jù)條件范圍,再次搜索“測試準備數(shù)據(jù)庫”;
(7)若經過步驟(6)之后,“測試數(shù)據(jù)庫”中仍沒有符合要求的數(shù)據(jù),且不能調整搜索條件,則對欠缺數(shù)據(jù)再進行針對性的數(shù)據(jù)挖掘;將新挖掘的數(shù)據(jù)添加到“測試準備數(shù)據(jù)庫”中,再重復步驟(3)。如圖2所示,本發(fā)明的方法在具體實施時包括下述三個過程
(O開發(fā)仿真軟件,采用瀑布模型的過程
所述瀑布模型包括四個活動活動I :需求分析;活動2 :總體設計;活動3 :詳細設計;活動4:編碼。(2)對用戶歷史業(yè)務進行數(shù)據(jù)挖掘并建立測試準備數(shù)據(jù)庫的過程
活動10 :建立被動機制,完成實際生產數(shù)據(jù)獲取軟件的開發(fā);在項目啟動后,應盡早完成被動機制(只在線接受共享實際生產數(shù)據(jù)、不干擾生產進行)下獲取實際生產參數(shù)歷史數(shù)據(jù)的程序及相關硬件配置;
活動11 :跟蹤記錄生產數(shù)據(jù),剛開始獲取的數(shù)據(jù)要盡量全面,寧可多余也不要遺漏;活動12 :根據(jù)確定的測試目標范圍,修改數(shù)據(jù)獲取程序,去掉無關的數(shù)據(jù)項,以減少系統(tǒng)負荷壓力;
活動13 :在被動機制下跟蹤記錄實際系統(tǒng)生產歷史數(shù)據(jù),不管是正常工況、事故狀態(tài)或是開工的過程中,要盡量不間斷;
活動14 :處理實際生產歷史數(shù)據(jù)庫,原始的實際生產參數(shù)歷史數(shù)據(jù)庫在用于測試前,需要濾除失真干擾數(shù)據(jù)、濾除“重復”數(shù)據(jù)、數(shù)據(jù)分類、數(shù)據(jù)格式轉換,最后得到測試準備數(shù)據(jù)庫(也就是用于測試的實際生產參數(shù)歷史數(shù)據(jù)庫)。(3)測試的組織與實施過程
活動5 :確定測試目標范圍;
活動6 :制定測試計劃;
活動7 :設計主動測試用例;
活動8 :設計被動測試用例、設計主動被動混合測試用例;前置任務包括完成測試計劃及具備數(shù)據(jù)量充分的實際生產參數(shù)歷史數(shù)據(jù)庫;對于每一項測試需求,先明確本測試需求項對應的測試通過標準,按合理的測試方法設計測試用例,但其中輸入數(shù)據(jù)只提出條件范圍;對測試準備數(shù)據(jù)庫中數(shù)據(jù)進行搜索,從中找出符合條件范圍的數(shù)據(jù),作為測試用例的測試輸入數(shù)據(jù);并從對應的數(shù)據(jù)中獲取測試用例的期望輸出數(shù)據(jù)或測試通過標準;如果測試準備數(shù)據(jù)庫中沒有符合要求的數(shù)據(jù),對測試方法調整或者數(shù)據(jù)條件范圍盡量擴寬,再去搜索測試準備數(shù)據(jù)庫;如果測試準備數(shù)據(jù)庫中仍然沒有符合要求的數(shù)據(jù),需要對欠缺數(shù)據(jù)再進行針對性的數(shù)據(jù)挖掘;
活動9 :測試實施;
活動15 :經過對測試記錄分析處理后完成測試結果報告;
活動16 :依據(jù)仿真精度 方面的bug (缺陷),修改仿真數(shù)學模型;
活動17 :當項目狀態(tài)滿足終止條件時,結束項目。
權利要求
1.一種針對仿真系統(tǒng)的主動被動混合測試方法,其特征在于按照下述步驟進行 (1)選擇測試需求項; (2)建立“測試準備數(shù)據(jù)庫”; (3)設計 測試用例,提出輸入數(shù)據(jù)的條件范圍; (4)捜索“測試準備數(shù)據(jù)庫”,從中找出符合條件范圍的輸入數(shù)據(jù); (5)從步驟(4)得到的數(shù)據(jù)中獲取測試用例的期望輸出數(shù)據(jù)或測試通過標準; (6)若“測試準備數(shù)據(jù)庫”中沒有符合要求的數(shù)據(jù),調整測試方法或者擴大數(shù)據(jù)條件,再次捜索“測試準備數(shù)據(jù)庫”; (7)若經過步驟(6)之后,“測試數(shù)據(jù)庫”中沒有符合要求的數(shù)據(jù),且不能調整搜索條件,則對欠缺數(shù)據(jù)再進行針對性的數(shù)據(jù)挖掘;將新挖掘的數(shù)據(jù)添加到“測試準備數(shù)據(jù)庫”中,再重復步驟(3)。
2.根據(jù)權利要求1所述的針對仿真系統(tǒng)的主動被動混合測試方法,其特征在于包括下述過程 (1)對用戶歷史業(yè)務進行數(shù)據(jù)挖掘并建立測試準備數(shù)據(jù)庫的過程 建立被動機制,完成實際生產數(shù)據(jù)獲取軟件的開發(fā); 跟蹤記錄生產數(shù)據(jù); 根據(jù)確定的測試目標范圍,修改數(shù)據(jù)獲取程序; 在被動機制下跟蹤記錄實際系統(tǒng)生產歷史數(shù)據(jù); 處理實際生產歷史數(shù)據(jù)庫,得到測試準備數(shù)據(jù)庫; (2)測試的組織與實施過程 確定測試目標范圍; 制定測試計劃; 設計主動測試用例; 設計被動測試用例、設計主動被動混合測試用例; 測試實施; 完成測試結果報告; 依據(jù)仿真精度方面的bug,修改仿真數(shù)學模型; 當項目狀態(tài)滿足終止條件時,結束項目。
全文摘要
本發(fā)明公開一種針對仿真系統(tǒng)的主動被動混合測試方法,是按照下述步驟進行(1)選擇測試需求項;(2)建立“測試準備數(shù)據(jù)庫”;(3)設計測試用例;(4)搜索“測試準備數(shù)據(jù)庫”;(5)從步驟(4)得到的數(shù)據(jù)中獲取測試用例的期望輸出數(shù)據(jù)或測試通過標準;(6)若“測試準備數(shù)據(jù)庫”中沒有符合要求的數(shù)據(jù),調整測試方法或者擴大數(shù)據(jù)條件,再次搜索“測試準備數(shù)據(jù)庫”;(7)若經過步驟(6)之后,“測試數(shù)據(jù)庫”中沒有符合要求的數(shù)據(jù),且不能調整搜索條件,則對欠缺數(shù)據(jù)再進行針對性的數(shù)據(jù)挖掘。本發(fā)明提高了測試數(shù)據(jù)的充分性;減少了重復數(shù)據(jù)等的使用,有效增加了測試數(shù)據(jù)的實用性;減少了被動測試實施成本及時間。
文檔編號G06F11/36GK102955738SQ20121045319
公開日2013年3月6日 申請日期2012年11月13日 優(yōu)先權日2012年11月13日
發(fā)明者趙一丁, 張西廣, 李志民, 劉鳳華, 鄭秋生, 苗鳳君 申請人:中原工學院