Definiowanie przypadków testowych dla pytań programistycznych
Last updated: March 10, 2026
Przegląd
Przypadki testowe pomagają w walidacji kodu kandydatów. Stanowią podstawę do automatycznej oceny kodu kandydata. Przypadek testowy składa się z wejścia do kodu i oczekiwanej wyjściowej wartości. Po przesłaniu kodu przez kandydatów, jest on uruchamiany na wszystkich przypadkach testowych. Wynik z kodu kandydata jest porównywany z oczekiwanym wynikiem, aby sprawdzić, czy przypadek testowy został zaliczony czy nie.
Przykładowy przypadek testowy z wyjaśnieniem może również pomóc w lepszym wyjaśnieniu problemu kandydatom. Idealnie, powinieneś użyć 2 do 3 takich przykładowych przypadków testowych, aby pomóc programiście zrozumieć problem. Zalecamy posiadanie łącznie od 8 do 15 (najlepiej 10) przypadków testowych, które obejmują wszystkie scenariusze. Przypadki testowe powinny mieć różne rozmiary, obejmując różne poziomy złożoności. Żaden dwa przypadki testowe nie powinny testować tej samej koncepcji.
Uwaga: Proszę odwołać się do Test Cases in your Coding Question, aby zrozumieć sposób użycia przypadków testowych podczas tworzenia pytań kodowania dla testów HackerRank.
Rodzaje przypadków testowych
Istnieją dwa rodzaje przypadków testowych dla każdego problemu, Przykładowy przypadek testowy i Ukryty przypadek testowy.
Przykładowe przypadki testowe
Przykładowe przypadki testowe to te, które kandydaci mogą zobaczyć i użyć do walidacji swojego kodu. Widzą zarówno wejściowe, jak i oczekiwane wartości wyjściowe dla tych przypadków testowych. Podczas tworzenia przypadków testowych, możesz oznaczyć niektóre przypadki jako przykładowe.
Na przykład, zobacz ilustrację poniżej przykładowego przypadku testowego zdefiniowanego dla pytania kodowania. Pytanie wymaga od kandydata napisania kodu, aby znaleźć pierwszy niepowtarzający się znak w podanym ciągu znaków.
W teście, gdy kandydat pisze i kompiluje kod do pytania, przykładowy przypadek testowy jest walidowany na podstawie kodu kandydata. Kandydat może zobaczyć wyniki wykonania przykładowego przypadku testowego wraz z wartościami wejściowymi i oczekiwanymi wynikami, zgodnie z Twoim ustawieniem. Podgląd wyników wykonania przykładowego przypadku testowego pomaga kandydatom zrozumieć oczekiwane wyniki ich kodu. Kandydaci mogą również pobrać swoje przykładowe przypadki testowe.
Ukryte testy
Podczas dodawania testu do Twojego pytania programistycznego, jeśli nie oznaczysz go jako testu przykładowego, jest on uważany za ukryty. Ukryte testy wywodzą się z ery programowania konkurencyjnego.
Możesz dołączać różne przypadki brzegowe jako ukryte testy, aby ocenić kandydatów w różnych scenariuszach. Gdy kandydat uruchamia swój kod, ukryte testy są oznaczone przez ikonkę locka
W przeciwieństwie do testów przykładowych, kandydaci nie mogą zobaczyć wartości wejściowych i oczekiwanych wyników dla tych ukrytych testów. Chociaż mogą zobaczyć swój wynik i wynik do debugowania, klikając na dowolną z opcji ukrytego testu. Ta funkcja została udostępniona kandydatom, aby zapewnić im lepsze doświadczenie debugowania.
W teście, gdy kandydat pisze i uruchamia kod dla tego pytania, ukryty test jest weryfikowany względem kodu kandydata, aby zwrócić wynik wykonania testu. Jeśli kod kandydata pomyślnie wykonuje ukryte testy i zwraca oczekiwany wynik, kandydat osiąga punktację przypisaną do tego testu.
Wyłączanie wyjścia dla ukrytych testów
Możesz również zdecydować się na niewyświetlanie wyników ukrytych testów dla kandydatów. Aby wyłączyć wyjście dla ukrytych testów, wykonaj poniższe kroki.
- Na stronie głównej Testów, kliknij wybrany test.
- Po kliknięciu na pytanie, kliknij na zakładkę Ustawienia, a następnie z lewej strony wybierz opcję Pytania.
- Po kliknięciu na zakładkę Pytania, przewiń w dół, znajdziesz opcję wyłączenia wyjścia dla ukrytych testów, jak pokazano poniżej. Jednak nie jest to zalecane ponieważ wyświetlanie wyników pomaga kandydatom skutecznie debugować ich kod. Opcja wyświetlania wyników jest domyślnie zaznaczona. Jeśli chcesz ukryć swoje wyniki, możesz odznaczyć pole Wyświetl wynik dla ukrytych testów.
Uwaga: Nasze raporty sugerują, że kandydaci tracą dużo czasu testowego podczas znajdowania rozwiązania lub debugowania z powodu ukrytych testów. Aby zmniejszyć to wyzwanie i zapewnić kandydatom lepsze doświadczenie debugowania, HackerRank planuje w przyszłości odejść od ukrytych testów i wprowadzić doświadczenie debugowania oparte na punktach przerwania.
Ocena
Nie wszystkie testy mają ten sam poziom trudności. Podczas tworzenia testów, musisz zapewnić, że więcej punktów przypisano trudniejszym testom w porównaniu do łatwych. To prowadzi do lepszego rozróżnienia między wybitnymi, dobrymi i przeciętnymi programistami. Suma punktów wszystkich testów to łączna punktacja przypisana do danego pytania. Możesz przypisać zero punktów testom przykładowym, jeśli to konieczne. Ogólna punktacja za zadanie programistyczne to suma punktów za wszystkie testy, które zostały pomyślnie zaliczone.
Synchronizuj testy z szablonami kodu
Podczas korzystania z automatycznie generowanych szablonów kodu, upewnij się, że dane wejściowe i oczekiwane wyjście są zgodne z szablonami kodu. Możesz odwołać się do końcowej części, aby to zrozumieć.
Na przykład:
Jeśli dane wejściowe to tablica, zawsze odczytujesz najpierw "n" (oznacza rozmiar tablicy), a następnie odczytujesz "n" elementów tablicy w "n" osobnych liniach. Jest to konieczne, aby zapewnić spójność odczytu danych wejściowych w różnych językach.
Jeśli dane wejściowe to lista powiązana, zawsze odczytujesz "n" (oznacza liczbę elementów do dodania do listy powiązanej) i następnie odczytujesz "n" elementów w "n" osobnych liniach.
Zobacz temat Jak dodać nowe testy dla informacji o tworzeniu i dodawaniu testów do Twoich pytań.