Testowanie kodu naukowego
Zalety testowania kodu Naukowego
- Kiedy piszesz masz pewność że działa
- Szybciej wykrywasz błędy
- Łatwiej jest zrobić zmiany w kodzie
Rodzaje Testów
- Testy jednostkowe
- Dotyczą jednego komponentu
- Testy integracyjne
- Dotyczą kilku komponentów
- Testy systemowe
- Dotyczą całego systemu na raz
Testy Jednostkowe
- Testują jeden komponent (klasę, metodę...)
- Pozostałe komponenty systemu albo są w
teście nieobecne albo są zamarkowane
obiektami atrapami
TESTY JEDNOSTKOWE
- Pozwalają przetestować jeden obiekt
- Izolują błąd z dokładnością do klasy/metody
- Wymagają pracy przy zmianie wewnętrzynych interfejsów programu
Testy integracyjne
- Testują kilka komponentów razem
Testy systemowe
- Testują cały system
- Wymagają zmiany przy zmianach zewnętrznych interfejsów programu
- Bardzo trudno jest zidentyfikować błąd
Jakie testy?
- Testy jednostkowe do testowania
ważnych, trudnych, fragmentów kodu- Najlepiej do wszystkiego
- Test systemowe sprawdzające poprawność całości
Testy systemowe
Testujecie jakość działania programu.
- Porównanie z danymi eksperymentalnymi (trudne!)
- Symulacja dla przypadku rozwiązywalnego analitycznie.
- Sprawdzenie rozwiązywalnego analitycznie szczegółu symulacji.
- Porównanie z "poprawnymi wynikami"
- Testy regresyjne: porównanie z wynikiami Waszego programu z czasu kiedy działał "dobrze".
- Testy czy dane są spójne.
Porównanie z eksperymentem

- Tutaj mamy model reaktora podczas total LOCA
- Oraz wyniki reaktora testowego doprowadzonego do total LOCA
- Widać niezlą zgodność :)
Inny przykład
- Boeing wing break test: https://www.youtube.com/watch?feature=player_detailpage&v=Ai2HmvAXcU0#t=133
Porównanie z poprawnymi wynikami
- Poprostu automatycznie sprawdzacie czy program generuje "poprawne" dane/wykresy/obrazki.
-
Dostajecie program który trzeba zmodyfikować
- Przyśpieszyć
- Roszerzyć
- Pierwszą rzeczą którą robicie powinno być:
- wygenerowanie kilku zestawów danych
- sprawdzanie czy program po poprawkach daje spójne wyniki
Testy jednostkowe
Sprawdzają działanie jednego komponentu
- Dla przykładu rozwiązywalnego analitycznie
- Policzalnego w pamięci (waszej!)
- Warto pisać je podczas pisania danego
fragmentu programu- Wtedy macie pewność że dany kawałek działa poprawnie
Na następnych wstępach
- Narzędzia do pisania testów
- Przykłady
Testowanie kodu naukowego
Testowanie kodu
By Jacek Bzdak
Testowanie kodu
- 1,210