Jesteśmy w początkowej fazie prób wdrożenia TDD. Demonstrowałem zestaw kodów Visual Studio Team System/TDD, a zespół jest podekscytowany możliwościami. Obecnie używamy Devpartner do pokrycia kodu, ale chcemy go wyeliminować, ponieważ jest drogi. Mamy bardzo ograniczone doświadczenie w TDD i chcemy mieć pewność, że nie pójdziemy źle. Obecnie korzystamy z SourceSafe do kontroli kodu źródłowego, ale w ciągu roku przeprowadzimy migrację do Team System.Pierwsze kroki z TDD?
Mogę powiedzieć, że nasze aplikacje są bardzo skoncentrowane na danych. Mamy około 900 tabel, 6000 procedur przechowywanych i około 45 GB danych. Mamy wiele obliczeń opartych na danych użytkownika i różnych stawkach w systemie. Również wiele z naszego kodu opiera się na czasie (należy obliczyć odsetki do bieżącej daty). Niektóre z tych obliczeń są bardzo złożone i bardzo intensywne (tylko kilka osób zna szczegóły niektórych z nich).
Chcemy wdrożyć TDD, aby rozwiązać problemy z kontrolą jakości. Wielu programistów jest zmuszonych naprawić błędy w obszarach, które nie są im znane, i ostatecznie coś zepsuje. Istnieją również obszary, których programiści prawie boją się dotknąć, ponieważ kod jest używany przez wszystko w systemie. Chcemy złagodzić ten problem.
Obawiam się, że nasz kod jest tak skoncentrowany na danych, że wdrożenie TDD może być nieco bardziej skomplikowane niż w przypadku większości systemów. Próbuję wymyślić gameplan, który mogę przedstawić zarządowi, ale mam nadzieję, że nie wpadnę w niektóre błędy początkujących graczy TDD. Również jeśli narzędzia/wyposażenie w Team System sprawią, że TDD będzie bardziej kompletny, byłoby to miłe, ale nie chcemy czekać na uruchomienie systemu Team System.
Pierwsze pytanie, które zadajemy, to czy powinniśmy zacząć od narzędzi w visual studio? Czytałem post, gdy ludzie narzekali na wewnętrzne narzędzia w studio graficznym (trzeba utworzyć oddzielny projekt, aby stworzyć swój test), ale jedyną rzeczą na temat narzędzi w visual studio jest to, że są darmowe, a integracja jest dobra. Jeśli zdecydujemy się na inną drogę przy użyciu czegoś takiego jak XUnit, MBUnit lub NUnit, to najprawdopodobniej będziemy mieli kilka znaczących kosztów:
1) Jeśli chcemy integracji IDE (nie wspomnieliśmy o większości naszego kodu to jest VB.Net)
---TestDriven.Net lub Resharper lub ?????
2) Jeśli chcemy pokrycie kodu
--- NCover (wydaje się dość drogie ze względu na funkcjonalność)
Również widziałem jakiś dość chłodny funkcjonalność demoed w visual studio 2010. Podobnie jak zdolność do zrobienia wejście testowanie (dane wprowadzane w formularzu) lub możliwość zapisania, co zrobił użytkownik, a następnie wprowadzenie go do testu urządzenia w celu odtworzenia problemu.
Ponadto, chociaż nie do końca rozumiem koncepcję obiektu szyderczego, wiem, że wielu ludzi czuje, że to konieczne. Pytanie brzmi, czy wszystkie szydercze fragi mogą być podłączone do wersji TDD (MSTEST) studia Visual Studio?
Poinformowałem kierownictwo, że prawdopodobnie powinniśmy po prostu dodać testy regresyjne w przyszłości (nowe rozwiązania lub znalezione błędy), ale nie próbować przechodzić przez cały nasz kod i wprowadzać testów jednostkowych. Byłby zbyt duży projekt.
W każdym razie byłbym wdzięczny za pomoc.
TDD! = Testowanie urządzenia. Upuść tag TDD - po prostu nazwij to testowaniem. – Tim