Jestem programistą Java klasy podstawowej, prosto ze szkoły. Mam dobrą wiedzę i doświadczenie z J2SE. Czy ktoś może mi doradzić, jak poprawić lub dostroić moje umiejętności, aby zostać testerem białych skrzynek Java? Mile widziany szeroki zakres danych wejściowych.
A czym jest rozwój oparty na testach?
Odpowiedzi:
Test Driven Development (TDD) i jego rozszerzeni kuzyni, Acceptance TDD (ATDD) i Behavior Driven Development (BDD) to przydatne techniki do nauki jako tester w ekosystemie Java. Skupię się na TDD, gdy szukasz testów białych skrzynek.
Co to jest TDD? - U podstaw leży praktyka pisania testu zakończonego niepowodzeniem (czerwony), przejścia testu przez napisanie implementacji (zielony), a następnie przefaktoryzowanie. Wikipedia Artykuł jest wystarczającym miejscem, aby rozpocząć, aby dowiedzieć się więcej informacji. Ale temat jest obszerny, polecam przeczytanie niektórych znanych książek w tej przestrzeni, takich jak Test Driven Development przez Przykład i Efektywna praca ze starszym kodem . Wrzucę też bezwstydną wtyczkę do rozdziału TDD w The Well-Grounded Java Developer
W ekosystemie Java oznacza to, że chcesz się nauczyć:
A potem ćwiczyć, ćwiczyć, ćwiczyć, ćwiczyć. Dobre testery białych skrzynek Java są bardzo rzadkie, najlepsze mają pisemne testy z szerokim zakresem baz kodu.
HTH na początek!
źródło
Junit jest jedną z najlepszych platform do testowania jednostek dla języka programowania Java. Jest to platforma open source do pisania i uruchamiania powtarzalnych testów.
źródło
Zwykle nie lubię cytować Wikipedii, ale informacje w tym artykule wydają się wystarczająco bezpieczne ...
http://en.wikipedia.org/wiki/Test-driven_development
Zasadniczo w kategoriach laickich jest to pierwsze podejście do tworzenia oprogramowania, w którym testy jednostkowe są najpierw projektowane i pisane z myślą o przypadkach użycia, a następnie następuje ciężki rozwój, aby pomóc przejść testy jednostkowe.
źródło
Nie jestem pewien, czy moja sugestia zostanie uznana za narzędzie do testowania białych skrzynek, ale możesz także spojrzeć na dbUnit dla projektów opartych na bazie danych i Selenium do testowania w Internecie (np. Kontrola elementów, które powinny istnieć w oparciu o niektóre wyniki).
źródło
Pytanie odnosi się konkretnie do „testów białych skrzynek”. To tutaj twoje testy mają dogłębną wiedzę na temat wewnętrznej struktury twojego kodu i potwierdzają zachowanie na każdym kroku, a nie tylko wejście / wyjście / efekt uboczny (testowanie czarnej skrzynki). Chociaż JUnit doskonale nadaje się do obu tych zadań, potrzebujesz dodatkowych dodatkowych ram, aby to zrobić w kontekście testu jednostkowego.
EasyMock i JMock to dobre ramy do tego celu. Mam tendencję do faworyzowania JMocka.
Ryzykując rozpoczęcie debaty OT, powinieneś dokładnie przemyśleć konsekwencje testów białej skrzynki. Testy białych skrzynek są ściśle powiązane z twoim kodem (oczywiście), a jeśli nie są używane ostrożnie, kpiące ramy mogą powodować, że twoje testy są dość skomplikowane, trudne do odczytania i wydają się bardziej kruche podczas refaktoryzacji.
Zwykle trzymam się mieszanki obu. Gdziekolwiek to możliwe, testy czarnej skrzynki i testy białej skrzynki oszczędnie stosowane do bardziej ryzykownego / bardziej skomplikowanego kodu.
Oczywiście powyższe frameworki mogą być również używane w testach czarnej skrzynki, w których liczba klas przyczyniających się (wstrzykiwanych) jest duża, a proste stubowanie staje się nieporadne.
Odnośnie TDD - jest to przede wszystkim poprawa projektu do pisania kodu, a nie po prostu sposób pisania testów. Testy, które przeprowadziłeś na końcu, są ważnym rezultatem, ale ponadto podejście ma na celu ulepszenie projektu i struktury Twojej aplikacji.
źródło