定義程式題目的測試案例
Last updated: March 10, 2026
概述
測試案例有助於驗證候選人的程式碼。它們構成了自動評估候選人程式碼的基礎。測試案例由輸入和預期輸出組成。一旦候選人提交程式碼,系統會將其與所有測試案例進行比對。候選人程式碼的輸出會與預期輸出進行比較,以判斷測試案例是否通過或失敗。
一個範例測試案例及其說明也可以幫助更好地向候選人解釋問題。理想情況下,你應該使用2到3個此類範例測試案例,以幫助程式設計師理解問題。我們建議總共擁有8到15個(理想上是10個)測試案例,涵蓋所有場景。測試案例應具有不同的大小,以涵蓋不同的複雜程度。沒有兩個測試案例應測試相同的概念。
注意:請參考您的程式題目中的測試案例,以了解在為HackerRank測試創建程式題目時測試案例的使用方式。
測試案例的類型
每個問題有兩種類型的測試案例,一個範例測試案例和一個隱藏測試案例。
範例測試案例
範例測試案例是候選人可以查看並用來驗證其程式碼的測試案例。他們可以看到這些測試案例的輸入和預期輸出值。在創建測試案例時,你可以將某些測試案例標記為範例測試案例。
例如,請參見下面為一個程式題目定義的範例測試案例的示意圖。該題要求候選人撰寫程式碼,以找出給定字串中第一個不重複的字符。
在測試中,當候選人撰寫並編譯該題的程式碼時,範例測試案例會與候選人的程式碼進行驗證。候選人可以查看範例測試案例的執行結果,以及由你定義的輸入和預期輸出值。查看範例測試案例的執行結果有助於候選人理解其程式碼的預期結果。候選人也可以下載他們的範例測試案例。
隱藏測試案例
在向您的程式題目添加測試案例時,如果您沒有將其標記為範例測試案例,則視為隱藏測試案例。隱藏測試案例源自競賽程式設計的時代。
您可以將各種角落案例作為隱藏測試案例,以評估候選人在不同情境下的表現。當候選人運行他們的程式時,隱藏測試案例由鎖定 圖示指示。
與範例測試案例不同,候選人無法看到這些隱藏測試案例的輸入和預期輸出值。不過,他們可以在點擊任何隱藏測試案例選項時看到他們的輸出和可除錯輸出。此功能旨在為候選人提供更好的除錯體驗。
在測試中,當候選人為此題撰寫並執行程式時,隱藏測試案例會根據候選人的程式進行驗證,以返回測試案例的執行結果。如果候選人的程式成功執行隱藏測試案例並返回預期輸出,則候選人在此測試案例中獲得相應的分數。
禁用隱藏測試案例的輸出
您也可以選擇不顯示候選人的隱藏測試案例的輸出。要禁用隱藏測試案例的輸出,請按照以下步驟操作。
- 在測試首頁,點擊所需的測試。
- 點擊問題後,點擊設定標籤,然後從左側選擇問題選項。
- 點擊問題標籤後,向下滾動,您會看到禁用隱藏測試案例輸出的選項,如下所示。不過,這不建議因為顯示輸出有助於候選人有效地調試他們的程式碼。預設情況下會選擇顯示輸出。如果您想隱藏您的輸出,可以取消選中顯示隱藏測試案例的輸出的核取方塊。
注意:我們的報告顯示,候選人在尋找解決方案或除錯時,往往會浪費大量測試時間,這是由於隱藏測試案例。為了減少這個挑戰並為候選人提供更好的除錯體驗,HackerRank 希望未來能擺脫隱藏測試案例,並引入基於斷點的可除錯體驗。
評分
並非所有測試案例的難度都相同。在創建測試案例時,您必須確保較難的測試案例比較容易的測試案例獲得更多分數。這有助於更好地區分傑出、良好和普通的程式設計師。所有測試案例的分數總和即為該題的總分。您可以根據需要為範例測試案例分配零分。成功通過所有測試案例的測試分數之和即為該題的總得分。
與程式碼存根同步測試案例
當您使用自動生成的程式碼存根時,請確保輸入和預期輸出與程式碼存根同步。您可以參考尾部部分來理解這一點。
例如:
如果輸入是一個陣列,您將始終先讀取「n」(表示陣列大小),然後在「n」個不同的行中讀取「n」個陣列元素。這是為了確保在不同語言中讀取輸入的一致性。
如果輸入是一個鏈結串列,您將始終讀取「n」(表示要添加到輸入鏈結串列的元素數量),然後在「n」個不同的行中讀取「n」個元素。
有關創建和添加測試案例的詳細信息,請參考主題如何添加新測試案例。