第七周作業

2022-08-21 02:15:14 字數 1216 閱讀 2686

黑盒測試

很多時候,黑盒測試比百合測試更加有效並且更加高效。

在白盒測試中,要求對程式中每個分支邏輯進行測試,實際上這是不必要的。在絕大多數情況下,bug是隱藏在在極少的分支裡,如果測試不夠還有可能根本找不到bug。這樣的情況是極其壞的,既浪費了時間又沒有達到預期的效果。

在真正的測試過程,使用黑盒測試的情況更加常見。黑盒測試的基本思想就是事先不了解程式內部構造,然後自己設定一些值去測試程式是否達到預定輸出。

常用的黑盒測試方法有等價類劃分法,邊界值測試法之類的,其中邊界值測試法是最好理解的,可以用下面實際的例子來說明:

比如現在測試乙個api: graphsetpos(uint object, int x, int y);

這是用於設定乙個影象座標的api,其中 object代表乙個影象編號,x和y代表座標汁。

其中x和y是可以可以任意取值的,但是object的值是有範圍的,引擎中規定為[0, 0xfff],那麼不在這個返回之內都是不合法的。

現在,我們就有兩個邊界值測試用例:

第乙個可以是object = 0xffe,

第二個可以是object = 0x1000

假設0xffe位置已經載入了,那麼當object > 0xfff的時候,引擎應該報錯「invalid param」,提示輸入的引數錯誤。

這個就是最簡單的邊界值測試。

根據我個人理解,等價類劃分大致算邊界值測試的乙個公升級版本。等價類劃分具體來說,就是將測試用例中相同的劃分成一類,再在其中劃分劃分子類,做到有目的去測試。

比如上面的例子裡,我們只是測試乙個object的值,從宣告上來看,是乙個非負的整數,那麼我們的等價類可以這樣劃分:

非負數 : 1.object是乙個負數

負數:   1.在[0, 0xfff]範圍之內的    2.在上面那個範圍之外的、

這三種情況,並且我們可以線確定下來預先期望的輸出,

比如當object是乙個負數的時候,這裡的uint其實是會強制轉換的,那麼得到的還是乙個非負數整數,假設int的長度為4 bytes,那麼我們會等到乙個大於0x7fffffff的值。那麼預期提示應該是「非法的引數」。

當object是乙個非負數並且在合法範圍之類的時候,還是分為兩種情況,第一種就是對應的object為空,此時應該提示「物件為空」,當對應物件不為空的時候,直接執行,沒有任何提示。

第三種情況和第一種情況相同,都是不在範圍之內。

由此可見,黑盒測試是有目的性地測試專案,相對與白盒測試來說,更加省時並且更加有效。

第七周作業作業

1 自建yum倉庫,分別為網路源和本地源 建立yum配置檔案,類似如下 base name base baseurl file misc cd gpgcheck 0 epel name epel baseurl gpgcheck 0 enabled 1 本地源 以前自己整理的 2 編譯安裝http2...

第七周作業

書中習題1 說說下列程式的執行過程和運算結果 include includeusing namespace std double squ double x 函式原形 int main 主函式 書2,不用庫函式,求整數次冪 3.程式設計實現輸入兩個4x5矩陣和5x3矩陣,定義函式並在主函式中呼叫計算它...

第七周作業

1 列舉常見的核心引數以及引數的意義 1 net.ipv4.ip forward 資料報的路由 開關,設定為1表示開啟,0表示關閉。2 vm.drop caches 清空caches,釋放記憶體占用。設定為1表示清空 pagecache,設定為2表示清空 dentries 和 inodes,設定為3...