Testy funkcjonalne – mega czad.

Po pierwszym kontakcie z testami (cakePHP) nie czułem szczególnej mięty do testów. Jedynie unit testy modeli wydały mi się interesujące i przydatne. Jednak dziś zacząłem grzebać w testach funkcjonalnych (kontrolerów) w aplikacji Ruby on Rails i muszę przyznać, że nie miałem racji. Spójrz na ten kod:

  test "should kick off normal user from index" do
    login_user :normal
    get :index
    assert_redirected_to login_path
  end

Sprawdza on czy zwykły user, przy próbie dostępu do do akcji “index” zostanie przekierowany do strony logowania. Teraz nie muszę się bać, że wpuszczę nieuprawnionego użytkownika do “adminowej” części aplikacji. Wypas.

(Być może jestem niesprawiedliwy w ocenie cakePHP. Nasze drogi rozeszły się dobry rok temu. Być może teraz testy działają w nim teraz naprawdę dobrze. Ale kiedy jeszcze w cake’u pracowałem naprawdę trudno było polegać na testach).

Share Button

Dlaczego estymacje zawsze są błędne?

Ciekawa rzecz, którą znalazłem. Pewien “menadżer” (cudzysłów nie jest przypadkowy) zapytał dlaczego estymacje są zawsze błędne? Pyta czy to wina deweloperów, problem z zarządzaniem (ciekawe, że nie zapytał czy to wina menadżera), błędna metodyka lub jej brak? A może ten błąd jest zawarty w samej naturze procesu – pyta niczym grecki filozof podczas debaty ze swoimi uczniami.

Jak myślicie jaka jest odpowiedź? (Oprócz tej, że powinien przeczytać książkę/dwie?).


Tutaj przeczytacie najciekawszą i bardzo obrazową odpowiedź dlaczego tak się dzieje (po angielsku)
. Pokażcie ją swojemu “menadżerowi” jeśli też go ta kwestia dziwi.

Moja odpowiedź: Estymacja jest błędna z defininicji (<łac. aestimatio ocena> != wycena). Jeśli zakładasz, ze estymacja da Ci dokładny wynik, to zamień to słowo na szacowanie. Jeśli nadal popełniasz ten sam błąd i po szacowaniu spodziewasz się dokładnych wyników – zamień to słowo na… zgadywanie. Czasem trafi się ktoś, kto potrzebuje jeszcze silniejszego określenia, żeby odpaliło odpowiednie zwoje mózgowe. Ja w ekstremalnych warunkach lubię użyć określenia “Wróżenie z fusów”.

foto: Flood

Szczególnie, jeśli na przeciw masz zabójczą kombinację:

zabójca kombinacja = 
rozległe zadanie 
+ technologia w której brak Ci doświadczenia 
+ menadżer (lub klient) który nie rozumie znaczenia słów
  • “To wróżenie z fusów”.
  • “Jeśli mam podać konkretne daty, to zajmie od 3 do 10 miesięcy”
  • “Dlaczego? Bo to jest jak wróżenie z fusów”
  • “Jest wiele niewiadomych, a wymagań jest na tyle dużo, że nie mieszczą się już na kartce a4 – dlatego przypomina to wróżenie z fusów”.
  • “Podając Ci konkretne wartości, czuję się jakbym wróżył z fusów”

Powtarzaj to tak często jak potrafisz. I porzuć nadzieję, że zrozumieją. Będziesz powtarzał to zdanie (lub inne ulubione) tylko z jednego powodu – dla zachowania własnego zdrowia psychicznego. Gdy na kolejnym spotkaniu (miejmy nadzieję, że szybciej niż za 3 miesiące) ktoś wytknie Ci nietrafioną estymację przypomnij mu o tym. Powtórzyłeś tę frazę tak wiele razy, że coś musi zaświtać… Estymacje to wróżenie z fusów.

Estymacja z definicji zawiera błąd. Istotne jest jaka jest natura tego błędu.

Dlatego jest nadzieja. W pytaniu jest informacja, że estymacje zazwyczaj chybią o współczynnik 2-3 (cokolwiek by to nie znaczyło). I to jest już coś na czym można budować. Zwinne metodyki potrafią radzić sobie z błędnymi estymacjami jeśli błąd jest w miarę stały (i nie trzeba nawet wiedzieć ile on wynosi). Ale to temat na kolejny post.

Share Button

Phing on git bash

foto: Wen Rou


I recently installed phing on Windows XP via PEAR. It works nicely out of the box on windows console (cmd), but would rather use Git bash and don’t want to switch to cmd just to run phing build. And it didn’t work, but fix is rather simple.

Phing creates file phing.bat in the PHP directory, so it makes only to put another file, named phing (executable) with content:

php -d html_errors=off -qC "C:\path_to_your\PHP\PEAR\phing.php" $@

And that’s it. Hope it was helpful :)

Share Button