TDD i ATDD

treść
  1. Quality Assurance zrównoważony
  2. automatyzacji testów
  3. TDD i ATDD
  4. wniosek
  5. Przeczytałem na jednej stronie

Ze statycznych narzędzi analizy kodu, takich jak FindBugs często, FxCop lub Checkstyle być używana do sprawdzania kodu przed uszkodzeniem niezależne od aplikacji. Odsłonięte wyjątki oczywiste zerowe wskaźnik odniesienia i fragmenty niewykorzystany kod może zatem znaleźć konkretne. Na ogół jednak, nie powinno być ograniczone do statycznej analizy kodu, ale uzupełniać dane przez programowanie w parach. To dzielenie się wiedzą jest również dawna wspiera zespół i Collective Kod Własność pozwala. Jeżeli którykolwiek programista w zespole jest w stanie zmienić dowolny inny kod, tworząc zupełnie nowy sposób pracy, ponieważ nie jest już kod Peters już nie iść na raz, ale to jest kod wszystkich członków zespołu.

Jak w przypadku wszystkich wskaźników, jednak należy pamiętać, że nie chodzi o to, aby mierzyć wydajność poszczególnych członków zespołu lub użyć, na przykład, wskaźniki pokrycia jako cel dla zespołu rozwoju oprogramowania. Cem Kaner i Walter P. Bond ołowiu "Engineering Software Metrics - Czego oni mierzyć i jak wiemy?" [3], że takie zachowanie się do manipulowania i Przechytrzyć wyników danych. Na przykład, badania jednostki mogą tworzyć celowo tak, że zakres procentowy jest osiągnięty. Następnie są one zazwyczaj silnie związany z logiki aplikacji, więc jest to trudne z perspektywy czasu, aby zmienić kod bez przerywania testu. Zamiast tego autorzy proponują, aby inwestować w szkolenie programistów i pracować z nimi bezpośrednio do kodu.

Na tyle nie wystarczy

Gdy sieć zautomatyzowanych testów jest umieszczony wraz z ciągłym integracji, to tylko jeden krok do czasu (TDD), rozwój testu napędzane. Cykl rozpoczyna się rozwój małej, badania upadającego: Uruchamia test nie tak samo kod produkcyjny powinien być napisany tak, że może być z powodzeniem zakończone. Następnie jest redundancja kodu zmniejszenie o refaktoringu (fig. 3). Większość zespołów nie zdają sobie sprawy, że jest to również w automatyzacji testów do rozwoju oprogramowania gdzie kod test jest czyste, jak to inaczej szybko zmierzyć się z problemem złych testów utrzymaniu.

Wraz z rozwojem testu napędzane w utrzymaniu długoterminowej testowane kod być tworzone (fig. 3).Wraz z rozwojem testu napędzane w utrzymaniu długoterminowej testowane kod być tworzone (fig. 3).


Takie podejście wydaje się początkowo dogmatyczny, ale nauczyć się test-driven development, on celowo dobrane w ten sposób. Gdy wystąpi bezpieczeństwa po pewnym czasie w pewnych obszarach mogą również starać się wdrożyć w większych odstępach. Jednak powinno być jasne, że zbyt duży krok pociąga za sobą ryzyko ugrzęznąć, a test nie przyjdzie szybko z powrotem i działa. Jeśli to nastąpi, problem powinien zostać podzielony na mniejsze jednostki i być rozwiązany w ten sposób.

Szczegółowy przykłady

Nowy trend w rozwoju metod obecnie idzie ku Acceptancetest-Driven Development (ATDD) Zachowanie i rozwój napędzany (BDD). W swej istocie, BDD jest stowarzyszeniem TDD, ATDD, Domain-Driven Design, na zewnątrz, w rozwoju i wykorzystaniu wszechobecnego języka jako warsztatach specyfikacji stworzonych przez instrumenty. W praktyce ATDD Niestety, często jest mylony z BDD.

ATDD jest zaprojektowany, aby pomóc odpowiednie funkcje do opracowania (Rys. 4).ATDD jest zaprojektowany, aby pomóc odpowiednie funkcje do opracowania (Rys. 4).

W ATDD (patrz [4]). Jest to środek do wymogów urządzenia poprawnie możliwe kodu (fig. 4). Praca rozpoczyna się tu wcześnie, nawet wtedy, gdy rzeczywiste wymagania zostały określone. Przedstawiciele rozwoju i zespołu testowego przyjdzie razem z klientem i określić kryteria akceptacji dla przyszłych funkcji (rys. 5). Tutaj, testerów i programistów ([5] Zob.) Wspólne zrozumienie potrzeb klienta, przy dostatecznie dużej sali dla różnych decyzji projektowych pozostaje otwarta. Więc programiści i testerzy mogli znaleźć rozwiązanie problemu klienta, z którego może być spełnione w perspektywie długoterminowej.

Cały zespół z klientami, programistów i testerów powinno być wspólne rozumienie funkcji wynikających mieć (rys. 5).Cały zespół z klientami, programistów i testerów powinno być wspólne rozumienie funkcji wynikających mieć (rys. 5).


Na podstawie powyższych kryteriów akceptacji, twórcy początkowo pracuje nad opisowych przykładów ich przed przejściem funkcję, jednak nadal udoskonalić. Przykłady pchnąć go zwięźle i dokładnie to, co ma być osiągnięte dzięki funkcji. Poruszają się na poziomie wymagań biznesowych i powinien mieć nic wspólnego ze szczegółami implementacji takich jak położenie elementów GUI.

Równolegle z realizacją funkcji zespołu pracuje wtedy zautomatyzować przykłady. Niektóre grupy Deweloperzy są nawet w stanie zintegrować logikę biznesową przypadków biznesowych opartych na kodzie domeny. W literaturze mówi zewnątrz do rozwoju: Rozwój jest napędzany od zewnątrz do wewnątrz. W tym przypadku tylko tyle kodu domeny i program sterujący został zaprojektowany i napisany jak jest to absolutnie konieczne. Praktycznie istnieje kilka zespołów, które osiągnęły taki poziom dojrzałości. Zaletą tego podejścia, jednak nie należy odrzucić z ręki: Może być przed koncertem rozwoju, że proponowana aplikacja wykona to, co chcą, a potem elastyczność na zmiany wymagań długoterminowych.

Razem TDD i ATDD tworzą symbiozę z których wysoki stopień można osiągnąć na automatyzacji testów. W ten sposób jest możliwe ATDD pokrywą żądanie blisko 100 procent, podczas gdy w przypadku TDD 100 procent pokrycia kod jest możliwy. Połączony TDD zapewnia tym samym, że kod był prawidłowy, podczas ATDD zapewnia, że ​​jest to właściwy kod.