Studium przypadku – tropienie buga

Aplikacja zaczynała już mieć sens – użytkownik mógł stworzyć listy tyle ile chciał, nazywać je jak tylko chciał, a gdy się mu znudziło – skasować dowolną z nich. Na każdej, oczywiście, można było dodać zadania, oznaczyć jako wykonane, oraz usunąć.

Jeszcze, co prawda, nie napisałem ani linijki kodu związanej ze sztuczną inteligencją (a – gdyby nieco tylko naciągnąć fakty – uczenie się przez aplikację gdzie którą listę wyświetlić jest jakąś formą SI), a program już sprawiał wrażenie złośliwego i humorzastego. Mianowicie po usunięciu jednej listy i obróceniu telefonu do pozycji poziomej, nagle znikały wszystkie.Po powrocie do pozycji wertykalnej – a czasem dopiero po ponownym wejściu w horyzontalną – listy się pojawiały.

Czytaj dalej

[Odrobaczanie z TDD] 3. Testy nam powinny pomagać

Jak pisałem w pierwszym poście z cyklu Odrobaczanie z TDD, aplikacja jako całość działała poprawnie, jednak testy wykryły kilka bugów. Ściślej mówiąc, pokazały, że coś jest nie tak, ale źródła problemu trzeba było szukać samodzielnie.

W poprzednim wpisie naprawiłem część problemów, dziś opiszę jak poradziłem sobie z pozostałymi. Przede wszystkim jednak znajdziecie tu informacje o tym jak przerobiłem testy tak, aby precyzyjnie wskazywały źródło problemów.

Czytaj dalej

[Odrobaczanie z TDD] 1. diagnoza

W przedostatnim poście pisałem trochę o interakcjach między obiektami klas SqlTask i DataBase, z których pierwszy reprezentuje zapisane w bazie zadanie do wykonania, a drugi samą bazę, ukrywając przed nami szczegóły dotyczące łączenia się z nią.

Jestem zadowolony z tego jak te interakcje wymyśliłem i zaimplementowałem, a ponadto… to wszystko działa! Włączam aplikację na telefonie i widzę to co wpisałem do bazy. Działa, czyli kod jest poprawny!

Czy na pewno? Nie.

Czytaj dalej