2014-08-29 80 views
0

我有一個求職面試,他們問我一個排序功能的測試場景。我應該爲分類功能做些什麼測試?

的問題是: 我們有3個數字,並且對其進行排序的功能。你會做什麼測試這個功能?

我說

  • 檢查零
  • 檢查負數
  • 檢查不止一次

他們說,這個問題的答案是確定的,但返回相同的號碼,如果數字限制在1 - 1000之間,我應該做些什麼額外的測試?

回答

0

你也可以做邊界測試(非常小或非常大的值檢查)。如果數字在1-1000範圍內,您可以嘗試使用小數字(1,2,4)和大數字(998,996,1000)。

0

我會寫下面的測試。我假設函數帶有一個數組,例如, [1,2,3]。

  • 測試該功能實際上排序無序輸入:
    • 所有存在於輸入的數字,並沒有其他的,必須存在於輸出。
    • 輸出必須排序,即輸出中的每個數字必須小於以下數字。 (您只需通過測試該排序例如,[2,1]給你斷言這兩個東西[1,2],但它們是不同的要求,應明確說明。)
  • 如果語言允許你可以用一個數組的不同類型的數組(例如整數和浮點數)來調用函數,測試排序[1.1,1]返回[1,1.1]。
  • 測試一下,給定[],函數返回[]。 (這是輸入數組長度的邊緣情況。)
  • 測試如果給定[1],函數返回[1]。 (這是輸入數組長度的邊緣情況。)
  • 測試在給定[1000]的情況下函數返回[1000]。 (這是一個邊緣的情況下對輸入元件的尺寸。)
  • 測試該功能會引發異常(或任何它應該做時,有一個錯誤),如果輸入是[0](數量最多的是小於允許範圍)。如果允許浮動,使用[0.9]。
  • 測試,如果輸入是[1001]將拋出異常或任何(比所允許的範圍更大的最小數量)。如果允許浮動,請使用[1000.1]。
  • 如果該函數被寫入語言允許您調用該函數以

    • 空,
    • 一個非空值,它是不是一個數組,
    • [空]
    • 一個包含非空值的數組,它不是一個數字

    測試函數在這些情況下引發異常或其他情況。

如果性能測試是在範圍,上測試

  • 隨機排序的給定長度的輸入(作爲基線)的長度相同的
  • 輸入排序的函數的時間性能以有趣的方式:

    • 已經至少排序,以最大
    • 所以在反向
    • 由相同數量的rted重複

    和你拿出從研究排序算法並檢查執行其他潛在的病理情況下。

您甚至可能需要測試空間(內存使用情況)的性能。

相關問題