2012-10-20 58 views
0

我正在寫一個函數,它接受三個整數輸入並基於三者之間的關係,它返回一個值或錯誤。爲了測試這個,我寫了一些測試用例,其中包括測試非法值,整數的邊界條件包括溢出和一些正面測試。我想知道還有什麼應該測試這個簡單的功能?測試一個函數:還有什麼應該測試?

在不同的平臺上測試是否可以作爲這樣一個小函數的測試用例? 另外,測試執行時間是我想添加爲測試用例的另一件事。 做靜態和動態分析可以成爲測試用例的一部分嗎? 還有什麼應該測試?

int foo(int a, int b, int c) { 
    return a value based on a, b, and c. 
} 
+1

返回類型是「int」 - 哪個返回值指示錯誤? – gcbenison

+0

我有一個測試返回值的測試,例如-1是錯誤。 –

+1

您的測試用例在測試過程中是否執行了函數中的所有代碼行? –

回答

2

您提出問題的方式似乎是在進行黑匣子測試,即您只知道輸入和輸出之間的關係,而不瞭解執行情況。在這種情況下,你的測試用例應該取決於你對關係的瞭解,並且我認爲你已經測試了這些東西(你沒有給我們關於關係的細節)。

從這看起來好像您需要測試平臺獨立性,但是如果您有自動化測試套件,那麼在不同的平臺上測試它肯定不是一個壞主意。

現在,如果你有可用的代碼,你可以去白盒測試。通常情況下,您可以通過首先查看代碼結構來完成此任務,即您可以嘗試擁有100%的分支覆蓋率,即代碼中的每個分支至少在測試期間運行一次。通過這種方式,靜態和動態分析可以幫助您找到不同的覆蓋率度量。

如果函數中沒有平臺相關的代碼,我不會去進行平臺獨立測試。

0

sizeof(int)必須針對特定編譯器進行測試。雖然這看起來很平凡,C標準指定了int的大小,但它最好知道所使用的編譯器是否是16位標準非合格編譯器。只是另一個測試案例。

相關問題