1.一種測試用例的生成方法,其特征在于,所述方法包括:
基于網(wǎng)頁繪制業(yè)務(wù)流程圖;
根據(jù)所述業(yè)務(wù)流程圖及預(yù)設(shè)算法生成測試用例。
2.根據(jù)權(quán)利要求1所述的測試用例生成方法,其特征在于,所述根據(jù)所述業(yè)務(wù)流程圖及預(yù)設(shè)算法生成測試用例,進(jìn)一步包括:
對所述業(yè)務(wù)流程圖進(jìn)行數(shù)據(jù)化;計算所有路徑,生成測試用例路徑;對所述測試用例路徑添加測試用例編號和名稱;輸出并保存完整的測試用例。
3.根據(jù)權(quán)利要求1或2所述的測試用例生成方法,其特征在于,所述基于網(wǎng)頁繪制業(yè)務(wù)流程圖,進(jìn)一步包括:
通過頁面組件的拖拽和/或重繪,繪制業(yè)務(wù)流程圖。
4.根據(jù)權(quán)利要求3所述的測試用例生成方法,其特征在于,所述頁面組件采用基于可縮放矢量圖形SVG和層疊樣式表CSS定義圖形樣式;所述頁面組件的拖拽、重繪采用JavaScript實現(xiàn);所述保存完整的測試用例采用基于JavaScript對象表示法JSON的數(shù)據(jù)交換格式實現(xiàn)。
5.根據(jù)權(quán)利要求2所述的測試用例生成方法,其特征在于,所述方法還包括:
所述基于網(wǎng)頁繪制業(yè)務(wù)流程圖及根據(jù)所述業(yè)務(wù)流程圖及預(yù)設(shè)算法生成測試用例直接在瀏覽器中運行或集成在測試用例管理系統(tǒng)中運行;
根據(jù)生成的所述測試用例生成測試用例信息,將所述測試用例信息保存為文檔或集成到測試用例管理系統(tǒng)中。
6.根據(jù)權(quán)利要求2所述的測試用例生成方法,其特征在于,
所述對所述業(yè)務(wù)流程圖進(jìn)行數(shù)據(jù)化,進(jìn)一步為:根據(jù)所述業(yè)務(wù)流程圖生成序列化的節(jié)點和連線數(shù)據(jù),構(gòu)建節(jié)點數(shù)組、連線數(shù)組、棧數(shù)組,并初始化節(jié)點數(shù)組的節(jié)點狀態(tài)與連線數(shù)組的連線狀態(tài)為0,初始化棧數(shù)組為空;
所述深度優(yōu)先算法計算所有路徑,進(jìn)一步包括:
步驟S302,在所述節(jié)點數(shù)組中尋找開始節(jié)點,并將所述開始節(jié)點加入棧數(shù)組;
步驟S303,判斷所述棧數(shù)組是否有節(jié)點,當(dāng)所述棧數(shù)組有節(jié)點時,執(zhí)行步驟S304;當(dāng)所述棧數(shù)組沒有節(jié)點時,轉(zhuǎn)入步驟S311;
步驟S304,判斷所述棧數(shù)組中的節(jié)點是否為終點,當(dāng)節(jié)點是終點節(jié)點時,轉(zhuǎn)入步驟S310;當(dāng)節(jié)點不是終點節(jié)點時,執(zhí)行步驟S305;
步驟S305,判斷是否有與所述棧數(shù)組中的節(jié)點連接的連線,當(dāng)沒有與所述節(jié)點連接的連線時,轉(zhuǎn)入步驟S310;當(dāng)有連線時,執(zhí)行步驟S306;
步驟S306,將所述連線置為當(dāng)前連線,將所述連線另一節(jié)點置為當(dāng)前節(jié)點,獲取所述當(dāng)前連線的狀態(tài)和所述當(dāng)前節(jié)點的狀態(tài);
步驟S307,判斷所述當(dāng)前連線的狀態(tài)和所述當(dāng)前節(jié)點的狀態(tài),當(dāng)連線狀態(tài)為0和節(jié)點狀態(tài)為0、或連線狀態(tài)為0和節(jié)點狀態(tài)為1、或連線狀態(tài)為1和節(jié)點狀態(tài)為1時,執(zhí)行步驟S308,否則,轉(zhuǎn)入步驟S310;
步驟S308,將所述當(dāng)前節(jié)點加入棧數(shù)組,并將所述節(jié)點數(shù)組中當(dāng)前節(jié)點的狀態(tài)加1,所述連線數(shù)組中當(dāng)前連線的狀態(tài)加1;
步驟S309,保存所述節(jié)點的路徑;
步驟S310,棧數(shù)組刪除當(dāng)前節(jié)點,節(jié)點數(shù)組和連線數(shù)組刪除回退所述節(jié)點狀態(tài);
步驟S311,保存所有路徑,結(jié)束路徑計算。
7.一種測試用例的生成系統(tǒng),其特征在于,所述系統(tǒng)包括:圖像繪制模塊、測試用例生成模塊;其中,
所述圖像繪制模塊用于基于網(wǎng)頁繪制業(yè)務(wù)流程圖;
所述測試用例生成模塊用于根據(jù)所述業(yè)務(wù)流程圖及預(yù)設(shè)算法生成測試用例。
8.根據(jù)權(quán)利要求7所述的測試用例生成系統(tǒng),其特征在于,所述測試用例生成模塊進(jìn)一步包括:數(shù)據(jù)化子模塊、路徑計算子模塊、整合子模塊、保存子模塊;其中,
所述數(shù)據(jù)化子模塊用于對所述業(yè)務(wù)流程圖進(jìn)行數(shù)據(jù)化;
所述路徑計算子模塊用于計算所有路徑,生成測試用例路徑;
所述整合子模塊用于對所述測試用例路徑添加測試用例編號和名稱;
所述保存子模塊用于輸出并保存完整的測試用例。
9.根據(jù)權(quán)利要求7或8所述的測試用例生成系統(tǒng),其特征在于,所述圖像繪制模塊進(jìn)一步用于通過頁面組件的拖拽和/或重繪,繪制業(yè)務(wù)流程圖。
10.根據(jù)權(quán)利要求8所述的測試用例生成系統(tǒng),其特征在于,
所述數(shù)據(jù)化子模塊,進(jìn)一步用于:根據(jù)所述業(yè)務(wù)流程圖生成序列化的節(jié)點和連線數(shù)據(jù),構(gòu)建節(jié)點數(shù)組、連線數(shù)組、棧數(shù)組,并初始化節(jié)點數(shù)組的節(jié)點狀態(tài)與連線數(shù)組的連線狀態(tài)為0,初始化棧數(shù)組為空;所述路徑計算子模塊,進(jìn)一步用于執(zhí)行以下步驟:
步驟S302,在所述節(jié)點數(shù)組中尋找開始節(jié)點,并將所述開始節(jié)點加入棧數(shù)組;
步驟S303,判斷所述棧數(shù)組是否有節(jié)點,當(dāng)所述棧數(shù)組有節(jié)點時,執(zhí)行步驟S304;當(dāng)所述棧數(shù)組沒有節(jié)點時,轉(zhuǎn)入步驟S311;
步驟S304,判斷所述棧數(shù)組中的節(jié)點是否為終點,當(dāng)節(jié)點是終點節(jié)點時,轉(zhuǎn)入步驟S310;當(dāng)節(jié)點不是終點節(jié)點時,執(zhí)行步驟S305;
步驟S305,判斷是否有與所述棧數(shù)組中的節(jié)點連接的連線,當(dāng)沒有與所述節(jié)點連接的連線時,轉(zhuǎn)入步驟S310;當(dāng)有連線時,執(zhí)行步驟S306;
步驟S306,將所述連線置為當(dāng)前連線,將所述連線另一節(jié)點置為當(dāng)前節(jié)點,獲取所述當(dāng)前連線的狀態(tài)和所述當(dāng)前節(jié)點的狀態(tài);
步驟S307,判斷所述當(dāng)前連線的狀態(tài)和所述當(dāng)前節(jié)點的狀態(tài),當(dāng)連線狀態(tài)為0和節(jié)點狀態(tài)為0、或連線狀態(tài)為0和節(jié)點狀態(tài)為1、或連線狀態(tài)為1和節(jié)點狀態(tài)為1時,執(zhí)行步驟S308,否則,轉(zhuǎn)入步驟S310;
步驟S308,將所述當(dāng)前節(jié)點加入棧數(shù)組,并將所述節(jié)點數(shù)組中當(dāng)前節(jié)點的狀態(tài)加1,所述連線數(shù)組中當(dāng)前連線的狀態(tài)加1;
步驟S309,保存所述節(jié)點的路徑;
步驟S310,棧數(shù)組刪除當(dāng)前節(jié)點,節(jié)點數(shù)組和連線數(shù)組刪除回退所述節(jié)點狀態(tài);
步驟S311,保存所有路徑,結(jié)束路徑計算。