摘要:軟件測試能夠在很大程度上保證軟件的質(zhì)量,而測試用例是軟件測試過程中的關(guān)鍵環(huán)節(jié),基于此本文對黑盒測試用例的設(shè)計原則進行分析,根據(jù)實踐經(jīng)驗總結(jié)了黑盒測試用例的幾種設(shè)計方法。
關(guān)鍵詞:黑盒測試;測試用例;因果圖
引言:在軟件開發(fā)和使用周期當中,軟件測試是保證其質(zhì)量的關(guān)鍵手段。目前國家、企業(yè)和用戶對軟件質(zhì)量的要求越來越高,軟件測試的方法也受到了越來越多的重視,黑盒測試是一種有效的測試手段,能夠提高測試效率保證測試效果。
1.黑盒測試用例的設(shè)計原則
1.1真實性
真實性是黑盒測試用例最關(guān)鍵的原則,也是最基礎(chǔ)的原則,測試者是在測試用例的基礎(chǔ)上對軟件質(zhì)量進行測試的。如果軟件測試用例出現(xiàn)錯誤,那么就會導致整個軟件測試出現(xiàn)錯誤,影響最終結(jié)果的準確性,進而對之后軟件開發(fā)造成負面影響。
1.2可讀性
軟件測試的目的并不只是為了讓測試者理解,更重要的是要讓其他人了解,讓軟件開發(fā)者了解,因此就要保證在軟件測試結(jié)果當中要具有一定的可讀性,不會出現(xiàn)表述不清的問題,給軟件測試的接受者造成閱讀困難。
1.4可執(zhí)行性
可執(zhí)行性是指用戶在進行測試時,能夠按照測試用例的步驟描述進行測試,因此在測試用例時應(yīng)當將所有的測試步驟和方法描述清楚,在描述過程時要保證思路清晰,語言明確。不管是軟件開發(fā)者還是軟件用戶,都能夠?qū)浖z測過程產(chǎn)生清晰認知,在進行拆分設(shè)計時也應(yīng)當保證結(jié)構(gòu)和思路的合理性。
1.5一致性
一致性要求測試者在測試過程中減少主觀因素的影響,增加操作時的穩(wěn)定性和確定性,避免因為測試者個人因素的變化導致最終測試結(jié)果發(fā)生改變。因此,測試用例在測試過程中,應(yīng)當保證操作過程與最終的結(jié)果是一致的。
2.黑盒測試用例的設(shè)計方法
2.1等價類劃分
在黑盒測試方法當中,等價類劃分法是一種非常典型的黑盒測試方法,這種測試方法的優(yōu)點就在于測試用例時不必考慮軟件的結(jié)構(gòu),只需要根據(jù)規(guī)格書的需求進行。這種方法就相當于將程序當中的輸入域劃分成幾個不同的部分,在這些部分里面選擇比較具有代表性的幾個數(shù)據(jù)作為主要的測試用例。這之中的每一類代表性數(shù)據(jù)都應(yīng)當承擔著等價的作用,也就是說應(yīng)當與同一類當中其他值的作用完全等價。假設(shè),在某一類的代表性數(shù)據(jù)當中發(fā)現(xiàn)了錯誤,那么在同一類里面的其他數(shù)據(jù)也一定會查出同樣的錯誤;反之如果在典型數(shù)據(jù)中沒有查出錯誤,那么在其他數(shù)據(jù)當中也不會查出錯誤。在利用等價類劃分方法測試用例時,需要根據(jù)規(guī)格的具體說明來對數(shù)據(jù)進行劃分,在劃分等價類之后列出相應(yīng)的等價類表。為了能夠保證軟件測試的效果,要對這些數(shù)據(jù)進行更加徹底地測試。考慮到測試過程需要用到打開量的信息,這對信息技術(shù)人員要求很高,且存在較大的工作量,很容易造成工作失誤,這種軟件測試可能無法提高軟件質(zhì)量。因此利用等價類劃分的方法測試用例,可以幫助程序員減少工作量,用相對較少的具有代表性的數(shù)據(jù)對軟件質(zhì)量進行測試來取得最佳的效果,能夠在很大程度上減少程序員的出錯率。等價類劃分方法同樣也分為有效和無效等價類兩種情況,有效等價類指的是合理、科學地選擇數(shù)據(jù)集合,將有意義的數(shù)據(jù)集合在一起,符合程序設(shè)置規(guī)格。而無效等價類,相當于是利用了一些并不合理的也沒有意義的數(shù)據(jù)集合進行測試,因此也不符合程序的設(shè)置規(guī)格,導致最后沒有產(chǎn)生任何測試效果[1]。因此,在利用等價類劃分方法測試用例時應(yīng)當充分考慮這兩種情況,軟件的基礎(chǔ)功能就是要能夠接受合理的、科學的數(shù)據(jù),同時也要能夠經(jīng)受得住意外的考驗。例如,有一張3.5寸的軟盤,標準內(nèi)存是1.44MB而實際內(nèi)存是1.38MB,因此在利用等價類劃分方法進行測試時,可以設(shè)置三個等價類,其輸入域分別為:<0,但這種情況幾乎不予考慮;0≤容量≤1.38以及1.38≤容量三個不同的等價類。在這之中只有0≤容量≤1.38是有效類,其他兩類均為無效類。
2.2邊界值分析
邊界值分析方法是一種能夠補充等價劃分方法的一種測試技術(shù),與等價類不同的是,它不通過選擇等價類當中的任意元素進行測試,而是選擇被等價類排除的邊界成分作為測試用例。通過大量的測試實踐表明,利用邊界值分析法測試用例,能夠查出更多等價劃分法無法測試的錯誤,獲得更好的測試效果。因為在軟件當中有很多數(shù)據(jù)錯誤發(fā)生在集合范圍之外,這些數(shù)據(jù)處于輸入域或者是輸出域的邊界。所謂邊界值分析法就是設(shè)計測試的用例在輸入或是輸出的邊界提取數(shù)據(jù),例如輸入和輸出域邊界的最大值或者是最小值,兩個區(qū)域第一個數(shù)據(jù)或者是最后一個數(shù)據(jù),還包括剛剛超過邊界范圍的值,這種測試方法是對前者等價類劃分法的一種補充。很多軟件開發(fā)者容易在信息域的邊界信息上出錯,比如說常會把小于等于0直接寫作小于0,因此在集合邊界部分的數(shù)據(jù)也應(yīng)當被嚴格檢查,這些地方會經(jīng)常出現(xiàn)數(shù)據(jù)錯誤。同時,針對邊界附近的數(shù)據(jù)進行檢測能夠測試出更多錯誤也能夠大大提高測試效率。等價類劃分方法是主要針對數(shù)據(jù)域內(nèi)部的某一個數(shù)據(jù)或者是一個比較具有代表作用的典型值作為主要的測試數(shù)據(jù),而邊界值分析法不僅要考慮輸入的數(shù)據(jù)還要對輸出數(shù)據(jù)的情況進行考慮,并將這些數(shù)據(jù)劃分為有效等價類和無效等價類,在這些等價類的邊界區(qū)域選取至少三個代表性數(shù)據(jù)作為測試數(shù)據(jù),這三個數(shù)據(jù)應(yīng)當是正好處于邊界值上,稍大于邊界值或者是稍小于邊界值。如果希望得出的結(jié)果更加準確,則可以向外多擴展一個數(shù)據(jù)進入測試當中。
2.3因果圖分析
在軟件實際投入運用時,問題的結(jié)果經(jīng)常會受多種復雜條件的取值影響,例如高校借書軟件的處理結(jié)果,會受借閱者的身份、借閱證有效日期、借閱圖書數(shù)量、借閱圖書是否有空余、所借閱的書籍類型等多個因素相關(guān)[2]。又比如游客使用軟件訂購旅行社的套餐時所享受的折扣與游客的身份(學生、兒童等)、游客的軟件使用等級、游客預定的線路以及所選擇的出行日期等因素有關(guān),因此在處理結(jié)果時應(yīng)當考慮多種復雜因素的影響。因果圖分析就是根據(jù)程序規(guī)格中說明的要求做相關(guān)描述,將輸入條件作為“原因”,程序狀態(tài)發(fā)生的變化或是輸出作為“結(jié)果”,根據(jù)相關(guān)程序的歸納、說明和定義繪制因果網(wǎng)絡(luò)圖,之后將網(wǎng)絡(luò)圖轉(zhuǎn)換為判定表,并在判定表當中的每一列設(shè)計一個測試用例,這種判定表又被稱為是決策表,主要作用是輔助測試或者是在設(shè)計階段對算法進行描述。這種方法的優(yōu)點就在于能將結(jié)果相關(guān)的多個不同因素以及可能因素進行列舉,相對于其他方法來說操作比較簡單,同時也可以盡量避免出現(xiàn)遺漏。在設(shè)計階段描述程序進行算法處理時,常常會將判定表根據(jù)區(qū)域劃分成四個部分:左上角與問題相關(guān)的所有條件、右上角相關(guān)條件當中取值組成的矩陣、左下角可能會出現(xiàn)的行動、右下角各種不同的取值在組合下可能會采取的行動。如果是測試階段用的判定表應(yīng)當比設(shè)計階段的判定表多一行“測試用例”的標注,在對每一列條例取值時組合設(shè)計一個典型值進入測試中去。
2.4試錯法
試錯法基本上是根據(jù)測試員的經(jīng)驗和直覺,由測試員列舉出在程序當中可能會出現(xiàn)的錯誤,以及容易產(chǎn)生錯誤的位置,并對這些位置進行有針對性測試,也就是對程序當中可能會出現(xiàn)的錯誤進行試錯。例如成績錄入模板的測試用例,在成績錄入過程中,需要處理的數(shù)據(jù)量十分龐大,不僅是要對部分課程成績進行錄入還需要平時成績與期末成績相加,最后輸入最終成績。如果對每個數(shù)據(jù)進行檢查,檢查的工作量十分龐大,還會容易出現(xiàn)錯誤,所以根據(jù)實踐經(jīng)驗,在成績錄入時,可能會在等級邊緣部分出錯。因為成績輸入過程中會受有效數(shù)據(jù)范圍的限制,所以基本不會出太大的錯誤,而總評的等級是由其他各個部門的成績相加換算得來的,并沒有確定的結(jié)果。因此可以在測試時將等級邊緣部分的成績作為測試用例,設(shè)置的平時成績、實踐成績、期中考核、期末成績以百分制的形式錄入,在總評成績處則顯示為等級制。前四部分成績按照相關(guān)規(guī)定進行合理分布,如果測試結(jié)果中表明了成績輸入是正常的,但是總評的結(jié)果卻在等級邊界部分且總評依舊顯示百分制結(jié)果,并非等級制,則可以判斷程序當中出現(xiàn)了一些錯誤。
2.5正交試驗設(shè)計
正交試驗設(shè)計需要大量的試驗點,并能夠從這些試驗點當中挑選出真正有用的、有代表性的點。正交試驗設(shè)計需要科學安排試驗內(nèi)容,將所有因素和水平在試驗當中均勻分配并進行合理搭配,保證試驗變化存在一定規(guī)律。正交試驗設(shè)計法測試用例,首先要利用軟件相關(guān)說明找出可能會影響工作和操作的因素和對象,其次利用正交表格對發(fā)現(xiàn)的各個因子的狀態(tài)進行組合,創(chuàng)建一個有效的測試輸入數(shù)據(jù)表格,根據(jù)數(shù)據(jù)的分布建立因果圖,再圍繞因果圖的各個節(jié)點延伸出正交表,在這種測試方式中得出的數(shù)據(jù)表,測試用例的數(shù)量能夠大大降低[3]。
總結(jié):黑盒測試方法是一種效果十分顯著的軟件測試方法,目前已經(jīng)出現(xiàn)了很多黑盒測試用例的設(shè)計方法,這幾種方法各有優(yōu)劣。因此在軟件測試的過程中不能只使用同一種方法進行測試,應(yīng)當結(jié)合多種方法的優(yōu)點才能夠真正發(fā)揮軟件測試的效果。
參考文獻:
[1]妥澤花.基于黑盒測試與白盒測試的比較探究[J].電子世界,2021,(11):55-56.
[2]張喻平.黑盒測試中測試用例優(yōu)先級改進算法分析[J].電腦知識與技術(shù),2020,16(02):91-92+98.
[3]樊茜,何雨昂,黃葵.伺服軟件的復雜時序測試用例設(shè)計方法[J].電子技術(shù)與軟件工程,2019,(24):48-49.
基金項目:
合肥市現(xiàn)代職業(yè)教育集團橫向課題:職業(yè)教育信息化軟件開發(fā)人才供給及產(chǎn)教融合研究與實踐;
安徽省省級質(zhì)量工程項目:人工智能技術(shù)應(yīng)用特色高水平專業(yè)(2021tszy010);
安徽工商職業(yè)學院校級一般教研項目:“1+X”證書制度下人工智能技術(shù)應(yīng)用專業(yè)課程群建設(shè)研究(2021xjjy20);
作者簡介:
尹金(1986.04),女,漢族,安徽省人,碩士研究生,講師,主要研究方向為機器學習、人工智能技術(shù)應(yīng)用,工作單位:安徽工商職業(yè)學院信息工程學院。