środa, 19 października 2011

O testowaniu kilka słów...

Zawsze gdy piszemy aplikację przychodzi ten patologiczny moment gdy musimy ją pozbawić błędów które sami (lub wspólnie ze znajomymi) popełniliśmy. Jest to trudne gdyż teoretycznie testowanie własnego kodu jest w jakiś sposób pozbawione sensu. Testując kod wiele rzeczy pomijamy wiedząc odgórnie, że ten input czy to api działa bardzo dobrze - w końcu sam pisałem. Ostatecznie zamiast testować całą aplikację testujemy 20% własnego kodu który sprawił nam najwięcej problemu oraz kod innych programistów (skąd właściwie bierze się zaufanie do własnego kodu?). Dochodzimy do meritum sprawy, tester developerowi w testach nierówny - tester niczemu ani nikomu nie ufa i dobrze robi. Nawet jeżeli testujemy skrypt według określonego scenariusza prawdopodobnie nie zobaczymy wielu logicznych błędów - najlepszym przykładem będzie tu parametr typu int reprezentujący id newsa w tabeli, developer sprawdza i sprawdza czy nie przechodzą sztuczki typu:
  • www.example.com?id=1'select...
  • www.example.com?id=<script></script> 
  • www.example.com?id=%3Cscript%3E%3C/script%3E    
 powinno działać, dopóki nie przyjdzie tester i nie wpisze:
  www.example.com?id=-1.
Jako że nie istnieją wartości mniejsze od zera prawdopodobnie ukaże nam się zapytanie do bazy danych, ale nie chodzi nam o zapytanie ale o metodologię testów. Jeżeli musimy sami testować aplikację musimy starannie przygotować scenariusz wraz z właściwymi parametrami które na aplikacji będziemy testować oraz założyć, że aplikacja napewno posiada błędy lecz narazie nie wiadomo gdzie. Przydadzą nam się również ciągi znaków francusko - japońsko - szwedzko - rosyjsko - tureckie które łatwo znajdziemy na translate.google.com.

Warto byłoby sprawdzić naszą aplikację jak radzi sobie z brakiem dostępu do bazy danych czy też samej bazy lub w sytuacji gdy brakuje nam niektórych plików - nie możemy pozwolić aby użytkownik zobaczył jakąkolwiek część kodu.

Kiedy zakończyć testy? Nigdy, wszystkie błędy które aplikacja generuje powinny być logowane, nigdy nie będziemy do końca pewni czy aplikacja jest pozbawiona błędów choćby na fakt, ze niektóre rzeczy nie zależą od sposobu ich zaprogramowania a samej platformy czy technologii - dlatego też polecam tworzenie kopii zapasowych;)

Brak komentarzy:

Prześlij komentarz