亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        水利業(yè)務應用系統(tǒng)中軟件測試方法研究及應用

        2017-03-08 07:48:17戚榮志徐淑芳周思琪
        水利信息化 2017年1期
        關鍵詞:系統(tǒng)

        戚榮志,徐淑芳,曾 濤,周思琪

        (河海大學計算機與信息學院,江蘇 南京 211100)

        水利業(yè)務應用系統(tǒng)中軟件測試方法研究及應用

        戚榮志,徐淑芳,曾 濤,周思琪

        (河海大學計算機與信息學院,江蘇 南京 211100)

        軟件測試是一項重要的軟件確認活動,通過運行測試用例,旨在發(fā)現(xiàn)軟件中存在的錯誤,保證交付出高質量的軟件。為保證水利業(yè)務應用系統(tǒng)的質量,需要在建設過程中對系統(tǒng)進行充分的測試。研究測試用例的生成方法,包括邏輯覆蓋和基本路徑測試等白盒測試技術,以及等價劃分和邊界值分析等黑盒測試技術。選擇防汛信息查詢模塊,重點探討使用白盒和黑盒測試技術對該模塊進行測試用例的生成,再運行測試用例對系統(tǒng)進行測試。2種測試技術能夠有效地檢測出系統(tǒng)中存在的錯誤,使開發(fā)人員能夠及時修正錯誤。

        軟件測試;水利業(yè)務應用系統(tǒng);白盒測試;黑盒測試;測試用例生成

        0 引言

        國家防汛抗旱指揮系統(tǒng)二期工程的業(yè)務應用系統(tǒng)包括水雨情、防汛、抗旱等業(yè)務應用和綜合信息服務系統(tǒng)[1]。在國家防汛抗旱指揮系統(tǒng)一期工程建設成果的基礎上,業(yè)務應用系統(tǒng)以洪水預報、防洪調度、洪災評估、旱情監(jiān)視和分析、信息查詢與服務等功能模塊為依托,為防汛抗旱提供輔助決策支持。為了提高各業(yè)務應用系統(tǒng)的質量,需要在編程過程中及完成后,對系統(tǒng)進行充分的測試,在軟件提交給用戶之前發(fā)現(xiàn)并改正盡可能多的錯誤。本研究主要探討使用軟件測試技術對業(yè)務應用系統(tǒng)潛藏的錯誤進行檢測,保證系統(tǒng)的質量。

        1 軟件測試概述

        軟件測試是為了發(fā)現(xiàn)軟件中的錯誤,提高軟件質量而運行程序的過程[2],是軟件工程中質量保證過程的一項基本又極其重要的活動。在軟件開發(fā)過程中,軟件測試的工作量非常大,大概占整個軟件產品開發(fā)總成本的 30%~50%[3]。Meyers 給出了軟件測試的基本原則:測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程;一個好的測試方案具有較高的發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的可能性;一個成功的測試方案能夠發(fā)現(xiàn)至今為止尚未發(fā)現(xiàn)的錯誤[4]。因此,軟件測試是尋找軟件系統(tǒng)中錯誤的過程,該過程通常從單個功能模塊測試開始,并逐步過渡到系統(tǒng)級的測試,具體包括以下3個步驟:

        1)單元測試。單元測試是把每個功能模塊作為一個獨立的實體來測試,對每個模塊重要的執(zhí)行通路進行測試,利用測試發(fā)現(xiàn)封裝在模塊中的數(shù)據(jù)和處理邏輯錯誤。單元測試著重對模塊內部的處理邏輯和數(shù)據(jù)結構進行測試,因此,單元測試通常由開發(fā)人員完成,不同模塊的單元測試可以同時進行。

        2)集成測試。當完成單個模塊的測試后,需要將模塊組合在一起進行集成測試。集成測試的主要目標是發(fā)現(xiàn)模塊間接口的錯誤,著重檢測模塊的輸入輸出數(shù)據(jù)。集成測試主要有 2種方法,一種方法是非漸增式集成測試,先分別測試每個模塊,再把所有的模塊集成在一起作為一個整體進行測試;另一種方法是漸增式集成測試,把下一個要測試的模塊和已經測試好的模塊組集成起來進行測試,測試完后再將下一個要測試的模塊集成進來,如此遞增下去直到整個系統(tǒng)測試完成。集成測試通常由專業(yè)的測試人員完成。

        3)確認測試。確認測試把軟件系統(tǒng)作為一個整體進行測試,主要目標是驗證系統(tǒng)是否滿足用戶需求,包括功能和性能需求,因此,確認測試需要用戶積極參與。確認測試通常由第三方專業(yè)測試機構完成。

        在整個軟件測試過程中,設計測試用例是關鍵技術問題,好的測試用例對于檢測軟件中的錯誤,更好地完成測試工作至關重要。在學術研究和實際測試過程中,測試用例的生成依賴于測試方法的選擇,基本的測試方法包括白盒和黑盒測試[5-6]。

        2 軟件測試方法

        軟件測試方法通常有以下2種:1)如果知道系統(tǒng)的內部處理流程,通過測試可以檢驗該處理流程是否按照需求規(guī)格說明書的規(guī)定正常運行,該方法稱為白盒測試;2)如果不知道內部處理流程,只知道系統(tǒng)應該具有的功能,通過測試可以檢驗每個功能是否都能正常使用,該方法稱為黑盒測試[7-8]。在水利業(yè)務應用系統(tǒng)的建設過程中,需要聯(lián)合使用白盒和黑盒測試技術對系統(tǒng)進行充分的測試。

        表1 5種覆蓋標準

        程序模塊流程圖如圖1所示,其中 i,j,m 為整型循環(huán)變量,考慮圖1 中的程序模塊,除去開始和結束語句,共有 4 條語句,分別用 a,b,c,d 標識。針對 5種覆蓋標準設計的測試用例如表2所示。

        2.1.2 基本路徑測試

        使用基本路徑測試技術時,測試人員依據(jù)程序模塊的環(huán)形復雜度定義程序執(zhí)行路徑的基本集合[9],從該基本集合導出的測試用例集可以保證程序模塊中的每條語句至少執(zhí)行 1 次,而且每個條件在執(zhí)行時都將分別取真、假 2種值[7-8]。環(huán)形復雜度根據(jù)程序控制流的復雜程度定量度量程序的復雜程度。使用基本路徑測試技術設計測試用例的步驟如下:1)根據(jù)待測模塊的代碼或者程序流程圖畫出相應的流

        圖1 程序模塊流程圖

        2.1 白盒測試

        白盒測試稱為結構測試,用于對程序的邏輯結構進行檢查,從中生成測試用例。白盒測試通常用于單元測試過程,由開發(fā)人員執(zhí)行。開發(fā)人員把程序看成裝在一個透明的白盒子里,完全知道程序的處理流程。在水利業(yè)務應用系統(tǒng)各個功能模塊(如防汛、抗旱信息查詢模塊)開發(fā)完成后,應由相關的開發(fā)人員進行白盒測試。白盒測試按照程序內部的邏輯測試程序,通過有選擇地執(zhí)行程序中某些最有代表性的通路,代替窮舉測試,技術主要有邏輯覆蓋和基本路徑測試 2種。

        2.1.1 邏輯覆蓋

        邏輯覆蓋是對待測模塊中程序執(zhí)行通路進行測試的完整程度的描述,即開發(fā)人員設計測試用例,通過執(zhí)行這些測試用例,分析哪些程序通路被執(zhí)行,執(zhí)行的通路越多,說明該測試用例越能夠檢測出更多的錯誤。根據(jù)覆蓋源程序語句的詳盡程度,邏輯覆蓋包括語句、判定、條件、判定/條件、條件組合覆蓋等 5種不同的覆蓋標準,每種覆蓋標準的具體含義如表1所示。從表1 可以看出,從語句覆蓋到條件組合覆蓋,對源程序語句的覆蓋程度越來越強。圖[9];2)計算流圖的環(huán)形復雜度;3)確定獨立路徑的基本集合;4)設計可強制執(zhí)行每條獨立路徑的測試用例,在測試過程中,執(zhí)行每個測試用例并把實際輸出結果與預期結果相比較。

        2.2 黑盒測試

        黑盒測試稱為功能測試,是指不基于設計和代碼,而基于需求和功能的測試。測試目標與程序的內部結構完全無關,測試用例完全來源于軟件需求規(guī)格說明。測試人員把程序看成一個黑盒子,檢測程序接口能否接收輸入數(shù)據(jù)并產生正確的輸出數(shù)據(jù),檢測程序是否按照需求規(guī)格說明書的規(guī)定正常運行。黑盒測試主要有等價劃分和邊界值分析 2種方法。

        2.2.1 等價劃分

        等價劃分把程序的輸入域劃分成若干個數(shù)據(jù)類,每一類以一個代表性的測試數(shù)據(jù)進行測試,這個數(shù)據(jù)就等價于這一類中的其它數(shù)據(jù)。在使用等價劃分設計測試用例時,有以下4 條設計指南:

        1)如果規(guī)定了輸入值的范圍,則可劃分出 1個有效和 2個無效等價類。輸入值在此范圍內的為有效等價類,輸入值小于最小值或大于最大值的為無效等價類。

        2)如果輸入數(shù)據(jù)為一特定的數(shù)值,則可劃分出1個有效和 1個無效等價類。輸入值等于該數(shù)值的為有效等價類,輸入值不等于該數(shù)值的為無效等價類。

        3)如果規(guī)定了輸入數(shù)據(jù)的一組值,則可劃分出1個有效和 1個無效等價類。每個允許的輸入值為有效等價類,每個不允許的輸入值為無效等價類。

        4)如果輸入數(shù)據(jù)為布爾型的值,則可劃分出1個有效和 1個無效等價類。

        例如,某個數(shù)據(jù)庫軟件能夠處理 1~16 383 條數(shù)據(jù)記錄,按照等價劃分指南,可以設計出 3個等價類,測試用例如表3所示。

        2.2.2 邊界值分析

        程序的一些錯誤經常發(fā)生在輸入值范圍的邊界處,邊界值分析可以用來檢測該錯誤。在使用邊界值分析設計測試用例時,需要確定邊界情況,選取的測試數(shù)據(jù)應該剛好等于、小于和大于邊界值。如果規(guī)定了輸入值的范圍為(p,q),則選取剛剛小于、等于、大于 p,剛剛小于、等于、大于 q 等 6 條測試數(shù)據(jù)。對于 2.2.1 小節(jié)中的數(shù)據(jù)庫軟件測試實例,應用邊界值分析可以設計出 6 條測試用例,如表4所示。

        表3 等價類劃分測試用例

        表4 邊界值分析測試用例

        在對水利業(yè)務應用系統(tǒng)進行黑盒測試時,需要聯(lián)合使用等價劃分和邊界值分析 2種技術,先劃分等價類,設計測試用例;再選取等價類的邊界值,使用邊界值分析設計測試用例。

        3 軟件測試在水利業(yè)務應用系統(tǒng)的應用

        為了保證水利業(yè)務應用系統(tǒng)的質量,在建設過程中,軟件開發(fā)和測試人員聯(lián)合使用白盒和黑盒測試技術對系統(tǒng)進行充分的測試。水利業(yè)務應用系統(tǒng)的功能模塊數(shù)量眾多,限于篇幅,本研究選取防汛信息查詢模塊,介紹白盒和黑盒測試技術在該模塊測試過程中的應用。

        3.1 白盒測試

        防汛信息查詢模塊的一個核心功能為查詢雨量站的降雨信息,程序流程圖如圖2所示,其中station,city 和 county 為輸入的查詢條件,分別表示測站名稱、地市和區(qū)縣。

        圖2 查詢雨量站降雨信息的程序流程圖

        由于條件組合覆蓋是 5種覆蓋標準中覆蓋強度最高的標準,滿足條件組合覆蓋標準的測試數(shù)據(jù),也一定滿足其它 4種覆蓋標準,因此,這里只給出滿足條件組合覆蓋的測試用例,同時給出基本路徑測試的測試用例。

        表5 給出了條件組合覆蓋的測試用例,運行表中的 3 條測試用例,并與預期結果進行比較。測試結果表明,3 條測試用例中前 2 條測試用例都能執(zhí)行通過并與預期結果一致,第3 條測試用例執(zhí)行后不顯示任何結果信息,與預期結果不一致。測試人員將測試結果記錄下來,并由開發(fā)人員修改錯誤。

        表5 查詢雨量站降雨信息的測試用例

        根據(jù)基本路徑測試步驟,首先由圖2 畫出該模塊的流圖,如圖3所示。再根據(jù)環(huán)形復雜度計算公式 V(G)= E - N + 2[9]得到 V(G)= 10 - 8 + 2 = 4,式中: V(G)為流圖G 的環(huán)形復雜度;E 為流圖中的邊數(shù);N 為結點數(shù),因此,共有 4 條獨立路徑。

        表6 給出了 4 條獨立路徑對應的測試用例,運行表中的 4 條測試用例,并與預期結果進行比較。測試結果表明,4 條測試用例中,第1 條測試用例存在和表5 中第3 條測試用例相同的錯誤,其余測試用例都能執(zhí)行通過并與預期結果一致。

        3.2 黑盒測試

        圖3 查詢雨量站降雨信息的流圖

        防汛信息查詢模塊中需要輸入測站編碼,查詢測站的汛限水位。全國水文測站編碼標準[10]規(guī)定水文測站編碼采用 8 位字符串,前 3 位為0~9 的數(shù)字,表示流域水系碼,第4 位為0~9 的數(shù)字和大寫字母 A,表示站類碼,第5~8 位為0~9 的數(shù)字,表示測站序號。使用等價劃分和邊界值分析 2種技術對該功能模塊設計測試用例,結果如表7所示。

        表6 基本路徑測試用例

        表7 測站編碼輸入項黑盒測試用例

        運行表7 中的 11 條測試用例,并與預期結果進行比較。測試結果表明,第2~3,5~6 條測試用例執(zhí)行后,程序顯示無此測站,與預期結果不一致,是因為沒有使用 8 位數(shù)字串的邊界值對測站進行編碼,不屬于程序錯誤。其余 7 條測試用例的執(zhí)行結果與預期結果一致。

        4 結語

        研究水利業(yè)務應用系統(tǒng)的軟件測試方法,將白盒和黑盒測試技術應用于系統(tǒng)的研發(fā)過程中,在系統(tǒng)交付給用戶之前對其進行充分的測試,盡可能多地檢測出系統(tǒng)中潛藏的錯誤,并及時修正錯誤,從而保證系統(tǒng)的質量,對水利信息化建設過程中其它軟件系統(tǒng)的研發(fā)具有良好的借鑒價值。

        但利用白盒和黑盒測試技術生成測試用例的自動化程度不高,測試的效率受到一定的影響。在今后的研究工作中,將嘗試使用元啟發(fā)式算法實現(xiàn)測試用例的自動生成,提高測試的效率。

        [1] 水利部水利信息中心. 國家防汛抗旱指揮系統(tǒng)二期工程初步設計報告[R]. 北京:水利部水利信息中心,2015: 339-534.

        [2] BERTOLINO A. Software testing research: Achievements, challenges, dreams[C]//Proceedings of future of software engineering IEEE. Washington DC, IEEE, 2007: 85-103.

        [3] BEIZER B. Software testing techniques[M]. 2nd ed. Boston: International Thompson Computer Press, 1990: 1-5.

        [4] MYERS J G, BADGETT T, SANDLER C. The art of software testing[M]. 3rd ed. New York: John Wiley & Sons, 2012: 14-20.

        [5] PAGE A, JOHNSTON K, ROLLISON B. How we test software at microsoft [M]. Redmond: Microsoft Press, 2009: 62-85.

        [6] LUCCA GAD, FASOLINO A R. Testing web-based applications: The state of the art and future trends [J]. Information & software technology, 2005, 2 (12): 1172-1186.

        [7] PRESSMAN R S, MAXIM B R. Software engineering: A practitioner’s approach[M]. 8th ed. Columbus: McGraw-Hill Education, 2015: 499-507.

        [8] 張海藩,牟永敏. 軟件工程導論 [M]. 6 版. 北京:清華大學出版社,2015: 162-176.

        [9] MCCABE T. A software complexity measure [J]. IEEE transactions on software engineering, 1976 ( 2): 308-320.

        [10] 水利部水文局. 全國水文測站編碼[S]. 北京:水利部水文局,2002: 1-40.

        Research and application of software testing in water business application system

        QI Rongzhi, XU Shufang, ZENG Tao, ZHOU Siqi
        (College of Computer and Information, Hohai University, Nanjing 211100, China)

        Software testing is an important software validation activity to reveal failures in software and release high-quality product by executing test cases. In order to ensure the quality of water business application system, complete testing should be executed during the construction of these systems. This paper carries out a research on the methods of generating test cases, which contain white-box testing and black-box testing. White-box testing includes logic coverage and basis path testing, and black-box testing includes equivalence partitioning and boundary value analysis. This paper discusses test cases generation of flood control information query module using white-box and black-box testing. Then these test cases are executed to test the module. These two testing techniques can detect failures in the system effectively, and developers can fix these failures in time.

        software testing; water business application system; white-box testing; black-box testing; test case generation

        TV21

        A

        1674-9405(2017)01-0005-05

        10.19364/j.1674-9405.2017.01.002

        2016-11-18

        國家重點研發(fā)計劃項目(2016YFC0400910);國家科技支撐計劃項目(2013BAB06B04);水利部公益性行業(yè)科研專項經費項目(201501007)

        戚榮志(1980-),男,江蘇興化人,博士,研究方向:軟件工程、水利信息化。

        猜你喜歡
        系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統(tǒng)
        基于UG的發(fā)射箱自動化虛擬裝配系統(tǒng)開發(fā)
        半沸制皂系統(tǒng)(下)
        FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        一德系統(tǒng) 德行天下
        PLC在多段調速系統(tǒng)中的應用
        激情精品一区二区三区| 久久久久久无中无码| 热热久久超碰精品中文字幕| 青青草激情视频在线播放| 中文字幕人妻无码视频| 99久久国产露脸精品竹菊传媒| 精品久久久久中文字幕APP| 国产精品国产三级国a| 夜夜高潮夜夜爽夜夜爱爱一区| 天天影视性色香欲综合网| 国产白丝网站精品污在线入口| 日本久久一级二级三级| 丰满人妻久久中文字幕| 国产真实老熟女无套内射| 妺妺窝人体色www在线直播| 在线观看播放免费视频| 国产精品情侣呻吟对白视频| 50岁熟妇的呻吟声对白| 欧美日韩国产成人综合在线影院| 日韩精品资源在线观看免费| 亚洲色一区二区三区四区| 成人妇女免费播放久久久| 国产精品原创av片国产日韩| 免费国产不卡在线观看| 国产精品无码一区二区三区电影 | 久久精品国产熟女亚洲| 成人免费毛片aaaaaa片| 国产免费播放一区二区| 大香蕉视频在线青青草| 蜜臀av在线播放一区二区三区| 亚洲欧美精品aaaaaa片| 精品视频在线观看一区二区有 | 亚洲人成绝费网站色www| 日本人妻精品有码字幕| 亚洲精品久久久久久久久久吃药| 97久久精品人人妻人人| 亚洲一区二区三区麻豆| 国产裸体美女永久免费无遮挡| 天天干成人网| 国产一区二区在线观看视频免费| 色视频网站一区二区三区|