軟件測試2個月能學會嗎 黑盒測試用例

黑盒測試用例(你能在2個月的軟件測試后學會它嗎)
黑盒測試只關注輸入和輸出,將程序視為黑盒 。在不遺漏需求的情況下,打開這個黑匣子,從代碼實現的角度進行分析,可以幫助我們更好地理解測試用例,改進測試用例設計,提高測試效果 。
下面小編從一元多項式的加法和乘法程序系統闡述思路 。
功能描述:設計程序分別求兩個一元多項式的積和 。
(1)輸入:輸入分兩行,每行先給出多項式非零項的個數,然后以指數遞減的方式輸入一個多項式非零項系數和指數,數字之間用空隔開
(2)輸出:輸出分為兩行,分別以指數遞減的方式輸出乘積多項式和和多項式非零項的系數和指數 。零多項式應該輸出0,0 。
(3)例子:
執行加法后的結果:
(4)程序輸入和預期輸出
輸入:
3 9 12 15 8 3 2
4 26 19 -4 8 -13 6 82 0
輸出:
234 31 390 27 78 21 -36 20 -117 18 -60 16 -195 14 738 12 -12 10 1191 8 246 2
26 19 9 12 11 8 -13 6 3 2 82 0
首先,思考程序框架
(1)數據結構使用鏈表:鏈表比數組更靈活,但更容易出錯,所以更適合在本文中舉例說明:
(2)程序結構如下:
I .通過Creat()函數建立一個鏈表來存儲數據
二 。通過multiple()函數執行乘法運算并返回結果 。
三 。通過add()函數執行加法運算并返回結果
四 。通過PrintLink()函數打印結果
結合程序的功能,從實現的難度來說,multiple()可能更容易出錯 。每個子功能的具體實現這里不做展示,后面會結合測試點詳細講解 。
二、測試驗證
1.關鍵性測試:輸入空多項式運行程序,可以看到輸出數據混亂 。
分析:通過對代碼進行故障排除,發現由于沒有考慮空指針場景(頭指針的下一點為空),指針指向未知內存空,導致數據異常 。另外需要注意的是空指針還會造成段錯誤分段故障,這是測試過程中常見的情況,尤其是在項目前期:指針空會導致程序崩潰 。
解決方法:增加頭指針下一個空的判定和處理 。
2.等價類測試
一.添加( )
對于可加函數,需要考慮三種基本情況:比較兩個一元多項式,I .前者系數大于后者,ii .前者系數等于后者,iii 。前者的系數小于后者 。If語句的三個分支對應三個等價的測試點 。
與I和iiI的情況相比,當iI的系數相等時,容易出現問題:這里,我們需要考慮一個特殊的場景 。當添加的系數為0時,相關數據不會被記錄,對應的內存空需要通過free()函數釋放 。
因此,在設計相應的測試用例時,需要考慮系數相加為0的場景,在判斷輸出的同時,也要同步關注內存占用情況 。
二 。多重( )
乘法函數比加法函數復雜,需要通過while循環和insert()子函數兩層來實現:
兩級while循環模擬兩個一元多項式相乘的步驟,insert()將生成的結果插入到結果鏈表中 。所以需要同步關注insert()子功能 。multiple()中沒有直接實現insert函數,這是編程的基本規則:避免代碼冗余,增加靈活性 。Insert()代碼的一部分如下:
我們可以看到,這里的測試點類似于add()函數,需要考慮三種情況:指數大于、指數小于和指數等于 。如果指數相等,將觸發系數加法運算 。當結果為0時,需要free()函數來釋放內存 。
所以在設計測試用例的時候,要綜合考慮,不能漏掉系數加起來為0的場景,還要同步關注內存占用情況 。
3.關于流通
分支和循環是程序代碼中最常見的兩種情況 。從灰盒測試的角度來看,分支對應測試設計中的等價類劃分,循環可以對應邊界值 。
程序可能在分支或循環處出現異常,比如沒有正常退出循環 。嚴重的情況下,程序會崩潰,進入無限循環 。
例如
描述:執行連接操作,發送方進程人為異常 。接收器將執行重復的重新連接嘗試,并單擊連接取消按鈕,但接收器仍繼續執行重新連接 。
分析:點擊取消按鈕后,循環沒有終止,取消操作中代碼丟失,導致循環非正常終止 。
第三,一點思考
由于測試的準入門檻較低,測試工程師需要儲備自己的技能,提升自己的競爭力 。作者建議以下幾個方面作為改進的基礎:
1.凡事多想想,為什么?想辦法弄清楚背后的原因 。
2.軟件版本沒有經過嚴重故障測試,不代表沒有嚴重故障 ??赡苁菦]有在實驗環境中暴露過或者有一些測試疏漏 。所以要多思考,多使用,才能充分暴露產品缺陷 。
3.增加自動化意識:所有重復的操作都可以用自動化代替 。我們可以從Windows BAT和Linux SH腳本開始:積沙成塔 。但是考慮到性價比 。從長遠來看,如果自動化的時間成本遠大于人工成本,就保持人工 。

推薦閱讀