TDD oznacza Test-Driven Development lub Test-Driven Design. Jest to praktyka pisania testu jednostkowego przed napisaniem kodu, aby go spełnić, w tak zwanym cyklu Refaktora Czerwono-Zielonego.
Kiedy czytałem streszczenie poprzedniej pracy w Dogsa T, Batic D. Skuteczność rozwoju opartego na testach: studium przypadku przemysłowego. Software Quality Journal. 2011; 19 (4): 643–661. Uderzyło mnie, że pomiary stosowane w wielu badaniach wokół TDD opierają się na liniach kodu, defektach i czasie poświęcanym na rozwój. Czy istnieją jakieś badania, …
Mój przyjaciel i ja jesteśmy stosunkowo nowymi TDD i spieramy się o technikę „Oczywistej implementacji” (z „TDD według przykładu” Kent Beck). Mój przyjaciel mówi, że oznacza to, że jeśli implementacja jest oczywista, należy ją napisać - przed jakimkolwiek testem na to nowe zachowanie. I rzeczywiście książka mówi: Jak wdrażasz proste …
Mimo że nie brałem udziału w projekcie TDD ani BDD, lub w niektórych z nich mówi się, że robią TDD, ale są dość dalekie, to są rzeczy, o których myślę i naprawdę staram się czytać jak najwięcej o. Powrót do pytania Kiedy robisz BDD, powinieneś najpierw napisać swój „test” i …
Robię TDD od roku, czuję się z tym całkiem nieźle, uwielbiam moje zestawy testowe i wszystko inne. Zauważyłem jednak, że ostatnio przeprowadzałem wiele próbnych weryfikacji połączeń. Na przykład miałbym usługę, do której wstrzyknie się repozytorium - w moim teście jednostkowym zdałem próbę repozytorium i sprawdziłem, czy została wywołana w ramach …
Niedawno zdałem ostatni egzamin na kurs inżynierii oprogramowania dla mojego programu magisterskiego i jedno z pytań na egzaminie było następujące: Unit Testing is considered: a. White-box Testing b. Black-box Testing c. Either W ciągu moich 7 lat doświadczenia w tworzeniu oprogramowania, testy jednostkowe zawsze przyjmowały podejście „białej skrzynki”. Tester zawsze …
Wygląda na problem z kurczakiem i jajkami. Możesz zmusić funkcję zapisu do zapisu w jakimś magazynie danych, ale nigdy nie wiesz, że zapisałeś ją poprawnie bez przetestowanej funkcji odczytu. Możesz zrobić funkcję odczytu z magazynu danych, ale jak umieścić rzeczy w tym magazynie danych, aby można je było czytać bez …
Jeden z nich nie zdał testu algorytmicznego z Codility, ponieważ próbowałem znaleźć lepsze rozwiązanie, a ostatecznie nie miałem nic. Więc pomyślałem, czy mógłbym zastosować podejście podobne do TDD? Tj. Czy zazwyczaj mogę stopniowo opracować rozwiązanie w podobny sposób? Gdybym pisał algorytm sortowania, mógłbym przejść ze standardowego Bubblesorta do dwukierunkowego bąbelkowego …
W moim nowym projekcie postanowiłem spróbować z TDD. I na samym początku napotkałem problem. Pierwszą rzeczą, którą chcę zrobić w mojej aplikacji, jest umożliwienie odczytu danych ze źródła danych. W tym celu chcę użyć wzorca repozytorium. I teraz: Jeśli testy mają na celu rzeczywistą implementację interfejsu repozytorium, będę testował klasę, …
Problem występuje podczas wykonywania TDD. Po kilku zdaniach testowych zmieniają się typy zwracane przez niektóre klasy / moduły. W statycznym języku programowania, jeśli poprzedni próbny obiekt był używany w testach innej klasy i nie został zmodyfikowany w celu odzwierciedlenia zmiany typu, wystąpią błędy kompilacji. Jednak w przypadku języków dynamicznych zmiana …
Jeśli mam w kodzie funkcję, która wygląda następująco: class Employee{ public string calculateTax(string name, int salary) { switch (name) { case "Chris": doSomething($salary); case "David": doSomethingDifferent($salary); case "Scott": doOtherThing($salary); } } Normalnie przefakturowałbym to, aby użyć Ploymorfizmu przy użyciu fabrycznego wzorca klasy i strategii: public string calculateTax(string name) { InameHandler …
Mam bardzo dużą aplikację PHP. Zwykle pracuje nad nim 2-3 programistów i dochodzimy do punktu, w którym wprowadzamy zmiany i robimy błędy (funkcje kaszlu!). Oprogramowanie nie jest skomplikowane, powiedzmy, po prostu wiele się dzieje (35 ~ kontrolerów, o tych samych modelach itp.). Nawet uważając, zmiana tego widoku (poprawianie identyfikatora elementu) …
Czasami przedmioty muszą być ściśle połączone. Na przykład CsvFileklasa prawdopodobnie będzie musiała ściśle współpracować z CsvRecordklasą (lub ICsvRecordinterfejsem). Jednak z tego, czego nauczyłem się w przeszłości, jedną z głównych zasad rozwoju opartego na testach jest: „Nigdy nie testuj więcej niż jednej klasy na raz”. Oznacza to, że powinieneś używać ICsvRecordpróbnych …
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się tylko na jednym problemie, edytując ten post . Zamknięte 4 lata temu . Rozwój oparty na testach oznacza napisanie testu przed kodem i wykonanie określonego cyklu : Napisz …
Zamknięte . To pytanie jest oparte na opiniach . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć faktami i cytatami, edytując ten post . Zamknięte 4 lata temu . Guru TDD coraz bardziej mówią nam, że TDD nie polega na testach, ale …
Należę do zespołu programistów, który współpracuje z wieloma innymi zespołami w celu utrzymania i ulepszania aplikacji, która była używana przez co najmniej 15 lat. Kiedy został zbudowany i zaprojektowany po raz pierwszy, TDD było niespotykane. Aplikacja jest dość stabilna i rzadko napotykamy błąd zatrzymujący program, ale robimy średnio około jednego …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.